---
title: "Look up BIN information"
method: POST
path: "/cards/bin-lookup"
tags: ["Cards"]
---

# Look up BIN information

`POST /cards/bin-lookup`

Use this method to retrieve information about a debit card, a credit card, or an EBT card. If you apply surcharges to transactions, you can also check if the card supports surcharging.  

In the response, our gateway returns the following information about the card:  

- **Card details** - Information about the card, for example, the issuing bank and the masked card number.  

- **Surcharging information** - If you apply a surcharge to transactions, our gateway checks that the card supports surcharging and returns information about the surcharge. For more information about surcharging, go to [Credit card surcharging](https://docs.payroc.com/knowledge/card-payments/credit-card-surcharging).

## Headers

- `Authorization` string, required

## Request body

- BinLookup
  - `processingTerminalId` string — Unique identifier that we assigned to the terminal. We recommend that you include the `processingTerminalId` to make sure that we return the correct surcharge information for the terminal.
  - `amount` integer — Transaction amount that you send to check the surcharge amount. The value is in the currency's lowest denomination, for example, cents.
  - `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.
  - `card` union, required — Polymorphic object that contains payment details. The value of the type parameter determines which variant you should use: - `card` - Payment card details - `cardBin` - Bank identification number (BIN) of the payment card - `secureToken` - Secure token details - `digitalWallet` - Digital wallet details
    - 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 card's bank identification number (BIN).
      - `type` 'cardBin', required — Discriminator value: cardBin
      - `bin` string, required
    - object — Object that contains information about the secure token that represents the customer’s payment details.
      - `type` 'secureToken', required — Discriminator value: secureToken
      - `accountType` 'checking' | 'savings' — Indicates the customer’s account type. **Note:** Send a value for accountType only if the secure token represents bank account details.
      - `token` string, required — Unique token that the gateway assigned to the payment details.
      - `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 secure token represents ACH bank account details.
    - object — Object that contains information about the payment details in the customer’s digital wallet.
      - `type` 'digitalWallet', required — Discriminator value: digitalWallet
      - `accountType` 'checking' | 'savings' — Indicates the customer’s account type. **Note:** Send a value for accountType only for bank account details.
      - `serviceProvider` 'apple' | 'google', required — Provider of the digital wallet. Send one of the following values: - `apple` - For more information about how to integrate with Apple Pay, go to [Apple Pay®](https://docs.payroc.com/guides/take-payments/apple-pay). - `google` - For more information about how to integrate with google Pay, go to [Google Pay®](https://docs.payroc.com/guides/take-payments/google-pay).
      - `cardholderName` string — Cardholder’s name.
      - `encryptedData` string, required — Encrypted data of the digital wallet.

## Response `200`

Successful request. Returns the BIN information.

- CardInfo — Object that contains information about the card.
  - `type` string, required — Card brand of the card, for example, Visa.
  - `cardNumber` string, required — Masked card number. Our gateway shows only the first six digits and the last four digits of the card number, for example, 548010******5929.
  - `country` string, iso-3166-1 — Country of the issuing bank. The value for the country follows the [ISO-3166-1](https://www.iso.org/iso-3166-country-codes.html) standard.
  - `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.
  - `healthcare` boolean — Indicates if the card is linked to a Flexible Spending Account (FSA) or a Health Savings Account (HSA). The value is one of the following: - `true` - Card is linked to an FSA or an HSA. - `false` - Card isn't linked to an FSA or an HSA.
  - `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.

## Other responses

- `400` — Invalid request
- `401` — Identity could not be verified
- `403` — Do not have permissions to perform this action
- `404` — Resource not found
- `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)
