Create counterparty
Creates a new counterparty (business partner, client, or related entity) with comprehensive profile information and associated bank/crypto accounts.
Endpoint
POST/v2/counterparty
Link
Request
Headers
Key
Value
Required
Authorization
123
Yes
Content-Type
application/json
Yes
Accept
application/json
Yes
Request Body
Required fields: Required fields — profile
customerId
string
ID of the customer that will own this counterparty
profile.name
string
Legal entity name
Fewer than 35 characters; no special characters, accents, or leading/trailing spaces.
profile.address.addressLine1
string
Primary address line
Fewer than 35 characters.
profile.address.city
string
City name
Fewer than 21 characters
profile.address.stateIso
string
State code
For US addresses, a two-letter ISO code. Can't be the same value as the country code. For countries without states/provinces, use the region name instead.
profile.address.countryIso
string
Country code (ISO)
two-letter ISO code only
profile.address.postalCode
string
Postal code
For US ZIP codes, either 5 digits, or 5 digits + a hyphen + 4 digits.
profile.additionalInfo.type
string
Entity type: INDIVIDUAL or CORPORATION
profile.additionalInfo.businessLine
string
Industry classification
can't be PLB_OTHER
profile.additionalInfo.relationship
string
Relationship to the customer, e.g. PRC_SUPPLIER, PRC_CUSTOMER, etc.
can't be PRC_NOT_RELATED
json
Request Fields
1. Main Counterparty Fields
Field
Type
Required
Description
Example
customerId
string
Yes
Customer ID who owns this counterparty.
"cust_12345"
description
string
No
Counterparty description.
"Primary electronics supplier"
2. Profile Object
Field
Type
Required
Description
Example
name
string
Yes
Legal name.
"Tech Supplies Corp"
phoneNumber
string
No
Contact phone.
"+19876543210"
taxNumber
string
No
Tax ID number.
"TAX-US-12345"
dateOfBirth
string
No
Date of birth/incorporation.
"1985-05-15T00:00:00Z"
website
string
No
Company website.
"https://techsupplies.com"
lastname
string
No
Last name (individuals).
"Smith"
3. Address Object
Field
Type
Required
Description
Example
addressLine1
string
Yes
Primary address, 30 symbols max, no special characters
"123 Main Street"
addressLine2
string
No
Suite/floor, 30 symbols max, no special characters
"Suite 500"
addressLine3
string
No
Additional info, 30 symbols max, no special characters
"Building B"
city
string
Yes
City, no special characters
"New York"
stateIso
string
Yes
State code.
"NY"
countryIso
string
Yes
Country code.
"US"
postalCode
string
Yes
Postal code.
"10001"
unitNumber
string
No
Unit number.
"5A"
4. Additional Info Object
Field
Type
Required
Description
Allowed Values
Example
type
string
Yes
Legal structure.
INDIVIDUAL, CORPORATION
"CORPORATION"
businessLine
string
Yes
Industry type.
PLB_AUTOMOTIVE, PLB_RETAIL, etc.
"PLB_HIGH_TECH_SOFTWARE_TELECOMS"
relationship
string
Yes
Business relationship.
PRC_SUPPLIER, PRC_CUSTOMER, etc.
"PRC_SUPPLIER"
5. Accounts Array
Array of bank/crypto accounts for the counterparty.
Field
Type
Required
Description
Example
currencyIso
string
Yes
Currency code (ISO 4217).
"USD"
Bank Account (Traditional) Required
accounts[].currencyCode
string
Currency ISO code, e.g. USD, EUR, AED
accounts[].bank.name
string
Receiving bank's name (fewer than 35 characters)
accounts[].bank.address.addressLine1
string
Bank address — no special characters, accents, or leading/trailing spaces
accounts[].bank.address.city
string
Fewer than 21 characters
accounts[].bank.address.countryIso
string
Two-letter ISO code
accounts[].bank.address.stateIso
string
Same US/region rule as profile.address.stateIso
accounts[].bank.address.postalCode
string
Same US ZIP rule as profile.address.postalCode
accounts[].fiat.number
string
Account number/IBAN — must be the correct length and country code if an IBAN
accounts[].fiat.additionalInformation.type
string
Must name the specific currency, e.g. TYPE_FIAT_US — can't be the generic TYPE_FIAT
accounts[].fiat.additionalInformation.supportedRails
array
Exactly one rail, e.g. ["SWIFT"]
Conditionally required
accounts[].fiat.swift
string
Mandatory for SWIFT beneficiary accounts
accounts[].fiat.routingNumber
string
Mandatory for domestic USA beneficiary accounts
Crypto Account
Required
accounts[].currencyCode
string
Asset + network in one value, e.g. USDT_ERC20, USDT_TRC20
accounts[].crypto.address
string
Wallet address
accounts[].crypto.additionalInformation.walletType
string
e.g. CPW_INSTITUTION, CPW_UNKNOWN
accounts[].crypto.additionalInformation.type
string
TYPE_CRYPTO
accounts[].crypto.additionalInformation.supportedRails
array
["CRYPTO"]
Conditionally required
accounts[].bank.name
string
Required when walletType is CPW_INSTITUTION — identifies the custodian institution behind the wallet
accounts[].bank.address
object
Required when walletType is CPW_INSTITUTION, same address sub-fields as fiat accounts above
Fiat Account (Detailed)
Field
Type
Required
Description
Example
fiat.number
string
Yes
Bank account number or IBAN
"987654321"
fiat.routingNumber
string
No
Bank's routing number.
"021000021"
fiat.swift
string
No
SWIFT code.
"CHASUS33"
fiat.ifsc
string
No
IFSC code (India).
"SBIN0000001"
fiat.sortCode
string
No
Sort code (UK).
"40-30-20"
fiat.additionalInformation.accountType
string
No
Account type.
CHECKING, SAVING
Response (200 OK)
Returns the created counterparty with system-generated IDs and timestamps.
Example Response:
json
Response Fields
Field
Type
Description
Example
item.id
string
System-generated counterparty ID.
"cp_12345"
item.accounts[].id
string
System-generated account ID.
"acc_67890"
item.accounts[].status
string
Account status.
NEW, ACCEPT, REJECT
item.createdAt
string
Creation timestamp.
"2024-01-15T10:30:00Z"
item.updatedAt
string
Last update timestamp.
"2024-01-15T10:30:00Z"
item.customerName
string
Customer name (auto-populated).
"John Doe"
Error Responses
Missing Required Fields:
json
Invalid Customer:
json
Validation Error:
json
Notes
Account Verification: New accounts start with
NEWstatus and require verificationCurrency Support: Multiple accounts with different currencies can be added
KYC Compliance: Complete profile information improves verification success
A counterparty can hold multiple accounts across different currencies.
Supported Payment Rails:
Traditional:
ACH,FEDWIRE,SWIFT,SEPA_CT,FPS,CHAPS,UAEFTSCrypto:
CRYPTO
Examples
Real request
Real response
Account fields by currency and rail
USD — FEDWIRE
Required
routingNumber
string
US ABA routing number
additionalInformation.accountType
string
e.g. CHECKING
additionalInformation.type
string
Set to TYPE_FIAT_US for USD accounts
additionalInformation.supportedRails
array
Contains FEDWIRE
Optional
additionalInformation.intermediary
object
swift, sortCode, ifsc, transitNumber
string
USD — SWIFT
Required
swift
string
BIC/SWIFT code — mandatory for SWIFT beneficiary accounts
additionalInformation.type
string
Set to TYPE_FIAT_US for USD accounts
additionalInformation.supportedRails
array
Contains SWIFT
additionalInformation.accountType
string
additionalInformation.intermediary
object
routingNumber
string
Optional
bank.number
string
sortCode, ifsc, transitNumber
string
EUR — SEPA_CT
Required
number
string
IBAN — must be the correct length and country code
swift
string
Receiving bank's BIC/SWIFT code
additionalInformation.type
string
Set to TYPE_FIAT_EU for EUR accounts
additionalInformation.supportedRails
array
Contains SEPA_CT
additionalInformation.accountType
string
additionalInformation.intermediary
object
Optional
bank.number
string
routingNumber, sortCode, ifsc, transitNumber
string
GBP — FPS
Required
sortCode
string
UK sort code
routingNumber
string
Mirrors sortCode in the reference example
additionalInformation.accountType
string
e.g. CHECKING
additionalInformation.type
string
Set to TYPE_FIAT_GB for GBP accounts
additionalInformation.supportedRails
array
Contains FPS
Optional
swift, ifsc, transitNumber
string
bank.number
string
additionalInformation.intermediary
object
GBP — SWIFT
Required
number
string
IBAN
swift
string
Receiving bank's BIC/SWIFT code
additionalInformation.accountType
string
e.g. CHECKING
additionalInformation.type
string
Set to TYPE_FIAT_GB for GBP accounts
additionalInformation.supportedRails
array
Contains SWIFT
Optional
sortCode, routingNumber, ifsc, transitNumber
string
bank.number
string
name, fiat.name
string
additionalInformation.intermediary
object
GBP — CHAPS
Required
sortCode
string
UK sort code
additionalInformation.accountType
string
e.g. CHECKING
additionalInformation.type
string
Set to TYPE_FIAT_GB for GBP accounts
additionalInformation.supportedRails
array
Contains CHAPS
Optional
swift, routingNumber, ifsc, transitNumber
string
bank.number
string
name
string
AED — UAEFTS
Required
number
string
IBAN
swift
string
Receiving bank's BIC/SWIFT code
additionalInformation.accountType
string
e.g. CHECKING
additionalInformation.type
string
Set to TYPE_FIAT_AE for AED accounts
additionalInformation.supportedRails
array
Contains UAEFTS
additionalInformation.intermediary
object
Optional
bank.number
string
routingNumber, sortCode, ifsc, transitNumber
string
Crypto accounts
Required
currencyCode
string
Encodes both asset and network in one value, e.g. USDT_TRC20, USDT_ERC20 — there's no separate "network" field
crypto.address
string
Wallet address
crypto.additionalInformation.walletType
string
Wallet classification — confirmed values: CPW_INSTITUTION, CPW_UNKNOWN, CPW_OTHER
crypto.additionalInformation.type
string
Set to TYPE_CRYPTO
crypto.additionalInformation.supportedRails
array
Contains CRYPTO
Conditionally required
bank.name
string
Required when walletType is CPW_INSTITUTION — the name of the custodian institution
bank.address
object
Required when walletType is CPW_INSTITUTION — the custodian's address, same sub-fields as fiat accounts
Last updated

