Contact Verification

Confirm a customer's email verification code

Submit the one-time code the customer received by email to mark their email as VERIFIED. On success, contactVerification.email becomes VERIFIED.

Both email and phone must be VERIFIED before the customer can begin KYC.

In sandbox, the code is always 123456.

post/customers/{customerId}/verify-email/confirm

Request body

codestring required

The one-time verification code the customer received via email or SMS. In sandbox, the code is always 123456.

Example request

{
  "code": "123456"
}

Response

Email verified.

idstring

System-generated unique identifier

platformCustomerIdstring required

Platform-specific customer identifier

customerType'INDIVIDUAL' | 'BUSINESS' required

Whether the customer is an individual or a business entity

regionstring

Country code (ISO 3166-1 alpha-2) representing the customer's regional identity and regulatory jurisdiction.

currenciesstring[]

List of currency codes enabled for this customer.

emailstring email

Email address for the customer.

phoneNumberstring

Phone number for the customer in strict E.164 format.

umaAddressstring required

Full UMA address (always present in responses, even if system-generated). This is an optional identifier to route payments to the customer.

createdAtstring date-time

Creation timestamp

updatedAtstring date-time

Last update timestamp

isDeletedboolean

Whether the customer is marked as deleted

Example response

{
  "id": "Customer:019542f5-b3e7-1d02-0000-000000000001",
  "platformCustomerId": "9f84e0c2a72c4fa",
  "customerType": "INDIVIDUAL",
  "endUserTermsConsent": {
    "ipAddress": "198.51.100.24",
    "termsVersion": "V1",
    "acceptanceMethod": "CHECKBOX"
  },
  "region": "US",
  "currencies": [
    "USD",
    "USDC"
  ],
  "email": "john.doe@example.com",
  "phoneNumber": "+14155551234",
  "umaAddress": "$john.doe@uma.domain.com",
  "createdAt": "2025-07-21T17:32:28Z",
  "updatedAt": "2025-07-21T17:32:28Z",
  "contactVerification": {
    "email": "VERIFIED",
    "phone": "VERIFIED"
  }
}

Changes

Changed in 7 of the 24 revisions of this API.112

    • added the new EXTERNAL_ACCOUNT_VERIFICATION_REQUIRED enum value to the code response property for the response status 400

      response-property-enum-value-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • added the new TRANSACTION_SIZE_LIMIT_EXCEEDED enum value to the code response property for the response status 400

      response-property-enum-value-added

    • added the new CARDHOLDER_KYC_NOT_APPROVED enum value to the code response property for the response status 400

      response-property-enum-value-added

    • added the new CARD_ALREADY_CLOSED enum value to the code response property for the response status 409

      response-property-enum-value-added

    • added the new CARD_NOT_MUTABLE enum value to the code response property for the response status 409

      response-property-enum-value-added

    • added the new INVALID_STATE_TRANSITION enum value to the code response property for the response status 409

      response-property-enum-value-added

    • added the new END_USER_TERMS_VERSION_NOT_FOUND enum value to the code response property for the response status 400

      response-property-enum-value-added

    • added the optional property endUserTermsConsent to the response with the 200 status

      response-optional-property-added

  • b21ed434ee6e21See the full diff
    • added the new BENEFICIARY_TRUSTED enum value to the code response property for the response status 409

      response-property-enum-value-added

    • added the new SCA_SESSION_REQUIRED enum value to the code response property for the response status 409

      response-property-enum-value-added

    • added the optional property details/errors to the response with the 400 status

      response-optional-property-added

    • added the new TRANSACTION_NOT_CANCELLABLE enum value to the code response property for the response status 409

      response-property-enum-value-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • added the new PASSKEY_ALREADY_ENROLLED enum value to the code response property for the response status 409

      response-property-enum-value-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog