"Adyen BinLookup API skill. Use when working with Adyen BinLookup for get3dsAvailability, getCostEstimate. Covers 2 endpoints."
Resources
1Install
npx skillscat add lap-platform/claude-marketplace/adyen-binlookup-api Install via the SkillsCat registry.
SKILL.md
Adyen BinLookup API
API version: 54
Auth
ApiKey X-API-Key in header | Bearer basic
Base URL
https://pal-test.adyen.com/pal/servlet/BinLookup/v54
Setup
- Set Authorization header with your Bearer token
- POST /get3dsAvailability -- create first get3dsAvailability
Endpoints
2 endpoints across 2 groups. See references/api-spec.lap for full details.
get3dsAvailability
| Method | Path | Description |
|---|---|---|
| POST | /get3dsAvailability | Check if 3D Secure is available |
getCostEstimate
| Method | Path | Description |
|---|---|---|
| POST | /getCostEstimate | Get a fees cost estimate |
Enhanced Skill Content
Question Mapping
- "Is 3D Secure available for this card?" -> POST /get3dsAvailability
- "Does this card support 3DS2?" -> POST /get3dsAvailability
- "What 3DS version should I use for this BIN?" -> POST /get3dsAvailability
- "Check if a stored card supports 3D Secure" -> POST /get3dsAvailability (using recurringDetailReference + shopperReference)
- "What country issued this card?" -> POST /get3dsAvailability (check binDetails.issuerCountry) or POST /getCostEstimate (check cardBin.issuingCountry)
- "How much will processing this payment cost?" -> POST /getCostEstimate
- "What are the interchange fees for this card?" -> POST /getCostEstimate
- "Is this card commercial or consumer?" -> POST /getCostEstimate (check cardBin.commercial)
- "What funding source does this card use - credit or debit?" -> POST /getCostEstimate (check cardBin.fundingSource)
- "Can this card be used for payouts?" -> POST /getCostEstimate (check cardBin.payoutEligible)
- "Estimate cost for a recurring/subscription payment" -> POST /getCostEstimate (with recurring block and shopperInteraction: ContAuth)
- "What's the cost difference with and without 3DS?" -> POST /getCostEstimate twice (toggle assume3DSecureAuthenticated)
- "Estimate cost for an installment payment" -> POST /getCostEstimate (with assumptions.installments)
- "What payment method does this card number map to?" -> POST /getCostEstimate (check cardBin.paymentMethod)
Response Tips
- 3DS Availability: Check both
threeDS1SupportedandthreeDS2supported(note lowercase 's') to determine which flow to implement;threeDS2CardRangeDetailscontains per-range protocol data needed for 3DS2 fingerprinting. - Cost Estimate:
costEstimateAmountreturns the fee in minor units (cents), not the transaction amount;resultCodeindicates whether the estimate is final or approximate. - Card BIN details:
cardBinfields may be partially populated depending on BIN coverage;fundsAvailabilityandpayoutEligiblecan be empty strings rather than null when data is unavailable. - Errors: 422 indicates valid JSON but semantically invalid input (bad card number, unknown merchant account); 401/403 distinguish between missing credentials and insufficient permissions.
Anomaly Flags
- 3DS2 unsupported: Surface when
threeDS2supportedis false butthreeDS1Supportedis true -- merchant should prepare a 3DS1 fallback flow. - Neither 3DS version supported: Alert when both
threeDS1SupportedandthreeDS2supportedare false -- card cannot be strongly authenticated, which may block transactions in SCA-regulated regions. - Commercial card detected: Flag when
cardBin.commercialis true -- surcharging rules and interchange rates differ significantly. - Payout ineligible: Surface when
cardBin.payoutEligibleis not "Y" if the merchant plans to issue refunds-to-card or payouts. - Cost estimate missing: Flag when
costEstimateAmountis absent or zero -- may indicate the BIN is unrecognized or the MCC is misconfigured. - Auth errors (401/403): Proactively check if the API key has BinLookup permissions enabled in the Adyen Customer Area.
- Issuing country mismatch: Surface when
cardBin.issuingCountrydiffers from the shopper's billing country -- potential cross-border fee implications.
Playbook
1. Determine the Right 3DS Flow Before Payment
- Call
POST /get3dsAvailabilitywithmerchantAccountandcardNumber. - Check
threeDS2supported-- if true, initiate a 3DS2 authentication flow. - If false, check
threeDS1Supported-- if true, fall back to 3DS1. - If neither is supported, proceed without 3DS (or block in SCA-regulated regions).
- Use
threeDS2CardRangeDetailsto configure the 3DS2 SDK with the correct directory server data.
2. Estimate Processing Cost Before Checkout
- Build the
amountobject with the transactioncurrency(ISO 4217) andvalue(minor units, e.g., 1000 = 10.00 EUR). - Call
POST /getCostEstimatewithamount,merchantAccount, andcardNumber. - Read
costEstimateAmount.valueto get the estimated fee in minor units. - Optionally set
assumptions.assume3DSecureAuthenticated: trueto see how 3DS reduces interchange. - Display or log the cost breakdown using
cardBinmetadata (funding source, issuing country, payment method).
3. Evaluate a Stored Card for Recurring Payments
- Call
POST /get3dsAvailabilitywithrecurringDetailReference,shopperReference, andmerchantAccountto check 3DS support without re-entering the card number. - Call
POST /getCostEstimatewithselectedRecurringDetailReference,shopperInteraction: "ContAuth", and arecurringblock specifying the contract type. - Compare the cost estimate against a one-time payment estimate (
shopperInteraction: "Ecommerce") to understand recurring fee differences.
4. Cross-Border Fee Analysis
- Call
POST /getCostEstimatewith the card number and yourmerchantDetails(includingcountryCodeandmcc). - Check
cardBin.issuingCountryagainstmerchantDetails.countryCode. - If they differ, the transaction is cross-border -- expect higher interchange.
- Repeat with
assumptions.assumeLevel3Data: trueto see if providing Level 3 data (line-item details) reduces the cost. - Log the
costEstimateReferencefor reconciliation with actual settlement costs.
5. BIN Intelligence Lookup
- Call
POST /getCostEstimatewith a minimal payload:amount,merchantAccount, andcardNumber(first 6-8 digits suffice). - Extract
cardBinfields:issuingBank,issuingCountry,fundingSource(credit/debit/prepaid),commercial,paymentMethod. - Use
payoutEligibleto determine if the card can receive funds. - Use
fundsAvailabilityto understand settlement timing characteristics. - Cache results by BIN prefix to reduce redundant lookups for cards from the same issuer.
Response Tips
- Check response schemas in references/api-spec.lap for field details
- Create/update endpoints typically return the created/updated object
References
- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas
Generated from the official API spec by LAP