---
title: "Get a fees cost estimate"
method: POST
path: "/getCostEstimate"
tags: ["General"]
---

# Get a fees cost estimate

`POST /getCostEstimate`

>This API is available only for merchants operating in Australia, the EU, and the UK.

Use the Adyen Cost Estimation API to pre-calculate interchange and scheme fee costs. Knowing these costs prior actual payment authorisation gives you an opportunity to charge those costs to the cardholder, if necessary.

To retrieve this information, make the call to the `/getCostEstimate` endpoint. The response to this call contains the amount of the interchange and scheme fees charged by the network for this transaction, and also which surcharging policy is possible (based on current regulations).

> Since not all information is known in advance (for example, if the cardholder will successfully authenticate via 3D Secure or if you also plan to provide additional Level 2/3 data), the returned amounts are based on a set of assumption criteria you define in the `assumptions` parameter.

## Request body

- CostEstimateRequest
  - `amount` Amount, required
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `assumptions` CostEstimateAssumptions
    - `assume3DSecureAuthenticated` boolean — If true, the cardholder is expected to successfully authorise via 3D Secure.
    - `assumeLevel3Data` boolean — If true, the transaction is expected to have valid Level 3 data.
    - `installments` integer — If not zero, the number of installments.
  - `cardNumber` string — The card number (4-19 characters) for PCI compliant use cases. Do not use any separators. > Either the `cardNumber` or `encryptedCardNumber` field must be provided in a payment request.
  - `encryptedCardNumber` string — Encrypted data that stores card information for non PCI-compliant use cases. The encrypted data must be created with the Checkout Card Component or Secured Fields Component, and must contain the `encryptedCardNumber` field. > Either the `cardNumber` or `encryptedCardNumber` field must be provided in a payment request.
  - `merchantAccount` string, required — The merchant account identifier you want to process the (transaction) request with.
  - `merchantDetails` MerchantDetails
    - `countryCode` string — 2-letter ISO 3166 country code of the card acceptor location. > This parameter is required for the merchants who don't use Adyen as the payment authorisation gateway.
    - `enrolledIn3DSecure` boolean — If true, indicates that the merchant is enrolled in 3D Secure for the card network.
    - `mcc` string — The merchant category code (MCC) is a four-digit number which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant. The list of MCCs can be found [here](https://en.wikipedia.org/wiki/Merchant_category_code).
  - `recurring` Recurring
    - `contract` 'ONECLICK' | 'ONECLICK,RECURRING' | 'RECURRING' | 'PAYOUT' | 'EXTERNAL' — The type of recurring contract to be used. Possible values: * `ONECLICK` – Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid). * `RECURRING` – Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-not-present-cnp). * `ONECLICK,RECURRING` – Payment details can be used regardless of whether the shopper is on your site or not. * `PAYOUT` – Payment details can be used to [make a payout](https://docs.adyen.com/online-payments/online-payouts). * `EXTERNAL` - Use this when you store payment details and send the raw card number or network token directly in your API request.
    - `recurringDetailName` string — A descriptive name for this detail.
    - `recurringExpiry` string, date-time — Date after which no further authorisations shall be performed. Only for 3D Secure 2.
    - `recurringFrequency` string — Minimum number of days between authorisations. Only for 3D Secure 2.
    - `tokenService` 'VISATOKENSERVICE' | 'MCTOKENSERVICE' | 'AMEXTOKENSERVICE' | 'TOKEN_SHARING' — The name of the token service.
  - `selectedRecurringDetailReference` string — The `recurringDetailReference` you want to use for this cost estimate. The value `LATEST` can be used to select the most recently stored recurring detail.
  - `shopperInteraction` 'Ecommerce' | 'ContAuth' | 'Moto' | 'POS' — Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer. For the web service API, Adyen assumes Ecommerce shopper interaction by default. This field has the following possible values: * `Ecommerce` - Online transactions where the cardholder is present (online). For better authorisation rates, we recommend sending the card security code (CSC) along with the request. * `ContAuth` - Card on file and/or subscription transactions, where the card holder is known to the merchant (returning customer). If the shopper is present (online), you can supply also the CSC to improve authorisation (one-click payment). * `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone. * `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.
  - `shopperReference` string — Required for recurring payments. Your reference to uniquely identify this shopper, for example user ID or account ID. The value is case-sensitive and must be at least three characters. > Your reference must not include personally identifiable information (PII) such as name or email address.

## Response `200`

OK - the request has succeeded.

- CostEstimateResponse
  - `cardBin` CardBin
    - `bin` string — The first 6 digit of the card number. Enable this field via merchant account settings.
    - `commercial` boolean — If true, it indicates a commercial card. Enable this field via merchant account settings.
    - `fundingSource` string — The card funding source. Valid values are: * CHARGE * CREDIT * DEBIT * DEFERRED_DEBIT * PREPAID * PREPAID_RELOADABLE * PREPAID_NONRELOADABLE > Enable this field via merchant account settings.
    - `fundsAvailability` string — Indicates availability of funds. Visa: * "I" (fast funds are supported) * "N" (otherwise) Mastercard: * "I" (product type is Prepaid or Debit, or issuing country is in CEE/HGEM list) * "N" (otherwise) > Returned when you verify a card BIN or estimate costs, and only if `payoutEligible` is different from "N" or "U".
    - `issuingBank` string — The issuing bank of the card.
    - `issuingCountry` string — The country where the card was issued from.
    - `issuingCurrency` string — The currency of the card.
    - `paymentMethod` string — The payment method associated with the card (e.g. visa, mc, or amex).
    - `payoutEligible` string — Indicates whether a payout is eligible or not for this card. Visa: * "Y" * "N" Mastercard: * "Y" (domestic and cross-border) * "D" (only domestic) * "N" (no MoneySend) * "U" (unknown) > Returned when you verify a card BIN or estimate costs, and only if `payoutEligible` is different from "N" or "U".
    - `summary` string — The last four digits of the card number.
  - `costEstimateAmount` Amount
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `resultCode` string — The result of the cost estimation.

## Other responses

- `400` — Bad Request - a problem reading or understanding the request.
- `401` — Unauthorized - authentication required.
- `403` — Forbidden - insufficient permissions to process the request.
- `422` — Unprocessable Entity - a request validation error.
- `500` — Internal Server Error - the server could not process the request.

---

[API](https://skmtc.net/adyen/apis/binlookupservice.md) · [All operations](https://skmtc.net/adyen/apis/binlookupservice/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/adyen/binlookupservice/versions/0e29a2e42c98/schema)
