---
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
```