Skip to main content
POST
/
v2
/
onramp
/
verifications
Initiate onramp verification
curl --request POST \
  --url https://api.cdp.coinbase.com/platform/v2/onramp/verifications \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "channel": "sms",
  "destination": "+12055555555"
}
'
{
  "verificationId": "onramp_verification_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "otpExpiresAt": "2025-04-24T00:10:00Z"
}

Authorizations

Authorization
string
header
required

A JWT signed using your CDP API Key Secret, encoded in base64. Refer to the Generate Bearer Token section of our Authentication docs for information on how to generate your Bearer Token.

Headers

X-Idempotency-Key
string

An optional string request header for making requests safely retryable. When included, duplicate requests with the same key will return identical responses. Refer to our Idempotency docs for more information on using idempotency keys.

Required string length: 1 - 128

Body

application/json

Request body for initiating an onramp OTP verification.

channel
enum<string>
required

The OTP delivery channel.

Available options:
sms,
email
Example:

"sms"

destination
required

The phone number or email address to send the OTP to.

Pattern: ^\+[1-9]\d{1,14}$
Example:

"+12055555555"

Response

Successfully initiated onramp verification.

The result of initiating an onramp OTP verification.

verificationId
string
required

Identifier returned by this endpoint. Pass to the Submit Onramp Verification endpoint along with the OTP code within 10 minutes.

Pattern: ^onramp_verification_[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$
Example:

"onramp_verification_a1b2c3d4-e5f6-7890-abcd-ef1234567890"

otpExpiresAt
string<date-time>
required

The deadline for submitting the OTP code (10 minutes from now).

Example:

"2025-04-24T00:10:00Z"