---
title: "Create secure token"
method: POST
path: "/processing-terminals/{processingTerminalId}/secure-tokens"
tags: ["secureTokens"]
---

# Create secure token

`POST /processing-terminals/{processingTerminalId}/secure-tokens`

Use this method to create a secure token that represents a customer's payment details.  

When you create a secure token, you need to generate and provide a secureTokenId that you use to run follow-on actions:  
- [Retrieve Secure Token](https://docs.payroc.com/api/schema/tokenization/secure-tokens/retrieve) – View the details of the secure token.  
- [Delete Secure Token](https://docs.payroc.com/api/schema/tokenization/secure-tokens/delete) – Delete the secure token.  
- [Update Secure Token](https://docs.payroc.com/api/schema/tokenization/secure-tokens/partially-update) – Update the details of the secure token.  
- [Update Account Details](https://docs.payroc.com/api/schema/tokenization/secure-tokens/update-account) – Update the secure token with the details from a single-use token.  

**Note:** If you don't generate a secureTokenId to identify the token, our gateway generates a unique identifier and returns it in the response.  

If the request is successful, our gateway returns a token that the merchant can use in transactions instead of the customer's sensitive payment details, for example, when they [run a sale](https://docs.payroc.com/api/schema/card-payments/payments/create).

## Path parameters

- `processingTerminalId` string, required

## Headers

- `Authorization` string, required
- `Idempotency-Key` string, uuid, required

## Request body

- TokenizationRequest
  - `secureTokenId` string — Unique identifier that you create for the secure token that represents the customer’s payment details. **Note:** If you don't send a value for the secureTokenId, our gateway generates a unique identifier for the token.
  - `operator` string — Operator who saved the customer's payment details.
  - `mitAgreement` 'unscheduled' | 'recurring' | 'installment' — Indicates how the merchant can use the customer's card details, as agreed by the customer: - `unscheduled` - Transactions for a fixed or variable amount that are run at a certain pre-defined event. - `recurring` - Transactions for a fixed amount that are run at regular intervals, for example, monthly. Recurring transactions don't have a fixed duration and run until the customer cancels the agreement. - `installment` - Transactions for a fixed amount that are run at regular intervals, for example, monthly. Installment transactions have a fixed duration.
  - `customer` Customer — Object that contains the customer's contact details and address information. Contains parameters required for [Level 2, Level 3, and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
    - `firstName` string — Customer's first name.
    - `lastName` string — Customer's last name.
    - `dateOfBirth` string, date — Customer's date of birth. The format for this value is **YYYY-MM-DD**.
    - `referenceNumber` string — Identifier of the transaction, also known as a customer code. For requests, you must send a value for **referenceNumber** if the customer provides one. Required for [Level 2, Level 3, and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
    - `billingAddress` Address — Object that contains information about the address.
      - `address1` string, required — Address line 1.
      - `address2` string — Address line 2.
      - `address3` string — Address line 3.
      - `city` string, required — City.
      - `state` string, required — Name of the state or state abbreviation.
      - `country` string, required — Two-digit country code for the country that the business operates in. The format follows the [ISO-3166-1](https://www.iso.org/iso-3166-country-codes.html) standard.
      - `postalCode` string, required — Zip code or postal code.
    - `shippingAddress` Shipping — Object that contains information about the customer and their shipping address. Contains parameters required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
      - `recipientName` string — Recipient's name. Required for [Level 3 and CEDP transactions](https://docs.payroc.com/knowledge/card-payments/enhanced-data).
      - `address` Address — Object that contains information about the address.
        - `address1` string, required — Address line 1.
        - `address2` string — Address line 2.
        - `address3` string — Address line 3.
        - `city` string, required — City.
        - `state` string, required — Name of the state or state abbreviation.
        - `country` string, required — Two-digit country code for the country that the business operates in. The format follows the [ISO-3166-1](https://www.iso.org/iso-3166-country-codes.html) standard.
        - `postalCode` string, required — Zip code or postal code.
    - `contactMethods` ContactMethod[] — Array of polymorphic objects, which contain contact information. The value of the type parameter determines which variant you should use: - `email` - Email address - `phone` - Phone number - `mobile` - Mobile number - `fax` - Fax number
      - union
        - object — email variant
          - `type` 'email', required — Discriminator value: email
          - `value` string, required — Email address.
        - object — phone variant
          - `type` 'phone', required — Discriminator value: phone
          - `value` string, required — Phone number.
        - object — mobile variant
          - `type` 'mobile', required — Discriminator value: mobile
          - `value` string, required — Mobile number.
        - object — fax variant
          - `type` 'fax', required — Discriminator value: fax
          - `value` string, required — Fax number.
    - `notificationLanguage` 'en' | 'fr' — Language that the customer uses for notifications. This code follows the [ISO 639-1](https://www.iso.org/iso-639-language-code) alpha-2 standard.
  - `ipAddress` IpAddress — Object that contains the IP address of the device that sent the request.
    - `type` 'ipv4' | 'ipv6', required — Internet protocol version of the IP address.
    - `value` string, required — IP address of the device.
  - `source` union, required — Polymorphic object that contains the payment method to tokenize. The value of the type parameter determines which variant you should use: - `ach` - Automated Clearing House (ACH) details - `pad` - Pre-authorized debit (PAD) details - `card` - Payment card details - `singleUseToken` - Single-use token details
    - object — Object that contains information about the payment details for the customer’s automated clearing house (ACH) transactions.
      - `type` 'ach', required — Discriminator value: ach
      - `accountType` 'checking' | 'savings' — Indicates the customer’s account type. **Note:** For bank account details, send a value for accountType.
      - `secCode` 'web' | 'tel' | 'ccd' | 'ppd' — Indicates how the customer authorized the ACH transaction. Send one of the following values: - `web` – Online transaction. - `tel` – Telephone transaction. - `ccd` – Corporate credit or debit entry for a business bank account. - `ppd` – Pre-arranged transaction. **Note:** This field is mandatory for ACH payments and unreferenced refunds.
      - `nameOnAccount` string, required — Customer's name.
      - `accountNumber` string, required — Customer’s bank account number. **Note:** In responses, our gateway shows only the last four digits of the account number, for example, `*****5929`.
      - `routingNumber` string, required — Nine-digit number that identifies the customer's bank.
    - object — Object that contains information about the payment details for the customer’s preauthorized electronic debit (PAD) transactions.
      - `type` 'pad', required — Discriminator value: pad
      - `accountType` 'checking' | 'savings' — Indicates the customer’s account type. **Note:** For bank account details, send a value for accountType.
      - `nameOnAccount` string, required — Customer's name.
      - `accountNumber` string, required — Customer's account number. **Note:** In responses, our gateway shows only the last four digits of the account number, for example, `*****5929`.
      - `transitNumber` string, required — Five-digit number that identifies the customer's bank branch.
      - `institutionNumber` string, required — Three-digit number that identifies the customer's bank.
    - object — Object that contains information about the customer’s payment card.
      - `type` 'card', required — Discriminator value: card
      - `accountType` 'checking' | 'savings' — Indicates the customer’s account type. **Note:** Send a value for accountType only for bank account details.
      - `cardDetails` union, required — Polymorphic object that contains payment card information. The value of the entryMethod parameter determines which variant you should use: - `raw` - Unencrypted payment data directly from the device. - `icc` - Payment data that the device captured from the chip. - `keyed` - Payment data that the merchant entered manually. - `swiped` - Payment data that the device captured from the magnetic strip.
        - object — Object that contains information about the unencrypted card details.
          - `entryMethod` 'raw', required — Discriminator value: raw
          - `downgradeTo` 'keyed' | 'swiped' — If an offline transaction is not approved using the initial entry method, reprocess the transaction using a downgraded entry method. For example, an Integrated Circuit Card (ICC) transaction can be downgraded to a swiped transaction or to a keyed transaction.
          - `device` Device, required — Object that contains information about the physical device the merchant used to capture the customer’s card details.
            - `model` 'bbposChp' | 'bbposChp2x' | 'bbposChp3x' | 'bbposRambler' | 'bbposWp' | 'bbposWp2' | 'bbposWp3' | 'genericCtlsMsr' | 'genericMsr' | 'idtechAugusta' | 'idtechMinismart' | 'idtechSredkey' | 'idtechVp3300' | 'idtechVp5300' | 'idtechVp6300' | 'idtechVp6800' | 'ingenicoAxiumDx4000' | 'ingenicoAxiumDx8000' | 'ingenicoAxiumEx8000' | 'ingenicoIct220' | 'ingenicoIpp320' | 'ingenicoIpp350' | 'ingenicoIuc285' | 'ingenicoL3000' | 'ingenicoL7000' | 'ingenicoS2000' | 'ingenicoS3000' | 'ingenicoS4000' | 'ingenicoS5000' | 'ingenicoS7000' | 'paxA80' | 'paxA920' | 'paxA920Pro' | 'paxA920Max' | 'paxE500' | 'paxE700' | 'paxE800' | 'paxIm30' | 'uic680' | 'uicBezel8', required — Model of the device that the merchant used to process the transaction.
            - `category` 'attended' | 'unattended' — Indicates if the device is attended or unattended.
            - `serialNumber` string, required — Serial number of the physical device.
            - `firmwareVersion` string — Firmware version of the physical device.
            - `config` DeviceConfig — Object that contains information about the configuration of the POS terminal.
              - …
          - `rawData` string, hexadecimal, required — Unencrypted data from the POS terminal.
          - `cardholderSignature` string — Cardholder's signature. For more information about how to format the signature, go to [How to send a signature to our gateway](https://docs.payroc.com/knowledge/basic-concepts/signature-capture).
        - object — Object that contains information about the Integrated Circuit Card (ICC).
          - `entryMethod` 'icc', required — Discriminator value: icc
          - `downgradeTo` 'keyed' | 'swiped' — If an offline transaction is not approved using the initial entry method, reprocess the transaction using a downgraded entry method. For example, an Integrated Circuit Card (ICC) transaction can be downgraded to a swiped transaction or a keyed transaction.
          - `device` EncryptionCapableDevice, required — Object that contains information about the encryption details of the POS terminal.
            - `model` 'bbposChp' | 'bbposChp2x' | 'bbposChp3x' | 'bbposRambler' | 'bbposWp' | 'bbposWp2' | 'bbposWp3' | 'genericCtlsMsr' | 'genericMsr' | 'idtechAugusta' | 'idtechMinismart' | 'idtechSredkey' | 'idtechVp3300' | 'idtechVp5300' | 'idtechVp6300' | 'idtechVp6800' | 'ingenicoAxiumDx4000' | 'ingenicoAxiumDx8000' | 'ingenicoAxiumEx8000' | 'ingenicoIct220' | 'ingenicoIpp320' | 'ingenicoIpp350' | 'ingenicoIuc285' | 'ingenicoL3000' | 'ingenicoL7000' | 'ingenicoS2000' | 'ingenicoS3000' | 'ingenicoS4000' | 'ingenicoS5000' | 'ingenicoS7000' | 'paxA80' | 'paxA920' | 'paxA920Pro' | 'paxA920Max' | 'paxE500' | 'paxE700' | 'paxE800' | 'paxIm30' | 'uic680' | 'uicBezel8', required — Model of the device that the merchant used to process the transaction.
            - `category` 'attended' | 'unattended' — Indicates if the device is attended or unattended.
            - `serialNumber` string, required — Serial number of the physical device.
            - `firmwareVersion` string — Firmware version of the physical device.
            - `config` DeviceConfig — Object that contains information about the configuration of the POS terminal.
              - …
            - `dataKsn` string, hexadecimal, required — Key serial number.
          - `iccData` string, hexadecimal, required — Cardholder data from the ICC. The data consists of EMV tags in Tag-Length-Value (TLV) format.
          - `firstDigitOfPan` string — First digit of the card number.
          - `cardholderSignature` string — Cardholder's signature. For more information about how to format the signature, go to [How to send a signature to our gateway](https://docs.payroc.com/knowledge/basic-concepts/signature-capture).
          - `ebtDetails` EbtDetailsWithVoucher — Object that contains information about the Electronic Benefit Transfer (EBT) transaction.
            - `benefitCategory` 'cash' | 'foodStamp', required — Indicates if the balance relates to an EBT Cash account or an EBT SNAP account. - `cash` – EBT Cash - `foodStamp` – EBT SNAP
            - `withdrawal` boolean — Indicates whether the customer wants to withdraw cash. **Note:** Cash withdrawals are available only from EBT Cash accounts.
            - `voucher` Voucher — Object that contains information about the EBT voucher. **Note:** Vouchers are available only for EBT SNAP payments.
              - …
        - object — Object that contains information about the keyed card details.
          - `entryMethod` 'keyed', required — Discriminator value: keyed
          - `keyedData` union, required — Polymorphic object that contains payment card details that the merchant manually entered into the device. The value of the dataFormat parameter determines which variant you should use: - `fullyEncrypted` - All payment card details are encrypted. - `partiallyEncrypted` - Some payment card details are encrypted. - `plainText` - Payment card details are in plain text.
            - object — Object that contains information about the encrypted card data for keyed transactions.
              - …
            - object — Object that contains information about the partially-encrypted card data for keyed transactions.
              - …
            - object — Object that contains information about the plain-text card data for keyed transactions.
              - …
          - `cardholderName` string — Cardholder’s name.
          - `cardholderSignature` string — Cardholder's signature. For more information about how to format the signature, go to [How to send a signature to our gateway](https://docs.payroc.com/knowledge/basic-concepts/signature-capture).
          - `pinDetails` FxRateInquiryPaymentMethodDiscriminatorMappingCardCardDetailsDiscriminatorMappingKeyedPinDetails — Object that contains information about encrypted PIN details.
            - `dataFormat` 'dukpt', required — Discriminator value: dukpt
            - `pin` string, hexadecimal, required — Encrypted PIN. **Note:** PIN is encrypted using the DUKPT scheme.
            - `pinKsn` string, hexadecimal, required — Key serial number.
          - `ebtDetails` EbtDetailsWithVoucher — Object that contains information about the Electronic Benefit Transfer (EBT) transaction.
            - `benefitCategory` 'cash' | 'foodStamp', required — Indicates if the balance relates to an EBT Cash account or an EBT SNAP account. - `cash` – EBT Cash - `foodStamp` – EBT SNAP
            - `withdrawal` boolean — Indicates whether the customer wants to withdraw cash. **Note:** Cash withdrawals are available only from EBT Cash accounts.
            - `voucher` Voucher — Object that contains information about the EBT voucher. **Note:** Vouchers are available only for EBT SNAP payments.
              - …
        - object — Object that contains information about the customer’s card details for swiped transactions.
          - `entryMethod` 'swiped', required — Discriminator value: swiped
          - `downgradeTo` 'keyed' | 'swiped' — If an offline transaction is not approved using the initial entry method, reprocess the transaction using a downgraded entry method. For example, a swiped transaction can be downgraded to a keyed transaction.
          - `swipedData` union, required — Polymorphic object that contains payment card details that a device captured from the magnetic strip. The value of the dataFormat parameter determines which variant you should use: - `encrypted` - Payment card details are encrypted. - `plainText` - Payment card details are in plain text.
            - object — Object that contains information about the encrypted swiped card data.
              - …
            - object — Object that contains information about plain-text swiped card data.
              - …
          - `cardholderName` string — Cardholder’s name.
          - `cardholderSignature` string — Cardholder's signature. For more information about how to format the signature, go to [How to send a signature to our gateway](https://docs.payroc.com/knowledge/basic-concepts/signature-capture).
          - `pinDetails` FxRateInquiryPaymentMethodDiscriminatorMappingCardCardDetailsDiscriminatorMappingSwipedPinDetails — Object that contains information about encrypted PIN details.
            - `dataFormat` 'dukpt', required — Discriminator value: dukpt
            - `pin` string, hexadecimal, required — Encrypted PIN. **Note:** PIN is encrypted using the DUKPT scheme.
            - `pinKsn` string, hexadecimal, required — Key serial number.
          - `ebtDetails` EbtDetailsWithVoucher — Object that contains information about the Electronic Benefit Transfer (EBT) transaction.
            - `benefitCategory` 'cash' | 'foodStamp', required — Indicates if the balance relates to an EBT Cash account or an EBT SNAP account. - `cash` – EBT Cash - `foodStamp` – EBT SNAP
            - `withdrawal` boolean — Indicates whether the customer wants to withdraw cash. **Note:** Cash withdrawals are available only from EBT Cash accounts.
            - `voucher` Voucher — Object that contains information about the EBT voucher. **Note:** Vouchers are available only for EBT SNAP payments.
              - …
    - object — Object that contains information about the single-use token, which represents the customer’s payment details.
      - `type` 'singleUseToken', required — Discriminator value: singleUseToken
      - `accountType` 'checking' | 'savings' — Indicates the customer’s account type. **Note:** Send a value for accountType only if the single-use token represents bank account details.
      - `token` string, required — Unique token that the gateway assigned to the payment details.
      - `pinDetails` union — Polymorphic object that contains information about a customer's PIN. The value of the dataFormat parameter determines which variant you should use: - `dukpt` - PIN information is encrypted. - `raw` - PIN information is unencrypted.
        - object — Object that contains information about encrypted PIN details.
          - `dataFormat` 'dukpt', required — Discriminator value: dukpt
          - `pin` string, hexadecimal, required — Encrypted PIN. **Note:** PIN is encrypted using the DUKPT scheme.
          - `pinKsn` string, hexadecimal, required — Key serial number.
        - object — Object that contains information about the unencrypted PIN details.
          - `dataFormat` 'raw', required — Discriminator value: raw
          - `pin` string, required — Customer’s unencrypted PIN.
      - `ebtDetails` EbtDetailsWithVoucher — Object that contains information about the Electronic Benefit Transfer (EBT) transaction.
        - `benefitCategory` 'cash' | 'foodStamp', required — Indicates if the balance relates to an EBT Cash account or an EBT SNAP account. - `cash` – EBT Cash - `foodStamp` – EBT SNAP
        - `withdrawal` boolean — Indicates whether the customer wants to withdraw cash. **Note:** Cash withdrawals are available only from EBT Cash accounts.
        - `voucher` Voucher — Object that contains information about the EBT voucher. **Note:** Vouchers are available only for EBT SNAP payments.
          - `approvalCode` string, required — Authorization code that the processor issued for the transaction.
          - `serialNumber` string, required — Serial number of the voucher.
      - `secCode` 'web' | 'tel' | 'ccd' | 'ppd' — Indicates how the customer authorized the ACH transaction. Send one of the following values: - `web` – Online transaction. - `tel` – Telephone transaction. - `ccd` – Corporate credit or debit entry for a business bank account. - `ppd` – Pre-arranged transaction. **Note:** This field is mandatory when the single-use token represents ACH bank account details.
  - `threeDSecure` union — Polymorphic object that contains authentication information from 3-D Secure. The value of the type parameter determines which variant you should use: - `gatewayThreeDSecure` - Use our gateway to run a 3-D Secure check. - `thirdPartyThreeDSecure` - Use a third party to run a 3-D Secure check.
    - object — Object that contains the 3-D Secure information from our gateway.
      - `type` 'gatewayThreeDSecure', required — Discriminator value: gatewayThreeDSecure
      - `mpiReference` string, required — Reference that our gateway assigned to the 3-D Secure authentication response.
    - object — Object that contains the 3-D Secure information from a third party.
      - `type` 'thirdPartyThreeDSecure', required — Discriminator value: thirdPartyThreeDSecure
      - `eci` 'fullyAuthenticated' | 'authAttempted', required — E-commerce indicator (ECI) result of a the 3-D Secure check.
      - `xid` string — Unique transaction identifier that the merchant assigned to the transaction and sent in the authentication request.
      - `cavv` string — Cardholder Authentication Verification Value (CAVV) that the card issuer provided to prove that they authorized the online payment.
      - `dsTransactionId` string — Directory Server Transaction ID that the processor assigned to the request.
  - `customFields` CustomField[] — Array of customField objects.
    - `name` string, required — Name of the custom field.
    - `value` string, required — Value for the custom field.

## Response `201`

Successful request. We created a secure token that represents your customer's payment details.

- SecureToken — Object that contains information about the secure token.
  - `secureTokenId` string, required — Unique identifier that the merchant created for the secure token that represents the customer's payment details.
  - `processingTerminalId` string, required — Unique identifier that we assigned to the terminal.
  - `mitAgreement` 'unscheduled' | 'recurring' | 'installment' — Indicates how the merchant can use the customer's card details, as agreed by the customer: - `unscheduled` - Transactions for a fixed or variable amount that are run at a certain pre-defined event. - `recurring` - Transactions for a fixed amount that are run at regular intervals, for example, monthly. Recurring transactions don't have a fixed duration and run until the customer cancels the agreement. - `installment` - Transactions for a fixed amount that are run at regular intervals, for example, monthly. Installment transactions have a fixed duration.
  - `customer` RetrievedCustomer — Object that contains the customer's contact details and address information.
    - `firstName` string — Customer's first name.
    - `lastName` string — Customer's last name.
    - `dateOfBirth` string, date — Customer's date of birth. The format for this value is **YYYY-MM-DD**.
    - `referenceNumber` string — Identifier of the transaction, also known as a customer code. For requests, you must send a value for **referenceNumber** if the customer provides one.
    - `billingAddress` RetrievedAddress — Object that contains information about the address.
      - `address1` string — Address line 1.
      - `address2` string — Address line 2.
      - `address3` string — Address line 3.
      - `city` string — City.
      - `state` string — Name of the state or state abbreviation.
      - `country` string — Two-digit country code for the country that the business operates in. The format follows the [ISO-3166-1](https://www.iso.org/iso-3166-country-codes.html) standard.
      - `postalCode` string — Zip code or postal code.
    - `shippingAddress` RetrievedShipping — Object that contains information about the customer and their shipping address.
      - `recipientName` string — Recipient's name.
      - `address` RetrievedAddress — Object that contains information about the address.
        - `address1` string — Address line 1.
        - `address2` string — Address line 2.
        - `address3` string — Address line 3.
        - `city` string — City.
        - `state` string — Name of the state or state abbreviation.
        - `country` string — Two-digit country code for the country that the business operates in. The format follows the [ISO-3166-1](https://www.iso.org/iso-3166-country-codes.html) standard.
        - `postalCode` string — Zip code or postal code.
    - `contactMethods` ContactMethod[] — Array of polymorphic objects, which contain contact information. The value of the type parameter determines which variant you should use: - `email` - Email address - `phone` - Phone number - `mobile` - Mobile number - `fax` - Fax number
      - union
        - object — email variant
          - `type` 'email', required — Discriminator value: email
          - `value` string, required — Email address.
        - object — phone variant
          - `type` 'phone', required — Discriminator value: phone
          - `value` string, required — Phone number.
        - object — mobile variant
          - `type` 'mobile', required — Discriminator value: mobile
          - `value` string, required — Mobile number.
        - object — fax variant
          - `type` 'fax', required — Discriminator value: fax
          - `value` string, required — Fax number.
    - `notificationLanguage` 'en' | 'fr' — Language that the customer uses for notifications. This code follows the [ISO 639-1](https://www.iso.org/iso-639-language-code) alpha-2 standard.
  - `source` union, required — Polymorphic object that contains the payment method that we tokenized. The value of the type parameter determines which variant you should use: - `ach` - Automated Clearing House (ACH) details - `pad` - Pre-authorized debit (PAD) details - `card` - Payment card details
    - object — Object that contains the customer's account details.
      - `type` 'ach', required — Discriminator value: ach
      - `nameOnAccount` string, required — Customer's name.
      - `accountNumber` string, required — Customer's account number.
      - `routingNumber` string, required — Routing number of the customer's account.
    - object — Object that contains the customer's account details.
      - `type` 'pad', required — Discriminator value: pad
      - `nameOnAccount` string, required — Customer's name.
      - `accountNumber` string, required — Customer's account number.
      - `transitNumber` string, required — Five-digit code that represents the customer's banking branch.
      - `institutionNumber` string, required — Three-digit code that represents the customer's bank.
    - object — Object that contains the customer's card details.
      - `type` 'card', required — Discriminator value: card
      - `cardholderName` string, required — Cardholder's name.
      - `cardNumber` string, required — Primary account number of the customer's card.
      - `expiryDate` string — Expiry date of the customer's card.
      - `cardType` string — Card brand of the card, for example, Visa.
      - `currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'USS' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL' — Currency of the transaction. The value for the currency follows the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard.
      - `debit` boolean — Indicates if the card is a debit card.
      - `surcharging` Surcharging — Object that contains surcharge information. Our gateway returns this object only if the merchant adds a surcharge to transactions.
        - `allowed` boolean, required — Indicates if the merchant can add a surcharge when the customer uses this card.
        - `amount` integer — Surcharge amount to add to the transaction. **Note:** Our gateway returns the surcharge amount only if you include a transaction amount in the request.
        - `percentage` number, double — Surcharge rate that the merchant configures on their account.
        - `disclosure` string — Statement that informs the customer about the surcharge fee.
  - `token` string, required — Token that the merchant can use in future transactions to represent the customer's payment details. The token: - Begins with the six-digit identification number **296753**. - Contains up to 12 digits. - Contains a single check digit that we calculate using the Luhn algorithm.
  - `status` 'notValidated' | 'cvvValidated' | 'validationFailed' | 'issueNumberValidated' | 'cardNumberValidated' | 'bankAccountValidated', required — Outcome of a security check on the status of the customer's payment card or bank account. **Note:** Depending on the merchant's account settings, this feature may be unavailable.
  - `customFields` CustomField[] — Array of customField objects.
    - `name` string, required — Name of the custom field.
    - `value` string, required — Value for the custom field.

## Other responses

- `400` — Validation error
- `401` — Identity could not be verified
- `403` — Do not have permissions to perform this action
- `406` — Not acceptable
- `409` — Conflict
- `415` — Unsupported media type
- `500` — An error has occured

---

[API](https://skmtc.dev/payroc/apis/schema.md) · [All operations](https://skmtc.dev/payroc/apis/schema/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/payroc/schema/revisions/1d9d3e305945/schema)
