{"files":{"SKILL.md":"---\nname: adyen-checkout-api\ndescription: \"Adyen Checkout API skill. Use when working with Adyen Checkout for applePay, cancels, cardDetails. Covers 28 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Adyen Checkout API\nAPI version: 71\n\n## Auth\nApiKey X-API-Key in header | Bearer basic\n\n## Base URL\nhttps://checkout-test.adyen.com/v71\n\n## Setup\n1. Set Authorization header with Bearer token\n2. GET /storedPaymentMethods -- get tokens for stored payment details\n3. POST /applePay/sessions -- create first session\n\n## Endpoints\n28 endpoints across 15 groups. See references/api-spec.lap for full details.\n\n### ApplePay\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /applePay/sessions | Get an Apple Pay session |\n\n### Cancels\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /cancels | Cancel an authorised payment |\n\n### CardDetails\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /cardDetails | Get the brands and other details of a card |\n\n### DonationCampaigns\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /donationCampaigns | Get a list of donation campaigns. |\n\n### Donations\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /donations | Make a donation |\n\n### Forward\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /forward | Forward stored payment details |\n\n### Orders\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /orders | Create an order |\n| POST | /orders/cancel | Cancel an order |\n\n### OriginKeys\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /originKeys | Create originKey values for domains |\n\n### PaymentLinks\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /paymentLinks | Create a payment link |\n| GET | /paymentLinks/{linkId} | Get a payment link |\n| PATCH | /paymentLinks/{linkId} | Update the status of a payment link |\n\n### PaymentMethods\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /paymentMethods | Get a list of available payment methods |\n| POST | /paymentMethods/balance | Get the balance of a gift card |\n\n### Payments\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /payments | Start a transaction |\n| POST | /payments/details | Submit details for a payment |\n| POST | /payments/{paymentPspReference}/amountUpdates | Update an authorised amount |\n| POST | /payments/{paymentPspReference}/cancels | Cancel an authorised payment |\n| POST | /payments/{paymentPspReference}/captures | Capture an authorised payment |\n| POST | /payments/{paymentPspReference}/refunds | Refund a captured payment |\n| POST | /payments/{paymentPspReference}/reversals | Refund or cancel a payment |\n\n### Paypal\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /paypal/updateOrder | Updates the order for PayPal Express Checkout |\n\n### Sessions\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /sessions | Create a payment session |\n| GET | /sessions/{sessionId} | Get the result of a payment session |\n\n### StoredPaymentMethods\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /storedPaymentMethods | Get tokens for stored payment details |\n| POST | /storedPaymentMethods | Create a token to store payment details |\n| DELETE | /storedPaymentMethods/{storedPaymentMethodId} | Delete a token for stored payment details |\n\n### ValidateShopperId\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /validateShopperId | Validates shopper Id |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a session?\" -> POST /applePay/sessions\n- \"Create a cancel?\" -> POST /cancels\n- \"Create a cardDetail?\" -> POST /cardDetails\n- \"Create a donationCampaign?\" -> POST /donationCampaigns\n- \"Create a donation?\" -> POST /donations\n- \"Create a forward?\" -> POST /forward\n- \"Create a order?\" -> POST /orders\n- \"Create a originKey?\" -> POST /originKeys\n- \"Create a paymentLink?\" -> POST /paymentLinks\n- \"Get paymentLink details?\" -> GET /paymentLinks/{linkId}\n- \"Partially update a paymentLink?\" -> PATCH /paymentLinks/{linkId}\n- \"Create a paymentMethod?\" -> POST /paymentMethods\n- \"Create a balance?\" -> POST /paymentMethods/balance\n- \"Create a payment?\" -> POST /payments\n- \"Create a detail?\" -> POST /payments/details\n- \"Create a amountUpdate?\" -> POST /payments/{paymentPspReference}/amountUpdates\n- \"Create a capture?\" -> POST /payments/{paymentPspReference}/captures\n- \"Create a refund?\" -> POST /payments/{paymentPspReference}/refunds\n- \"Create a reversal?\" -> POST /payments/{paymentPspReference}/reversals\n- \"Create a updateOrder?\" -> POST /paypal/updateOrder\n- \"Get session details?\" -> GET /sessions/{sessionId}\n- \"List all storedPaymentMethods?\" -> GET /storedPaymentMethods\n- \"Create a storedPaymentMethod?\" -> POST /storedPaymentMethods\n- \"Delete a storedPaymentMethod?\" -> DELETE /storedPaymentMethods/{storedPaymentMethodId}\n- \"Create a validateShopperId?\" -> POST /validateShopperId\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Adyen Checkout API\n@base https://checkout-test.adyen.com/v71\n@version 71\n@auth ApiKey X-API-Key in header | Bearer basic\n@endpoints 28\n@hint download_for_search\n@toc applePay(1), cancels(1), cardDetails(1), donationCampaigns(1), donations(1), forward(1), orders(2), originKeys(1), paymentLinks(3), paymentMethods(2), payments(7), paypal(1), sessions(2), storedPaymentMethods(3), validateShopperId(1)\n\n@group applePay\n@endpoint POST /applePay/sessions\n@desc Get an Apple Pay session\n@required {displayName: str # This is the name that your shoppers will see in the Apple Pay interface.  The value returned as `configuration.merchantName` field from the [`/paymentMethods`](https://docs.adyen.com/api-explorer/#/CheckoutService/latest/post/paymentMethods) response., domainName: str # The domain name you provided when you added Apple Pay in your Customer Area.  This must match the `window.location.hostname` of the web shop., merchantIdentifier: str # Your merchant identifier registered with Apple Pay.  Use the value of the `configuration.merchantId` field from the [`/paymentMethods`](https://docs.adyen.com/api-explorer/#/CheckoutService/latest/post/paymentMethods) response.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID).}\n@returns(200) {data: str} # OK - the request has succeeded.\n@example_request {\"displayName\":\"YOUR_MERCHANT_NAME\",\"domainName\":\"YOUR_DOMAIN_NAME\",\"merchantIdentifier\":\"YOUR_MERCHANT_ID\"}\n\n@endgroup\n\n@group cancels\n@endpoint POST /cancels\n@desc Cancel an authorised payment\n@required {merchantAccount: str # The merchant account that is used to process the payment., paymentReference: str # The [`reference`](https://docs.adyen.com/api-explorer/#/CheckoutService/latest/post/payments__reqParam_reference) of the payment that you want to cancel.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, enhancedSchemeData: map{airline: map, levelTwoThree: map}, reference: str # Your reference for the cancel request. Maximum length: 80 characters.}\n@returns(201) {merchantAccount: str, paymentReference: str, pspReference: str, reference: str, status: str} # Created - the request has been fulfilled and has resulted in one or more new resources being created.\n@errors {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.}\n@example_request {\"paymentReference\":\"YOUR_UNIQUE_REFERENCE_FOR_THE_PAYMENT\",\"reference\":\"YOUR_UNIQUE_REFERENCE_FOR_THE_CANCELLATION\",\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\"}\n\n@endgroup\n\n@group cardDetails\n@endpoint POST /cardDetails\n@desc Get the brands and other details of a card\n@required {merchantAccount: str # The merchant account identifier, with which you want to process the transaction.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., cardNumber: str # A minimum of the first six digits of the card number. The full card number gives the best result.   You must be [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide) to collect raw card data. Alternatively, you can use the `encryptedCardNumber` field., countryCode: str # The shopper country code.  Format: [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) Example: NL or DE, encryptedCardNumber: str # The encrypted card number., supportedBrands: [str] # The card brands you support. This is the [`brands`](https://docs.adyen.com/api-explorer/Checkout/latest/post/paymentMethods#responses-200-paymentMethods-brands) array from your [`/paymentMethods`](https://docs.adyen.com/api-explorer/#/CheckoutService/latest/post/paymentMethods) response.   If not included, our API uses the ones configured for your merchant account and, if provided, the country code.}\n@returns(200) {brands: [map], fundingSource: str, isCardCommercial: bool, issuingCountryCode: str} # OK - the request has succeeded.\n@example_request {\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"cardNumber\":\"411111\"}\n\n@endgroup\n\n@group donationCampaigns\n@endpoint POST /donationCampaigns\n@desc Get a list of donation campaigns.\n@required {currency: str # The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes/)., merchantAccount: str # Your merchant account identifier.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., locale: str # Locale on the shopper interaction device., store: str # Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment.}\n@returns(200) {donationCampaigns: [map]} # OK - the request has succeeded.\n@errors {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.}\n@example_request {\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"currency\":\"EUR\"}\n\n@endgroup\n\n@group donations\n@endpoint POST /donations\n@desc Make a donation\n@required {amount: map{currency!: str, value!: int(int64)}, merchantAccount: str # The merchant account identifier, with which you want to process the transaction., reference: str # The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement. If you need to provide multiple references for a transaction, separate them with hyphens (\"-\"). Maximum length: 80 characters., returnUrl: str # The URL to return to in case of a redirection. The format depends on the channel.  * For web, include the protocol `http://` or `https://`. You can also include your own additional query parameters, for example, shopper ID or order reference number. Example: `https://your-company.example.com/checkout?shopperOrder=12xy` * For iOS, use the custom URL for your app. To know more about setting custom URL schemes, refer to the [Apple Developer documentation](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app). Example: `my-app://` * For Android, use a custom URL handled by an Activity on your app. You can configure it with an [intent filter](https://developer.android.com/guide/components/intents-filters). Example: `my-app://your.package.name`  If the URL to return to includes non-ASCII characters, like spaces or special letters, URL encode the value.  We strongly recommend that you use a maximum of 1024 characters.  > The URL must not include personally identifiable information (PII), for example name or email address.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., accountInfo: map{accountAgeIndicator: str, accountChangeDate: str(date-time), accountChangeIndicator: str, accountCreationDate: str(date-time), accountType: str, addCardAttemptsDay: int(int32), deliveryAddressUsageDate: str(date-time), deliveryAddressUsageIndicator: str, homePhone: str, mobilePhone: str, passwordChangeDate: str(date-time), passwordChangeIndicator: str, pastTransactionsDay: int(int32), pastTransactionsYear: int(int32), paymentAccountAge: str(date-time), paymentAccountIndicator: str, purchasesLast6Months: int(int32), suspiciousActivity: bool, workPhone: str}, additionalData: map # This field contains additional data, which may be required for a particular payment request.  The `additionalData` object consists of entries, each of which includes the key and value., applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, authenticationData: map{attemptAuthentication: str, authenticationOnly: bool, threeDSRequestData: map}, billingAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, browserInfo: map{acceptHeader!: str, colorDepth!: int(int32), javaEnabled!: bool, javaScriptEnabled: bool, language!: str, screenHeight!: int(int32), screenWidth!: int(int32), timeZoneOffset!: int(int32), userAgent!: str}, channel: str(iOS/Android/Web) # The platform where a payment transaction takes place. This field is optional for filtering out payment methods that are only available on specific platforms. If this value is not set, then we will try to infer it from the `sdkVersion` or `token`.  Possible values: * iOS * Android * Web, checkoutAttemptId: str # Checkout attempt ID that corresponds to the Id generated by the client SDK for tracking user payment journey., conversionId: str # Conversion ID that corresponds to the Id generated by the client SDK for tracking user payment journey., countryCode: str # The shopper country code.  Format: [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) Example: NL or DE, dateOfBirth: str(date-time) # The shopper's date of birth.  Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD, deliverAt: str(date-time) # The date and time the purchased goods should be delivered.  Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD  Example: 2017-07-17T13:42:40.428+01:00, deliveryAddress: map{city!: str, country!: str, firstName: str, houseNumberOrName!: str, lastName: str, postalCode!: str, stateOrProvince: str, street!: str}, deviceFingerprint: str # A string containing the shopper's device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting)., donationAccount: str # Donation account to which the transaction is credited., donationCampaignId: str # The donation campaign ID received in the `/donationCampaigns` call., donationOriginalPspReference: str # PSP reference of the transaction from which the donation token is generated. Required when `donationToken` is provided., donationToken: str # Donation token received in the `/payments` call., lineItems: [map{amountExcludingTax: int(int64), amountIncludingTax: int(int64), brand: str, color: str, description: str, id: str, imageUrl: str, itemCategory: str, manufacturer: str, marketplaceSellerId: str, productUrl: str, quantity: int(int64), receiverEmail: str, size: str, sku: str, taxAmount: int(int64), taxPercentage: int(int64), upc: str}] # Price and product information about the purchased items, to be included on the invoice sent to the shopper. > This field is required for 3x 4x Oney, Affirm, Afterpay, Clearpay, Klarna, Ratepay, and Riverty., merchantRiskIndicator: map{addressMatch: bool, deliveryAddressIndicator: str, deliveryEmail: str, deliveryEmailAddress: str, deliveryTimeframe: str, giftCardAmount: map, giftCardCount: int(int32), giftCardCurr: str, preOrderDate: str(date-time), preOrderPurchase: bool, preOrderPurchaseInd: str, reorderItems: bool, reorderItemsInd: str, shipIndicator: str}, metadata: map # Metadata consists of entries, each of which includes a key and a value. Limits: * Maximum 20 key-value pairs per request. When exceeding, the \"177\" error occurs: \"Metadata size exceeds limit\". * Maximum 20 characters per key. * Maximum 80 characters per value., mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, origin: str # > Required for browser-based (`channel` **Web**) 3D Secure 2 transactions.Set this to the origin URL of the page where you are rendering the Drop-in/Component. Do not include subdirectories and a trailing slash., paymentMethod: any # The type and required details of a payment method to use.  When `donationToken` is provided, the payment method is derived from the token and this field becomes optional.  If you are [PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide), and make donations using raw card details, you must explicitly provide the payment method details., recurringProcessingModel: str(CardOnFile/Subscription/UnscheduledCardOnFile) # Defines a recurring payment type. Required when creating a token to store payment details or using stored payment details. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount., redirectFromIssuerMethod: str # Specifies the redirect method (GET or POST) when redirecting back from the issuer., redirectToIssuerMethod: str # Specifies the redirect method (GET or POST) when redirecting to the issuer., sessionValidity: str # The date and time until when the session remains valid, in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.  For example: 2020-07-18T15:42:40.428+01:00, shopperEmail: str # The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks. > Required for Visa and JCB transactions that require 3D Secure 2 authentication if you did not include the `telephoneNumber`., shopperIP: str # The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). > Required for Visa and JCB transactions that require 3D Secure 2 authentication for all web and mobile integrations, if you did not include the `shopperEmail`. For native mobile integrations, the field is required to support cases where authentication is routed to the redirect flow. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new)., shopperInteraction: str(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 authorization rates, we recommend sending the card security code (CSC) along with the request. * `ContAuth` - Card on file and/or subscription transactions, where the cardholder is known to the merchant (returning customer). If the shopper is present (online), you can supply also the CSC to improve authorization (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., shopperLocale: str # The combination of a language code and a country code to specify the language to be used in the payment., shopperName: map{firstName!: str, lastName!: str}, shopperReference: str # Required for recurring payments.  Your reference to uniquely identify this shopper, for example user ID or account ID. Minimum length: 3 characters. > Your reference must not include personally identifiable information (PII), for example name or email address., socialSecurityNumber: str # The shopper's social security number., store: str # Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment., telephoneNumber: str # The shopper's telephone number.  The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits). If the value you provide does not follow the guidelines, we do not submit it for authentication. > Required for Visa and JCB transactions that require 3D Secure 2 authentication, if you did not include the `shopperEmail`., threeDS2RequestData: map{acctInfo: map, acctType: str, acquirerBIN: str, acquirerMerchantID: str, addrMatch: str, authenticationOnly: bool, challengeIndicator: str, deviceRenderOptions: map, homePhone: map, mcc: str, merchantName: str, messageVersion: str, mobilePhone: map, notificationURL: str, payTokenInd: bool, paymentAuthenticationUseCase: str, purchaseInstalData: str, recurringExpiry: str, recurringFrequency: str, sdkAppID: str, sdkEphemPubKey: map, sdkMaxTimeout: int(int32), sdkReferenceNumber: str, sdkTransID: str, threeDSCompInd: str, threeDSRequestorAuthenticationInd: str, threeDSRequestorAuthenticationInfo: map, threeDSRequestorChallengeInd: str, threeDSRequestorID: str, threeDSRequestorName: str, threeDSRequestorPriorAuthenticationInfo: map, threeDSRequestorURL: str, transType: str, transactionType: str, whiteListStatus: str, workPhone: map}, threeDSAuthenticationOnly: bool=false # Required to trigger the [authentication-only flow](https://docs.adyen.com/online-payments/3d-secure/authentication-only/). If set to **true**, you will only perform the 3D Secure 2 authentication, and will not proceed to the payment authorization.Default: **false**.}\n@returns(200) {amount: map{currency: str, value: int(int64)}, donationAccount: str, id: str, merchantAccount: str, payment: map{action: any, additionalData: map, amount: map{currency: str, value: int(int64)}, donationToken: str, fraudResult: map{accountScore: int(int32), results: [map]}, merchantReference: str, order: map{amount: map{currency: str, value: int(int64)}, expiresAt: str, orderData: str, pspReference: str, reference: str, remainingAmount: map{currency: str, value: int(int64)}}, paymentMethod: map{brand: str, type: str}, paymentValidations: map{name: map{rawResponse: map, result: map, status: str}}, pspReference: str, refusalReason: str, refusalReasonCode: str, resultCode: str, threeDS2ResponseData: map{acsChallengeMandated: str, acsOperatorID: str, acsReferenceNumber: str, acsSignedContent: str, acsTransID: str, acsURL: str, authenticationType: str, cardHolderInfo: str, cavvAlgorithm: str, challengeIndicator: str, dsReferenceNumber: str, dsTransID: str, exemptionIndicator: str, messageVersion: str, riskScore: str, sdkEphemPubKey: str, threeDSServerTransID: str, transStatus: str, transStatusReason: str}, threeDS2Result: map{authenticationValue: str, cavvAlgorithm: str, challengeCancel: str, dsTransID: str, eci: str, exemptionIndicator: str, messageVersion: str, riskScore: str, threeDSRequestorChallengeInd: str, threeDSServerTransID: str, timestamp: str, transStatus: str, transStatusReason: str, whiteListStatus: str}, threeDSPaymentData: str}, reference: str, status: str} # OK - the request has succeeded.\n@errors {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.}\n@example_request {\"amount\":{\"currency\":\"EUR\",\"value\":1000},\"reference\":\"YOUR_DONATION_REFERENCE\",\"paymentMethod\":{\"type\":\"scheme\"},\"donationToken\":\"YOUR_DONATION_TOKEN\",\"donationOriginalPspReference\":\"991559660454807J\",\"donationCampaignId\":\"DONATION_CAMPAIGN_ID\",\"returnUrl\":\"https://your-company.example.com/...\",\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\"}\n\n@endgroup\n\n@group forward\n@endpoint POST /forward\n@desc Forward stored payment details\n@required {baseUrl: str # The base URL of the third party API, where Adyen will send the request to forward the payment details., merchantAccount: str # Your merchant account., request: map{body!: str, credentials: str, headers: map, httpMethod!: str, urlSuffix: str}, shopperReference: str # 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.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., amount: map{currency!: str, value!: int(int64)}, merchantReference: str # Merchant defined payment reference., options: map{accountUpdate: bool, dryRun: bool, networkToken: map, networkTxReferencePaths: [str], tokenize: bool}, paymentMethod: map{cvc: str, encryptedCardNumber: str, encryptedExpiryMonth: str, encryptedExpiryYear: str, encryptedSecurityCode: str, expiryMonth: str, expiryYear: str, holderName: str, number: str, type: str}, storedPaymentMethodId: str # The unique identifier of the token that you want to forward to the third party. This is the `storedPaymentMethodId` you received in the webhook after you created the token.}\n@returns(200) {merchantReference: str, pspReference: str, response: map{body: str, headers: map, status: int(int32)}, storedPaymentMethodId: str} # OK - the request has succeeded.\n@example_request {\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"shopperReference\":\"YOUR_SHOPPER_REFERENCE\",\"storedPaymentMethodId\":\"M5N7TQ4TG5PFWR50\",\"baseUrl\":\"http://thirdparty.example.com\",\"request\":{\"httpMethod\":\"post\",\"urlSuffix\":\"/payments\",\"credentials\":\"YOUR_CREDENTIALS_FOR_THE_THIRD_PARTY\",\"headers\":{\"Authorization\":\"Basic {{credentials}}\"},\"body\":\"{\\\"amount\\\":{\\\"value\\\":100,\\\"currency\\\":\\\"USD\\\"},\\\"paymentMethod\\\":{\\\"creditCard\\\":{\\\"holderName\\\":\\\"{{holderName}}\\\",\\\"number\\\":\\\"{{number}}\\\",\\\"expiryMonth\\\":\\\"{{expiryMonth}}\\\",\\\"expiryYear\\\":\\\"{{expiryYear}}\\\"}}}\"}}\n\n@endgroup\n\n@group orders\n@endpoint POST /orders\n@desc Create an order\n@required {amount: map{currency!: str, value!: int(int64)}, merchantAccount: str # The merchant account identifier, with which you want to process the order., reference: str # A custom reference identifying the order.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., expiresAt: str # The date when the order should expire. If not provided, the default expiry duration is 1 day.  [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format: YYYY-MM-DDThh:mm:ss+TZD, for example, **2020-12-18T10:15:30+01:00**.}\n@returns(200) {additionalData: map, amount: map{currency: str, value: int(int64)}, expiresAt: str, fraudResult: map{accountScore: int(int32), results: [map]}, orderData: str, pspReference: str, reference: str, refusalReason: str, remainingAmount: map{currency: str, value: int(int64)}, resultCode: str} # OK - the request has succeeded.\n@errors {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.}\n@example_request {\"reference\":\"YOUR_ORDER_REFERENCE\",\"amount\":{\"value\":2500,\"currency\":\"EUR\"},\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\"}\n\n@endpoint POST /orders/cancel\n@desc Cancel an order\n@required {merchantAccount: str # The merchant account identifier that orderData belongs to., order: map{orderData!: str, pspReference!: str}}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID).}\n@returns(200) {pspReference: str, resultCode: str} # OK - the request has succeeded.\n@errors {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.}\n@example_request {\"order\":{\"pspReference\":\"8815517812932012\",\"orderData\":\"823fh892f8f18f4...148f13f9f3f\"},\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\"}\n\n@endgroup\n\n@group originKeys\n@endpoint POST /originKeys\n@desc Create originKey values for domains\n@required {originDomains: [str] # The list of origin domains, for which origin keys are requested.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID).}\n@returns(200) {originKeys: map} # OK - the request has succeeded.\n@errors {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.}\n@example_request {\"originDomains\":[\"https://www.your-domain1.com\",\"https://www.your-domain2.com\",\"https://www.your-domain3.com\"]}\n\n@endgroup\n\n@group paymentLinks\n@endpoint POST /paymentLinks\n@desc Create a payment link\n@required {amount: map{currency!: str, value!: int(int64)}, merchantAccount: str # The merchant account identifier for which the payment link is created., reference: str # A reference that is used to uniquely identify the payment in future communications about the payment status.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., allowedPaymentMethods: [str] # List of payment methods to be presented to the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types).  Example: `\"allowedPaymentMethods\":[\"ideal\",\"applepay\"]`, applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, billingAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, blockedPaymentMethods: [str] # List of payment methods to be hidden from the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types).  Example: `\"blockedPaymentMethods\":[\"ideal\",\"applepay\"]`, captureDelayHours: int(int32) # The delay between the authorisation and scheduled auto-capture, specified in hours., countryCode: str # The shopper's two-letter country code., dateOfBirth: str(date) # The shopper's date of birth.  Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD, deliverAt: str(date-time) # The date and time when the purchased goods should be delivered.  [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format: YYYY-MM-DDThh:mm:ss+TZD, for example, **2020-12-18T10:15:30+01:00**., deliveryAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, description: str # A short description visible on the payment page. Maximum length: 280 characters., expiresAt: str(date-time) # The date when the payment link expires.  [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format with time zone offset: YYYY-MM-DDThh:mm:ss+TZD, for example, **2020-12-18T10:15:30+01:00**.  The maximum expiry date is 70 days after the payment link is created.  If not provided, the payment link expires 24 hours after it was created., fundOrigin: map{billingAddress: map, shopperEmail: str, shopperName: map, telephoneNumber: str, walletIdentifier: str}, fundRecipient: map{IBAN: str, billingAddress: map, paymentMethod: map, shopperEmail: str, shopperName: map, shopperReference: str, storedPaymentMethodId: str, subMerchant: map, telephoneNumber: str, walletIdentifier: str, walletOwnerTaxId: str, walletPurpose: str}, installmentOptions: map # A set of key-value pairs that specifies the installment options available per payment method. The key must be a payment method name in lowercase. For example, **card** to specify installment options for all cards, or **visa** or **mc**. The value must be an object containing the installment options., lineItems: [map{amountExcludingTax: int(int64), amountIncludingTax: int(int64), brand: str, color: str, description: str, id: str, imageUrl: str, itemCategory: str, manufacturer: str, marketplaceSellerId: str, productUrl: str, quantity: int(int64), receiverEmail: str, size: str, sku: str, taxAmount: int(int64), taxPercentage: int(int64), upc: str}] # Price and product information about the purchased items, to be included on the invoice sent to the shopper. > This field is required for 3x 4x Oney, Affirm, Afterpay, Clearpay, Klarna, Ratepay, and Riverty., manualCapture: bool # Indicates if the payment must be [captured manually](https://docs.adyen.com/online-payments/capture)., mcc: str # The [merchant category code](https://en.wikipedia.org/wiki/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., merchantOrderReference: str # This reference allows linking multiple transactions to each other for reporting purposes (for example, order auth-rate). The reference should be unique per billing cycle., metadata: map # Metadata consists of entries, each of which includes a key and a value. Limitations: * Maximum 20 key-value pairs per request. Otherwise, error \"177\" occurs: \"Metadata size exceeds limit\" * Maximum 20 characters per key. Otherwise, error \"178\" occurs: \"Metadata key size exceeds limit\" * A key cannot have the name `checkout.linkId`. Any value that you provide with this key is going to be replaced by the real payment link ID., platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, recurringProcessingModel: str(CardOnFile/Subscription/UnscheduledCardOnFile) # Defines a recurring payment type. Required when `storePaymentMethodMode` is set to **askForConsent** or **enabled**. Possible values: * **Subscription** – A transaction for a fixed or variable amount, which follows a fixed schedule. * **CardOnFile** – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * **UnscheduledCardOnFile** – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or has variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount., requiredShopperFields: [str] # List of fields that the shopper has to provide on the payment page before completing the payment. For more information, refer to [Provide shopper information](https://docs.adyen.com/unified-commerce/pay-by-link/payment-links/api#shopper-information).  Possible values: * **billingAddress** – The address where to send the invoice. * **deliveryAddress** – The address where the purchased goods should be delivered. * **shopperEmail** – The shopper's email address. * **shopperName** – The shopper's full name. * **telephoneNumber** – The shopper's phone number., returnUrl: str # Website URL used for redirection after payment is completed. If provided, a **Continue** button will be shown on the payment page. If shoppers select the button, they are redirected to the specified URL., reusable: bool # Indicates whether the payment link can be reused for multiple payments. If not provided, this defaults to **false** which means the link can be used for one successful payment only., riskData: map{clientData: str, customFields: map, fraudOffset: int(int32), profileReference: str}, shopperEmail: str # The shopper's email address., shopperLocale: str # The language to be used in the payment page, specified by a combination of a language and country code. For example, `en-US`.  For a list of shopper locales that Pay by Link supports, refer to [Language and localization](https://docs.adyen.com/unified-commerce/pay-by-link/payment-links/api#language)., shopperName: map{firstName!: str, lastName!: str}, shopperReference: str # 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., shopperStatement: str # The text to be shown on the shopper's bank statement.  We recommend sending a maximum of 22 characters, otherwise banks might truncate the string.  Allowed characters: **a-z**, **A-Z**, **0-9**, spaces, and special characters **. , ' _ - ? + * /**., showRemovePaymentMethodButton: bool=true # Set to **false** to hide the button that lets the shopper remove a stored payment method., socialSecurityNumber: str # The shopper's social security number., splitCardFundingSources: bool=false # Boolean value indicating whether the card payment method should be split into separate debit and credit options., splits: [map{account: str, amount: map, description: str, reference: str, type!: str}] # An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split)., store: str # The physical store, for which this payment is processed., storePaymentMethodMode: str(askForConsent/disabled/enabled) # Indicates if the details of the payment method will be stored for the shopper. Possible values: * **disabled** – No details will be stored (default). * **askForConsent** – If the `shopperReference` is provided, the Drop-in/Component shows a checkbox where the shopper can select to store their payment details for card payments. * **enabled** – If the `shopperReference` is provided, the details will be stored without asking the shopper for consent.   When set to **askForConsent** or **enabled**, you must also include the `recurringProcessingModel` parameter., telephoneNumber: str # The shopper's telephone number.  The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits). If the value you provide does not follow the guidelines, we do not submit it for authentication. > Required for Visa and JCB transactions that require 3D Secure 2 authentication, if you did not include the `shopperEmail`., themeId: str # A [theme](https://docs.adyen.com/unified-commerce/pay-by-link/payment-links/api#themes) to customize the appearance of the payment page. If not specified, the payment page is rendered according to the theme set as default in your Customer Area., threeDS2RequestData: map{homePhone: map, mobilePhone: map, threeDSRequestorChallengeInd: str, workPhone: map}}\n@returns(201) {allowedPaymentMethods: [str], amount: map{currency: str, value: int(int64)}, applicationInfo: map{adyenLibrary: map{name: str, version: str}, adyenPaymentSource: map{name: str, version: str}, externalPlatform: map{integrator: str, name: str, version: str}, merchantApplication: map{name: str, version: str}, merchantDevice: map{os: str, osVersion: str, reference: str}, shopperInteractionDevice: map{locale: str, os: str, osVersion: str}}, billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, blockedPaymentMethods: [str], captureDelayHours: int(int32), countryCode: str, dateOfBirth: str(date), deliverAt: str(date-time), deliveryAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, description: str, expiresAt: str(date-time), fundOrigin: map{billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, shopperEmail: str, shopperName: map{firstName: str, lastName: str}, telephoneNumber: str, walletIdentifier: str}, fundRecipient: map{IBAN: str, billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, paymentMethod: map{billingSequenceNumber: str, brand: str, checkoutAttemptId: str, cupsecureplus.smscode: str, cvc: str, encryptedCard: str, encryptedCardNumber: str, encryptedExpiryMonth: str, encryptedExpiryYear: str, encryptedPassword: str, encryptedSecurityCode: str, expiryMonth: str, expiryYear: str, fastlaneData: str, fundingSource: str, holderName: str, networkPaymentReference: str, number: str, recurringDetailReference: str, sdkData: str, shopperNotificationReference: str, srcCorrelationId: str, srcDigitalCardId: str, srcScheme: str, srcTokenReference: str, storedPaymentMethodId: str, threeDS2SdkVersion: str, type: str}, shopperEmail: str, shopperName: map{firstName: str, lastName: str}, shopperReference: str, storedPaymentMethodId: str, subMerchant: map{city: str, country: str, mcc: str, name: str, taxId: str}, telephoneNumber: str, walletIdentifier: str, walletOwnerTaxId: str, walletPurpose: str}, id: str, installmentOptions: map, lineItems: [map], manualCapture: bool, mcc: str, merchantAccount: str, merchantOrderReference: str, metadata: map, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, recurringProcessingModel: str, reference: str, requiredShopperFields: [str], returnUrl: str, reusable: bool, riskData: map{clientData: str, customFields: map, fraudOffset: int(int32), profileReference: str}, shopperEmail: str, shopperLocale: str, shopperName: map{firstName: str, lastName: str}, shopperReference: str, shopperStatement: str, showRemovePaymentMethodButton: bool, socialSecurityNumber: str, splitCardFundingSources: bool, splits: [map], status: str, store: str, storePaymentMethodMode: str, telephoneNumber: str, themeId: str, threeDS2RequestData: map{homePhone: map{cc: str, subscriber: str}, mobilePhone: map{cc: str, subscriber: str}, threeDSRequestorChallengeInd: str, workPhone: map{cc: str, subscriber: str}}, updatedAt: str(date-time), url: str} # Created - the request has succeeded.\n@errors {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.}\n@example_request {\"reference\":\"YOUR_ORDER_NUMBER\",\"amount\":{\"value\":1250,\"currency\":\"BRL\"},\"countryCode\":\"BR\",\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"shopperReference\":\"YOUR_SHOPPER_REFERENCE\",\"shopperEmail\":\"test@email.com\",\"shopperLocale\":\"pt-BR\",\"billingAddress\":{\"street\":\"Roque Petroni Jr\",\"postalCode\":\"59000060\",\"city\":\"São Paulo\",\"houseNumberOrName\":\"999\",\"country\":\"BR\",\"stateOrProvince\":\"SP\"},\"deliveryAddress\":{\"street\":\"Roque Petroni Jr\",\"postalCode\":\"59000060\",\"city\":\"São Paulo\",\"houseNumberOrName\":\"999\",\"country\":\"BR\",\"stateOrProvince\":\"SP\"}}\n\n@endpoint GET /paymentLinks/{linkId}\n@desc Get a payment link\n@required {linkId: str # Unique identifier of the payment link.}\n@returns(200) {allowedPaymentMethods: [str], amount: map{currency: str, value: int(int64)}, applicationInfo: map{adyenLibrary: map{name: str, version: str}, adyenPaymentSource: map{name: str, version: str}, externalPlatform: map{integrator: str, name: str, version: str}, merchantApplication: map{name: str, version: str}, merchantDevice: map{os: str, osVersion: str, reference: str}, shopperInteractionDevice: map{locale: str, os: str, osVersion: str}}, billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, blockedPaymentMethods: [str], captureDelayHours: int(int32), countryCode: str, dateOfBirth: str(date), deliverAt: str(date-time), deliveryAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, description: str, expiresAt: str(date-time), fundOrigin: map{billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, shopperEmail: str, shopperName: map{firstName: str, lastName: str}, telephoneNumber: str, walletIdentifier: str}, fundRecipient: map{IBAN: str, billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, paymentMethod: map{billingSequenceNumber: str, brand: str, checkoutAttemptId: str, cupsecureplus.smscode: str, cvc: str, encryptedCard: str, encryptedCardNumber: str, encryptedExpiryMonth: str, encryptedExpiryYear: str, encryptedPassword: str, encryptedSecurityCode: str, expiryMonth: str, expiryYear: str, fastlaneData: str, fundingSource: str, holderName: str, networkPaymentReference: str, number: str, recurringDetailReference: str, sdkData: str, shopperNotificationReference: str, srcCorrelationId: str, srcDigitalCardId: str, srcScheme: str, srcTokenReference: str, storedPaymentMethodId: str, threeDS2SdkVersion: str, type: str}, shopperEmail: str, shopperName: map{firstName: str, lastName: str}, shopperReference: str, storedPaymentMethodId: str, subMerchant: map{city: str, country: str, mcc: str, name: str, taxId: str}, telephoneNumber: str, walletIdentifier: str, walletOwnerTaxId: str, walletPurpose: str}, id: str, installmentOptions: map, lineItems: [map], manualCapture: bool, mcc: str, merchantAccount: str, merchantOrderReference: str, metadata: map, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, recurringProcessingModel: str, reference: str, requiredShopperFields: [str], returnUrl: str, reusable: bool, riskData: map{clientData: str, customFields: map, fraudOffset: int(int32), profileReference: str}, shopperEmail: str, shopperLocale: str, shopperName: map{firstName: str, lastName: str}, shopperReference: str, shopperStatement: str, showRemovePaymentMethodButton: bool, socialSecurityNumber: str, splitCardFundingSources: bool, splits: [map], status: str, store: str, storePaymentMethodMode: str, telephoneNumber: str, themeId: str, threeDS2RequestData: map{homePhone: map{cc: str, subscriber: str}, mobilePhone: map{cc: str, subscriber: str}, threeDSRequestorChallengeInd: str, workPhone: map{cc: str, subscriber: str}}, updatedAt: str(date-time), url: str} # OK - the request has succeeded.\n@errors {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.}\n\n@endpoint PATCH /paymentLinks/{linkId}\n@desc Update the status of a payment link\n@required {linkId: str # Unique identifier of the payment link., status: str # Status of the payment link. Possible values: * **expired**}\n@returns(200) {allowedPaymentMethods: [str], amount: map{currency: str, value: int(int64)}, applicationInfo: map{adyenLibrary: map{name: str, version: str}, adyenPaymentSource: map{name: str, version: str}, externalPlatform: map{integrator: str, name: str, version: str}, merchantApplication: map{name: str, version: str}, merchantDevice: map{os: str, osVersion: str, reference: str}, shopperInteractionDevice: map{locale: str, os: str, osVersion: str}}, billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, blockedPaymentMethods: [str], captureDelayHours: int(int32), countryCode: str, dateOfBirth: str(date), deliverAt: str(date-time), deliveryAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, description: str, expiresAt: str(date-time), fundOrigin: map{billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, shopperEmail: str, shopperName: map{firstName: str, lastName: str}, telephoneNumber: str, walletIdentifier: str}, fundRecipient: map{IBAN: str, billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, paymentMethod: map{billingSequenceNumber: str, brand: str, checkoutAttemptId: str, cupsecureplus.smscode: str, cvc: str, encryptedCard: str, encryptedCardNumber: str, encryptedExpiryMonth: str, encryptedExpiryYear: str, encryptedPassword: str, encryptedSecurityCode: str, expiryMonth: str, expiryYear: str, fastlaneData: str, fundingSource: str, holderName: str, networkPaymentReference: str, number: str, recurringDetailReference: str, sdkData: str, shopperNotificationReference: str, srcCorrelationId: str, srcDigitalCardId: str, srcScheme: str, srcTokenReference: str, storedPaymentMethodId: str, threeDS2SdkVersion: str, type: str}, shopperEmail: str, shopperName: map{firstName: str, lastName: str}, shopperReference: str, storedPaymentMethodId: str, subMerchant: map{city: str, country: str, mcc: str, name: str, taxId: str}, telephoneNumber: str, walletIdentifier: str, walletOwnerTaxId: str, walletPurpose: str}, id: str, installmentOptions: map, lineItems: [map], manualCapture: bool, mcc: str, merchantAccount: str, merchantOrderReference: str, metadata: map, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, recurringProcessingModel: str, reference: str, requiredShopperFields: [str], returnUrl: str, reusable: bool, riskData: map{clientData: str, customFields: map, fraudOffset: int(int32), profileReference: str}, shopperEmail: str, shopperLocale: str, shopperName: map{firstName: str, lastName: str}, shopperReference: str, shopperStatement: str, showRemovePaymentMethodButton: bool, socialSecurityNumber: str, splitCardFundingSources: bool, splits: [map], status: str, store: str, storePaymentMethodMode: str, telephoneNumber: str, themeId: str, threeDS2RequestData: map{homePhone: map{cc: str, subscriber: str}, mobilePhone: map{cc: str, subscriber: str}, threeDSRequestorChallengeInd: str, workPhone: map{cc: str, subscriber: str}}, updatedAt: str(date-time), url: str} # OK - the request has succeeded.\n@errors {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.}\n@example_request {\"status\":\"expired\"}\n\n@endgroup\n\n@group paymentMethods\n@endpoint POST /paymentMethods\n@desc Get a list of available payment methods\n@required {merchantAccount: str # The merchant account identifier, with which you want to process the transaction.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., additionalData: map # This field contains additional data, which may be required for a particular payment request.  The `additionalData` object consists of entries, each of which includes the key and value., allowedPaymentMethods: [str] # List of payment methods to be presented to the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types).  Example: `\"allowedPaymentMethods\":[\"ideal\",\"applepay\"]`, amount: map{currency!: str, value!: int(int64)}, blockedPaymentMethods: [str] # List of payment methods to be hidden from the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types).  Example: `\"blockedPaymentMethods\":[\"ideal\",\"applepay\"]`, browserInfo: map{acceptHeader!: str, colorDepth!: int(int32), javaEnabled!: bool, javaScriptEnabled: bool, language!: str, screenHeight!: int(int32), screenWidth!: int(int32), timeZoneOffset!: int(int32), userAgent!: str}, channel: str(iOS/Android/Web) # The platform where a payment transaction takes place. This field can be used for filtering out payment methods that are only available on specific platforms. Possible values: * iOS * Android * Web, countryCode: str # The shopper's country code., order: map{orderData!: str, pspReference!: str}, shopperConversionId: str # A unique ID that can be used to associate `/paymentMethods` and `/payments` requests with the same shopper transaction, offering insights into conversion rates., shopperEmail: str # The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks. > Required for Visa and JCB transactions that require 3D Secure 2 authentication if you did not include the `telephoneNumber`., shopperIP: str # The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). > Required for Visa and JCB transactions that require 3D Secure 2 authentication for all web and mobile integrations, if you did not include the `shopperEmail`. For native mobile integrations, the field is required to support cases where authentication is routed to the redirect flow. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new)., shopperLocale: str # The combination of a language code and a country code to specify the language to be used in the payment., shopperReference: str # 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., splitCardFundingSources: bool=false # Boolean value indicating whether the card payment method should be split into separate debit and credit options., store: str # Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment., storeFiltrationMode: str(exclusive/inclusive/skipFilter) # Specifies how payment methods should be filtered based on the `store` parameter:   - **exclusive**: Only payment methods belonging to the specified `store` are returned.   - **inclusive**: Payment methods from the `store` and those not associated with any other store are returned., telephoneNumber: str # The shopper's telephone number.  The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits). If the value you provide does not follow the guidelines, we do not submit it for authentication. > Required for Visa and JCB transactions that require 3D Secure 2 authentication, if you did not include the `shopperEmail`.}\n@returns(200) {paymentMethods: [map], storedPaymentMethods: [map]} # OK - the request has succeeded.\n@errors {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.}\n@example_request {\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\"}\n\n@endpoint POST /paymentMethods/balance\n@desc Get the balance of a gift card\n@required {amount: map{currency!: str, value!: int(int64)}, merchantAccount: str # The merchant account identifier, with which you want to process the transaction., paymentMethod: map # The collection that contains the type of the payment method and its specific information.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., accountInfo: map{accountAgeIndicator: str, accountChangeDate: str(date-time), accountChangeIndicator: str, accountCreationDate: str(date-time), accountType: str, addCardAttemptsDay: int(int32), deliveryAddressUsageDate: str(date-time), deliveryAddressUsageIndicator: str, homePhone: str, mobilePhone: str, passwordChangeDate: str(date-time), passwordChangeIndicator: str, pastTransactionsDay: int(int32), pastTransactionsYear: int(int32), paymentAccountAge: str(date-time), paymentAccountIndicator: str, purchasesLast6Months: int(int32), suspiciousActivity: bool, workPhone: str}, additionalAmount: map{currency!: str, value!: int(int64)}, additionalData: map # This field contains additional data, which may be required for a particular payment request.  The `additionalData` object consists of entries, each of which includes the key and value., applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, billingAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, browserInfo: map{acceptHeader!: str, colorDepth!: int(int32), javaEnabled!: bool, javaScriptEnabled: bool, language!: str, screenHeight!: int(int32), screenWidth!: int(int32), timeZoneOffset!: int(int32), userAgent!: str}, captureDelayHours: int(int32) # The delay between the authorisation and scheduled auto-capture, specified in hours., dateOfBirth: str(date) # The shopper's date of birth.  Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD, dccQuote: map{account: str, accountType: str, baseAmount: map, basePoints!: int(int32), buy: map, interbank: map, reference: str, sell: map, signature: str, source: str, type: str, validTill!: str(date-time)}, deliveryAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, deliveryDate: str(date-time) # The date and time the purchased goods should be delivered.  Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD  Example: 2017-07-17T13:42:40.428+01:00, deviceFingerprint: str # A string containing the shopper's device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting)., fraudOffset: int(int32) # An integer value that is added to the normal fraud score. The value can be either positive or negative., installments: map{extra: int(int32), plan: str, value!: int(int32)}, localizedShopperStatement: map # The `localizedShopperStatement` field lets you use dynamic values for your shopper statement in a local character set. If this parameter is left empty, not provided, or not applicable (in case of cross-border transactions), then **shopperStatement** is used.  Currently, `localizedShopperStatement` is only supported for payments with Visa, Mastercard, JCB, Diners, and Discover.  **Supported characters**: Hiragana, Katakana, Kanji, and alphanumeric., mcc: str # The [merchant category code](https://en.wikipedia.org/wiki/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., merchantOrderReference: str # This reference allows linking multiple transactions to each other for reporting purposes (i.e. order auth-rate). The reference should be unique per billing cycle. The same merchant order reference should never be reused after the first authorised attempt. If used, this field should be supplied for all incoming authorisations. > We strongly recommend you send the `merchantOrderReference` value to benefit from linking payment requests when authorisation retries take place. In addition, we recommend you provide `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values in `PaymentRequest.additionalData`., merchantRiskIndicator: map{addressMatch: bool, deliveryAddressIndicator: str, deliveryEmail: str, deliveryEmailAddress: str, deliveryTimeframe: str, giftCardAmount: map, giftCardCount: int(int32), giftCardCurr: str, preOrderDate: str(date-time), preOrderPurchase: bool, preOrderPurchaseInd: str, reorderItems: bool, reorderItemsInd: str, shipIndicator: str}, metadata: map # Metadata consists of entries, each of which includes a key and a value. Limits: * Maximum 20 key-value pairs per request. When exceeding, the \"177\" error occurs: \"Metadata size exceeds limit\". * Maximum 20 characters per key. * Maximum 80 characters per value., orderReference: str # When you are doing multiple partial (gift card) payments, this is the `pspReference` of the first payment. We use this to link the multiple payments to each other. As your own reference for linking multiple payments, use the `merchantOrderReference`instead., recurring: map{contract: str, recurringDetailName: str, recurringExpiry: str(date-time), recurringFrequency: str, tokenService: str}, recurringProcessingModel: str(CardOnFile/Subscription/UnscheduledCardOnFile) # Defines a recurring payment type. Required when creating a token to store payment details or using stored payment details. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount., reference: str # The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement. If you need to provide multiple references for a transaction, separate them with hyphens (\"-\"). Maximum length: 80 characters., selectedBrand: str # Some payment methods require defining a value for this field to specify how to process the transaction.  For the Bancontact payment method, it can be set to: * `maestro` (default), to be processed like a Maestro card, or * `bcmc`, to be processed like a Bancontact card., selectedRecurringDetailReference: str # The `recurringDetailReference` you want to use for this payment. The value `LATEST` can be used to select the most recently stored recurring detail., sessionId: str # A session ID used to identify a payment session., shopperEmail: str # The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks. > Required for Visa and JCB transactions that require 3D Secure 2 authentication if you did not include the `telephoneNumber`., shopperIP: str # The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). > Required for Visa and JCB transactions that require 3D Secure 2 authentication for all web and mobile integrations, if you did not include the `shopperEmail`. For native mobile integrations, the field is required to support cases where authentication is routed to the redirect flow. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new)., shopperInteraction: str(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 cardholder 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., shopperLocale: str # The combination of a language code and a country code to specify the language to be used in the payment., shopperName: map{firstName!: str, lastName!: str}, shopperReference: str # 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., shopperStatement: str # The text to be shown on the shopper's bank statement.  We recommend sending a maximum of 22 characters, otherwise banks might truncate the string.  Allowed characters: **a-z**, **A-Z**, **0-9**, spaces, and special characters **. , ' _ - ? + * /**., socialSecurityNumber: str # The shopper's social security number., splits: [map{account: str, amount: map, description: str, reference: str, type!: str}] # An array of objects specifying how the payment should be split when using either Adyen for Platforms for [marketplaces](https://docs.adyen.com/marketplaces/split-payments) or [platforms](https://docs.adyen.com/platforms/split-payments), or standalone [Issuing](https://docs.adyen.com/issuing/add-manage-funds#split)., store: str # Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment., telephoneNumber: str # The shopper's telephone number.  The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits). If the value you provide does not follow the guidelines, we do not submit it for authentication. > Required for Visa and JCB transactions that require 3D Secure 2 authentication, if you did not include the `shopperEmail`., threeDS2RequestData: map{acctInfo: map, acctType: str, acquirerBIN: str, acquirerMerchantID: str, addrMatch: str, authenticationOnly: bool, challengeIndicator: str, deviceChannel!: str, deviceRenderOptions: map, homePhone: map, mcc: str, merchantName: str, messageVersion: str, mobilePhone: map, notificationURL: str, payTokenInd: bool, paymentAuthenticationUseCase: str, purchaseInstalData: str, recurringExpiry: str, recurringFrequency: str, sdkAppID: str, sdkEncData: str, sdkEphemPubKey: map, sdkMaxTimeout: int(int32), sdkReferenceNumber: str, sdkTransID: str, sdkVersion: str, threeDSCompInd: str, threeDSRequestorAuthenticationInd: str, threeDSRequestorAuthenticationInfo: map, threeDSRequestorChallengeInd: str, threeDSRequestorID: str, threeDSRequestorName: str, threeDSRequestorPriorAuthenticationInfo: map, threeDSRequestorURL: str, transType: str, transactionType: str, whiteListStatus: str, workPhone: map}, threeDSAuthenticationOnly: bool=false # Required to trigger the [authentication-only flow](https://docs.adyen.com/online-payments/3d-secure/authentication-only/). If set to **true**, you will only perform the 3D Secure 2 authentication, and will not proceed to the payment authorization.Default: **false**., totalsGroup: str # The reference value to aggregate sales totals in reporting. When not specified, the store field is used (if available)., trustedShopper: bool # Set to true if the payment should be routed to a trusted MID.}\n@returns(200) {additionalData: map, balance: map{currency: str, value: int(int64)}, fraudResult: map{accountScore: int(int32), results: [map]}, pspReference: str, refusalReason: str, resultCode: str, transactionLimit: map{currency: str, value: int(int64)}} # OK - the request has succeeded.\n@errors {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.}\n@example_request {\"paymentMethod\":{\"type\":\"givex\",\"number\":\"4126491073027401\",\"cvc\":\"737\"},\"amount\":{\"currency\":\"EUR\",\"value\":1000},\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\"}\n\n@endgroup\n\n@group payments\n@endpoint POST /payments\n@desc Start a transaction\n@required {amount: map{currency!: str, value!: int(int64)}, merchantAccount: str # The merchant account identifier, with which you want to process the transaction., paymentMethod: any # The type and required details of a payment method to use., reference: str # The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. To provide multiple references for one transaction, separate the reference values with the hyphen (`-`) character.We strongly recommend that you use a unique value for each transaction. Maximum length: 80 characters., returnUrl: str # The URL to return to in case of a redirection. The format depends on the channel.  * For web, include the protocol `http://` or `https://`. You can also include your own additional query parameters, for example, shopper ID or order reference number. Example: `https://your-company.example.com/checkout?shopperOrder=12xy` * For iOS, use the custom URL for your app. To know more about setting custom URL schemes, refer to the [Apple Developer documentation](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app). Example: `my-app://` * For Android, use a custom URL handled by an Activity on your app. You can configure it with an [intent filter](https://developer.android.com/guide/components/intents-filters). Example: `my-app://your.package.name`  If the URL to return to includes non-ASCII characters, like spaces or special letters, URL encode the value.  We strongly recommend that you use a maximum of 1024 characters.  > The URL must not include personally identifiable information (PII), for example name or email address.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., accountInfo: map{accountAgeIndicator: str, accountChangeDate: str(date-time), accountChangeIndicator: str, accountCreationDate: str(date-time), accountType: str, addCardAttemptsDay: int(int32), deliveryAddressUsageDate: str(date-time), deliveryAddressUsageIndicator: str, homePhone: str, mobilePhone: str, passwordChangeDate: str(date-time), passwordChangeIndicator: str, pastTransactionsDay: int(int32), pastTransactionsYear: int(int32), paymentAccountAge: str(date-time), paymentAccountIndicator: str, purchasesLast6Months: int(int32), suspiciousActivity: bool, workPhone: str}, additionalAmount: map{currency!: str, value!: int(int64)}, additionalData: map # This field contains additional data, which may be required for a particular payment request.  The `additionalData` object consists of entries, each of which includes the key and value., applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, authenticationData: map{attemptAuthentication: str, authenticationOnly: bool, threeDSRequestData: map}, bankAccount: map{accountType: str, bankAccountNumber: str, bankCity: str, bankLocationId: str, bankName: str, bic: str, countryCode: str, iban: str, ownerName: str, taxId: str}, billingAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, browserInfo: map{acceptHeader!: str, colorDepth!: int(int32), javaEnabled!: bool, javaScriptEnabled: bool, language!: str, screenHeight!: int(int32), screenWidth!: int(int32), timeZoneOffset!: int(int32), userAgent!: str}, captureDelayHours: int(int32) # The [delay between the authorization and automatic capture](https://docs.adyen.com/online-payments/capture?tab=delayed-individual_2#delayed-automatic-capture) of the payment, specified in hours.  Maximum value: **672** (28 days)., channel: str(iOS/Android/Web) # The platform where a payment transaction takes place. This field is optional for filtering out payment methods that are only available on specific platforms. If this value is not set, then we will try to infer it from the `sdkVersion` or `token`.  Possible values: * iOS * Android * Web, checkoutAttemptId: str # Checkout attempt ID that corresponds to the Id generated by the client SDK for tracking user payment journey., company: map{homepage: str, name: str, registrationNumber: str, registryLocation: str, taxId: str, type: str}, conversionId: str # Conversion ID that corresponds to the Id generated by the client SDK for tracking user payment journey., countryCode: str # The shopper country code.  Format: [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) Example: NL or DE, dateOfBirth: str(date-time) # The shopper's date of birth.  Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD, dccQuote: map{account: str, accountType: str, baseAmount: map, basePoints!: int(int32), buy: map, interbank: map, reference: str, sell: map, signature: str, source: str, type: str, validTill!: str(date-time)}, deliverAt: str(date-time) # The date and time the purchased goods should be delivered.  Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD  Example: 2017-07-17T13:42:40.428+01:00, deliveryAddress: map{city!: str, country!: str, firstName: str, houseNumberOrName!: str, lastName: str, postalCode!: str, stateOrProvince: str, street!: str}, deliveryDate: str(date-time) # The date and time the purchased goods should be delivered.  Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD  Example: 2017-07-17T13:42:40.428+01:00, deviceFingerprint: str # A string containing the shopper's device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting)., enableOneClick: bool # When true and `shopperReference` is provided, the shopper will be asked if the payment details should be stored for future [one-click payments](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#one-click-payments-definition)., enablePayOut: bool # When true and `shopperReference` is provided, the payment details will be tokenized for payouts., enableRecurring: bool # When true and `shopperReference` is provided, the payment details will be stored for [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types) where the shopper is not present, such as subscription or automatic top-up payments., enhancedSchemeData: map{airline: map, levelTwoThree: map}, entityType: str(NaturalPerson/CompanyName) # The type of the entity the payment is processed for., fraudOffset: int(int32) # An integer value that is added to the normal fraud score. The value can be either positive or negative., fundOrigin: map{billingAddress: map, shopperEmail: str, shopperName: map, telephoneNumber: str, walletIdentifier: str}, fundRecipient: map{IBAN: str, billingAddress: map, paymentMethod: map, shopperEmail: str, shopperName: map, shopperReference: str, storedPaymentMethodId: str, subMerchant: map, telephoneNumber: str, walletIdentifier: str, walletOwnerTaxId: str, walletPurpose: str}, industryUsage: str(delayedCharge/installment/noShow) # The reason for the amount update. Possible values:  * **delayedCharge**  * **noShow**  * **installment**, installments: map{extra: int(int32), plan: str, value!: int(int32)}, lineItems: [map{amountExcludingTax: int(int64), amountIncludingTax: int(int64), brand: str, color: str, description: str, id: str, imageUrl: str, itemCategory: str, manufacturer: str, marketplaceSellerId: str, productUrl: str, quantity: int(int64), receiverEmail: str, size: str, sku: str, taxAmount: int(int64), taxPercentage: int(int64), upc: str}] # Price and product information about the purchased items, to be included on the invoice sent to the shopper. > This field is required for 3x 4x Oney, Affirm, Afterpay, Clearpay, Klarna, Ratepay, and Riverty., localizedShopperStatement: map # The `localizedShopperStatement` field lets you use dynamic values for your shopper statement in a local character set. If this parameter is left empty, not provided, or not applicable (in case of cross-border transactions), then **shopperStatement** is used.  Currently, `localizedShopperStatement` is only supported for payments with Visa, Mastercard, JCB, Diners, and Discover.  **Supported characters**: Hiragana, Katakana, Kanji, and alphanumeric., mandate: map{amount!: str, amountRule: str, billingAttemptsRule: str, billingDay: str, count: str, endsAt!: str, frequency!: str, remarks: str, startsAt: str}, mcc: str # The [merchant category code](https://en.wikipedia.org/wiki/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., merchantOrderReference: str # You can use this reference to link multiple transactions to one another (for example, to track order authorization rate).For each billing cycle, this reference should be unique. After the first authorized payment attempt, do not reuse the reference. If you use this parameter, include it in all of the payment requests that you make.   We strongly recommend that you: * Always include this parameter, so that you can benefit from linking payment requests to one another, in case of authorization retries.  * Additionally include the following parameters in the `additionalData` object: [`retry.orderAttemptNumber`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-additionalData-AdditionalDataRetry-retry-orderAttemptNumber), [`retry.chainAttemptNumber`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-additionalData-AdditionalDataRetry-retry-chainAttemptNumber), and [`retry.skipRetry`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-additionalData-AdditionalDataRetry-retry-skipRetry), merchantRiskIndicator: map{addressMatch: bool, deliveryAddressIndicator: str, deliveryEmail: str, deliveryEmailAddress: str, deliveryTimeframe: str, giftCardAmount: map, giftCardCount: int(int32), giftCardCurr: str, preOrderDate: str(date-time), preOrderPurchase: bool, preOrderPurchaseInd: str, reorderItems: bool, reorderItemsInd: str, shipIndicator: str}, metadata: map # Metadata consists of entries, each of which includes a key and a value. Limits: * Maximum 20 key-value pairs per request. When exceeding, the \"177\" error occurs: \"Metadata size exceeds limit\". * Maximum 20 characters per key. * Maximum 80 characters per value., mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, order: map{orderData!: str, pspReference!: str}, orderReference: str # When you are doing multiple partial (gift card) payments, this is the `pspReference` of the first payment. We use this to link the multiple payments to each other. As your own reference for linking multiple payments, use the `merchantOrderReference`instead., origin: str # > Required for browser-based (`channel` **Web**) 3D Secure 2 transactions.Set this to the origin URL of the page where you are rendering the Drop-in/Component. Do not include subdirectories and a trailing slash., paymentValidations: map{name: map}, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, recurringExpiry: str # Date after which no further authorisations shall be performed. Only for 3D Secure 2., recurringFrequency: str # Minimum number of days between authorisations. Only for 3D Secure 2., recurringProcessingModel: str(CardOnFile/Subscription/UnscheduledCardOnFile) # Defines a recurring payment type. Required when creating a token to store payment details or using stored payment details. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount., redirectFromIssuerMethod: str # Specifies the redirect method (GET or POST) when redirecting back from the issuer., redirectToIssuerMethod: str # Specifies the redirect method (GET or POST) when redirecting to the issuer., riskData: map{clientData: str, customFields: map, fraudOffset: int(int32), profileReference: str}, sessionValidity: str # The date and time until when the session remains valid, in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.  For example: 2020-07-18T15:42:40.428+01:00, shopperConversionId: str # A unique ID that can be used to associate `/paymentMethods` and `/payments` requests with the same shopper transaction, offering insights into conversion rates., shopperEmail: str # The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks. > Required for Visa and JCB transactions that require 3D Secure 2 authentication if you did not include the `telephoneNumber`., shopperIP: str # The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). > Required for Visa and JCB transactions that require 3D Secure 2 authentication for all web and mobile integrations, if you did not include the `shopperEmail`. For native mobile integrations, the field is required to support cases where authentication is routed to the redirect flow. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new)., shopperInteraction: str(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 cardholder 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., shopperLocale: str # The combination of a language code and a country code to specify the language to be used in the payment., shopperName: map{firstName!: str, lastName!: str}, shopperReference: str # Required for recurring payments.  Your reference to uniquely identify this shopper, for example user ID or account ID. Minimum length: 3 characters. > Your reference must not include personally identifiable information (PII), for example name or email address., shopperStatement: str # The text to be shown on the shopper's bank statement.  We recommend sending a maximum of 22 characters, otherwise banks might truncate the string.  Allowed characters: **a-z**, **A-Z**, **0-9**, spaces, and special characters **. , ' _ - ? + * /**., shopperTaxInfo: map{taxCountryCode!: str, taxIdentificationNumber!: str}, socialSecurityNumber: str # The shopper's social security number., splits: [map{account: str, amount: map, description: str, reference: str, type!: str}] # An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split)., store: str # Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment., storePaymentMethod: bool # When true and `shopperReference` is provided, the payment details will be stored for future [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types)., subMerchants: [map{address: map, amount: map, email: str, id: str, mcc: str, name: str, phoneNumber: str, registeredSince: str, taxId: str, url: str}] # This field contains additional information on the submerchant, who is onboarded to an acquirer through a payment facilitator or aggregator, surcharge: map{value!: int(int64)}, telephoneNumber: str # The shopper's telephone number.  The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits). If the value you provide does not follow the guidelines, we do not submit it for authentication. > Required for Visa and JCB transactions that require 3D Secure 2 authentication, if you did not include the `shopperEmail`., threeDS2RequestData: map{acctInfo: map, acctType: str, acquirerBIN: str, acquirerMerchantID: str, addrMatch: str, authenticationOnly: bool, challengeIndicator: str, deviceRenderOptions: map, homePhone: map, mcc: str, merchantName: str, messageVersion: str, mobilePhone: map, notificationURL: str, payTokenInd: bool, paymentAuthenticationUseCase: str, purchaseInstalData: str, recurringExpiry: str, recurringFrequency: str, sdkAppID: str, sdkEphemPubKey: map, sdkMaxTimeout: int(int32), sdkReferenceNumber: str, sdkTransID: str, threeDSCompInd: str, threeDSRequestorAuthenticationInd: str, threeDSRequestorAuthenticationInfo: map, threeDSRequestorChallengeInd: str, threeDSRequestorID: str, threeDSRequestorName: str, threeDSRequestorPriorAuthenticationInfo: map, threeDSRequestorURL: str, transType: str, transactionType: str, whiteListStatus: str, workPhone: map}, threeDSAuthenticationOnly: bool=false # Required to trigger the [authentication-only flow](https://docs.adyen.com/online-payments/3d-secure/authentication-only/). If set to **true**, you will only perform the 3D Secure 2 authentication, and will not proceed to the payment authorisation.Default: **false**., trustedShopper: bool # Set to true if the payment should be routed to a trusted MID.}\n@returns(200) {action: any, additionalData: map, amount: map{currency: str, value: int(int64)}, donationToken: str, fraudResult: map{accountScore: int(int32), results: [map]}, merchantReference: str, order: map{amount: map{currency: str, value: int(int64)}, expiresAt: str, orderData: str, pspReference: str, reference: str, remainingAmount: map{currency: str, value: int(int64)}}, paymentMethod: map{brand: str, type: str}, paymentValidations: map{name: map{rawResponse: map{firstName: str, fullName: str, lastName: str, middleName: str, status: str}, result: map{firstName: str, fullName: str, lastName: str, middleName: str}, status: str}}, pspReference: str, refusalReason: str, refusalReasonCode: str, resultCode: str, threeDS2ResponseData: map{acsChallengeMandated: str, acsOperatorID: str, acsReferenceNumber: str, acsSignedContent: str, acsTransID: str, acsURL: str, authenticationType: str, cardHolderInfo: str, cavvAlgorithm: str, challengeIndicator: str, dsReferenceNumber: str, dsTransID: str, exemptionIndicator: str, messageVersion: str, riskScore: str, sdkEphemPubKey: str, threeDSServerTransID: str, transStatus: str, transStatusReason: str}, threeDS2Result: map{authenticationValue: str, cavvAlgorithm: str, challengeCancel: str, dsTransID: str, eci: str, exemptionIndicator: str, messageVersion: str, riskScore: str, threeDSRequestorChallengeInd: str, threeDSServerTransID: str, timestamp: str, transStatus: str, transStatusReason: str, whiteListStatus: str}, threeDSPaymentData: str} # OK - the request has succeeded.\n@errors {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.}\n@example_request {\"amount\":{\"currency\":\"USD\",\"value\":1000},\"reference\":\"Your order number\",\"paymentMethod\":{\"type\":\"applepay\",\"applePayToken\":\"VNRWtuNlNEWkRCSm1xWndjMDFFbktkQU...\"},\"returnUrl\":\"https://your-company.example.com/...\",\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\"}\n\n@endpoint POST /payments/details\n@desc Submit details for a payment\n@required {details: map{MD: str, PaReq: str, PaRes: str, authorization_token: str, billingToken: str, cupsecureplus.smscode: str, facilitatorAccessToken: str, oneTimePasscode: str, orderID: str, payerID: str, payload: str, paymentID: str, paymentStatus: str, redirectResult: str, resultCode: str, returnUrlQueryString: str, threeDSResult: str, threeds2.challengeResult: str, threeds2.fingerprint: str, vaultToken: str}}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., authenticationData: map{authenticationOnly: bool}, paymentData: str # Encoded payment data. For [authorizing a payment after using 3D Secure 2 Authentication-only](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only/#authorise-the-payment-with-adyen):  If you received `resultCode`: **AuthenticationNotRequired** in the `/payments` response, use the `threeDSPaymentData` from the same response.  If you received `resultCode`: **AuthenticationFinished** in the `/payments` response, use the `action.paymentData` from the same response., threeDSAuthenticationOnly: bool # Change the `authenticationOnly` indicator originally set in the `/payments` request. Only needs to be set if you want to modify the value set previously.}\n@returns(200) {action: any, additionalData: map, amount: map{currency: str, value: int(int64)}, donationToken: str, fraudResult: map{accountScore: int(int32), results: [map]}, merchantReference: str, order: map{amount: map{currency: str, value: int(int64)}, expiresAt: str, orderData: str, pspReference: str, reference: str, remainingAmount: map{currency: str, value: int(int64)}}, paymentMethod: map{brand: str, type: str}, paymentValidations: map{name: map{rawResponse: map{firstName: str, fullName: str, lastName: str, middleName: str, status: str}, result: map{firstName: str, fullName: str, lastName: str, middleName: str}, status: str}}, pspReference: str, refusalReason: str, refusalReasonCode: str, resultCode: str, shopperLocale: str, threeDS2ResponseData: map{acsChallengeMandated: str, acsOperatorID: str, acsReferenceNumber: str, acsSignedContent: str, acsTransID: str, acsURL: str, authenticationType: str, cardHolderInfo: str, cavvAlgorithm: str, challengeIndicator: str, dsReferenceNumber: str, dsTransID: str, exemptionIndicator: str, messageVersion: str, riskScore: str, sdkEphemPubKey: str, threeDSServerTransID: str, transStatus: str, transStatusReason: str}, threeDS2Result: map{authenticationValue: str, cavvAlgorithm: str, challengeCancel: str, dsTransID: str, eci: str, exemptionIndicator: str, messageVersion: str, riskScore: str, threeDSRequestorChallengeInd: str, threeDSServerTransID: str, timestamp: str, transStatus: str, transStatusReason: str, whiteListStatus: str}, threeDSPaymentData: str} # OK - the request has succeeded.\n@errors {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.}\n@example_request {\"details\":{\"redirectResult\":\"X6XtfGC3!Y...\"}}\n\n@endpoint POST /payments/{paymentPspReference}/amountUpdates\n@desc Update an authorised amount\n@required {paymentPspReference: str # The [`pspReference`](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#responses-200-pspReference) of the payment., amount: map{currency!: str, value!: int(int64)}, merchantAccount: str # The merchant account that is used to process the payment.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, enhancedSchemeData: map{airline: map, levelTwoThree: map}, industryUsage: str(delayedCharge/installment/noShow) # The reason for the amount update. Possible values:  * **delayedCharge**  * **noShow**  * **installment**, lineItems: [map{amountExcludingTax: int(int64), amountIncludingTax: int(int64), brand: str, color: str, description: str, id: str, imageUrl: str, itemCategory: str, manufacturer: str, marketplaceSellerId: str, productUrl: str, quantity: int(int64), receiverEmail: str, size: str, sku: str, taxAmount: int(int64), taxPercentage: int(int64), upc: str}] # Price and product information of the refunded items, required for [partial refunds](https://docs.adyen.com/online-payments/refund#refund-a-payment). > This field is required for partial refunds with 3x 4x Oney, Affirm, Afterpay, Atome, Clearpay, Klarna, Ratepay, Walley, and Zip., reference: str # Your reference for the amount update request. Maximum length: 80 characters., splits: [map{account: str, amount: map, description: str, reference: str, type!: str}] # An array of objects specifying how the amount should be split between accounts when using Adyen for Platforms. For more information, see how to process payments for [marketplaces](https://docs.adyen.com/marketplaces/process-payments) or [platforms](https://docs.adyen.com/platforms/process-payments).}\n@returns(201) {amount: map{currency: str, value: int(int64)}, industryUsage: str, lineItems: [map], merchantAccount: str, paymentPspReference: str, pspReference: str, reference: str, splits: [map], status: str} # Created - the request has been fulfilled and has resulted in one or more new resources being created.\n@errors {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.}\n@example_request {\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"amount\":{\"currency\":\"EUR\",\"value\":2500},\"reference\":\"YOUR_UNIQUE_REFERENCE\"}\n\n@endpoint POST /payments/{paymentPspReference}/cancels\n@desc Cancel an authorised payment\n@required {paymentPspReference: str # The [`pspReference`](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#responses-200-pspReference) of the payment that you want to cancel., merchantAccount: str # The merchant account that is used to process the payment.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, enhancedSchemeData: map{airline: map, levelTwoThree: map}, reference: str # Your reference for the cancel request. Maximum length: 80 characters.}\n@returns(201) {merchantAccount: str, paymentPspReference: str, pspReference: str, reference: str, status: str} # Created - the request has been fulfilled and has resulted in one or more new resources being created.\n@errors {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.}\n@example_request {\"reference\":\"YOUR_UNIQUE_REFERENCE\",\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\"}\n\n@endpoint POST /payments/{paymentPspReference}/captures\n@desc Capture an authorised payment\n@required {paymentPspReference: str # The [`pspReference`](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#responses-200-pspReference) of the payment that you want to capture., amount: map{currency!: str, value!: int(int64)}, merchantAccount: str # The merchant account that is used to process the payment.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, enhancedSchemeData: map{airline: map, levelTwoThree: map}, lineItems: [map{amountExcludingTax: int(int64), amountIncludingTax: int(int64), brand: str, color: str, description: str, id: str, imageUrl: str, itemCategory: str, manufacturer: str, marketplaceSellerId: str, productUrl: str, quantity: int(int64), receiverEmail: str, size: str, sku: str, taxAmount: int(int64), taxPercentage: int(int64), upc: str}] # Price and product information of the refunded items, required for [partial refunds](https://docs.adyen.com/online-payments/refund#refund-a-payment). > This field is required for partial refunds with 3x 4x Oney, Affirm, Afterpay, Atome, Clearpay, Klarna, Ratepay, Walley, and Zip., platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, reference: str # Your reference for the capture request. Maximum length: 80 characters., splits: [map{account: str, amount: map, description: str, reference: str, type!: str}] # An array of objects specifying how the amount should be split between accounts when using Adyen for Platforms. For more information, see how to process payments for [marketplaces](https://docs.adyen.com/marketplaces/split-payments) or [platforms](https://docs.adyen.com/platforms/online-payments/split-payments/)., subMerchants: [map{address: map, amount: map, email: str, id: str, mcc: str, name: str, phoneNumber: str, registeredSince: str, taxId: str, url: str}] # A List of sub-merchants.}\n@returns(201) {amount: map{currency: str, value: int(int64)}, lineItems: [map], merchantAccount: str, paymentPspReference: str, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, pspReference: str, reference: str, splits: [map], status: str, subMerchants: [map]} # Created - the request has been fulfilled and has resulted in one or more new resources being created.\n@errors {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.}\n@example_request {\"reference\":\"YOUR_UNIQUE_REFERENCE\",\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"amount\":{\"value\":2000,\"currency\":\"EUR\"}}\n\n@endpoint POST /payments/{paymentPspReference}/refunds\n@desc Refund a captured payment\n@required {paymentPspReference: str # The [`pspReference`](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#responses-200-pspReference) of the payment that you want to refund., amount: map{currency!: str, value!: int(int64)}, merchantAccount: str # The merchant account that is used to process the payment.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, capturePspReference: str # This is only available for PayPal refunds. The [`pspReference`](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#responses-200-pspReference) of the specific capture to refund., enhancedSchemeData: map{airline: map, levelTwoThree: map}, lineItems: [map{amountExcludingTax: int(int64), amountIncludingTax: int(int64), brand: str, color: str, description: str, id: str, imageUrl: str, itemCategory: str, manufacturer: str, marketplaceSellerId: str, productUrl: str, quantity: int(int64), receiverEmail: str, size: str, sku: str, taxAmount: int(int64), taxPercentage: int(int64), upc: str}] # Price and product information of the refunded items, required for [partial refunds](https://docs.adyen.com/online-payments/refund#refund-a-payment). > This field is required for partial refunds with 3x 4x Oney, Affirm, Afterpay, Atome, Clearpay, Klarna, Ratepay, Walley, and Zip., merchantRefundReason: str(FRAUD/CUSTOMER REQUEST/RETURN/DUPLICATE/OTHER) # The reason for the refund request.  Possible values:  * **FRAUD**  * **CUSTOMER REQUEST**  * **RETURN**  * **DUPLICATE**  * **OTHER**, reference: str # Your reference for the refund request. Maximum length: 80 characters., splits: [map{account: str, amount: map, description: str, reference: str, type!: str}] # An array of objects specifying how the amount should be split between accounts when using Adyen for Platforms. For more information, see how to process payments for [marketplaces](https://docs.adyen.com/marketplaces/split-payments) or [platforms](https://docs.adyen.com/platforms/online-payments/split-payments/)., store: str # The online store or [physical store](https://docs.adyen.com/point-of-sale/design-your-integration/determine-account-structure/#create-stores) that is processing the refund. This must be the same as the store name configured in your Customer Area.  Otherwise, you get an error and the refund fails.}\n@returns(201) {amount: map{currency: str, value: int(int64)}, capturePspReference: str, lineItems: [map], merchantAccount: str, merchantRefundReason: str?, paymentPspReference: str, pspReference: str, reference: str, splits: [map], status: str, store: str} # Created - the request has been fulfilled and has resulted in one or more new resources being created.\n@errors {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.}\n@example_request {\"amount\":{\"currency\":\"EUR\",\"value\":2500},\"reference\":\"YOUR_UNIQUE_REFERENCE\",\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\"}\n\n@endpoint POST /payments/{paymentPspReference}/reversals\n@desc Refund or cancel a payment\n@required {paymentPspReference: str # The [`pspReference`](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#responses-200-pspReference) of the payment that you want to reverse., merchantAccount: str # The merchant account that is used to process the payment.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, enhancedSchemeData: map{airline: map, levelTwoThree: map}, reference: str # Your reference for the reversal request. Maximum length: 80 characters.}\n@returns(201) {merchantAccount: str, paymentPspReference: str, pspReference: str, reference: str, status: str} # Created - the request has been fulfilled and has resulted in one or more new resources being created.\n@errors {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.}\n@example_request {\"reference\":\"YOUR_UNIQUE_REFERENCE\",\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\"}\n\n@endgroup\n\n@group paypal\n@endpoint POST /paypal/updateOrder\n@desc Updates the order for PayPal Express Checkout\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., amount: map{currency!: str, value!: int(int64)}, deliveryMethods: [map{amount: map, description: str, reference: str, selected: bool, type: str}] # The list of new delivery methods and the cost of each., paymentData: str # The `paymentData` from the client side. This value changes every time you make a `/paypal/updateOrder` request., pspReference: str # The original `pspReference` from the `/payments` response., sessionId: str # The original `sessionId` from the `/sessions` response., taxTotal: map{amount: map}}\n@returns(200) {paymentData: str, status: str} # OK - the request has succeeded.\n@errors {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.}\n@example_request {\"pspReference\":\"DZ4DPSHB4WD2WN82\",\"paymentData\":\"po7XZ...\",\"amount\":{\"currency\":\"EUR\",\"value\":12000},\"deliveryMethods\":[{\"reference\":\"1\",\"description\":\"Express Shipping\",\"type\":\"Shipping\",\"amount\":{\"currency\":\"EUR\",\"value\":1000},\"selected\":true},{\"reference\":\"2\",\"description\":\"Standard Ground\",\"type\":\"Shipping\",\"amount\":{\"currency\":\"EUR\",\"value\":500},\"selected\":false}]}\n\n@endgroup\n\n@group sessions\n@endpoint POST /sessions\n@desc Create a payment session\n@required {amount: map{currency!: str, value!: int(int64)}, merchantAccount: str # The merchant account identifier, with which you want to process the transaction., reference: str # The reference to uniquely identify a payment., returnUrl: str # The URL to return to in case of a redirection. The format depends on the channel.  * For web, include the protocol `http://` or `https://`. You can also include your own additional query parameters, for example, shopper ID or order reference number. Example: `https://your-company.example.com/checkout?shopperOrder=12xy` * For iOS, use the custom URL for your app. To know more about setting custom URL schemes, refer to the [Apple Developer documentation](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app). Example: `my-app://` * For Android, use a custom URL handled by an Activity on your app. You can configure it with an [intent filter](https://developer.android.com/guide/components/intents-filters). Example: `my-app://your.package.name`  If the URL to return to includes non-ASCII characters, like spaces or special letters, URL encode the value.  We strongly recommend that you use a maximum of 1024 characters.  > The URL must not include personally identifiable information (PII), for example name or email address.}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., accountInfo: map{accountAgeIndicator: str, accountChangeDate: str(date-time), accountChangeIndicator: str, accountCreationDate: str(date-time), accountType: str, addCardAttemptsDay: int(int32), deliveryAddressUsageDate: str(date-time), deliveryAddressUsageIndicator: str, homePhone: str, mobilePhone: str, passwordChangeDate: str(date-time), passwordChangeIndicator: str, pastTransactionsDay: int(int32), pastTransactionsYear: int(int32), paymentAccountAge: str(date-time), paymentAccountIndicator: str, purchasesLast6Months: int(int32), suspiciousActivity: bool, workPhone: str}, additionalAmount: map{currency!: str, value!: int(int64)}, additionalData: map # This field contains additional data, which may be required for a particular payment request.  The `additionalData` object consists of entries, each of which includes the key and value., allowedPaymentMethods: [str] # List of payment methods to be presented to the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types).  Example: `\"allowedPaymentMethods\":[\"ideal\",\"applepay\"]`, applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, authenticationData: map{attemptAuthentication: str, authenticationOnly: bool, threeDSRequestData: map}, billingAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, blockedPaymentMethods: [str] # List of payment methods to be hidden from the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types).  Example: `\"blockedPaymentMethods\":[\"ideal\",\"applepay\"]`, captureDelayHours: int(int32) # The delay between the authorisation and scheduled auto-capture, specified in hours., channel: str(iOS/Android/Web) # The platform where a payment transaction takes place. This field is optional for filtering out payment methods that are only available on specific platforms. If this value is not set, then we will try to infer it from the `sdkVersion` or `token`.  Possible values: * **iOS** * **Android** * **Web**, company: map{homepage: str, name: str, registrationNumber: str, registryLocation: str, taxId: str, type: str}, countryCode: str # The shopper's two-letter country code., dateOfBirth: str(date) # The shopper's date of birth.  Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD, deliverAt: str(date-time) # The date and time when the purchased goods should be delivered.  [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format: YYYY-MM-DDThh:mm:ss+TZD, for example, **2020-12-18T10:15:30+01:00**., deliveryAddress: map{city!: str, country!: str, firstName: str, houseNumberOrName!: str, lastName: str, postalCode!: str, stateOrProvince: str, street!: str}, enableOneClick: bool # When true and `shopperReference` is provided, the shopper will be asked if the payment details should be stored for future [one-click payments](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#one-click-payments-definition)., enablePayOut: bool # When true and `shopperReference` is provided, the payment details will be tokenized for payouts., enableRecurring: bool # When true and `shopperReference` is provided, the payment details will be stored for [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types) where the shopper is not present, such as subscription or automatic top-up payments., expiresAt: str(date-time) # The date the session expires in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. When not specified, the expiry date is set to 1 hour after session creation. You cannot set the session expiry to more than 24 hours after session creation., fundOrigin: map{billingAddress: map, shopperEmail: str, shopperName: map, telephoneNumber: str, walletIdentifier: str}, fundRecipient: map{IBAN: str, billingAddress: map, paymentMethod: map, shopperEmail: str, shopperName: map, shopperReference: str, storedPaymentMethodId: str, subMerchant: map, telephoneNumber: str, walletIdentifier: str, walletOwnerTaxId: str, walletPurpose: str}, installmentOptions: map # A set of key-value pairs that specifies the installment options available per payment method. The key must be a payment method name in lowercase. For example, **card** to specify installment options for all cards, or **visa** or **mc**. The value must be an object containing the installment options., lineItems: [map{amountExcludingTax: int(int64), amountIncludingTax: int(int64), brand: str, color: str, description: str, id: str, imageUrl: str, itemCategory: str, manufacturer: str, marketplaceSellerId: str, productUrl: str, quantity: int(int64), receiverEmail: str, size: str, sku: str, taxAmount: int(int64), taxPercentage: int(int64), upc: str}] # Price and product information about the purchased items, to be included on the invoice sent to the shopper. > This field is required for 3x 4x Oney, Affirm, Afterpay, Clearpay, Klarna, Ratepay, and Riverty., mandate: map{amount!: str, amountRule: str, billingAttemptsRule: str, billingDay: str, count: str, endsAt!: str, frequency!: str, remarks: str, startsAt: str}, mcc: str # The [merchant category code](https://en.wikipedia.org/wiki/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., merchantOrderReference: str # This reference allows linking multiple transactions to each other for reporting purposes (i.e. order auth-rate). The reference should be unique per billing cycle. The same merchant order reference should never be reused after the first authorised attempt. If used, this field should be supplied for all incoming authorisations. > We strongly recommend you send the `merchantOrderReference` value to benefit from linking payment requests when authorisation retries take place. In addition, we recommend you provide `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values in `PaymentRequest.additionalData`., metadata: map # Metadata consists of entries, each of which includes a key and a value. Limits: * Maximum 20 key-value pairs per request. * Maximum 20 characters per key. * Maximum 80 characters per value., mode: str(embedded/hosted)=embedded # Indicates the type of front end integration. Possible values: * **embedded** (default): Drop-in or Components integration * **hosted**: Hosted Checkout integration, mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, recurringExpiry: str # Date after which no further authorisations shall be performed. Only for 3D Secure 2., recurringFrequency: str # Minimum number of days between authorisations. Only for 3D Secure 2., recurringProcessingModel: str(CardOnFile/Subscription/UnscheduledCardOnFile) # Defines a recurring payment type. Required when creating a token to store payment details. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount., redirectFromIssuerMethod: str # Specifies the redirect method (GET or POST) when redirecting back from the issuer., redirectToIssuerMethod: str # Specifies the redirect method (GET or POST) when redirecting to the issuer., riskData: map{clientData: str, customFields: map, fraudOffset: int(int32), profileReference: str}, shopperEmail: str # The shopper's email address., shopperIP: str # The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). > Required for Visa and JCB transactions that require 3D Secure 2 authentication for all web and mobile integrations, if you did not include the `shopperEmail`. For native mobile integrations, the field is required to support cases where authentication is routed to the redirect flow. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new)., shopperInteraction: str(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 cardholder 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., shopperLocale: str # The combination of a language code and a country code to specify the language to be used in the payment., shopperName: map{firstName!: str, lastName!: str}, shopperReference: str # 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., shopperStatement: str # The text to be shown on the shopper's bank statement.  We recommend sending a maximum of 22 characters, otherwise banks might truncate the string.  Allowed characters: **a-z**, **A-Z**, **0-9**, spaces, and special characters **. , ' _ - ? + * /**., showInstallmentAmount: bool # Set to true to show the payment amount per installment., showRemovePaymentMethodButton: bool # Set to **true** to show a button that lets the shopper remove a stored payment method., socialSecurityNumber: str # The shopper's social security number., splitCardFundingSources: bool=false # Boolean value indicating whether the card payment method should be split into separate debit and credit options., splits: [map{account: str, amount: map, description: str, reference: str, type!: str}] # An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split)., store: str # Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment., storeFiltrationMode: str(exclusive/inclusive/skipFilter) # Specifies how payment methods should be filtered based on the 'store' parameter:   - 'exclusive': Only payment methods belonging to the specified 'store' are returned.   - 'inclusive': Payment methods from the 'store' and those not associated with any other store are returned., storePaymentMethod: bool # When true and `shopperReference` is provided, the payment details will be stored for future [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types)., storePaymentMethodMode: str(askForConsent/disabled/enabled) # Indicates if the details of the payment method will be stored for the shopper. Possible values: * **disabled** – No details will be stored (default). * **askForConsent** – If the `shopperReference` is provided, the Drop-in/Component shows a checkbox where the shopper can select to store their payment details for card payments. * **enabled** – If the `shopperReference` is provided, the details will be stored without asking the shopper for consent., telephoneNumber: str # The shopper's telephone number.  The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits). If the value you provide does not follow the guidelines, we do not submit it for authentication. > Required for Visa and JCB transactions that require 3D Secure 2 authentication, if you did not include the `shopperEmail`., themeId: str # Sets a custom theme for [Hosted Checkout](https://docs.adyen.com/online-payments/build-your-integration/?platform=Web&integration=Hosted+Checkout). The value can be any of the **Theme ID** values from your Customer Area., threeDS2RequestData: map{homePhone: map, mobilePhone: map, threeDSRequestorChallengeInd: str, workPhone: map}, threeDSAuthenticationOnly: bool=false # Required to trigger the [authentication-only flow](https://docs.adyen.com/online-payments/3d-secure/authentication-only/). If set to **true**, you will only perform the 3D Secure 2 authentication, and will not proceed to the payment authorization.Default: **false**., trustedShopper: bool # Set to true if the payment should be routed to a trusted MID.}\n@returns(201) {accountInfo: map{accountAgeIndicator: str, accountChangeDate: str(date-time), accountChangeIndicator: str, accountCreationDate: str(date-time), accountType: str, addCardAttemptsDay: int(int32), deliveryAddressUsageDate: str(date-time), deliveryAddressUsageIndicator: str, homePhone: str, mobilePhone: str, passwordChangeDate: str(date-time), passwordChangeIndicator: str, pastTransactionsDay: int(int32), pastTransactionsYear: int(int32), paymentAccountAge: str(date-time), paymentAccountIndicator: str, purchasesLast6Months: int(int32), suspiciousActivity: bool, workPhone: str}, additionalAmount: map{currency: str, value: int(int64)}, additionalData: map, allowedPaymentMethods: [str], amount: map{currency: str, value: int(int64)}, applicationInfo: map{adyenLibrary: map{name: str, version: str}, adyenPaymentSource: map{name: str, version: str}, externalPlatform: map{integrator: str, name: str, version: str}, merchantApplication: map{name: str, version: str}, merchantDevice: map{os: str, osVersion: str, reference: str}, shopperInteractionDevice: map{locale: str, os: str, osVersion: str}}, authenticationData: map{attemptAuthentication: str, authenticationOnly: bool, threeDSRequestData: map{challengeWindowSize: str, dataOnly: str, nativeThreeDS: str, threeDSVersion: str}}, billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, blockedPaymentMethods: [str], captureDelayHours: int(int32), channel: str, company: map{homepage: str, name: str, registrationNumber: str, registryLocation: str, taxId: str, type: str}, countryCode: str, dateOfBirth: str(date-time), deliverAt: str(date-time), deliveryAddress: map{city: str, country: str, firstName: str, houseNumberOrName: str, lastName: str, postalCode: str, stateOrProvince: str, street: str}, enableOneClick: bool, enablePayOut: bool, enableRecurring: bool, expiresAt: str(date-time), fundOrigin: map{billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, shopperEmail: str, shopperName: map{firstName: str, lastName: str}, telephoneNumber: str, walletIdentifier: str}, fundRecipient: map{IBAN: str, billingAddress: map{city: str, country: str, houseNumberOrName: str, postalCode: str, stateOrProvince: str, street: str}, paymentMethod: map{billingSequenceNumber: str, brand: str, checkoutAttemptId: str, cupsecureplus.smscode: str, cvc: str, encryptedCard: str, encryptedCardNumber: str, encryptedExpiryMonth: str, encryptedExpiryYear: str, encryptedPassword: str, encryptedSecurityCode: str, expiryMonth: str, expiryYear: str, fastlaneData: str, fundingSource: str, holderName: str, networkPaymentReference: str, number: str, recurringDetailReference: str, sdkData: str, shopperNotificationReference: str, srcCorrelationId: str, srcDigitalCardId: str, srcScheme: str, srcTokenReference: str, storedPaymentMethodId: str, threeDS2SdkVersion: str, type: str}, shopperEmail: str, shopperName: map{firstName: str, lastName: str}, shopperReference: str, storedPaymentMethodId: str, subMerchant: map{city: str, country: str, mcc: str, name: str, taxId: str}, telephoneNumber: str, walletIdentifier: str, walletOwnerTaxId: str, walletPurpose: str}, id: str, installmentOptions: map, lineItems: [map], mandate: map{amount: str, amountRule: str, billingAttemptsRule: str, billingDay: str, count: str, endsAt: str, frequency: str, remarks: str, startsAt: str}, mcc: str, merchantAccount: str, merchantOrderReference: str, metadata: map, mode: str, mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, recurringExpiry: str, recurringFrequency: str, recurringProcessingModel: str, redirectFromIssuerMethod: str, redirectToIssuerMethod: str, reference: str, returnUrl: str, riskData: map{clientData: str, customFields: map, fraudOffset: int(int32), profileReference: str}, sessionData: str, shopperEmail: str, shopperIP: str, shopperInteraction: str, shopperLocale: str, shopperName: map{firstName: str, lastName: str}, shopperReference: str, shopperStatement: str, showInstallmentAmount: bool, showRemovePaymentMethodButton: bool, socialSecurityNumber: str, splitCardFundingSources: bool, splits: [map], store: str, storeFiltrationMode: str, storePaymentMethod: bool, storePaymentMethodMode: str, telephoneNumber: str, themeId: str, threeDS2RequestData: map{homePhone: map{cc: str, subscriber: str}, mobilePhone: map{cc: str, subscriber: str}, threeDSRequestorChallengeInd: str, workPhone: map{cc: str, subscriber: str}}, threeDSAuthenticationOnly: bool, trustedShopper: bool, url: str} # Created - the request has been fulfilled and has resulted in one or more new resources being created.\n@example_request {\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"amount\":{\"value\":100,\"currency\":\"EUR\"},\"returnUrl\":\"https://your-company.example.com/checkout?shopperOrder=12xy..\",\"reference\":\"YOUR_PAYMENT_REFERENCE\",\"countryCode\":\"NL\"}\n\n@endpoint GET /sessions/{sessionId}\n@desc Get the result of a payment session\n@required {sessionId: str # A unique identifier of the session., sessionResult: str # The `sessionResult` value from the Drop-in or Component.}\n@returns(200) {additionalData: map, id: str, payments: [map], reference: str, status: str} # OK - the request has succeeded.\n\n@endgroup\n\n@group storedPaymentMethods\n@endpoint GET /storedPaymentMethods\n@desc Get tokens for stored payment details\n@optional {shopperReference: str # Your reference to uniquely identify this shopper, for example user ID or account ID. Minimum length: 3 characters. > Your reference must not include personally identifiable information (PII), for example name or email address., merchantAccount: str # Your merchant account.}\n@returns(200) {merchantAccount: str, shopperReference: str, storedPaymentMethods: [map]} # OK - the request has succeeded.\n\n@endpoint POST /storedPaymentMethods\n@desc Create a token to store payment details\n@required {merchantAccount: str # The merchant account identifier, with which you want to process the transaction., paymentMethod: map{brand: str, cvc: str, encryptedCard: str, encryptedCardNumber: str, encryptedExpiryMonth: str, encryptedExpiryYear: str, encryptedSecurityCode: str, expiryMonth: str, expiryYear: str, holderName: str, number: str, type: str}, recurringProcessingModel: str(CardOnFile/Subscription/UnscheduledCardOnFile) # Defines a recurring payment type. Required when creating a token to store payment details. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount., shopperReference: str # A unique identifier for the shopper (for example, user ID or account ID).}\n@optional {Idempotency-Key: str # A unique identifier for the message with a maximum of 64 characters (we recommend a UUID)., shopperEmail: str # The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks., shopperIP: str # The IP address of a shopper.}\n@returns(201) {alias: str, aliasType: str, brand: str, cardBin: str, expiryMonth: str, expiryYear: str, externalResponseCode: str, externalTokenReference: str, holderName: str, iban: str, id: str, issuerName: str, lastFour: str, mandate: map{accountIdType: str, amount: str, amountRule: str, billingAttemptsRule: str, billingDay: str, count: str, currency: str, endsAt: str, frequency: str, mandateId: str, maskedAccountId: str, minAmount: str, providerId: str, recurringAmount: str, recurringStatement: str, remarks: str, retryPolicy: str, startsAt: str, status: str, txVariant: str}, name: str, networkTxReference: str, ownerName: str, shopperEmail: str, shopperReference: str, supportedRecurringProcessingModels: [str], type: str} # Created - the request has been fulfilled and has resulted in one or more new resources being created.\n@example_request {\"merchantAccount\":\"YOUR_MERCHANT_ACCOUNT\",\"shopperReference\":\"YOUR_SHOPPER_REFERENCE\",\"paymentMethod\":{\"type\":\"scheme\",\"encryptedCardNumber\":\"test_4111111111111111\",\"encryptedExpiryMonth\":\"test_03\",\"encryptedExpiryYear\":\"test_2030\",\"encryptedSecurityCode\":\"test_737\",\"holderName\":\"John Smith\"},\"recurringProcessingModel\":\"Subscription\",\"shopperEmail\":\"s.hopper@test.com\",\"shopperIP\":\"192.0.2.1\"}\n\n@endpoint DELETE /storedPaymentMethods/{storedPaymentMethodId}\n@desc Delete a token for stored payment details\n@required {storedPaymentMethodId: str # The unique identifier of the token., shopperReference: str # Your reference to uniquely identify this shopper, for example user ID or account ID. Minimum length: 3 characters. > Your reference must not include personally identifiable information (PII), for example name or email address., merchantAccount: str # Your merchant account.}\n@returns(204) No Content - look at the actual response code for the status of the request.\n\n@endgroup\n\n@group validateShopperId\n@endpoint POST /validateShopperId\n@desc Validates shopper Id\n@required {merchantAccount: str # The merchant account identifier, with which you want to process the transaction., paymentMethod: map{type!: str}}\n@optional {shopperEmail: str, shopperIP: str, shopperReference: str}\n@returns(200) {reason: str, result: str} # OK - the request has succeeded.\n@errors {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.}\n\n@endgroup\n\n@end\n"}}