---
title: "Submit details for a payment"
method: POST
path: "/payments/details"
tags: ["Payments"]
---

# Submit details for a payment

`POST /payments/details`

Submits details for a payment created using `/payments`. This step is only needed when no final state has been reached on the `/payments` request, for example when the shopper was redirected to another page to complete the payment.

## Headers

- `Idempotency-Key` string

## Request body

- PaymentDetailsRequest
  - `details` PaymentCompletionDetails, required
    - `MD` string — A payment session identifier returned by the card issuer.
    - `PaReq` string — (3D) Payment Authentication Request data for the card issuer.
    - `PaRes` string — (3D) Payment Authentication Response data by the card issuer.
    - `authorization_token` string
    - `billingToken` string — PayPal-generated token for recurring payments.
    - `cupsecureplus.smscode` string — The SMS verification code collected from the shopper.
    - `facilitatorAccessToken` string — PayPal-generated third party access token.
    - `oneTimePasscode` string — A random number sent to the mobile phone number of the shopper to verify the payment.
    - `orderID` string — PayPal-assigned ID for the order.
    - `payerID` string — PayPal-assigned ID for the payer (shopper).
    - `payload` string — Payload appended to the `returnURL` as a result of the redirect.
    - `paymentID` string — PayPal-generated ID for the payment.
    - `paymentStatus` string — Value passed from the WeChat MiniProgram `wx.requestPayment` **complete** callback. Possible values: any value starting with `requestPayment:`.
    - `redirectResult` string — The result of the redirect as appended to the `returnURL`.
    - `resultCode` string — Value you received from the WeChat Pay SDK.
    - `returnUrlQueryString` string — The query string as appended to the `returnURL` when using direct issuer links .
    - `threeDSResult` string — Base64-encoded string returned by the Component after the challenge flow. It contains the following parameters: `transStatus`, `authorisationToken`.
    - `threeds2.challengeResult` string — Base64-encoded string returned by the Component after the challenge flow. It contains the following parameter: `transStatus`.
    - `threeds2.fingerprint` string — Base64-encoded string returned by the Component after the challenge flow. It contains the following parameter: `threeDSCompInd`.
    - `vaultToken` string — PayPalv2-generated token for recurring payments.
  - `paymentData` string — The `paymentData` value from the `/payments` response. Required if the `/payments` response contained `paymentData`.

## Response `200`

OK - the request has succeeded.

- PaymentDetailsResponse
  - `additionalData` object — Contains additional information about the payment. Some data fields are included only if you select them first: Go to **Customer Area** > **Developers** > **Additional data**.
  - `authResponse` string — The authorisation code representing the authentication result.
  - `details` InputDetail[] — When non-empty, contains all the fields that you must submit to the `/payments/details` endpoint.
    - `configuration` object — Configuration parameters for the required input.
    - `details` SubInputDetail[] — Input details can also be provided recursively.
      - `configuration` object — Configuration parameters for the required input.
      - `items` Item[] — In case of a select, the items to choose from.
        - `id` string — The value to provide in the result.
        - `name` string — The display name.
      - `key` string — The value to provide in the result.
      - `optional` boolean — True if this input is optional to provide.
      - `type` string — The type of the required input.
      - `value` string — The value can be pre-filled, if available.
    - `inputDetails` SubInputDetail[] — Input details can also be provided recursively (deprecated).
      - `configuration` object — Configuration parameters for the required input.
      - `items` Item[] — In case of a select, the items to choose from.
        - `id` string — The value to provide in the result.
        - `name` string — The display name.
      - `key` string — The value to provide in the result.
      - `optional` boolean — True if this input is optional to provide.
      - `type` string — The type of the required input.
      - `value` string — The value can be pre-filled, if available.
    - `itemSearchUrl` string — In case of a select, the URL from which to query the items.
    - `items` Item[] — In case of a select, the items to choose from.
      - `id` string — The value to provide in the result.
      - `name` string — The display name.
    - `key` string — The value to provide in the result.
    - `optional` boolean — True if this input value is optional.
    - `type` string — The type of the required input.
    - `value` string — The value can be pre-filled, if available.
  - `fraudResult` FraudResult
    - `accountScore` integer, required — The total fraud score generated by the risk checks.
    - `results` FraudCheckResultWrapper[] — The result of the individual risk checks.
      - `FraudCheckResult` FraudCheckResult
        - `accountScore` integer, required — The fraud score generated by the risk check.
        - `checkId` integer, required — The ID of the risk check.
        - `name` string, required — The name of the risk check.
  - `merchantReference` string — The reference used during the /payments request.
  - `order` CheckoutOrderResponse
    - `amount` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `expiresAt` string — The expiry date for the order.
    - `orderData` string — The encrypted order data.
    - `pspReference` string, required — The `pspReference` that belongs to the order.
    - `reference` string — The merchant reference for the order.
    - `remainingAmount` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `outputDetails` object — Contains the details that will be presented to the shopper.
  - `paymentData` string — When non-empty, contains a value that you must submit to the `/payments/details` endpoint.
  - `pspReference` string — Adyen's 16-character string reference associated with the transaction/request. This value is globally unique; quote it when communicating with us about this request.
  - `redirect` Redirect
    - `data` object — When the redirect URL must be accessed via POST, use this data to post to the redirect URL.
    - `method` 'GET' | 'POST' — The web method that you must use to access the redirect URL. Possible values: GET, POST.
    - `url` string — The URL, to which you must redirect a shopper to complete a payment.
  - `refusalReason` string — If the payment's authorisation is refused or an error occurs during authorisation, this field holds Adyen's mapped reason for the refusal or a description of the error. When a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values. For more information, see [Refusal reasons](https://docs.adyen.com/development-resources/refusal-reasons).
  - `refusalReasonCode` string — Code that specifies the refusal reason. For more information, see [Authorisation refusal reasons](https://docs.adyen.com/development-resources/refusal-reasons).
  - `resultCode` 'AuthenticationFinished' | 'AuthenticationNotRequired' | 'Authorised' | 'Cancelled' | 'ChallengeShopper' | 'Error' | 'IdentifyShopper' | 'PartiallyAuthorised' | 'Pending' | 'PresentToShopper' | 'Received' | 'RedirectShopper' | 'Refused' | 'Success' — The result of the payment. For more information, see [Result codes](https://docs.adyen.com/online-payments/payment-result-codes). Possible values: * **AuthenticationFinished** – The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions. * **AuthenticationNotRequired** – The transaction does not require 3D Secure authentication. Returned for [standalone authentication-only integrations](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only). * **Authorised** – The payment was successfully authorised. This state serves as an indicator to proceed with the delivery of goods and services. This is a final state. * **Cancelled** – Indicates the payment has been cancelled (either by the shopper or the merchant) before processing was completed. This is a final state. * **ChallengeShopper** – The issuer requires further shopper interaction before the payment can be authenticated. Returned for 3D Secure 2 transactions. * **Error** – There was an error when the payment was being processed. The reason is given in the `refusalReason` field. This is a final state. * **IdentifyShopper** – The issuer requires the shopper's device fingerprint before the payment can be authenticated. Returned for 3D Secure 2 transactions. * **PartiallyAuthorised** – The payment has been authorised for a partial amount. This happens for card payments when the merchant supports Partial Authorisations and the cardholder has insufficient funds. * **Pending** – Indicates that it is not possible to obtain the final status of the payment. This can happen if the systems providing final status information for the payment are unavailable, or if the shopper needs to take further action to complete the payment. * **PresentToShopper** – Indicates that the response contains additional information that you need to present to a shopper, so that they can use it to complete a payment. * **Received** – Indicates the payment has successfully been received by Adyen, and will be processed. This is the initial state for all payments. * **RedirectShopper** – Indicates the shopper should be redirected to an external web page or app to complete the authorisation. * **Refused** – Indicates the payment was refused. The reason is given in the `refusalReason` field. This is a final state.
  - `shopperLocale` string — The shopperLocale.

## Other responses

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

---

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