counterparty_id for payouts. An individual or business with several destinations is represented by several counterparties.
Fiat
Save the recipient’s bank details and setentity_type to individual or business. Choose the financial address type for the currency and payment rail below.
Stablecoins (USDC)
A crypto counterparty is an external wallet that you own. Crypto flows are closed loop: every crypto counterparty must be a wallet of your own. Adding one starts the screening and verification of the wallet address; once verified, you receive deposits from it and send stablecoin payouts to it. You can add as many crypto counterparties as you need, one per wallet address and blockchain.A deposit from a wallet that is not verified yet, including one you have not added as a counterparty, stays pending until the counterparty is verified and is then credited. A deposit from a wallet that failed verification is held for review and returned or redirected.
Fields
Financial address types
Each address includes itstype and the fields below. Bank addresses also include account_holder_name.
SWIFT has additional name, address and country requirements; see Counterparty details. The financial address does not itself select a USD rail: specify
ach, fedwire, or swift on the payout as appropriate.
Create and use
Create a counterparty with POST/v1/counterparties, then pass the returned id as counterparty_id when creating a payout, alongside account_id, amount, and currency.
Creation is idempotent on the financial address: repeated creation of the same destination does not create another counterparty. If the financial address already exists, the existing counterparty is returned unchanged and any other values in the request (name, physical_address, date_of_birth) are ignored; change them with update. Each merchant holds one counterparty per financial address. Reuse the saved ID for later payouts.
For incoming deposits, counterparty_id identifies the sender where the rail provides the sender’s account details. It can be null; inbound ACH deposits have no counterparty because the rail does not share the originator’s account number.
A booked transaction carries counterparty_id when a counterparty was resolved, otherwise null. Its nullable counterparty object contains financial and physical address details; source links to the originating deposit, payout or return when available.
Update
Update a counterparty with POST/v1/counterparties/{id}. You can change name, physical_address, date_of_birth, entity_type, and is_self_owned. Omitted fields stay unchanged; send null to clear the name, physical address or date of birth.
financial_address is immutable: create a new counterparty for changed bank details or a different wallet. The update endpoint does not accept metadata.
Idempotency
Both POST endpoints require anIdempotency-Key. Reuse the same key and identical body when retrying a request to receive the cached response. Reusing the key with a different body returns 409. This retry protection is separate from deduplication by financial address. See Idempotency.
List, retrieve and scopes
- List counterparties: GET
/v1/counterparties, with cursor pagination in both directions.limitaccepts 1–100 and defaults to 10; passnext_cursorascursorfor older records orprevious_cursorfor newer ones. See Pagination. - Retrieve a counterparty: GET
/v1/counterparties/{id}. counterparties:readcovers list and retrieve.counterparties:writecovers create and update. See Scopes.