Skip to main content
Guest Checkout users start with conservative spending limits. The Limits Upgrade API lets eligible users increase those limits permanently by verifying their identity with just two pieces of information — the last 4 digits of their SSN and their date of birth.
Limits Upgrade is only available for Guest Checkout (Headless Onramp) users. Authenticated Coinbase users have separate limit management through their Coinbase account.

Default and upgraded limits

Once approved, the upgrade is permanent. Users never need to re-verify.

Integration flow

1. Check limits and upgrade eligibility

Call POST /v2/onramp/limits before or during the onramp flow to retrieve the user’s current limits and determine whether an upgrade is available.
Both GUEST_CHECKOUT_APPLE_PAY and GUEST_CHECKOUT_GOOGLE_PAY are supported and yield identical limits. Response — upgrade available:
Response — upgrade not available:
When limitUpgradeOptions is absent from the response, the user does not yet meet the eligibility criteria. This is not an error — limits is always present and accurate.

Upgrade status values

limitUpgradeOptions is a single-element array. Check limitUpgradeOptions[0].status to determine what to do next:
Only show the upgrade prompt when limitUpgradeOptions is present and status is unrequested or resubmit.

2. Submit identity fields

When status is unrequested or resubmit, collect the required fields and submit them to POST /v2/onramp/limits/upgrade. The endpoint returns HTTP 202 immediately — processing is asynchronous.
After receiving 202, re-poll /limits — the status immediately advances to pending.
Do not store ssnLast4 on your servers. Collect it, submit it, and discard it immediately.

Field validation

Validate client-side before submitting to avoid unnecessary round trips. The API rejects invalid dates (e.g., February 30) and non-numeric SSN values.

3. Poll until terminal status

Poll POST /v2/onramp/limits after the 202 response until limitUpgradeOptions[0].status reaches a terminal state.
Response when upgrade is approved:
A limit or remaining value of "-1" means unlimited. Display this to users as “Unlimited” rather than a raw number.
Polling guide:
  • Start polling immediately after receiving the 202 response
  • Poll every 1–2 seconds — verification typically completes within ~3 seconds
  • Set a timeout (e.g., 30 seconds) and show a “still processing” message if it expires
  • Stop polling once status is active, inactive, or resubmit

Resubmission and rate limits

If status returns to resubmit, Coinbase reviewed the submission and couldn’t verify the information. fields is re-populated — collect the corrected fields and call /limits/upgrade again. The flow is identical to the initial submission. Users are limited to 5 upgrade submissions over a rolling 5-day window. A submission only counts when it enters Coinbase’s verification pipeline — meaning the status transitions to pending. Input validation errors, transient failures, and other non-verification errors do not count against this limit. Calling /limits/upgrade when status is already pending or active is safe — the endpoint returns 202 and nothing changes.

UI recommendations

For the inactive status, do not expose the underlying reason and do not show the upgrade prompt again. Input field guidance:
  • SSN: Use a masked input (****). Validate exactly 4 numeric digits client-side.
  • Date of birth: Use a date picker or separate day/month/year fields. Validate that the date is a real calendar date.

Error reference

POST /v2/onramp/limits errors

POST /v2/onramp/limits/upgrade errors

Error response shape:
Include correlationId when contacting Coinbase support.

Sandbox testing

Use phone numbers prefixed with +0 to test all scenarios without real verification. Only the last digit determines the scenario.

POST /v2/onramp/limits sandbox responses

POST /v2/onramp/limits/upgrade sandbox responses

In sandbox, ssnLast4 and dateOfBirth values are not validated — pass any well-formed values.

POST /v2/onramp/limits

Full API reference for checking user limits.

POST /v2/onramp/limits/upgrade

Full API reference for submitting an upgrade request.