---
title: "Finalize a Direct Payment (PCI-DSS compliant only)"
method: PUT
path: "/v2/moneyins/card/direct/{transactionid}/3dconfirm"
tags: ["MoneyIns | Cards"]
---

# Finalize a Direct Payment (PCI-DSS compliant only)

`PUT /v2/moneyins/card/direct/{transactionid}/3dconfirm`

This method finalizes the credit of a wallet by card after 3D Secure authentication of the client:<br />
1. After initiating a Direct Payment using <b>POST /moneyins/card/direct/3dinit</b>, you receive an Authentication URL and a Transaction Id. If you want to register a card for future payments set **registerCard=true**
2. With the Authentication URL, you are able to redirect the end-user to the ACS (Bank Authentication Server) Page
3. After 3D Secure Authentication, you will be called back on the ReturnURL
4. You need to then call <b>POST /moneyins/card/direct/{transactionid}/3dauthenticate</b> to verify the authentication process was done.
5. If the authentication was done then call <b>PUT /moneyins/card/direct/{transactionid}/3dconfirm</b> specifying the return Transaction ID to finalize the payment. <br />
For Subscriptions with equal recurring amounts: for the initial subscription payment, use the <b>POST /moneyins/card/direct/3dinit</b> and then <b>POST /moneyins/card/direct/{transactionid}/3dauthenticate</b> and <b>PUT /moneyins/card/direct/{transactionid}/3dconfirm</b> Ensure that you set: <b>registerCard=true</b> Use POST /moneyins/card/{cardid}/rebill for all subsequent payments.

## Path parameters

- `transactionid` integer, required

## Headers

- `Authorization` string, required
- `PSU-Accept-Language` string
- `PSU-IP-Address` string, required
- `PSU-User-Agent` string

## Request body

- MoneyIn3DConfirmInput
  - `isPreAuth` boolean — **Mercanet only** Indicates if the request is delayed and will require validation. 1. If true, payment will only be pre-authorized, you will have to call the `MoneyInValidate` method within 6 days or [delayedDays] in order to request the debit card. 2. If empty, the default behavior is no delay and no validation is necessary (unless stated otherwise in your contract). 3. If false, the card will be debited without delay and without validation necessary.
  - `delayedDays` integer — **Mercanet only** If `isPreAuth` is not true, this will be ignored. Please use with caution, if delayedDays &gt; 6, it is possible that the payment will be denied when you try to validate it, because a new authorization will be made.
  - `card` CardInfo
    - `cardType` 0 | 1 | 2 — Card Type<br/>0 = CB.<br/>1 = Visa.<br/>2 = Mastercard.<br/>
    - `cardNumber` string — Card Number
    - `cardCode` string — CVV Code
    - `cardDate` string — Card Expiration Date
  - `md` string — MD Data Returned by 3-D Secure Site
  - `pares` string — Pares Data Returned by 3-D Secure Authentication Website
  - `specialConfig` string — Leave Empty

## Response `200`

OK

- MoneyIn3DConfirmOutput
  - `transaction` TransactionIn
    - `receiverAccountId` string — Credited Account
    - `creditAmount` integer — Credited Amount Amounts represented in integer (cents)
    - `scheduledDate` string
    - `scheduledNumber` string
    - `maskedLabel` string
    - `PSP` PSP
      - `message` string — Get the Error Message from PSP
    - `card` Card
      - `id` integer
      - `is3DS` boolean — Card with 3-DS authentication
      - `country` string — Card issuing country
      - `authorizationNumber` string — Authorization number
      - `maskedNumber` string — Masked card number
      - `expiration` string — Expiration date (if available)
      - `type` string — Card type (example: Visa or Mastercard)
      - `isRegistered` boolean — Card is registered
      - `holderName` string — Card's holder name
    - `bankStatus` string
    - `refundAmount` number, double
    - `bankReference` string — Bank reference
    - `ChequeSendingAddress_CorporateName` string — A specified postal address for the cheque
    - `ChequeSendingAddress_Street` string — Cheque sending address street name
    - `ChequeSendingAddress_City` string — Cheque sending address city name
    - `ChequeSendingAddress_PostCode` string — Cheque sending address post code
    - `threeDS` ThreeDs
      - `threeDSModeRequested` string — 3DS Exemption Request Possible value: NO_PREFERENCE: The issuing Bank can choose to activate or not 3DS v2.
      - `threeDSResult` string — 3DS Authentication Result Possible values: - CHALLENGE: 3DS v2 was activated and the card owner was asked to be strongly authenticated. - FRICTIONLESS: 3DS v2 was not activated. - NONE: We could not get the SCA result.
    - `buyNowPayLaterInfo` BnplInfo
      - `paymentPlanId` integer — Payment Plan ID
      - `type` string — Payment plan type.
      - `secondInstallmentPaymentDate` string — Second installment payment date. Format: yyyy-MM-dd
      - `deferredPaymentDate` string — Deferred payment date. Format: yyyy-MM-dd
    - `id` integer — Transaction ID
    - `method` integer — Payment Method 0 Card 1 Bank transfer (MoneyIn) 3 Bank transfer (MoneyOut) 4 P2P 13 iDEAL 14 SEPA DirectDebit 15 Cheque 19 Multibanco 21 MBWAY 30 BNPL 35 PayPal --- **Important:** The following services have been discontinued. 16 Neosurf 17 Sofort 18 PFS Physical Card 20 Payshop 22 Polish Instant Transfer 23 Pagare 24 MobilePay 25 Paytrail 26 WeChat 27 P24 28 MoneyIn by TPE 29 Trustly
    - `methodDetails` 0 | 1 — Payment Method Details 0 Standard 1 Pay By Bank<br/>0 = STANDARD.<br/>1 = PAY_BY_BANK.<br/>
    - `date` integer — Transaction initialization date, UTC Unix timestamp
    - `commissionAmount` integer — Your fee Amounts are given as integer numbers in cents
    - `comment` string — Comment
    - `status` integer — **For the following endpoints uses the below status code** /v2/accounts/{accountId}/transactions /v2/moneyins /v2/moneyins/card/direct /v2/moneyins/card/{cardid}/rebill /v2/moneyins/card/{cardid}/subscription /v2/moneyins/{transactionid}/validate /v2/moneyins/sdd/init /v2/moneyins/sdd /v2/moneyins/{transactionid}/cancel /v2/refund/{transactionid} /v2/refundcreate/{transactionId} 0: Success 3: Lemonway Error 4: Pending 6: PSP error 7: Cancelled 16: Validation pending **For the following endpoints uses the below status code** /v2/disputes /v2/moneyins/bankwire /v2/moneyins/card/direct/3dinit /v2/moneyouts /v2/p2p /v2/p2p/{transactionid?} 0: Waiting for finalization 3: Success 4: Lemonway Error
    - `executionDate` integer — Transaction execution date
    - `lemonWayCommission` LemonWayCommission
      - `idp2p` string
      - `amount` integer — Amounts are represented as integer in cents (Euro) Represented as an integer in cents (Euro)
    - `reference` string — Unique ID generated by your server
    - `remainingAmount` integer
    - `substatus` string — Is Payment token consumed?
  - `error` Error
    - `code` integer
    - `message` string
    - `psp` PSP
      - `message` string — Get the Error Message from PSP

## Other responses

- `401` — Unauthorized
- `500` — InternalServerError

---

[API](https://skmtc.net/lemonway/apis/account-onboarding-management-api.md) · [All operations](https://skmtc.net/lemonway/apis/account-onboarding-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lemonway/account-onboarding-management-api/revisions/73309fe68e2d/schema)
