Skip to main content
Version: 2019-05-29 (Current)

Create a Token

Create a single-use token from credit card information. Tokens securely represent card data and can be used to create charges without handling sensitive card information on your servers.


๐Ÿ”‘API Credentials

Request Parametersโ€‹

Required - 4 fieldsRequired Parameters
โ–ผ
`card[name]`STRING(required)
Cardholder name as it appears on the card.
Example:"JOHN DOE"
`card[number]`STRING(required)
Card number without spaces or dashes. 13-19 digits depending on card type.
Example:"4242424242424242"
Constraints:13-19 digits, Must pass Luhn check, No spaces or dashes
`card[expiration_month]`INTEGER(required)
Card expiration month in M or MM format.
Example:12
Constraints:Minimum: 1, Maximum: 12
`card[expiration_year]`INTEGER(required)
Card expiration year in YY or YYYY format.
Example:2025
Constraints:Must be current year or future, Accepts 2-digit or 4-digit format
Recommended - 7 fieldsRecommended Parameters
Additional - 2 fieldsAdditional Parameters

Responsesโ€‹

200

Successful transaction

Token created successfully. Use the token ID to create charges or attach to customers.

Response includes:
  • id - Token ID (tokn_*) to use when creating charges
  • used - Whether token has been used (false for new tokens)
  • card - Card object with sanitized information (only last 4 digits)
  • card.brand - Card brand (Visa, Mastercard, JCB, etc.)
  • card.last_digits - Last 4 digits of card number
  • card.security_code_check - Whether CVV was validated
  • charge_status - Status of charge created with token (null if unused)

400

Bad request

Request validation failed. Check the error message for details.

Common causes:
  • Missing required fields (card[name], card[number], card[expiration_month], card[expiration_year])
  • Invalid card number format
  • Invalid expiration date
  • Card number contains spaces or dashes

401

Unauthorized

Authentication failed. Invalid or missing API key.

Common causes:
  • Missing Authorization header
  • Invalid public key
  • Using secret key instead of public key
  • Incorrect HTTP Basic Auth format

402

Payment required

Card validation failed.

Common causes:
  • Card number failed Luhn validation
  • Card is expired
  • Invalid security code format
  • Card brand not supported

Code samplesโ€‹

curl https://vault.omise.co/tokens \
-u pkey_test_5xuy4w91xqz7d1w9u0t: \
-d "card[name]=JOHN DOE" \
-d "card[number]=4242424242424242" \
-d "card[expiration_month]=12" \
-d "card[expiration_year]=2025" \
-d "card[security_code]=123"

Error and result codesโ€‹

Common Error Codesโ€‹

CodeDescriptionResolution
bad_requestMissing or invalid parametersCheck all required fields are provided
authentication_failureInvalid API keyVerify your public key is correct
invalid_cardCard number is invalidCheck card number passes Luhn validation
invalid_expiration_dateCard is expired or date invalidVerify expiration month and year
invalid_security_codeCVV format is invalidCheck CVV is 3-4 digits
used_tokenToken already usedCreate a new token for each charge

Test Card Numbersโ€‹

Card NumberBrand3D Secure
4242424242424242VisaNo
4000000000003063VisaYes
5555555555554444MastercardNo
4111111111111111VisaNo

Try it outโ€‹

Required - 4 fields
โ–ผ
Recommended - 7 fields
Additional - 2 fields