Skip to main content
POST
cURL

Authorizations

Authorization
string
header
required

API token authentication using format <api token id>:<api client secret>

Path Parameters

externalAccountId
string
required

External account ID

Body

application/json

Completes a WALLET_SIGNATURE challenge by submitting the signature the wallet produced for the challenge's messageToSign.

signature
string
required

The signature produced over the exact messageToSign — EIP-191 hex for EVM chains, base64 for Bitcoin, base58-encoded Ed25519 for Solana.

Example:

"0x52d75f01c9e7b8b2ce2fbcbd21bfeeee7bcd1a2f01ce6b8ad9a67a45e83a8f5d1c"

signatureScheme
enum<string>
default:bip137

Bitcoin message-signing format. Defaults to bip137; use electrum for Electrum/Sparrow wallets. Ignored for non-Bitcoin chains.

Available options:
bip137,
electrum

Response

Signature valid; the updated external account is returned with status: ACTIVE.

id
string
required

The system generated identifier of this account

Example:

"ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965"

status
enum<string>
required

Status of the external account

Available options:
PENDING,
ACTIVE,
PENDING_OWNERSHIP_VERIFICATION,
UNVERIFIED,
UNDER_REVIEW,
INACTIVE
Example:

"ACTIVE"

currency
string
required

The ISO 4217 currency code

Example:

"USD"

accountInfo
AED Account · object
required
Example:
customerId
string

The customer this account is tied to, or null if the account is on behalf of the platform.

Example:

"Customer:da459a29-1fb7-41ce-a4cb-eb3a3c9fd7a7"

platformAccountId
string

Optional platform-specific identifier for this account

Example:

"acc_123456789"

ownershipType
enum<string>

Whether the external account belongs to the customer themselves (FIRST_PARTY) or to someone else (THIRD_PARTY). Required when creating self-custody crypto wallet external accounts on platforms subject to counterparty requirements — for example, under the EU Travel Rule or similar requirements in other regions; recommended for all other accounts, where providing it can unlock additional capabilities and smoother compliance handling.

Available options:
FIRST_PARTY,
THIRD_PARTY
Example:

"FIRST_PARTY"

defaultUmaDepositAccount
boolean

Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer.

Example:

false

beneficiaryVerificationStatus
enum<string>

The result of verifying the beneficiary name against the account holder name

Available options:
MATCHED,
PARTIAL_MATCH,
NOT_MATCHED,
UNSUPPORTED,
CHECKED_BY_RECEIVING_FI,
PENDING
beneficiaryVerifiedData
object

Verified beneficiary data returned by the payment rail, if available