Start an ownership verification challenge
Changed onStart (or restart) ownership verification for a FIRST_PARTY self-custody crypto wallet external account in PENDING_OWNERSHIP_VERIFICATION or UNVERIFIED status. The response carries the method-specific challenge material:
- WALLET_SIGNATURE — a messageToSign; have the wallet sign it exactly and submit the result to the verify endpoint to complete verification synchronously.
- LIVENESS — a hosted verificationLink (and possibly an embed token); the user completes a biometric flow and verification completes asynchronously. The outcome is delivered via EXTERNAL_ACCOUNT.STATUS_UPDATED webhooks or by polling the account.
Calling this endpoint again abandons any in-flight challenge and issues a new one with the requested method — use it to retry after a failed attempt, to replace an expired challenge, or to switch methods. An UNVERIFIED account returns to PENDING_OWNERSHIP_VERIFICATION when a new challenge is issued.
Completing ownership verification moves the account to ACTIVE.
Request
- Base URL: https://api.lightspark.com/grid/2025-10-13
- URL: https://api.lightspark.com/grid/2025-10-13/customers/external-accounts/{externalAccountId}/challenge
- Auth: HTTP basic
Path parameters
External account ID
Request body
Example request
{
"method": "WALLET_SIGNATURE"
}Response
Challenge created; the method-specific material is returned.
Example response
{
"method": "WALLET_SIGNATURE",
"messageToSign": "I verify that I control this wallet. Nonce: 019542f5-b3e7-1d02",
"expiresAt": "2025-08-15T15:32:00Z"
}Changes
- breaking
removed the required property
from the response with the status - breaking
removed the required property
from the response with the status - breaking
removed the required property
from the response with the status - breaking
removed the required property
from the response with the status - breaking
removed the required property
from the response with the status - breaking
removed the required property
from the response with the status - breaking
removed the required property
from the response with the status - breaking
removed the required property
from the response with the status - breaking
removed the required property
from the response with the status - breaking
removed the required property
from the response with the status - warning
added the new
ACCOUNT_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
AUTH_METHOD_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
CUSTOMER_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
DOCUMENT_ALREADY_EXISTSenum value to theresponse property for the response status - warning
added the new
DOCUMENT_HOLDER_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
DUPLICATE_EXTERNAL_ACCOUNTenum value to theresponse property for the response status - warning
added the new
DUPLICATE_PAY_REQUESTenum value to theresponse property for the response status - warning
added the new
INSUFFICIENT_FUNDSenum value to theresponse property for the response status - warning
added the new
NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
PAYMENT_URL_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
PLATFORM_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
QUOTE_EXPIREDenum value to theresponse property for the response status - warning
added the new
QUOTE_RATE_UNAVAILABLEenum value to theresponse property for the response status - warning
added the new
REQUEST_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
SESSION_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
SMS_OTP_CREDENTIAL_SET_CHANGEDenum value to theresponse property for the response status - warning
added the new
SMS_OTP_PHONE_NUMBER_ALREADY_EXISTSenum value to theresponse property for the response status - warning
added the new
STABLECOIN_AMOUNT_NOT_REPRESENTABLEenum value to theresponse property for the response status - warning
added the new
STABLECOIN_BURN_SOURCE_NOT_SUPPORTEDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_EXTERNAL_ACCOUNT_LINK_FAILEDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_EXTERNAL_ACCOUNT_LINK_METHOD_REQUIREDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_EXTERNAL_ACCOUNT_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_EXTERNAL_ACCOUNT_NOT_LINKEDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_EXTERNAL_ACCOUNT_NOT_SUPPORTEDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_EXTERNAL_ACCOUNT_PROVIDER_LINK_FAILEDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_EXTERNAL_ACCOUNT_PROVIDER_LINK_REQUIREDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_GRID_OPERATIONS_NOT_ENABLEDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_NOT_PROVISIONEDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_OPERATION_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_OPERATION_NOT_SUPPORTEDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_PROVIDER_ERRORenum value to theresponse property for the response status - warning
added the new
STABLECOIN_PROVIDER_SOURCE_NOT_LINKEDenum value to theresponse property for the response status - warning
added the new
STABLECOIN_SYMBOL_ALREADY_EXISTSenum value to theresponse property for the response status - warning
added the new
STABLECOIN_TOKEN_IDENTIFIER_ALREADY_EXISTSenum value to theresponse property for the response status - warning
added the new
STABLECOIN_VERIFICATION_FAILEDenum value to theresponse property for the response status - warning
added the new
VERIFICATION_NOT_FOUNDenum value to theresponse property for the response status - warning
added the new
WALLET_NOT_PROVISIONEDenum value to theresponse property for the response status - info
added the required property
to the response with the status - info
added the required property
to the response with the status - info
added the required property
to the response with the status - info
added the required property
to the response with the status - info
added the required property
to the response with the status
- breaking
- warning
added the new
BANK_ACCOUNT_VALIDATION_PENDINGenum value to theresponse property for the response status
- warning