# Conduit API ## Getting started - [Getting Started](https://v2.docs.conduit.financial/introduction.md): Learn how to integrate with the Conduit API - [Authentication](https://v2.docs.conduit.financial/authentication.md): API keys, environments, and request headers ## Guides - [The Onboarding Lifecycle](https://v2.docs.conduit.financial/guides/onboarding-lifecycle.md): Follow a business customer from submitted application through verification to active — across the full-KYC and KYC-reliance paths - [Money Movement Lifecycle](https://v2.docs.conduit.financial/guides/money-movement-lifecycle.md): The journey of a dollar through Conduit: fund a Virtual Account, see the balance, convert it, pay it out, and follow the transaction to a terminal state - [Receive Crypto Lifecycle](https://v2.docs.conduit.financial/guides/receive-crypto-lifecycle.md): The journey of an inbound crypto deposit: provision a wallet, share its address, watch funds arrive on-chain, see the balance credited, and follow the deposit to a terminal state - [Non-Custodial Payout Lifecycle](https://v2.docs.conduit.financial/guides/non-custodial-payout-lifecycle.md): A non-custodial payout end to end: setting up signers and thresholds, the signing handshake, whitelist checks, settlement, and terminal state — with the state, the call, the webhook, and the failure at every step. - [Money](https://v2.docs.conduit.financial/concepts/money.md): How Conduit represents and validates monetary amounts on the API surface - [Virtual Accounts](https://v2.docs.conduit.financial/concepts/virtual-accounts.md): Client-facing account abstractions for receiving funds - [Deposit-Funded Orders](https://v2.docs.conduit.financial/concepts/deposit-funded-orders.md): Create an order without naming a funding source and let Conduit hand you a crypto address to fund it at - [Crypto Wallets](https://v2.docs.conduit.financial/concepts/crypto-wallets.md): On-chain non-custodial wallets for receiving and sending crypto - [Non-Custodial Wallets](https://v2.docs.conduit.financial/concepts/non-custodial-wallets.md): How non-custodial crypto wallets work: the customer controls the key and must approve every outbound transfer - [Signing modes](https://v2.docs.conduit.financial/concepts/signing-modes.md): Choose who approves payouts on your non-custodial wallets (people with passkeys, your servers with API keys, or both) and what each mode commits you to. - [Multi-signer wallets](https://v2.docs.conduit.financial/concepts/multi-signer-wallets.md): M-of-N customer-controlled signing on non-custodial wallets: roster, threshold, admins, ceremonies, and webhooks in one place. - [Signing thresholds](https://v2.docs.conduit.financial/concepts/signing-thresholds.md): How M-of-N thresholds, minimum-admin floors, and per-wallet overrides work together on multi-signer non-custodial wallets. - [Whitelist Recipients](https://v2.docs.conduit.financial/concepts/whitelist-recipients.md): Pre-registered intercompany counterparties for intercompany payouts - [Registered Addresses](https://v2.docs.conduit.financial/concepts/registered-addresses.md): Pre-registered crypto addresses that gate intercompany payouts going out and deposit funding coming in - [Onboard a Customer](https://v2.docs.conduit.financial/guides/onboard-customer.md): Discover onboarding requirements, then submit a customer application - [Add Virtual Accounts](https://v2.docs.conduit.financial/guides/add-virtual-accounts.md): Request Virtual Accounts and retrieve deposit instructions - [Add a Crypto Wallet](https://v2.docs.conduit.financial/guides/add-crypto-wallet.md): Provision a customer's non-custodial crypto wallets end to end: enable the feature, claim non-custodial control with a passkey or machine (API-key) signer roster, and activate. - [Onboard with KYC Reliance](https://v2.docs.conduit.financial/guides/onboard-with-kyc-reliance.md): Submit identity verification proofs from your own KYC provider instead of routing each control person through a Conduit-hosted identity flow - [Transact](https://v2.docs.conduit.financial/guides/transact.md): What each transaction needs to clear: Travel Rule sender info on crypto deposits, recipient whitelisting for intercompany payouts, and supporting documents for everything else - [Convert crypto](https://v2.docs.conduit.financial/guides/convert.md): Convert one crypto asset to another between a customer's wallets — same chain, a different chain, a different asset, or both — with a single orders call - [Send a payout](https://v2.docs.conduit.financial/guides/send-payout.md): Initiate, sign, track, and cancel outbound crypto and fiat transfers - [Programmatic payout signing (machine signers)](https://v2.docs.conduit.financial/guides/machine-signer-stamping.md): Let your backend approve non-custodial payouts with a server-held P-256 key - discover the requests over the API, stamp them, and submit the stamp to Conduit. No browser, no human, no gas to manage. ## Sandbox recipes - [Sandbox overview](https://v2.docs.conduit.financial/sandbox/overview.md): How the Conduit sandbox cluster differs from production, what's mocked, and how to drive specific scenarios - [Sandbox quickstart](https://v2.docs.conduit.financial/sandbox/quickstart.md): Zero to first transaction in under 10 minutes. API key to a transaction.completed webhook, one linear page. - [Deposits in sandbox](https://v2.docs.conduit.financial/sandbox/deposits.md): End-to-end guide for testing fiat and crypto deposits: happy paths, compliance failures, and the sender-information gate - [Withdrawals in sandbox](https://v2.docs.conduit.financial/sandbox/withdrawals.md): End-to-end guide for testing crypto and fiat withdrawals: non-custodial cosign, fiat settlement, failures, and webhooks - [Conversions in sandbox](https://v2.docs.conduit.financial/sandbox/conversions.md): Test FX conversion failure scenarios inside ONRAMP and OFFRAMP orders using the orders/:id/simulate/conversion-failed endpoint - [ONRAMP orders (sandbox)](https://v2.docs.conduit.financial/sandbox/onramps.md): Step-by-step guide to testing fiat-in → crypto-out ONRAMP orders in sandbox: happy path, failure scenarios, rate-lock expiry, and webhooks - [OFFRAMP orders in sandbox](https://v2.docs.conduit.financial/sandbox/offramps.md): Step-by-step guide for testing crypto-in to fiat-out orders: happy path, destination failure, compliance gates, rate-lock expiry, and webhooks - [Multi-signer wallets recipe](https://v2.docs.conduit.financial/sandbox/multi-signer-wallets.md): Drive a multi-signer non-custodial payout end-to-end in sandbox: claim non-custodial control, distribute per-signer enrollment links, watch the per-stamp progress events, and finalize. - [Sandbox cheat sheet](https://v2.docs.conduit.financial/sandbox/cheat-sheet.md): Every suffix, every magic value, every error, every simulate endpoint on one printable page. - [Customer KYC (Sandbox)](https://v2.docs.conduit.financial/sandbox/customer-kyc.md): How customer KYC is mocked in the sandbox environment, and how to drive specific outcomes on any application - [Example data palette](https://v2.docs.conduit.financial/sandbox/example-data.md): Consistent fictional org, customer, and wallet values used across all code samples in this site - [Travel Rule scenarios](https://v2.docs.conduit.financial/sandbox/travel-rule-scenarios.md): Force Travel Rule resolution and counterparty webhook outcomes ## Webhooks - [Webhooks](https://v2.docs.conduit.financial/webhooks.md): Receive real-time event notifications from Conduit - [Webhook signature verifier](https://v2.docs.conduit.financial/webhook-verifier.md): How to verify Conduit webhook signatures locally using Node.js or Python ## API Reference - [API Conventions](https://v2.docs.conduit.financial/api-reference/overview.md): Patterns and conventions used across the Conduit API - [OpenAPI Specification](https://v2.docs.conduit.financial/sdks/openapi.md): Use the Conduit OpenAPI spec to generate typed API clients - [Error Codes](https://v2.docs.conduit.financial/errors.md): Reference of public Conduit API error codes - [TRAVEL_RULE_REJECTED error](https://v2.docs.conduit.financial/errors/travel-rule-rejected.md): The receiving institution rejected the Travel Rule transfer, so the payout did not broadcast and no funds moved - [SENDER_INFO_TIMEOUT error](https://v2.docs.conduit.financial/errors/sender-info-timeout.md): A deposit was not credited because the sender-information deadline expired before the required details were provided - [USER_SIGNATURE_DECLINED error](https://v2.docs.conduit.financial/errors/user-signature-declined.md): A non-custodial payout failed because the end user explicitly declined to approve it at the signing step - [USER_SIGNATURE_TIMEOUT error](https://v2.docs.conduit.financial/errors/user-signature-timeout.md): A non-custodial payout timed out waiting in the wallet's signing queue before it could start collecting signatures - [USER_SIGNATURE_REJECTED_BY_PROVIDER error](https://v2.docs.conduit.financial/errors/user-signature-rejected-by-provider.md): A non-custodial payout failed because the signing provider could not accept the user's signature payload - [COMPLIANCE_HOLD error](https://v2.docs.conduit.financial/errors/compliance-hold.md): A transaction's funds are frozen pending a manual compliance review; no funds were credited or moved - [COMPLIANCE_REVIEW_REJECTED error](https://v2.docs.conduit.financial/errors/compliance-review-rejected.md): A transaction was declined in compliance review; no funds moved and the transaction is terminal - [CRYPTO_WALLET_MISCONFIGURED error](https://v2.docs.conduit.financial/errors/crypto-wallet-misconfigured.md): A non-custodial wallet is missing required signing configuration and the payout could not be signed - [RETURNED_BY_SENDER error](https://v2.docs.conduit.financial/errors/returned-by-sender.md): An inbound transfer was sent back before it could be credited — the code is present on a deposit to your customer's own account, and withheld on a transfer into a funding address - [PROVIDER_REJECTED error](https://v2.docs.conduit.financial/errors/provider-rejected.md): The crypto outbound provider declined the broadcast request before the transaction was submitted to the chain - [RAIL_POLICY_REJECTED error](https://v2.docs.conduit.financial/errors/rail-policy-rejected.md): The payment rail rejected the transaction per its own policy; no funds moved - [INSUFFICIENT_FUNDS_AT_SETTLE error](https://v2.docs.conduit.financial/errors/insufficient-funds-at-settle.md): Settlement failed because the source balance was insufficient at the time of settlement, even though funds were available at reservation - [RAIL_UNAVAILABLE error](https://v2.docs.conduit.financial/errors/rail-unavailable.md): The payment rail was temporarily unavailable when the transaction was attempted; no funds moved - [SANDBOX_TRANSACTION_NOT_FORCE_TERMINAL_READY error](https://v2.docs.conduit.financial/errors/sandbox-transaction-not-force-terminal-ready.md): A sandbox simulate endpoint was called with an outcome that is not valid in the transaction's current phase - [INVALID_ADDRESS_FORMAT error](https://v2.docs.conduit.financial/errors/invalid-address-format.md): The destination blockchain address did not pass format validation for the specified chain - [RESOURCE_TERMINAL error](https://v2.docs.conduit.financial/errors/resource-terminal.md): A sandbox simulate endpoint was called against an entity that has already reached a terminal state - [CUSTOMER_NOT_ONBOARDED](https://v2.docs.conduit.financial/errors/customer-not-onboarded.md): The operation requires a customer who has completed onboarding - [RATE_UNAVAILABLE](https://v2.docs.conduit.financial/errors/rate-unavailable.md): A live exchange rate could not be retrieved for the requested currency pair - [RATE_UNAVAILABLE_AFTER_HOURS](https://v2.docs.conduit.financial/errors/rate-unavailable-after-hours.md): The market for the requested fiat currency is closed and no prior open-market rate is available to freeze - [DOCUMENTATION_REQUIRED](https://v2.docs.conduit.financial/errors/documentation-required.md): A payout cannot proceed without a valid supporting document uploaded with purpose transaction_support - [RECIPIENT_NOT_WHITELISTED](https://v2.docs.conduit.financial/errors/recipient-not-whitelisted.md): An intercompany payout requires a pre-registered, approved recipient - [Cancel an application](https://v2.docs.conduit.financial/api-reference/applications/cancel-an-application.md): Cancels an application that is currently under review (`status: "processing"`). Applications in any other status (`pending`, `approved`, `rejected`, `cancelled`) cannot be cancelled. Cancelled applications cannot be resubmitted; create a new application instead. - [Get an application by ID](https://v2.docs.conduit.financial/api-reference/applications/get-an-application-by-id.md): Retrieves the full details of a single application. Use this to check the current status of an onboarding or feature request submission. - [Get an identity-verification link for a person](https://v2.docs.conduit.financial/api-reference/applications/get-an-identity-verification-link-for-a-person.md): Returns the person's hosted identity-verification link — the same canonical link delivered by the `idv_link.created` webhook and by verification emails, for when you deliver it out-of-band yourself (e.g. you are not subscribed to `idv_link.created` and verification emails are disabled for your organization). The person is addressed by their stable `referenceId`, listed as `persons[].referenceId` on the application and carried on `idv_link.created` webhook events. Verification sessions are created asynchronously after application submission — this returns 404 until the session exists (react to the `idv_link.created` webhook or retry). Returns 409 once the person's verification has settled. Throttled to one in-flight request per person; on 429, retry after the `Retry-After` header. The returned URL is resumable — not single-use, it survives a refresh and a second device, and stays valid as long as the verification session does. Earlier links for the same person keep working. Treat it as a bearer secret and do not log it. - [List all applications](https://v2.docs.conduit.financial/api-reference/applications/list-all-applications.md): Returns a paginated list of applications for the authenticated organization. Applications track onboarding submissions, feature requests, and their review status. Filter by status, type, or customer to narrow results. - [Discover onboarding requirements for a country](https://v2.docs.conduit.financial/api-reference/customer-onboarding/discover-onboarding-requirements-for-a-country.md): Returns `fields[]`, `documents[]`, and `individualRequirements[]` for the given `country` (alpha-2 or alpha-3, normalized server-side; response always echoes alpha-3). `documents[]` is a checklist of what to collect; the integrator uploads each via `POST /v2/documents` (file only) and references the returned ids at submit time. - [Submit a customer onboarding application](https://v2.docs.conduit.financial/api-reference/customer-onboarding/submit-a-customer-onboarding-application.md): Call `GET /v2/onboarding/requirements` first. Each entry in `fields[]` carries a JSON Pointer at `fields[].pointer` (e.g. `/businessInfo/taxId`) describing where the value belongs in the submission body; strip the leading `/` and treat each segment as a nested key (`businessInfo: { taxId }`). Upload each required document via `POST /v2/documents` (file only; no type declaration needed), then pass the returned `doc_...` ids in top-level `documentIds[]` (customer-level) and `ownership.persons[i].documentIds[]` (per-person, flat). The AI classifier resolves doc canonical types at review time. - [Get a customer by ID](https://v2.docs.conduit.financial/api-reference/customers/get-a-customer-by-id.md): Retrieves the full details of a single customer, including their business or individual profile and active features. - [List customers](https://v2.docs.conduit.financial/api-reference/customers/list-customers.md): Returns a paginated list of customers belonging to the authenticated organization. Customers are created after a successful onboarding application. Each customer has a type (business or individual) with the corresponding profile populated. Supports cursor-based pagination and filtering by type. - [Submit a customer update application](https://v2.docs.conduit.financial/api-reference/customers/submit-a-customer-update-application.md): Post-onboarding KYC update. Body shape matches `POST /v2/onboarding` (partial: send only the fields you want to change). Discover the available fields via `GET /v2/onboarding/requirements` with the customer's country; the update flow reuses the CUSTOMER_ONBOARDING rule set. - [Get a document by ID](https://v2.docs.conduit.financial/api-reference/documents/get-a-document-by-id.md): Retrieves metadata for a previously uploaded document. Does not return the file contents; use the download URL for that. - [Get a download URL for a document](https://v2.docs.conduit.financial/api-reference/documents/get-a-download-url-for-a-document.md): Returns a short-lived signed URL for downloading a document owned by the authenticated organization. - [List documents](https://v2.docs.conduit.financial/api-reference/documents/list-documents.md): Lists documents uploaded by the authenticated organization. - [Upload a document](https://v2.docs.conduit.financial/api-reference/documents/upload-a-document.md): Uploads a file and creates a document record. The AI classifier determines the canonical document type at review time; the integrator does not declare it. Optional multipart fields: `purpose` and `name` (human-readable label). Maximum file size is 10 MB; the request may contain at most 16 multipart fields in total. File type is determined by inspecting the file's contents — the `Content-Type` header and filename extension are advisory only. - [Discover feature requirements for a customer](https://v2.docs.conduit.financial/api-reference/features/discover-feature-requirements-for-a-customer.md): Same response shape as `GET /v2/onboarding/requirements`, resolved as a delta against what the customer already has on file. `country` echoes the customer's registered country. Returns 422 `ONBOARDING_NOT_READY` if the customer has no business record yet. - [Submit a feature request](https://v2.docs.conduit.financial/api-reference/features/submit-a-feature-request.md): Call `GET /customers/:customerId/features/requirements` first. Send dynamic data under `fields` (nested objects, NOT dotted keys). Upload each required document via `POST /v2/documents` (file only) and pass returned ids in `documentIds[]`. `asset` is required for VIRTUAL_ACCOUNT. - [Cancel a pending order](https://v2.docs.conduit.financial/api-reference/orders/cancel-a-pending-order.md): Cancels a pending order, releasing any in-flight source reservation. Already-cancelled orders return 200 (idempotent). Orders in terminal states (accepted, failed) return 409. - [Create an order](https://v2.docs.conduit.financial/api-reference/orders/create-an-order.md): Creates an order for a supported source and destination currency pair, including pricing and recipient validation. Returns 202 with the order in its pending state. Creation never checks or reserves the source's available balance — an order can always be created before its source is funded, regardless of `autoExecute`. See `autoExecute` and `lockExpiresAt` on the response for how and when execution can start. - [Execute a pending order](https://v2.docs.conduit.financial/api-reference/orders/execute-a-pending-order.md): Reserves the customer's source funds and starts execution. Makes one immediate attempt only — Conduit does not schedule a retry. Returns 422 INSUFFICIENT_FUNDS if the source balance doesn't cover totalDebit (principal plus fees); the order stays pending and unclaimed, so the client may fund the source and call this endpoint again before lockExpiresAt. On success, returns the order still `status: pending` with `executionTrigger: "client"`; execution completes asynchronously, moving status to `succeeded` (or `failed`) and emitting the matching order.* webhook. Callable regardless of the order's `autoExecute` value — an autoExecute:true order not yet claimed by Conduit's automatic execution can still be executed manually here, whichever call reaches it first wins. - [List orders for the authenticated organization](https://v2.docs.conduit.financial/api-reference/orders/list-orders-for-the-authenticated-organization.md): Returns orders created by the authenticated organization with cursor pagination and optional filters. - [List required recipient fields](https://v2.docs.conduit.financial/api-reference/orders/list-required-recipient-fields.md): Returns recipient fields required for the requested order route before creating an order. - [Retrieve an order by id](https://v2.docs.conduit.financial/api-reference/orders/retrieve-an-order-by-id.md): Returns a single order that belongs to the authenticated organization. - [Cancel a pending payout](https://v2.docs.conduit.financial/api-reference/payouts/cancel-a-pending-payout.md): Cancels a pending payout, releasing the customer's reserved balance back to available. Idempotent: an already-cancelled payout returns 200. Payouts whose on-chain broadcast has already begun, or which have reached any other terminal state, return 409 (`PAYOUT_NOT_CANCELLABLE`). Requires the `idempotency-key` header. - [Create a payout](https://v2.docs.conduit.financial/api-reference/payouts/create-a-payout.md): Creates a payout (crypto withdrawal) from a Conduit-managed wallet to any destination address valid for the chain. Requires the `idempotency-key` header. Returns 202 with the payout in its pending state, including its `id` and initial status. - [Discover payout requirements](https://v2.docs.conduit.financial/api-reference/payouts/discover-payout-requirements.md): Returns the `fields[]` a payout body must carry for a given `(purpose, rail, recipientType)` — the top-level `virtualAccountId` to debit (fiat), the `destination.*` discriminators, and the recipient fields — plus whether a supporting document is required (and the accepted types), whether the recipient must be whitelisted/registered first (intercompany payouts), and the jurisdictions payouts are blocked to. Build a valid `POST /v2/payouts` body from this response. The `documentation` block is the default policy baseline and does not reflect per-customer exceptions or enforce-mode carve-outs (amount-triggered EDD, CRR-band mappings); the customer's actual requirement is enforced by the create request, which rejects with `422 DOCUMENTATION_REQUIRED` (listing the accepted document types) when a document is required and none is attached. (`whitelist` is purpose-invariant and matches enforcement exactly.) - [Retrieve a payout](https://v2.docs.conduit.financial/api-reference/payouts/retrieve-a-payout.md): Returns the current state of a payout by id, scoped to the caller's organization. 404 if no payout with that id exists for the org. - [Get a registered address by id](https://v2.docs.conduit.financial/api-reference/registered-addresses/get-a-registered-address-by-id.md): Returns a registered wallet address by id when it belongs to the authenticated organization. - [List registered addresses for a customer](https://v2.docs.conduit.financial/api-reference/registered-addresses/list-registered-addresses-for-a-customer.md): Returns the registered wallet addresses for a customer, scoped to the authenticated organization. - [Register a wallet address for a customer](https://v2.docs.conduit.financial/api-reference/registered-addresses/register-a-wallet-address-for-a-customer.md): Registers a wallet address for the customer after sanctions screening and feature eligibility checks. Returns 201 when the address is registered immediately (synchronous clear) and 202 when the screening is still in progress; the address becomes registered once the screening clears. - [Revoke (soft-delete) a registered address](https://v2.docs.conduit.financial/api-reference/registered-addresses/revoke-soft-delete-a-registered-address.md): Revokes a registered wallet address for the authenticated organization without deleting its audit history. - [Acknowledge an RFI](https://v2.docs.conduit.financial/api-reference/rfis/acknowledge-an-rfi.md): Stamps the RFI as viewed. Idempotent: a later call is a silent no-op. - [Get an RFI by ID](https://v2.docs.conduit.financial/api-reference/rfis/get-an-rfi-by-id.md): Returns a single RFI owned by the caller's organization. A foreign organization's id, or a draft RFI, both 404. - [List RFIs](https://v2.docs.conduit.financial/api-reference/rfis/list-rfis.md): Returns a paginated list of the caller's RFIs. Draft RFIs are never visible on this surface. Filter by status, subjectType, or subjectId. - [Respond to an RFI](https://v2.docs.conduit.financial/api-reference/rfis/respond-to-an-rfi.md): Submits a response to the RFI's currently open round. `submittedBy.email` is required on this surface (an API key has no user identity). Replaying the same `Idempotency-Key` returns the original response regardless of payload; a different key against an already-answered round 409s. - [Arm the next mock chain broadcast to fail for a sandbox payout](https://v2.docs.conduit.financial/api-reference/sandbox/arm-the-next-mock-chain-broadcast-to-fail-for-a-sandbox-payout.md): Sandbox-only. Arms the mock crypto outbound provider so that the next broadcast for this payout throws a pre-broadcast error. The payout transitions to terminal failed via the standard pre-broadcast compensation path. 404 if the payout is not a crypto WITHDRAWAL or does not belong to the org. Returns the payout at its current state. - [Force a sandbox order's rate lock to expire immediately](https://v2.docs.conduit.financial/api-reference/sandbox/force-a-sandbox-orders-rate-lock-to-expire-immediately.md): Backdates the order's rate-lock timestamp far enough in the past that the next sweep tick treats it as expired and drives the order to `order.cancelled (expired)`, then enqueues an immediate sweep tick so the cancellation lands within a second instead of waiting for the next scheduled sweep (30s). Use to test rate-lock-expiry handling without waiting for the live lock window. Returns the order at its current state. - [Force a transaction to a terminal state (sandbox only)](https://v2.docs.conduit.financial/api-reference/sandbox/force-a-transaction-to-a-terminal-state-sandbox-only.md): Requests a sandbox terminal transition for the transaction. `outcome` is `completed` or `failed`; the transaction type decides whether its current phase can accept that terminal outcome. For fiat withdrawals, `outcome: "failed"` can run as soon as `POST /v2/payouts` accepts the payout, including pending and reserve-in-flight windows; `outcome: "completed"` belongs to the settlement-ready path. The transaction publishes the matching public event (`transaction.completed` / `transaction.failed` for withdrawals and deposits; `order.succeeded` / `order.failed` for ONRAMP / OFFRAMP) with the same shape it would in production, and the matching terminal status is recorded atomically. `utr` (only meaningful on `completed`) is the synthetic settlement reference; defaults to `sandbox-utr-` when omitted. `reason` defaults to a generic sandbox-driven sentinel. On `failed`, reserved funds are released and any booked transfers are reversed. Supported types today: `WITHDRAWAL`, `ONRAMP`, `OFFRAMP`, `DEPOSIT`. Calls against `INTERNAL_TRANSFER` return 422 `SANDBOX_TRANSACTION_TYPE_NOT_SIMULATABLE`. Replays (caller asks `outcome: "completed"` against a transaction already settled `failed`, or vice versa) return the Transaction at its actual terminal state, with `status` reflecting reality, not the verb the caller used. A 200 response always carries the transaction at a terminal `status` (`completed` / `failed`); the endpoint waits for the terminal state to be recorded before responding. In the rare case it has not been recorded within the wait budget, it returns 503 `SERVICE_UNAVAILABLE` rather than a still-processing body, so retry the read (`GET /v2/transactions/{id}`) or the call. - [Provide sender information for a parked sandbox deposit](https://v2.docs.conduit.financial/api-reference/sandbox/provide-sender-information-for-a-parked-sandbox-deposit.md): Pushes the supplied sender information into a sandbox deposit that is currently parked at the sender-information gate. Cancels the pending automatic timer and advances the deposit. The originator identity is compliance-screened when it arrives — a deposit that cleared the source-address screen on arrival can still be held on the enriched identity (use a reserved originator name to drive that outcome; see the sandbox deposits guide). Returns the deposit resource once the sender information is accepted. - [Record a sandbox cosign stamp by walletSignerId on a non-custodial payout](https://v2.docs.conduit.financial/api-reference/sandbox/record-a-sandbox-cosign-stamp-by-walletsignerid-on-a-non-custodial-payout.md): Sandbox-only endpoint that records one signer's stamp against a non-custodial payout's signing quorum, identified by `walletSignerId`. Repeated calls walk the quorum one signer at a time; the compliance auto-stamp lands once the customer threshold is met. A single `declined` outcome terminalizes the quorum as declined. While the signing request is still pending, re-stamping by the same signer is idempotent; once the quorum has resolved the same call returns 404 instead. Read incremental quorum progress via `GET /v2/verifications/{token}`. 404 if the payout is not awaiting a signature; 404 if the signer is not on the wallet's roster. Returns the payout at its current state. - [Reset a sandbox customer's wallet claim](https://v2.docs.conduit.financial/api-reference/sandbox/reset-a-sandbox-customers-wallet-claim.md): Sandbox-only. Removes the customer's wallet setup (every signer, every wallet, the crypto-wallet feature flag, and, for a custodial account, its server-side signing credentials) so a subsequent claim-non-custodial starts fresh. Works for both non-custodial and custodial accounts; resetting a custodial account is how a customer moves from custodial to non-custodial. Single-shot: a second call after a successful reset returns 404 PROVIDER_ACCOUNT_NOT_FOUND. Refuses with 409 CLAIM_RESET_BLOCKED if open transactions, deposits, or pending signature approvals still reference the customer; terminalize them first via simulate/terminal. - [Resolve a funding transfer held for compliance review (sandbox only)](https://v2.docs.conduit.financial/api-reference/sandbox/resolve-a-funding-transfer-held-for-compliance-review-sandbox-only.md): Resolves the transfer into this order's funding address that is currently held for compliance review. The transfer is itself a readable `deposit` transaction on `GET /v2/transactions`, but this lever takes the order id, the same handle as the funding lever — the decision applies to the transfer the order is waiting on. `outcome: "approve"` clears the hold and the transfer goes on to fund the order; it is available only while the review is still pending, and returns 409 once the review has already rejected the transfer, matching production. `outcome: "reject"` holds the funds permanently — they neither fund the order nor go back — and the order goes unfunded and expires at its deadline. Returns 202: the resolution is applied asynchronously, and the body is the order as of the call, so poll `GET /v2/orders/{orderId}` for the outcome. Repeating the call while the review is still open is safe; once it has resolved, a repeat is a 409. - [Resolve a registered address parked in screening review (sandbox only)](https://v2.docs.conduit.financial/api-reference/sandbox/resolve-a-registered-address-parked-in-screening-review-sandbox-only.md): Resolves a registered address parked in pending screening (the 202 outcome of the register call), the customer-facing equivalent of the asynchronous screening resolution. `outcome: "approve"` registers the address and releases deposits from it that were waiting on registration; `outcome: "reject"` suspends it as sanctions-blocked — not reversible, and re-registration of the same address stays barred. The resolution is synchronous: the response carries the address at its final status. Replays: repeating the SAME decision after resolution returns 200 with the resource; a CONFLICTING decision returns 409 — a resolved verdict never flip-flops. In sandbox, park an address by registering one whose address starts with the review magic value `0x999`. - [Resolve a transaction parked for compliance review (sandbox only)](https://v2.docs.conduit.financial/api-reference/sandbox/resolve-a-transaction-parked-for-compliance-review-sandbox-only.md): Resolves a transaction parked at the compliance review gate, the customer-facing equivalent of the operator compliance-decision action. `outcome: "approve"` clears the hold and the transaction resumes (a deposit credits, a withdrawal proceeds) — but only while the case is merely pending review, or at the memo-review park; if AML has already rejected the case, `approve` returns 409 instead (a rejected verdict can only be terminalized, matching production — `reject` remains the exit for that park). `outcome: "reject"` terminalizes the transaction using the transaction type's default compliance terminal — a deposit freezes, a withdrawal is rejected. Returns 202: the resolution is applied asynchronously; the response body is the transaction as-of the call, so poll the same id (`GET /v2/transactions/{id}`) to observe the terminal transition. While the transaction is still parked (PENDING), repeating the call is safe — the resolution is deduplicated. A compliance decision is a one-time action: once the transaction has resolved to a terminal state, a repeat returns 409 (already resolved) rather than re-applying, so a retried/duplicate call after resolution is a 409, not a 202 — poll `GET /v2/transactions/{id}` for the final state. Only DEPOSIT and WITHDRAWAL transactions can be resolved this way; other types return 400. - [Simulate a crypto deposit to a sandbox wallet](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-a-crypto-deposit-to-a-sandbox-wallet.md): Accepts a synthetic crypto deposit event for an ACTIVE sandbox wallet. The event is processed exactly like a real provider deposit notification — asynchronously — so the response is an acknowledgement carrying the `(chain, txHash)` the deposit is detected under, not the deposit itself. Observe the deposit via the `transaction.created` webhook or `GET /v2/transactions?txHash=…`. Re-using a `(chain, txHash)` re-acknowledges the existing deposit rather than creating a second one. Sandbox supplies default sender information so happy-path deposits clear the deposit compliance gate automatically; the default is suppressed when the documented sender-information drivers fire (sourceAddress ending in DE5E11F1 or amount at/above the Travel Rule threshold) so the gate parks instead of clearing. Pass an explicit `originator` object to override the default and clear the gate. - [Simulate a crypto transfer into a sandbox order's funding address](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-a-crypto-transfer-into-a-sandbox-orders-funding-address.md): Sends a synthetic crypto transfer to the funding address of an order created with no `source` — the address the order publishes in `depositInstructions`. Funding addresses are Conduit-managed and carry no client-visible id, so the order id is the only handle for funding one. It addresses the order's funding address, not the order itself: the customer's other open orders on that asset and chain publish the same address, and the funds go to the oldest order they can cover, exactly as a real send would. **Whether the sending address is registered is the only gate, and it is enforced here exactly as in production.** Pass a `sourceAddress` the customer has already registered (`POST /v2/customers/{customerId}/wallets/registered-addresses`) and the funds fund the order; pass one that is not registered and they are sent straight back, with no movement on the order. Omitting `sourceAddress` gives you a sender that was never registered, so it takes that same return. `sourceAddress: null` and `originator` are both rejected: a transfer with no sender cannot be sent back, and sender identity does not open this gate. Send less than the order's total debit to under-fund it, more to leave a remainder that goes back to the sender. Accepts the order in **any** status, including expired and cancelled: funding an address after its order has expired is exactly how an unclaimed transfer arises in production. The response is the order as of the call. Watch it with `GET /v2/orders/{orderId}`, `GET /v2/transactions` and the `transaction.*` webhooks. - [Simulate a customer admin's stamp on a parked ceremony approval](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-a-customer-admins-stamp-on-a-parked-ceremony-approval.md): Sandbox-only. Records a synthetic approved (default) or declined stamp against the parked CEREMONY_APPROVAL verification identified by `:token`, advancing any parked ceremony approval without the real WebAuthn flow. The stamping signer is auto-selected: the first ACTIVE admin on the ceremony's account. Replays: a repeat call on a terminal token returns the verification at its current state — never 409 — matching the sibling `simulate/cosign` convention. - [Simulate a fiat deposit to a sandbox virtual account](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-a-fiat-deposit-to-a-sandbox-virtual-account.md): Accepts a synthetic fiat deposit event for an ACTIVE sandbox virtual account. The event is processed exactly like a real provider deposit notification — asynchronously — so the response is an acknowledgement carrying the `externalReference` the deposit is detected under, not the deposit itself. Observe the deposit via the `transaction.created` webhook or `GET /v2/transactions?externalReference=…`. Re-using an `externalReference` re-acknowledges the existing deposit rather than creating a second one. - [Simulate a Travel Rule counterparty webhook for a sandbox payout](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-a-travel-rule-counterparty-webhook-for-a-sandbox-payout.md): Enqueues a synthetic Travel Rule counterparty status-change event for the payout's travel-rule transfer, exercising the same processing as a production counterparty webhook. 404 if no travel-rule transfer has been recorded for the payout yet. Returns the payout at its current state. - [Simulate an overall conversion failure for a sandbox order](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-an-overall-conversion-failure-for-a-sandbox-order.md): Forces the order's conversion to a failed terminal state. Safe to call at any point after order creation while the order is still pending: if the conversion is already running, it is driven to failed immediately; otherwise the failure is armed and applied as soon as the conversion starts. The order is driven to failed and a failure event is published. The optional `reason` body field is propagated to the public `order.failed.failureMessage` so QA / integrators can correlate the simulator call with the resulting webhook. Returns 404 if the order is not found in the org. Replay (caller asks for `conversion-failed` against an already-terminal order) returns 200 with the order at its current state. Returns the order at its current state. - [Simulate compliance approval of a pending whitelist registration](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-compliance-approval-of-a-pending-whitelist-registration.md): Sandbox-only. Moves PENDING_REVIEW directly to REGISTERED and fires whitelist_recipient.registered. - [Simulate compliance rejection of a pending whitelist registration](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-compliance-rejection-of-a-pending-whitelist-registration.md): Sandbox-only. Moves PENDING_REVIEW to REJECTED and fires whitelist_recipient.rejected. - [Simulate document-review approval for a sandbox payout](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-document-review-approval-for-a-sandbox-payout.md): Approves the supporting-document review of a payout parked at the document-review step, bypassing the real analyst queue. The payout resumes execution. Replaying the same approval is idempotent. 404 if the payout is not a WITHDRAWAL, does not belong to the org, or has no matching document review. Returns the payout at its current state. - [Simulate document-review rejection for a sandbox payout](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-document-review-rejection-for-a-sandbox-payout.md): Rejects the supporting-document review of a payout parked at the document-review step, bypassing the real analyst queue. The payout terminates as rejected and reserved funds are returned. 404 if the payout is not a WITHDRAWAL, does not belong to the org, or is not awaiting document review. Returns the payout at its current state. - [Simulate fiat-rail settlement for a sandbox payout](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-fiat-rail-settlement-for-a-sandbox-payout.md): Drives a sandbox fiat payout to a terminal settlement outcome (`completed` or `failed`), bypassing real provider-status polling. `completed` requires a non-empty `utr` when supplied so `transaction.completed` carries a usable settlement reference. 404 if the payout is not a fiat WITHDRAWAL or does not belong to the org. Returns 422 `SANDBOX_TRANSACTION_NOT_FORCE_TERMINAL_READY` when the payout is parked at the document-review gate — call `POST /v2/sandbox/payouts/{id}/simulate-review-approve` first. Sandbox builds do not accept ambiguous outcomes because sandbox transactions never park at the operator-resolved review queue. - [Simulate on-chain confirmation for a sandbox payout](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-on-chain-confirmation-for-a-sandbox-payout.md): Drives a sandbox payout to a terminal chain outcome (`completed` or `failed`), bypassing real on-chain monitoring. `completed` requires a non-empty `txHash` so `transaction.completed` carries a usable `utr`. 404 if the payout is not a WITHDRAWAL or does not belong to the org. Returns 422 `SANDBOX_TRANSACTION_NOT_FORCE_TERMINAL_READY` when the payout is parked at the document-review gate — call `POST /v2/sandbox/payouts/{id}/simulate-review-approve` first. Returns the payout at its current state. - [Simulate one signer's cosignature for a non-custodial conversion / OFFRAMP source leg](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-one-signers-cosignature-for-a-non-custodial-conversion-offramp-source-leg.md): Sandbox-only endpoint that stamps a single signer's vote against the source leg's M-of-N signing quorum for a conversion (SWAP / BRIDGE) or OFFRAMP order funded from a non-custodial customer wallet, bypassing the real passkey-approval flow. Each call advances the quorum by one vote: pass `signerId` to target a specific ACTIVE wallet signer, or omit it to auto-advance to the next signer with no recorded vote (so repeated calls walk `1 of N → 2 of N → completed`). The transfer waits for the M-th approval; intermediate approvals leave the request awaiting signatures. A single `declined` stamp declines the whole quorum. Read incremental progress via `GET /v2/verifications/{token}` (the quorum block). Once the quorum approves, the transfer confirms automatically in sandbox shortly after — poll `GET /v2/orders/{id}` until it reaches `succeeded`. 404 `ORDER_NOT_FOUND` if the order does not belong to the org or has no source-leg conversion transaction. 404 `NOT_IN_AWAITING_SIGNATURE` if the source leg is not yet awaiting signatures (poll until it clears) or the order never required signatures — distinct from stamping after the quorum has already approved, which returns 200 with the order at its current state. 404 `SIGNER_NOT_FOUND` if an explicit `signerId` is not on the wallet's active roster. Returns the order at its current state. - [Simulate one signer's cosignature for a non-custodial sandbox payout](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-one-signers-cosignature-for-a-non-custodial-sandbox-payout.md): Sandbox-only endpoint that stamps a single signer's vote against a non-custodial payout's M-of-N signing quorum, bypassing the real passkey-approval flow. Each call advances the quorum by one vote: pass `signerId` to target a specific ACTIVE wallet signer, or omit it to auto-advance to the next signer with no recorded vote (so repeated calls walk `1 of N → 2 of N → completed`). The verification completes ONLY when the M-th approval lands; intermediate approvals leave it PENDING. A single `declined` stamp terminalizes the whole quorum as declined. Read incremental progress via `GET /v2/verifications/{token}` (the quorum block). 404 if the payout does not belong to the org or is not a WITHDRAWAL. Replays (the cosign gate already cleared, or the payout never required cosign) return the payout at its current state. Returns the payout at its current state. - [Simulate signer enrollment for a sandbox wallet signer](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-signer-enrollment-for-a-sandbox-wallet-signer.md): Sandbox-only endpoint that drives a signer from `pendingActivation` to `active` without going through the real passkey or OIDC verification flow. Fires `wallet_signer.enrolled` and, once every roster member is active, the provider account auto-activates and `crypto_wallet.completed` fires for each wallet. Idempotent: an already-active signer is returned unchanged. 404 if the signer is not on the caller's org. - [Simulate the compliance verdict on a sandbox application](https://v2.docs.conduit.financial/api-reference/sandbox/simulate-the-compliance-verdict-on-a-sandbox-application.md): Drives an in-flight sandbox application to a deterministic compliance verdict. `outcome: "approved"` flips the application to APPROVED, activates the resource it produces (customer, organization, virtual account, wallet), and fires the matching `*.approved` event. `outcome: "rejected"` flips the application to REJECTED (the application response carries `failureCode: "REJECTED_BY_OPS"` and `failureMessage`) and fires the matching `*.rejected` event. On `rejected`, the optional body shapes the rejection: free-text `{ reason }` surfaces verbatim as the application's `failureMessage`, or structured `{ category, field? }` selects a canonical user-facing summary that appears on `failureMessage`. Categories: `DOCUMENT_MISMATCH` (optional `field`: `TAX_ID`, `DATE_OF_INCORPORATION`, `BUSINESS_NAME`, `BUSINESS_ENTITY_ID`); `DATA_SOURCING_MISMATCH` (optional `field`: `BUSINESS_ENTITY_ID`, `UBO_FIRST_NAME`, `UBO_LAST_NAME`, `UBO_PHONE`, `UBO_EMAIL`, `OWNERSHIP_LIST`); `COMPLIANCE`; `GENERIC` (accepts an optional free-text `reason`). `category` is only applicable to KYB-pipeline applications; other application types yield 422 `REJECTION_CATEGORY_NOT_APPLICABLE`. The response is the application resource at its new state. Caller's API key must own the application. - [Clear a wallet's signing quorum override](https://v2.docs.conduit.financial/api-reference/signing-quorum/clear-a-wallets-signing-quorum-override.md): Removes the per-wallet threshold override so the wallet inherits the customer default again. Applies immediately when no approval is required, otherwise returns a verification URL for signers to approve. - [Get a customer's signing quorum configuration](https://v2.docs.conduit.financial/api-reference/signing-quorum/get-a-customers-signing-quorum-configuration.md): Returns the customer-level approval threshold, any pending change, the number of eligible signers, and per-wallet overrides. - [Override a wallet's signing quorum threshold](https://v2.docs.conduit.financial/api-reference/signing-quorum/override-a-wallets-signing-quorum-threshold.md): Requests a per-wallet approval threshold that overrides the customer default. Applies immediately when no approval is required, otherwise returns a verification URL for signers to approve. - [Set a customer's signing quorum threshold](https://v2.docs.conduit.financial/api-reference/signing-quorum/set-a-customers-signing-quorum-threshold.md): Requests a change to the customer-level approval threshold. Applies immediately when no approval is required, otherwise returns a verification URL for signers to approve. - [Approve a signing request with a machine stamp](https://v2.docs.conduit.financial/api-reference/signing-requests/approve-a-signing-request-with-a-machine-stamp.md): Submits a machine (api-key) P-256 stamp approving the payout. Conduit verifies the signature locally, resolves it to an active machine signer, checks it authorizes this exact request, and relays it to the signing provider. Idempotent: whether the request is still collecting signatures or already resolved, a (re)submission returns the request's current state — safe to retry after a timeout. Send an `Idempotency-Key` header (required on this money-moving route). - [Get a signing request](https://v2.docs.conduit.financial/api-reference/signing-requests/get-a-signing-request.md): Returns a single signing request and its current state, addressed by the id delivered on the `transaction.awaiting_signature` webhook. Never cached. - [List signing requests awaiting a machine signature](https://v2.docs.conduit.financial/api-reference/signing-requests/list-signing-requests-awaiting-a-machine-signature.md): Returns the payouts whose customer signing quorum your backend must approve: programmatic-mode accounts with a pending approval whose quorum is still being collected. Each carries the versioned approval material to stamp. Never cached. - [Reject a signing request with a machine stamp](https://v2.docs.conduit.financial/api-reference/signing-requests/reject-a-signing-request-with-a-machine-stamp.md): Submits a machine (api-key) P-256 stamp rejecting the payout. Verified and relayed like an approval. A rejection follows the signing provider's consensus semantics. Idempotent: a (re)submission against an already-resolved request returns its current state. Send an `Idempotency-Key` header (required on this money-moving route). - [Get a transaction by ID](https://v2.docs.conduit.financial/api-reference/transactions/get-a-transaction-by-id.md): Returns a single transaction owned by the caller's organization. Response shape matches one row of the list endpoint's `data[]`, discriminated by `type`. - [List transactions](https://v2.docs.conduit.financial/api-reference/transactions/list-transactions.md): Returns a paginated list of the caller's transactions. Filter by type, status, customer, asset, chain, transaction hash, external payment reference, linked order, or creation timestamp. Sorted by `createdAt desc` by default; use `sortBy` and `sortOrder` to override. - [Submit sender (originator) information for a deposit parked on UNREGISTERED_ADDRESS](https://v2.docs.conduit.financial/api-reference/transactions/submit-sender-originator-information-for-a-deposit-parked-on-unregistered_address.md): Two paths: register=false records sender data for this deposit only; register=true also creates a durable RegisteredAddress (created on compliance approval at end-of-flow) that resolves any future deposits from the same address. First-snapshot wins — once recorded, a second submission returns 409. Returns 202 with the transaction in its post-signal state; poll GET /v2/transactions/:id for downstream updates. - [Initiate a customer verification](https://v2.docs.conduit.financial/api-reference/verifications/initiate-a-customer-verification.md): Starts a verification process for a customer. Returns a verification URL where the customer completes the required verification step (e.g. identity check). Use the clientReferenceId to correlate this verification with your internal records. For a non-custodial payout's signing-link verification, this endpoint does not mint a new link — the signing link is created and delivered on the `transaction.awaiting_signature` webhook (set clientReferenceId to the payout id). When the referenced payout is already awaiting signature, the call returns that current live link (idempotent, so it doubles as a way to re-fetch a link you missed on the webhook); when the payout has not yet reached signature collection, it returns `409 TRANSACTION_NOT_AWAITING_SIGNATURE`. A human link is returned whenever a human passkey signer can approve the payout — that is, for a passkey_required wallet, and for a programmatic wallet whose roster has an active passkey signer. A programmatic wallet with a machine-only roster has no human signer, so this returns `409 SIGNING_LINK_NOT_HUMAN_SIGNABLE`; read the `signingRequestId` from the webhook and approve via `/v2/signing-requests/{id}` instead. See the Non-Custodial Payout Lifecycle guide, section "Getting the signing link". - [Get a virtual account](https://v2.docs.conduit.financial/api-reference/virtual-accounts/get-a-virtual-account.md): Retrieves one customer virtual account with client-safe deposit instructions. Requires the virtual account feature to be active. - [List customer virtual accounts](https://v2.docs.conduit.financial/api-reference/virtual-accounts/list-customer-virtual-accounts.md): Returns a paginated list of virtual accounts for the customer with client-safe deposit instructions. Requires the virtual account feature to be active. - [Add a signer to a customer's wallets](https://v2.docs.conduit.financial/api-reference/wallet-signers/add-a-signer-to-a-customers-wallets.md): Adds a new signer to the customer's wallet infrastructure. An add to a live (already-active) roster typically needs one admin approval — see [Multi-signer wallets](/concepts/multi-signer-wallets). The synchronous response returns a `verificationUrl` whose audience is given by `urlAudience`: a passkey signer gets their own enrollment link (`urlAudience: "signer"`, also delivered via the `wallet_signer.invited` webhook) — deliver it to the signer. For a passkey signer added to a live roster this `"signer"` link is the FIRST of two steps, not full self-service: once the signer enrolls their passkey the add parks a roster-add ceremony for a customer admin's co-stamp, and that admin link arrives ONLY on the `wallet_ceremony.awaiting_admin_approval` webhook (carrying the ceremony's `ceremonyId`), never in this response. An api_key signer that parks for admin approval instead returns the admin co-stamp link inline (`urlAudience: "admin"`, also delivered via the `wallet_ceremony.awaiting_admin_approval` webhook) — deliver it to an admin; a synchronously-admitted api_key signer returns null/null. If the admin webhook is lost, recover the admin link with `POST /wallet-signers/{signerId}/reissue-admin-approval`. When an api_key add parks on a roster that carries an ACTIVE api_key admin, the response ADDS `machineApproval` (a token + `approvalMaterial`) alongside that admin link and webhook: stamp the material with an ACTIVE api_key admin key and POST `{ method: "api_key", credential }` to `/v2/verifications/{token}/complete` (credential is a JSON string of `{ signedBody, stamp, organizationId }`) to activate the signer without opening the link — the same stamp-and-approve step every machine governance ceremony uses. Conduit never emails anyone — your platform delivers the link. Route by `urlAudience`, never assume the URL is the signer's. The same signing-mode roster rules as the claim apply to later adds: api_key signers are only valid under a programmatic signing mode, and api_key admins only under programmatic unattended — otherwise `422 SIGNING_MODE_ROSTER_INVALID`. An api_key signer must include `publicKey` (compressed P-256: 33 bytes / 66 hex chars, `02`/`03` prefix); a key already on an active signer returns `409 API_KEY_PUBLIC_KEY_IN_USE`. See [Programmatic payout signing](/guides/machine-signer-stamping). - [Demote an admin signer to signer](https://v2.docs.conduit.financial/api-reference/wallet-signers/demote-an-admin-signer-to-signer.md): Demotes an admin to the signer role via a two-step ceremony: strip from the root quorum and remove the business_admin tag. Returns the ceremony id; completion is tracked via the wallet_signer.demoted webhook. - [List signers for a customer's wallets](https://v2.docs.conduit.financial/api-reference/wallet-signers/list-signers-for-a-customers-wallets.md): Returns a paginated list of all current signers for the customer's wallets (excludes removed and errored signers). - [Promote a signer to admin (root seat swap)](https://v2.docs.conduit.financial/api-reference/wallet-signers/promote-a-signer-to-admin-root-seat-swap.md): Promotes the signer into the root quorum via a ceremony. Under the fixed-seats model the root quorum holds a fixed number of customer admin seats, so when it is at capacity the request must name the current root admin to unseat (`demoteSignerId`): the swap seats the new admin and unseats the named one in one UPDATE_ROOT_QUORUM, keeping root size and threshold constant. Returns the ceremony id; completion is tracked via the wallet_signer.promoted / wallet_signer.demoted webhooks. - [Recover a signer's pending admin-approval link](https://v2.docs.conduit.financial/api-reference/wallet-signers/recover-a-signers-pending-admin-approval-link.md): Re-fetches the live admin co-stamp link for a signer parked pending an admin approval, and re-emits the matching awaiting-approval webhook — recovery for a client that lost that webhook. Deliver the returned `adminVerificationUrl` to a customer admin (never the signer). Covers both parked add shapes: a new signer joining the roster with their first credential (re-emits `wallet_ceremony.awaiting_admin_approval` carrying the `ceremonyId`) and an extra passkey for a signer who is already enrolled, such as a second device (re-emits the signer-scoped `wallet_signer.awaiting_admin_approval` keyed on `signerId`, with `ceremonyId: null`). The link is unchanged on repeat calls (no rotation). 409 `SIGNER_NO_PENDING_ADMIN_APPROVAL` when the signer is not awaiting an admin co-stamp; 404 if the signer is not on this customer. - [Reissue a wallet signer's enrollment invite](https://v2.docs.conduit.financial/api-reference/wallet-signers/reissue-a-wallet-signers-enrollment-invite.md): Returns a working verification link + expiry for a signer still completing enrollment — recovery for a lost `wallet_signer.invited` delivery. Idempotent: a live pending invite is returned unchanged; otherwise a fresh link is minted (carrying the signer's email so the verify portal is not blocked) and a `wallet_signer.invited` webhook fires. Returns the signer's own enrollment link (`urlAudience: "signer"`). 409 `SIGNER_PENDING_ADMIN_APPROVAL` when the signer has already enrolled a passkey on a live roster and is parked for an admin co-stamp — the blocker is an admin approval, so use `reissue-admin-approval` to recover the admin link instead. 409 `SIGNER_NOT_ENROLLABLE` if the signer is already active / being removed / errored; 404 if the signer is not on this customer. - [Remove a signer from a customer's wallets](https://v2.docs.conduit.financial/api-reference/wallet-signers/remove-a-signer-from-a-customers-wallets.md): Removes a signer from the customer's wallet infrastructure. Returns `204 No Content`. Removal runs through a governance ceremony; the outcome is disclosed additively in the response headers: `X-Conduit-Ceremony-Status` reports whether the removal is still awaiting admin approval or already complete, and `X-Conduit-Ceremony-Id` carries the roster-remove ceremony id (omitted only when the signer was already terminally removed). Completion is reported via the wallet_signer.removed webhook. Retrying the same removal is idempotent. - [Claim non-custodial control for a customer](https://v2.docs.conduit.financial/api-reference/wallets/claim-non-custodial-control-for-a-customer.md): Initiates a multi-signer non-custodial provisioning flow. Returns 202 with a claimId; per-signer verification URLs are delivered via wallet_signer.invited webhooks. Valid roster shapes depend on the customer's signing mode, which Conduit sets per organization (with an optional per-customer override) — confirm the customer's configured mode before building the roster: **passkey required** — any api_key member returns `422 SIGNING_MODE_ROSTER_INVALID`; **programmatic** — api_key members must have `role: "signer"` (an api_key admin returns `422 SIGNING_MODE_ROSTER_INVALID`); **programmatic unattended** — api_key admins are allowed. In both programmatic modes the api_key signers alone must reach `signingThreshold`, else `422 PROGRAMMATIC_QUORUM_UNREACHABLE`. Each api_key member carries a `publicKey` (compressed P-256: 33 bytes / 66 hex chars, `02`/`03` prefix) and is seated active at claim — an all-machine roster activates the wallets without an enrollment phase; mixed rosters wait on every passkey enrollment. See [Programmatic payout signing](/guides/machine-signer-stamping) and [Add a crypto wallet](/guides/add-crypto-wallet). - [Create a wallet](https://v2.docs.conduit.financial/api-reference/wallets/create-a-wallet.md): Creates a new blockchain wallet for the customer on the specified chain. By default the customer must first claim non-custodial control via POST /v2/customers/{id}/wallets/claim-non-custodial; for organizations enabled for custodial wallets, the account is provisioned on the first call to this endpoint with no claim required. An idempotency-key header is required. For post-activation non-custodial accounts, returns 202 with a ceremonyId and verificationUrl when admin approval is required. - [Get a non-custodial claim by ID](https://v2.docs.conduit.financial/api-reference/wallets/get-a-non-custodial-claim-by-id.md): Retrieves a non-custodial claim's status (provisioning / completed / failed), the requested chains, the activated wallet IDs once complete, any failure reason, and per-signer enrollment status so a stalled claim is diagnosable. - [Get a wallet by ID](https://v2.docs.conduit.financial/api-reference/wallets/get-a-wallet-by-id.md): Retrieves the full details of a wallet including its chain, address, and current status. - [List customer wallets](https://v2.docs.conduit.financial/api-reference/wallets/list-customer-wallets.md): Returns a paginated list of wallets belonging to the customer. Requires the crypto wallets feature to be active. - [List non-custodial claims](https://v2.docs.conduit.financial/api-reference/wallets/list-non-custodial-claims.md): Returns a paginated list of the customer's non-custodial claims (newest first) so you can poll provisioning/activation status. Also delivered as claim.completed / claim.failed webhooks. - [Rotate a wallet](https://v2.docs.conduit.financial/api-reference/wallets/rotate-a-wallet.md): Triggers a key rotation for the wallet. The wallet address may change after rotation. Use this when a wallet's signing key needs to be replaced. - [Get a delivery by ID](https://v2.docs.conduit.financial/api-reference/webhook-deliveries/get-a-delivery-by-id.md): Retrieves full delivery details including all individual delivery attempts with their status codes, response bodies, and timing. - [List webhook deliveries](https://v2.docs.conduit.financial/api-reference/webhook-deliveries/list-webhook-deliveries.md): Returns a paginated list of delivery attempts for the authenticated organization. Optionally filter by `endpointId`, by delivery `status` (`pending`, `processing`, `succeeded`, `failed`), or by `eventType` (exact match, e.g. `transaction.failed`). An unknown `status` value returns 400; an unknown `eventType` returns an empty page. - [Retry a failed delivery](https://v2.docs.conduit.financial/api-reference/webhook-deliveries/retry-a-failed-delivery.md): Queues an immediate retry for a failed delivery. The delivery status resets and a new attempt is made regardless of the retry count. - [Create a webhook endpoint](https://v2.docs.conduit.financial/api-reference/webhook-endpoints/create-a-webhook-endpoint.md): Creates a new webhook endpoint. The response includes a signing secret that is only shown once. Store it securely to verify webhook signatures on your server. - [Delete a webhook endpoint](https://v2.docs.conduit.financial/api-reference/webhook-endpoints/delete-a-webhook-endpoint.md): Deletes a webhook endpoint. Pending deliveries will still be attempted, but no new deliveries will be created. - [Get a webhook endpoint by ID](https://v2.docs.conduit.financial/api-reference/webhook-endpoints/get-a-webhook-endpoint-by-id.md): Retrieves the full configuration of a webhook endpoint. - [List webhook endpoints](https://v2.docs.conduit.financial/api-reference/webhook-endpoints/list-webhook-endpoints.md): Returns a paginated list of webhook endpoints configured for the authenticated organization. - [Rotate a webhook endpoint's signing secret](https://v2.docs.conduit.financial/api-reference/webhook-endpoints/rotate-a-webhook-endpoints-signing-secret.md): Generates a new signing secret and returns it once — store it securely. The previous secret stays valid for a grace window (deliveries are co-signed with both secrets, each as its own `v1=` segment in `X-Conduit-Signature`) so you can roll over your verification code without dropping events. After the grace window only the new secret signs. Requires an `Idempotency-Key`: a retried request with the same key replays the original response instead of rotating again, so a lost response can't silently discard the secret you just deployed. - [Update a webhook endpoint](https://v2.docs.conduit.financial/api-reference/webhook-endpoints/update-a-webhook-endpoint.md): Updates the configuration of an existing webhook endpoint. Only provided fields are changed. - [List available webhook event types](https://v2.docs.conduit.financial/api-reference/webhook-event-types/list-available-webhook-event-types.md): Returns all event types that can be subscribed to when creating a webhook endpoint, plus the signature metadata every delivery is signed with. - [Get a whitelist recipient by id](https://v2.docs.conduit.financial/api-reference/whitelist-recipients/get-a-whitelist-recipient-by-id.md): Returns an intercompany whitelist recipient scoped to the authenticated organization and customer. - [List whitelist recipients for a customer](https://v2.docs.conduit.financial/api-reference/whitelist-recipients/list-whitelist-recipients-for-a-customer.md): Returns the intercompany whitelist recipients for a customer, scoped to the authenticated organization. - [Register an intercompany recipient for whitelisting](https://v2.docs.conduit.financial/api-reference/whitelist-recipients/register-an-intercompany-recipient-for-whitelisting.md): Registers a bank recipient as an intercompany counterparty for this customer. The entry starts in pending_review; compliance review outcomes are signalled via whitelist_recipient.* webhooks. Only registered entries satisfy purpose=intercompany payouts. Identical resubmissions return the existing entry. Resubmitting with the same bank details but different attributes (name, relationship, documents) returns 409 WHITELIST_RECIPIENT_CONFLICT. - [Revoke a whitelist recipient](https://v2.docs.conduit.financial/api-reference/whitelist-recipients/revoke-a-whitelist-recipient.md): Client-initiated, terminal. Audit history is retained. ## KYB Reference - [KYB Reference](https://v2.docs.conduit.financial/kyb/overview.md): Country-by-country guidance for collecting business documentation when onboarding customers through the Conduit API. - [What You're Verifying](https://v2.docs.conduit.financial/kyb/document-types.md): The evidence areas Conduit's KYB Reference is organized around, in compliance terms — not API vocabulary. - [Coverage Map](https://v2.docs.conduit.financial/kyb/map.md): Country-by-country KYB coverage across Latin America, Africa, Europe, North America, Asia, and the Pacific. - [Document Matrix](https://v2.docs.conduit.financial/kyb/matrix.md): At-a-glance grid of the local artifacts you'll collect for each KYB evidence area, per country. - [Anguilla](https://v2.docs.conduit.financial/kyb/countries/anguilla.md): How to collect KYB documents from business customers in Anguilla (AIA) when onboarding through the Conduit API. - [Antigua and Barbuda](https://v2.docs.conduit.financial/kyb/countries/antigua-and-barbuda.md): How to collect KYB documents from business customers in Antigua and Barbuda (ATG) when onboarding through the Conduit API. - [Argentina](https://v2.docs.conduit.financial/kyb/countries/argentina.md): How to collect KYB documents from business customers in Argentina (ARG) when onboarding through the Conduit API. - [Aruba](https://v2.docs.conduit.financial/kyb/countries/aruba.md): How to collect KYB documents from business customers in Aruba (ABW) when onboarding through the Conduit API. - [Bahamas](https://v2.docs.conduit.financial/kyb/countries/bahamas.md): How to collect KYB documents from business customers in Bahamas (BHS) when onboarding through the Conduit API. - [Barbados](https://v2.docs.conduit.financial/kyb/countries/barbados.md): How to collect KYB documents from business customers in Barbados (BRB) when onboarding through the Conduit API. - [Belize](https://v2.docs.conduit.financial/kyb/countries/belize.md): How to collect KYB documents from business customers in Belize (BLZ) when onboarding through the Conduit API. - [Bermuda](https://v2.docs.conduit.financial/kyb/countries/bermuda.md): How to collect KYB documents from business customers in Bermuda (BMU) when onboarding through the Conduit API. - [Bolivia](https://v2.docs.conduit.financial/kyb/countries/bolivia.md): How to collect KYB documents from business customers in Bolivia (BOL) when onboarding through the Conduit API. - [Brazil](https://v2.docs.conduit.financial/kyb/countries/brazil.md): How to collect KYB documents from business customers in Brazil (BRA) when onboarding through the Conduit API. - [British Virgin Islands](https://v2.docs.conduit.financial/kyb/countries/british-virgin-islands.md): How to collect KYB documents from business customers in British Virgin Islands (VGB) when onboarding through the Conduit API. - [Cayman Islands](https://v2.docs.conduit.financial/kyb/countries/cayman-islands.md): How to collect KYB documents from business customers in Cayman Islands (CYM) when onboarding through the Conduit API. - [Chile](https://v2.docs.conduit.financial/kyb/countries/chile.md): How to collect KYB documents from business customers in Chile (CHL) when onboarding through the Conduit API. - [Colombia](https://v2.docs.conduit.financial/kyb/countries/colombia.md): How to collect KYB documents from business customers in Colombia (COL) when onboarding through the Conduit API. - [Costa Rica](https://v2.docs.conduit.financial/kyb/countries/costa-rica.md): How to collect KYB documents from business customers in Costa Rica (CRI) when onboarding through the Conduit API. - [Curaçao](https://v2.docs.conduit.financial/kyb/countries/curacao.md): How to collect KYB documents from business customers in Curaçao (CUW) when onboarding through the Conduit API. - [Dominica](https://v2.docs.conduit.financial/kyb/countries/dominica.md): How to collect KYB documents from business customers in Dominica (DMA) when onboarding through the Conduit API. - [Dominican Republic](https://v2.docs.conduit.financial/kyb/countries/dominican-republic.md): How to collect KYB documents from business customers in Dominican Republic (DOM) when onboarding through the Conduit API. - [Ecuador](https://v2.docs.conduit.financial/kyb/countries/ecuador.md): How to collect KYB documents from business customers in Ecuador (ECU) when onboarding through the Conduit API. - [El Salvador](https://v2.docs.conduit.financial/kyb/countries/el-salvador.md): How to collect KYB documents from business customers in El Salvador (SLV) when onboarding through the Conduit API. - [Falkland Islands](https://v2.docs.conduit.financial/kyb/countries/falkland-islands.md): How to collect KYB documents from business customers in Falkland Islands (FLK) when onboarding through the Conduit API. - [Grenada](https://v2.docs.conduit.financial/kyb/countries/grenada.md): How to collect KYB documents from business customers in Grenada (GRD) when onboarding through the Conduit API. - [Guatemala](https://v2.docs.conduit.financial/kyb/countries/guatemala.md): How to collect KYB documents from business customers in Guatemala (GTM) when onboarding through the Conduit API. - [Guyana](https://v2.docs.conduit.financial/kyb/countries/guyana.md): How to collect KYB documents from business customers in Guyana (GUY) when onboarding through the Conduit API. - [Honduras](https://v2.docs.conduit.financial/kyb/countries/honduras.md): How to collect KYB documents from business customers in Honduras (HND) when onboarding through the Conduit API. - [Jamaica](https://v2.docs.conduit.financial/kyb/countries/jamaica.md): How to collect KYB documents from business customers in Jamaica (JAM) when onboarding through the Conduit API. - [Mexico](https://v2.docs.conduit.financial/kyb/countries/mexico.md): How to collect KYB documents from business customers in Mexico (MEX) when onboarding through the Conduit API. - [Montserrat](https://v2.docs.conduit.financial/kyb/countries/montserrat.md): How to collect KYB documents from business customers in Montserrat (MSR) when onboarding through the Conduit API. - [Nicaragua](https://v2.docs.conduit.financial/kyb/countries/nicaragua.md): How to collect KYB documents from business customers in Nicaragua (NIC) when onboarding through the Conduit API. - [Panama](https://v2.docs.conduit.financial/kyb/countries/panama.md): How to collect KYB documents from business customers in Panama (PAN) when onboarding through the Conduit API. - [Paraguay](https://v2.docs.conduit.financial/kyb/countries/paraguay.md): How to collect KYB documents from business customers in Paraguay (PRY) when onboarding through the Conduit API. - [Peru](https://v2.docs.conduit.financial/kyb/countries/peru.md): How to collect KYB documents from business customers in Peru (PER) when onboarding through the Conduit API. - [Puerto Rico](https://v2.docs.conduit.financial/kyb/countries/puerto-rico.md): How to collect KYB documents from business customers in Puerto Rico (PRI) when onboarding through the Conduit API. - [Saint Kitts and Nevis](https://v2.docs.conduit.financial/kyb/countries/saint-kitts-and-nevis.md): How to collect KYB documents from business customers in Saint Kitts and Nevis (KNA) when onboarding through the Conduit API. - [Saint Lucia](https://v2.docs.conduit.financial/kyb/countries/saint-lucia.md): How to collect KYB documents from business customers in Saint Lucia (LCA) when onboarding through the Conduit API. - [Saint Vincent and the Grenadines](https://v2.docs.conduit.financial/kyb/countries/saint-vincent-and-the-grenadines.md): How to collect KYB documents from business customers in Saint Vincent and the Grenadines (VCT) when onboarding through the Conduit API. - [Suriname](https://v2.docs.conduit.financial/kyb/countries/suriname.md): How to collect KYB documents from business customers in Suriname (SUR) when onboarding through the Conduit API. - [Trinidad and Tobago](https://v2.docs.conduit.financial/kyb/countries/trinidad-and-tobago.md): How to collect KYB documents from business customers in Trinidad and Tobago (TTO) when onboarding through the Conduit API. - [Turks and Caicos Islands](https://v2.docs.conduit.financial/kyb/countries/turks-and-caicos-islands.md): How to collect KYB documents from business customers in Turks and Caicos Islands (TCA) when onboarding through the Conduit API. - [U.S. Virgin Islands](https://v2.docs.conduit.financial/kyb/countries/us-virgin-islands.md): How to collect KYB documents from business customers in U.S. Virgin Islands (VIR) when onboarding through the Conduit API. - [Uruguay](https://v2.docs.conduit.financial/kyb/countries/uruguay.md): How to collect KYB documents from business customers in Uruguay (URY) when onboarding through the Conduit API. - [Algeria](https://v2.docs.conduit.financial/kyb/countries/algeria.md): How to collect KYB documents from business customers in Algeria (DZA) when onboarding through the Conduit API. - [Angola](https://v2.docs.conduit.financial/kyb/countries/angola.md): How to collect KYB documents from business customers in Angola (AGO) when onboarding through the Conduit API. - [Benin](https://v2.docs.conduit.financial/kyb/countries/benin.md): How to collect KYB documents from business customers in Benin (BEN) when onboarding through the Conduit API. - [Botswana](https://v2.docs.conduit.financial/kyb/countries/botswana.md): How to collect KYB documents from business customers in Botswana (BWA) when onboarding through the Conduit API. - [Burkina Faso](https://v2.docs.conduit.financial/kyb/countries/burkina-faso.md): How to collect KYB documents from business customers in Burkina Faso (BFA) when onboarding through the Conduit API. - [Cabo Verde](https://v2.docs.conduit.financial/kyb/countries/cabo-verde.md): How to collect KYB documents from business customers in Cabo Verde (CPV) when onboarding through the Conduit API. - [Cameroon](https://v2.docs.conduit.financial/kyb/countries/cameroon.md): How to collect KYB documents from business customers in Cameroon (CMR) when onboarding through the Conduit API. - [Central African Republic](https://v2.docs.conduit.financial/kyb/countries/central-african-republic.md): How to collect KYB documents from business customers in Central African Republic (CAF) when onboarding through the Conduit API. - [Chad](https://v2.docs.conduit.financial/kyb/countries/chad.md): How to collect KYB documents from business customers in Chad (TCD) when onboarding through the Conduit API. - [Comoros](https://v2.docs.conduit.financial/kyb/countries/comoros.md): How to collect KYB documents from business customers in Comoros (COM) when onboarding through the Conduit API. - [Côte d'Ivoire](https://v2.docs.conduit.financial/kyb/countries/cote-divoire.md): How to collect KYB documents from business customers in Côte d'Ivoire (CIV) when onboarding through the Conduit API. - [Democratic Republic of the Congo](https://v2.docs.conduit.financial/kyb/countries/drc.md): How to collect KYB documents from business customers in Democratic Republic of the Congo (COD) when onboarding through the Conduit API. - [Djibouti](https://v2.docs.conduit.financial/kyb/countries/djibouti.md): How to collect KYB documents from business customers in Djibouti (DJI) when onboarding through the Conduit API. - [Egypt](https://v2.docs.conduit.financial/kyb/countries/egypt.md): How to collect KYB documents from business customers in Egypt (EGY) when onboarding through the Conduit API. - [Equatorial Guinea](https://v2.docs.conduit.financial/kyb/countries/equatorial-guinea.md): How to collect KYB documents from business customers in Equatorial Guinea (GNQ) when onboarding through the Conduit API. - [Eswatini](https://v2.docs.conduit.financial/kyb/countries/eswatini.md): How to collect KYB documents from business customers in Eswatini (SWZ) when onboarding through the Conduit API. - [Ethiopia](https://v2.docs.conduit.financial/kyb/countries/ethiopia.md): How to collect KYB documents from business customers in Ethiopia (ETH) when onboarding through the Conduit API. - [Gabon](https://v2.docs.conduit.financial/kyb/countries/gabon.md): How to collect KYB documents from business customers in Gabon (GAB) when onboarding through the Conduit API. - [Gambia](https://v2.docs.conduit.financial/kyb/countries/gambia.md): How to collect KYB documents from business customers in Gambia (GMB) when onboarding through the Conduit API. - [Ghana](https://v2.docs.conduit.financial/kyb/countries/ghana.md): How to collect KYB documents from business customers in Ghana (GHA) when onboarding through the Conduit API. - [Guinea](https://v2.docs.conduit.financial/kyb/countries/guinea.md): How to collect KYB documents from business customers in Guinea (GIN) when onboarding through the Conduit API. - [Guinea-Bissau](https://v2.docs.conduit.financial/kyb/countries/guinea-bissau.md): How to collect KYB documents from business customers in Guinea-Bissau (GNB) when onboarding through the Conduit API. - [Kenya](https://v2.docs.conduit.financial/kyb/countries/kenya.md): How to collect KYB documents from business customers in Kenya (KEN) when onboarding through the Conduit API. - [Lesotho](https://v2.docs.conduit.financial/kyb/countries/lesotho.md): How to collect KYB documents from business customers in Lesotho (LSO) when onboarding through the Conduit API. - [Liberia](https://v2.docs.conduit.financial/kyb/countries/liberia.md): How to collect KYB documents from business customers in Liberia (LBR) when onboarding through the Conduit API. - [Madagascar](https://v2.docs.conduit.financial/kyb/countries/madagascar.md): How to collect KYB documents from business customers in Madagascar (MDG) when onboarding through the Conduit API. - [Malawi](https://v2.docs.conduit.financial/kyb/countries/malawi.md): How to collect KYB documents from business customers in Malawi (MWI) when onboarding through the Conduit API. - [Mauritania](https://v2.docs.conduit.financial/kyb/countries/mauritania.md): How to collect KYB documents from business customers in Mauritania (MRT) when onboarding through the Conduit API. - [Mauritius](https://v2.docs.conduit.financial/kyb/countries/mauritius.md): How to collect KYB documents from business customers in Mauritius (MUS) when onboarding through the Conduit API. - [Morocco](https://v2.docs.conduit.financial/kyb/countries/morocco.md): How to collect KYB documents from business customers in Morocco (MAR) when onboarding through the Conduit API. - [Mozambique](https://v2.docs.conduit.financial/kyb/countries/mozambique.md): How to collect KYB documents from business customers in Mozambique (MOZ) when onboarding through the Conduit API. - [Namibia](https://v2.docs.conduit.financial/kyb/countries/namibia.md): How to collect KYB documents from business customers in Namibia (NAM) when onboarding through the Conduit API. - [Niger](https://v2.docs.conduit.financial/kyb/countries/niger.md): How to collect KYB documents from business customers in Niger (NER) when onboarding through the Conduit API. - [Nigeria](https://v2.docs.conduit.financial/kyb/countries/nigeria.md): How to collect KYB documents from business customers in Nigeria (NGA) when onboarding through the Conduit API. - [Republic of the Congo](https://v2.docs.conduit.financial/kyb/countries/republic-of-congo.md): How to collect KYB documents from business customers in Republic of the Congo (COG) when onboarding through the Conduit API. - [Rwanda](https://v2.docs.conduit.financial/kyb/countries/rwanda.md): How to collect KYB documents from business customers in Rwanda (RWA) when onboarding through the Conduit API. - [São Tomé and Príncipe](https://v2.docs.conduit.financial/kyb/countries/sao-tome-and-principe.md): How to collect KYB documents from business customers in São Tomé and Príncipe (STP) when onboarding through the Conduit API. - [Senegal](https://v2.docs.conduit.financial/kyb/countries/senegal.md): How to collect KYB documents from business customers in Senegal (SEN) when onboarding through the Conduit API. - [Seychelles](https://v2.docs.conduit.financial/kyb/countries/seychelles.md): How to collect KYB documents from business customers in Seychelles (SYC) when onboarding through the Conduit API. - [Sierra Leone](https://v2.docs.conduit.financial/kyb/countries/sierra-leone.md): How to collect KYB documents from business customers in Sierra Leone (SLE) when onboarding through the Conduit API. - [South Africa](https://v2.docs.conduit.financial/kyb/countries/south-africa.md): How to collect KYB documents from business customers in South Africa (ZAF) when onboarding through the Conduit API. - [Tanzania](https://v2.docs.conduit.financial/kyb/countries/tanzania.md): How to collect KYB documents from business customers in Tanzania (TZA) when onboarding through the Conduit API. - [Togo](https://v2.docs.conduit.financial/kyb/countries/togo.md): How to collect KYB documents from business customers in Togo (TGO) when onboarding through the Conduit API. - [Tunisia](https://v2.docs.conduit.financial/kyb/countries/tunisia.md): How to collect KYB documents from business customers in Tunisia (TUN) when onboarding through the Conduit API. - [Uganda](https://v2.docs.conduit.financial/kyb/countries/uganda.md): How to collect KYB documents from business customers in Uganda (UGA) when onboarding through the Conduit API. - [Zambia](https://v2.docs.conduit.financial/kyb/countries/zambia.md): How to collect KYB documents from business customers in Zambia (ZMB) when onboarding through the Conduit API. - [Zimbabwe](https://v2.docs.conduit.financial/kyb/countries/zimbabwe.md): How to collect KYB documents from business customers in Zimbabwe (ZWE) when onboarding through the Conduit API. - [Albania](https://v2.docs.conduit.financial/kyb/countries/albania.md): How to collect KYB documents from business customers in Albania (ALB) when onboarding through the Conduit API. - [Andorra](https://v2.docs.conduit.financial/kyb/countries/andorra.md): How to collect KYB documents from business customers in Andorra (AND) when onboarding through the Conduit API. - [Austria](https://v2.docs.conduit.financial/kyb/countries/austria.md): How to collect KYB documents from business customers in Austria (AUT) when onboarding through the Conduit API. - [Belgium](https://v2.docs.conduit.financial/kyb/countries/belgium.md): How to collect KYB documents from business customers in Belgium (BEL) when onboarding through the Conduit API. - [Bosnia and Herzegovina](https://v2.docs.conduit.financial/kyb/countries/bosnia-and-herzegovina.md): How to collect KYB documents from business customers in Bosnia and Herzegovina (BIH) when onboarding through the Conduit API. - [Bulgaria](https://v2.docs.conduit.financial/kyb/countries/bulgaria.md): How to collect KYB documents from business customers in Bulgaria (BGR) when onboarding through the Conduit API. - [Croatia](https://v2.docs.conduit.financial/kyb/countries/croatia.md): How to collect KYB documents from business customers in Croatia (HRV) when onboarding through the Conduit API. - [Czechia](https://v2.docs.conduit.financial/kyb/countries/czechia.md): How to collect KYB documents from business customers in Czechia (CZE) when onboarding through the Conduit API. - [Denmark](https://v2.docs.conduit.financial/kyb/countries/denmark.md): How to collect KYB documents from business customers in Denmark (DNK) when onboarding through the Conduit API. - [Estonia](https://v2.docs.conduit.financial/kyb/countries/estonia.md): How to collect KYB documents from business customers in Estonia (EST) when onboarding through the Conduit API. - [Faroe Islands](https://v2.docs.conduit.financial/kyb/countries/faroe-islands.md): How to collect KYB documents from business customers in Faroe Islands (FRO) when onboarding through the Conduit API. - [Finland](https://v2.docs.conduit.financial/kyb/countries/finland.md): How to collect KYB documents from business customers in Finland (FIN) when onboarding through the Conduit API. - [France](https://v2.docs.conduit.financial/kyb/countries/france.md): How to collect KYB documents from business customers in France (FRA) when onboarding through the Conduit API. - [Germany](https://v2.docs.conduit.financial/kyb/countries/germany.md): How to collect KYB documents from business customers in Germany (DEU) when onboarding through the Conduit API. - [Gibraltar](https://v2.docs.conduit.financial/kyb/countries/gibraltar.md): How to collect KYB documents from business customers in Gibraltar (GIB) when onboarding through the Conduit API. - [Greece](https://v2.docs.conduit.financial/kyb/countries/greece.md): How to collect KYB documents from business customers in Greece (GRC) when onboarding through the Conduit API. - [Guernsey](https://v2.docs.conduit.financial/kyb/countries/guernsey.md): How to collect KYB documents from business customers in Guernsey (GGY) when onboarding through the Conduit API. - [Hungary](https://v2.docs.conduit.financial/kyb/countries/hungary.md): How to collect KYB documents from business customers in Hungary (HUN) when onboarding through the Conduit API. - [Iceland](https://v2.docs.conduit.financial/kyb/countries/iceland.md): How to collect KYB documents from business customers in Iceland (ISL) when onboarding through the Conduit API. - [Ireland](https://v2.docs.conduit.financial/kyb/countries/ireland.md): How to collect KYB documents from business customers in Ireland (IRL) when onboarding through the Conduit API. - [Isle of Man](https://v2.docs.conduit.financial/kyb/countries/isle-of-man.md): How to collect KYB documents from business customers in Isle of Man (IMN) when onboarding through the Conduit API. - [Italy](https://v2.docs.conduit.financial/kyb/countries/italy.md): How to collect KYB documents from business customers in Italy (ITA) when onboarding through the Conduit API. - [Jersey](https://v2.docs.conduit.financial/kyb/countries/jersey.md): How to collect KYB documents from business customers in Jersey (JEY) when onboarding through the Conduit API. - [Latvia](https://v2.docs.conduit.financial/kyb/countries/latvia.md): How to collect KYB documents from business customers in Latvia (LVA) when onboarding through the Conduit API. - [Liechtenstein](https://v2.docs.conduit.financial/kyb/countries/liechtenstein.md): How to collect KYB documents from business customers in Liechtenstein (LIE) when onboarding through the Conduit API. - [Lithuania](https://v2.docs.conduit.financial/kyb/countries/lithuania.md): How to collect KYB documents from business customers in Lithuania (LTU) when onboarding through the Conduit API. - [Luxembourg](https://v2.docs.conduit.financial/kyb/countries/luxembourg.md): How to collect KYB documents from business customers in Luxembourg (LUX) when onboarding through the Conduit API. - [Malta](https://v2.docs.conduit.financial/kyb/countries/malta.md): How to collect KYB documents from business customers in Malta (MLT) when onboarding through the Conduit API. - [Moldova](https://v2.docs.conduit.financial/kyb/countries/moldova.md): How to collect KYB documents from business customers in Moldova (MDA) when onboarding through the Conduit API. - [Monaco](https://v2.docs.conduit.financial/kyb/countries/monaco.md): How to collect KYB documents from business customers in Monaco (MCO) when onboarding through the Conduit API. - [Montenegro](https://v2.docs.conduit.financial/kyb/countries/montenegro.md): How to collect KYB documents from business customers in Montenegro (MNE) when onboarding through the Conduit API. - [Netherlands](https://v2.docs.conduit.financial/kyb/countries/netherlands.md): How to collect KYB documents from business customers in Netherlands (NLD) when onboarding through the Conduit API. - [North Macedonia](https://v2.docs.conduit.financial/kyb/countries/north-macedonia.md): How to collect KYB documents from business customers in North Macedonia (MKD) when onboarding through the Conduit API. - [Norway](https://v2.docs.conduit.financial/kyb/countries/norway.md): How to collect KYB documents from business customers in Norway (NOR) when onboarding through the Conduit API. - [Poland](https://v2.docs.conduit.financial/kyb/countries/poland.md): How to collect KYB documents from business customers in Poland (POL) when onboarding through the Conduit API. - [Portugal](https://v2.docs.conduit.financial/kyb/countries/portugal.md): How to collect KYB documents from business customers in Portugal (PRT) when onboarding through the Conduit API. - [Romania](https://v2.docs.conduit.financial/kyb/countries/romania.md): How to collect KYB documents from business customers in Romania (ROU) when onboarding through the Conduit API. - [San Marino](https://v2.docs.conduit.financial/kyb/countries/san-marino.md): How to collect KYB documents from business customers in San Marino (SMR) when onboarding through the Conduit API. - [Serbia](https://v2.docs.conduit.financial/kyb/countries/serbia.md): How to collect KYB documents from business customers in Serbia (SRB) when onboarding through the Conduit API. - [Slovakia](https://v2.docs.conduit.financial/kyb/countries/slovakia.md): How to collect KYB documents from business customers in Slovakia (SVK) when onboarding through the Conduit API. - [Slovenia](https://v2.docs.conduit.financial/kyb/countries/slovenia.md): How to collect KYB documents from business customers in Slovenia (SVN) when onboarding through the Conduit API. - [Spain](https://v2.docs.conduit.financial/kyb/countries/spain.md): How to collect KYB documents from business customers in Spain (ESP) when onboarding through the Conduit API. - [Sweden](https://v2.docs.conduit.financial/kyb/countries/sweden.md): How to collect KYB documents from business customers in Sweden (SWE) when onboarding through the Conduit API. - [Switzerland](https://v2.docs.conduit.financial/kyb/countries/switzerland.md): How to collect KYB documents from business customers in Switzerland (CHE) when onboarding through the Conduit API. - [United Kingdom](https://v2.docs.conduit.financial/kyb/countries/united-kingdom.md): How to collect KYB documents from business customers in United Kingdom (GBR) when onboarding through the Conduit API. - [Canada](https://v2.docs.conduit.financial/kyb/countries/canada.md): How to collect KYB documents from business customers in Canada (CAN) when onboarding through the Conduit API. - [Greenland](https://v2.docs.conduit.financial/kyb/countries/greenland.md): How to collect KYB documents from business customers in Greenland (GRL) when onboarding through the Conduit API. - [United States](https://v2.docs.conduit.financial/kyb/countries/united-states.md): How to collect KYB documents from business customers in United States (USA) when onboarding through the Conduit API. - [Armenia](https://v2.docs.conduit.financial/kyb/countries/armenia.md): How to collect KYB documents from business customers in Armenia (ARM) when onboarding through the Conduit API. - [Azerbaijan](https://v2.docs.conduit.financial/kyb/countries/azerbaijan.md): How to collect KYB documents from business customers in Azerbaijan (AZE) when onboarding through the Conduit API. - [Bahrain](https://v2.docs.conduit.financial/kyb/countries/bahrain.md): How to collect KYB documents from business customers in Bahrain (BHR) when onboarding through the Conduit API. - [Bangladesh](https://v2.docs.conduit.financial/kyb/countries/bangladesh.md): How to collect KYB documents from business customers in Bangladesh (BGD) when onboarding through the Conduit API. - [Bhutan](https://v2.docs.conduit.financial/kyb/countries/bhutan.md): How to collect KYB documents from business customers in Bhutan (BTN) when onboarding through the Conduit API. - [Cyprus](https://v2.docs.conduit.financial/kyb/countries/cyprus.md): How to collect KYB documents from business customers in Cyprus (CYP) when onboarding through the Conduit API. - [Georgia](https://v2.docs.conduit.financial/kyb/countries/georgia.md): How to collect KYB documents from business customers in Georgia (GEO) when onboarding through the Conduit API. - [India](https://v2.docs.conduit.financial/kyb/countries/india.md): How to collect KYB documents from business customers in India (IND) when onboarding through the Conduit API. - [Iraq](https://v2.docs.conduit.financial/kyb/countries/iraq.md): How to collect KYB documents from business customers in Iraq (IRQ) when onboarding through the Conduit API. - [Israel](https://v2.docs.conduit.financial/kyb/countries/israel.md): How to collect KYB documents from business customers in Israel (ISR) when onboarding through the Conduit API. - [Jordan](https://v2.docs.conduit.financial/kyb/countries/jordan.md): How to collect KYB documents from business customers in Jordan (JOR) when onboarding through the Conduit API. - [Kazakhstan](https://v2.docs.conduit.financial/kyb/countries/kazakhstan.md): How to collect KYB documents from business customers in Kazakhstan (KAZ) when onboarding through the Conduit API. - [Kuwait](https://v2.docs.conduit.financial/kyb/countries/kuwait.md): How to collect KYB documents from business customers in Kuwait (KWT) when onboarding through the Conduit API. - [Kyrgyzstan](https://v2.docs.conduit.financial/kyb/countries/kyrgyzstan.md): How to collect KYB documents from business customers in Kyrgyzstan (KGZ) when onboarding through the Conduit API. - [Lebanon](https://v2.docs.conduit.financial/kyb/countries/lebanon.md): How to collect KYB documents from business customers in Lebanon (LBN) when onboarding through the Conduit API. - [Maldives](https://v2.docs.conduit.financial/kyb/countries/maldives.md): How to collect KYB documents from business customers in Maldives (MDV) when onboarding through the Conduit API. - [Nepal](https://v2.docs.conduit.financial/kyb/countries/nepal.md): How to collect KYB documents from business customers in Nepal (NPL) when onboarding through the Conduit API. - [Oman](https://v2.docs.conduit.financial/kyb/countries/oman.md): How to collect KYB documents from business customers in Oman (OMN) when onboarding through the Conduit API. - [Pakistan](https://v2.docs.conduit.financial/kyb/countries/pakistan.md): How to collect KYB documents from business customers in Pakistan (PAK) when onboarding through the Conduit API. - [Palestine](https://v2.docs.conduit.financial/kyb/countries/palestine.md): How to collect KYB documents from business customers in Palestine (PSE) when onboarding through the Conduit API. - [Qatar](https://v2.docs.conduit.financial/kyb/countries/qatar.md): How to collect KYB documents from business customers in Qatar (QAT) when onboarding through the Conduit API. - [Saudi Arabia](https://v2.docs.conduit.financial/kyb/countries/saudi-arabia.md): How to collect KYB documents from business customers in Saudi Arabia (SAU) when onboarding through the Conduit API. - [Sri Lanka](https://v2.docs.conduit.financial/kyb/countries/sri-lanka.md): How to collect KYB documents from business customers in Sri Lanka (LKA) when onboarding through the Conduit API. - [Tajikistan](https://v2.docs.conduit.financial/kyb/countries/tajikistan.md): How to collect KYB documents from business customers in Tajikistan (TJK) when onboarding through the Conduit API. - [Turkey](https://v2.docs.conduit.financial/kyb/countries/turkey.md): How to collect KYB documents from business customers in Turkey (TUR) when onboarding through the Conduit API. - [Turkmenistan](https://v2.docs.conduit.financial/kyb/countries/turkmenistan.md): How to collect KYB documents from business customers in Turkmenistan (TKM) when onboarding through the Conduit API. - [United Arab Emirates](https://v2.docs.conduit.financial/kyb/countries/united-arab-emirates.md): How to collect KYB documents from business customers in United Arab Emirates (ARE) when onboarding through the Conduit API. - [Uzbekistan](https://v2.docs.conduit.financial/kyb/countries/uzbekistan.md): How to collect KYB documents from business customers in Uzbekistan (UZB) when onboarding through the Conduit API. - [American Samoa](https://v2.docs.conduit.financial/kyb/countries/american-samoa.md): How to collect KYB documents from business customers in American Samoa (ASM) when onboarding through the Conduit API. - [Australia](https://v2.docs.conduit.financial/kyb/countries/australia.md): How to collect KYB documents from business customers in Australia (AUS) when onboarding through the Conduit API. - [Brunei Darussalam](https://v2.docs.conduit.financial/kyb/countries/brunei.md): How to collect KYB documents from business customers in Brunei Darussalam (BRN) when onboarding through the Conduit API. - [Cambodia](https://v2.docs.conduit.financial/kyb/countries/cambodia.md): How to collect KYB documents from business customers in Cambodia (KHM) when onboarding through the Conduit API. - [China (People's Republic of China — Mainland)](https://v2.docs.conduit.financial/kyb/countries/china.md): How to collect KYB documents from business customers in China (People's Republic of China — Mainland) (CHN) when onboarding through the Conduit API. - [Cook Islands](https://v2.docs.conduit.financial/kyb/countries/cook-islands.md): How to collect KYB documents from business customers in Cook Islands (COK) when onboarding through the Conduit API. - [Fiji](https://v2.docs.conduit.financial/kyb/countries/fiji.md): How to collect KYB documents from business customers in Fiji (FJI) when onboarding through the Conduit API. - [Guam](https://v2.docs.conduit.financial/kyb/countries/guam.md): How to collect KYB documents from business customers in Guam (GUM) when onboarding through the Conduit API. - [Hong Kong](https://v2.docs.conduit.financial/kyb/countries/hong-kong.md): How to collect KYB documents from business customers in Hong Kong (HKG) when onboarding through the Conduit API. - [Indonesia](https://v2.docs.conduit.financial/kyb/countries/indonesia.md): How to collect KYB documents from business customers in Indonesia (IDN) when onboarding through the Conduit API. - [Japan](https://v2.docs.conduit.financial/kyb/countries/japan.md): How to collect KYB documents from business customers in Japan (JPN) when onboarding through the Conduit API. - [Kiribati](https://v2.docs.conduit.financial/kyb/countries/kiribati.md): How to collect KYB documents from business customers in Kiribati (KIR) when onboarding through the Conduit API. - [Laos](https://v2.docs.conduit.financial/kyb/countries/laos.md): How to collect KYB documents from business customers in Laos (LAO) when onboarding through the Conduit API. - [Macao](https://v2.docs.conduit.financial/kyb/countries/macao.md): How to collect KYB documents from business customers in Macao (MAC) when onboarding through the Conduit API. - [Malaysia](https://v2.docs.conduit.financial/kyb/countries/malaysia.md): How to collect KYB documents from business customers in Malaysia (MYS) when onboarding through the Conduit API. - [Marshall Islands](https://v2.docs.conduit.financial/kyb/countries/marshall-islands.md): How to collect KYB documents from business customers in Marshall Islands (MHL) when onboarding through the Conduit API. - [Micronesia](https://v2.docs.conduit.financial/kyb/countries/micronesia.md): How to collect KYB documents from business customers in Micronesia (FSM) when onboarding through the Conduit API. - [Mongolia](https://v2.docs.conduit.financial/kyb/countries/mongolia.md): How to collect KYB documents from business customers in Mongolia (MNG) when onboarding through the Conduit API. - [Nauru](https://v2.docs.conduit.financial/kyb/countries/nauru.md): How to collect KYB documents from business customers in Nauru (NRU) when onboarding through the Conduit API. - [New Zealand](https://v2.docs.conduit.financial/kyb/countries/new-zealand.md): How to collect KYB documents from business customers in New Zealand (NZL) when onboarding through the Conduit API. - [Northern Mariana Islands](https://v2.docs.conduit.financial/kyb/countries/northern-mariana-islands.md): How to collect KYB documents from business customers in Northern Mariana Islands (MNP) when onboarding through the Conduit API. - [Palau](https://v2.docs.conduit.financial/kyb/countries/palau.md): How to collect KYB documents from business customers in Palau (PLW) when onboarding through the Conduit API. - [Papua New Guinea](https://v2.docs.conduit.financial/kyb/countries/papua-new-guinea.md): How to collect KYB documents from business customers in Papua New Guinea (PNG) when onboarding through the Conduit API. - [Philippines](https://v2.docs.conduit.financial/kyb/countries/philippines.md): How to collect KYB documents from business customers in Philippines (PHL) when onboarding through the Conduit API. - [Samoa](https://v2.docs.conduit.financial/kyb/countries/samoa.md): How to collect KYB documents from business customers in Samoa (WSM) when onboarding through the Conduit API. - [Singapore](https://v2.docs.conduit.financial/kyb/countries/singapore.md): How to collect KYB documents from business customers in Singapore (SGP) when onboarding through the Conduit API. - [Solomon Islands](https://v2.docs.conduit.financial/kyb/countries/solomon-islands.md): How to collect KYB documents from business customers in Solomon Islands (SLB) when onboarding through the Conduit API. - [South Korea](https://v2.docs.conduit.financial/kyb/countries/south-korea.md): How to collect KYB documents from business customers in South Korea (KOR) when onboarding through the Conduit API. - [Taiwan](https://v2.docs.conduit.financial/kyb/countries/taiwan.md): How to collect KYB documents from business customers in Taiwan (TWN) when onboarding through the Conduit API. - [Thailand](https://v2.docs.conduit.financial/kyb/countries/thailand.md): How to collect KYB documents from business customers in Thailand (THA) when onboarding through the Conduit API. - [Timor-Leste](https://v2.docs.conduit.financial/kyb/countries/timor-leste.md): How to collect KYB documents from business customers in Timor-Leste (TLS) when onboarding through the Conduit API. - [Tonga](https://v2.docs.conduit.financial/kyb/countries/tonga.md): How to collect KYB documents from business customers in Tonga (TON) when onboarding through the Conduit API. - [Tuvalu](https://v2.docs.conduit.financial/kyb/countries/tuvalu.md): How to collect KYB documents from business customers in Tuvalu (TUV) when onboarding through the Conduit API. - [Vanuatu](https://v2.docs.conduit.financial/kyb/countries/vanuatu.md): How to collect KYB documents from business customers in Vanuatu (VUT) when onboarding through the Conduit API. - [Vietnam](https://v2.docs.conduit.financial/kyb/countries/vietnam.md): How to collect KYB documents from business customers in Vietnam (VNM) when onboarding through the Conduit API. ## OpenAPI Specs - [openapi](https://api.sandbox.conduit.financial/v2/api-docs/openapi.json)