--- title: "BIN data and card verification" url: "https://docs.adyen.com/payment-methods/cards/bin-data-and-card-verification" source_url: "https://docs.adyen.com/payment-methods/cards/bin-data-and-card-verification.md" canonical: "https://docs.adyen.com/payment-methods/cards/bin-data-and-card-verification" last_modified: "2019-10-15T14:19:00+02:00" language: "en" --- # BIN data and card verification [View source](/payment-methods/cards/bin-data-and-card-verification.md) You may want to verify card validity and [BIN data](/get-started-with-adyen/adyen-glossary/#bank-identification-number-bin), for example before applying credit/debit surcharges or promotional offers based on BIN codes. ## Submit a BIN or card verification request Submit an authorisation request with a currency value amounting to 0 (*zero-value auth*). The currency should match the eventual transaction currency. A zero-value auth requests the Adyen payments platform to submit a card verification call to the acquirer. The call returns a `resultCode` whose value can be `Authorised`, `Refused`, or `Error`. Not all acquirers and issuers support card verification through zero-value auth. When your transactions are routed to an acquirer or issuer that does not support this feature, the Adyen payments platform automatically submits a EUR 1 authorisation, which is immediately followed by an automatic authorisation cancellation. For other currencies, an approximate value equivalent to EUR 1 is used. For example, 1000 Korean Won (KRW), as 1 KRW is too low an amount to be authorised. In this case, the webhook you receive after the authorisation request includes the `additionalAmount` field to notify the amount used for the card verification (for example, 1000 Korean Won). If you want to force a card verification request to use a non-zero value, you need to include the `additionalAmount` field to specify the amount to use. The standard amount field value still needs to be 0 (zero) to allow the Adyen payments platform to recognize the transaction as a non-zero amount validation, instead of an actual low-value transaction authorisation. This action triggers an automatic cancellation by the Adyen payments platform, following the authorisation. To be accepted by the schemes, the value specified in the `additionalAmount` field needs to be higher than the currency equivalent of USD 0.02. If a card issuer always requires [3D Secure](/online-payments/classic-integrations/classic-api-integration/3d-secure-authentication/3d-secure-1/) to confirm every payment and also doesn't support zero-value authorisations (for example, Bancontact), Adyen can not automatically submit a EUR 1 authorisation instead of zero-value auth. In this case, you need to submit a non-zero value authorisation request. Examples of BIN data/card verification request (zero value authorisation): #### JSON ```json { "card" : { "number" : "4111111111111111", "expiryMonth" : "8", "expiryYear" : "2018", "cvc" : "737", "holderName" : "Adyen Test" }, "amount" : { "value" : 0, "currency" : "EUR" }, "reference" : "Your Reference Here", "merchantAccount" : "TestMerchant", "shopperEmail" : "s.hopper@test.com", "shopperIP" : "61.294.12.12", "shopperReference" : "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j" } ``` #### Soap ```xml EUR 0 737 08 2018 Adyen Test 4111111111111111 TestMerchant Your Reference Here s.hopper@test.com YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j ``` #### Form ```html merchantAccount=TestMerchant&amount.value=0&card.expiryYear=2018&amount.currency=EUR&card.cvc=737&card.number=4111111111111111&card.holderName=Adyen+Test&card.expiryMonth=08&reference=Your+Reference+Here&shopperReference=YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j&shopperEmail=s.hopper%40test.com ``` Examples of BIN data/card verification request (non-zero value authorisation) with `additionalAmount`: #### JSON ```json { "card" : { "number" : "4111111111111111", "expiryMonth" : "8", "expiryYear" : "2018", "cvc" : "737", "holderName" : "Adyen Test" }, "amount" : { "value" : 0, "currency" : "EUR" }, "additionalAmount" : { "value" : 100, "currency" : "EUR" }, "reference" : "Your Reference Here", "merchantAccount" : "TestMerchant", "shopperEmail" : "s.hopper@test.com", "shopperIP" : "61.294.12.12", "shopperReference" : "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j" } ``` #### Soap ```xml EUR 0 EUR 100 737 08 2018 Adyen Test 4111111111111111 TestMerchant Your Reference Here s.hopper@test.com YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j ``` #### Form ```html merchantAccount=TestMerchant&amount.value=0&amount.currency=EUR&additionalAmount.value=100&additionalAmount.currency=EUR&card.expiryYear=2018&card.cvc=737&card.number=4111111111111111&card.holderName=Adyen+Test&card.expiryMonth=08&reference=Your+Reference+Here&shopperReference=YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j&shopperEmail=s.hopper%40test.com ``` ## Receive a BIN or card verification response A zero-value auth response includes, among others, the following details: * The authorisation request outcome (successful/failed). * If the authorisation request failed, an error message is included in the response. An `additionalData` container object can also be included. This can contain information such as the:  * `cardBin` field holding BIN information. * `authorisedAmountValue` and `authorisedAmountCurrency` fields which hold the amount and currency of the authorisation. The `additionalData` object needs to be configured to include this data in the response. For more information, refer to [this FAQ article](https://help.adyen.com/knowledge/ecommerce-integrations/integrations-basics/how-do-i-configure-additionaldata-in-the-payments-or-authorisze-response/). After enabling it, you will be able to receive the  [PaymentResult.additionalData](https://docs.adyen.com/api-explorer/Payment/latest/post/authorise#responses-200-additionalData) fields as child elements of the `additionalData` container object. The system sends the information as a webhook following a zero-value auth request. Examples of JSON BIN data/card verification response (non-zero value authorisation): #### JSON ```json { "additionalData":{ "cardPaymentMethod":"amex", "cardIssuingBank":"American Express US Consumer", "cardIssuingCountry":"US", "cardIssuingCurrency":"USD", "cardBin":"373731", "authorisedAmountValue":"1000", "authorisedAmountCurrency":"EUR", "fundingSource":"CREDIT", "payoutEligible":"Y", "fundsAvailability":"I" }, "pspReference":"9914229541655140", "refusalReason":"Acquirer Error", "resultCode":"Error" } ``` #### Soap ```xml cardPaymentMethod amex cardIssuingBank American Express US Consumer cardIssuingCountry US cardIssuingCurrency USD cardBin 373731 authorisedAmountValue 1000 authorisedAmountCurrency EUR fundingSource CREDIT payoutEligible Y fundsAvailability I 9914229541655140 Acquirer Error Error ``` #### Form ```html additionalData.cardPaymentMethod=amex&additionalData.cardIssuingBank=American+Express+US+Consumer&additionalData.cardIssuingCountry=US&additionalData.cardIssuingCurrency=USD&additionalData.cardBin=373731&additionalData.authorisedAmountValue=1000&additionalData.authorisedAmountCurrency=EUR&additionalData.fundingSource=CREDIT&payoutEligible=Y&fundsAvailability=I&pspReference=9914229541655140&refusalReason=Acquirer+Error&resultCode=Error ```