External Accounts
Verify ownership with a wallet signature
Complete a WALLET_SIGNATURE challenge by submitting the signature the wallet produced for the challenge's messageToSign. The message must be signed exactly as returned, and the signature must be submitted before the challenge's expiresAt — after expiry, start a new challenge.
On success the account moves to ACTIVE; on an invalid signature it moves to UNVERIFIED (start a new challenge to retry). LIVENESS challenges complete asynchronously and never use this endpoint — their outcome is delivered via EXTERNAL_ACCOUNT.STATUS_UPDATED webhooks or by polling the account.
post/platform/external-accounts/{externalAccountId}/verify
Path parameters
externalAccountIdstring required
External account ID
Request body
Example request
{
"signature": "0x52d75f01c9e7b8b2ce2fbcbd21bfeeee7bcd1a2f01ce6b8ad9a67a45e83a8f5d1c"
}Response
Signature valid; the updated external account is returned with status: ACTIVE.
Example response
{
"id": "ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965",
"customerId": "Customer:da459a29-1fb7-41ce-a4cb-eb3a3c9fd7a7",
"platformAccountId": "acc_123456789",
"ownershipType": "FIRST_PARTY",
"currency": "USD",
"beneficiaryVerifiedData": {
"fullName": "John Doe"
},
"accountInfo": {
"accountType": "AED_ACCOUNT",
"iban": "AE070331234567890123456",
"swiftCode": "EBILAEAD"
}
}