---
title: "Initiate a Direct Payment (PCI-DSS compliant only)"
method: POST
path: "/v2/moneyins/card/direct/3dinit"
tags: ["MoneyIns | Cards"]
---

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

`POST /v2/moneyins/card/direct/3dinit`

**Payment with a New Card**  
This method is more complex that non 3-D Secure payment, but 3-D Secure will ensure that your business is secure.  
You will need 3 integration points:  
1. By calling `POST /moneyins/card/direct/3dinit`, you receive a Authentication URL and a Transaction Id.  If you want to register a card for to use card severval times or subscription 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, with the callback ReturnURL.  
4. You need to then call `POST /moneyins/card/direct/{transactionid}/3dauthenticate` to verify the authentication process was done.  
5. If the authentication was done then, you then call `PUT /moneyins/card/direct/{transactionid}/3dconfirm` specifying the returned Transaction Id to finalize the payment.
---
**Payment with a Registered Card**  
1. Ensure you have a cardId then call `POST /moneyins/card/direct/3dinit` specifying the cardID parameter (cardId and CVV (optional)). If you want to improve the transaction success rate add the CVV code in the parameters.  
2. Refer to **steps 2 - 5** as stated above.  
**Note:** You require a cardId to make a transaction on a registered card.  This id is displayed when you finalized your first payment with the registered card using `PUT /moneyins/card/direct/{transactionid}/3dconfirm`   
Payments on a registered card use the following process:  
Call MoneyIn3DInit ensuring that you include the `cardId` in the body of the request. Refer to steps **2 - 5**  as stated above.  
**Note:** To ensure that the client’s card has been registered, call the following method before you initiative payments on a registered card: `GetCard`
---
**Subscription Payments**   
A prerequisite to setting up a subscription is that you have previously made a payment with a card and registered the card using `POST /moneyins/card/direct/3dinit` 
**Note:** When you create a recurring payment ensure that the `recurringAvgAmount` is higher than totalAmount. If a lower amount is used for `recurringAvgAmount` you will receive a directkit error message 368: `recurringAvgAmount` should be greater than the transaction amount.  
**Note:** After you have registered a card refer to `POST /moneyins/card/{cardid}/rebill` to begin setting up a subscription or payment by delivery system.  
**Important:** To ensure the likelyhood of frictionless payments you must setup payments of equal recurring amounts.

## Headers

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

## Request body

- MoneyIn3DInitInput
  - `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
  - `returnUrl` string — Return URL of the 3-D Secure website. Your client will be redirected on this URL, which should be your website URL.
  - `cardId` integer
  - `registerCard` boolean
  - `threeDS` ThreeDS
    - `challengeMode` string — If you would like to enforce 3D Secure for your client then use the challenge mode. Possible values are: - No_preference (default value). The card holder's bank will decide whether or not to challange - Force_threeDS
  - `riskAnalysis` RiskAnalysis
    - `billingAddress` BillingAddress
      - `city` string — Client city
      - `country` string — Client country using ISO 3166-1 alpha-3
      - `addressAdditional1` string — Client number and street
      - `addressAdditional2` string — Client number and street
      - `addressAdditional3` string — Client number and street
      - `zipCode` string — Client Post Code/ZIP
      - `state` string — Client State
    - `holder` Holder
      - `firstName` string, required
      - `lastName` string, required
      - `email` string
      - `phone` string
      - `mobile` string
      - `workPhone` string
    - `deliveryAddress` DeliveryAddress
      - `city` string — Client City
      - `Country` string — Client country using ISO 3166-1 alpha-3
      - `addressAdditional1` string — Client Number and Street
      - `addressAdditional2` string — Client Number and Street
      - `addressAdditional3` string — Client Number and Street
      - `zipCode` string — Client Postal Code/ZIP
      - `state` string — Client State
    - `deliveryAdditionalInfo` DeliveryAdditionalInfo
      - `contact` Contact
        - `email` string
      - `numberOfItemsBasket` string — Total quantity of all products in the basket
      - `addressDeliveryBillingMatchIndicator` string — Specifies whether the delivery and the billing addresses are the same
      - `deliveryAddressCreationDate` string — The date on which the last delivery address used by the merchant's account was reported in the transaction
      - `estimatedDeliveryDelay` string — Estimated Delivery Delay (in days) by the Merchant
      - `deliveryMode` string — Delivery Method (Postal Office or Amazon box and so on)
    - `customerAccountInfo` CustomerAccountInfo
      - `customerAccountId` string — Additional information about the account optionally provided by the 3-D Secure Requestor
      - `numberOfPurchase180Days` string — The number of customer transactions made over the last six months (last 180 days)
      - `numberOfTransactionYear` string — Number of accepted or abandoned transactions in the last year on the customer account
      - `customerAccountCreationDate` string — The customer account creation date. Format: YYYY/MM/DD
      - `numberOfAttemptsAddCard24Hours` string — The number of add card attempts in 24 hours
      - `suspiciousActivityIndicator` string — Specifies whether a suspicious activity is detected on customer account. Possible values: true or false.
      - `numberOfTransaction24Hours` string — Number of abandoned or successful transactions in the last 24 hours on the customer account
      - `customerAccountChangeDate` string — Last date the customer account was changed. Format: YYYY/MM/DD
      - `passwordChangeDate` string — Date of last change of password of the customer account. Format: YYYY/MM/DD
      - `addPaymentMeanDate` string — Date of last added form of payment made to account. For example a new card registered to the account. Format: YYYY/MM/DD
    - `authentication` Authentication
      - `merchantCustomerAuthentMethod` string — Possible Authentication Methods: <br /> - NOAUTHENT = 1 - No authentication of the customer by the merchant - OWNCREDENTIAL = 2 - Customer authentication by the merchant using his own system - FEDERATEDID = 3 - Customer authentication by the merchant using an identifier federated(facebook, ...) (e.g.Facebook) - ISSUERID = 4 - Customer authentication by the merchant using information of the issuer's payment mean - THIRDPARTY = 5 - Customer authentication by the merchant using a third system - FIDO = 6 - Customer authentication by the merchant with FIDO(Fast IDentity Online) system
      - `merchantCustomerAuthentDateTime` string — ISO8601 date time format
  - `recurringAvgAmount` integer — Average amount of future recurring payments to cover recurring payments with variable amounts. **Note:** Only if the amount is higher than the amount of the first transaction. cover recurring payments with variable amounts. **Note:** Only if the amount is higher than the amount of the first transaction.
  - `paymentPattern` string — **Recurring**: If a payment follows a recurring amount or **One_shot**: when there is no future recurring payments.
  - `reference` string — Unique ID of the call, generated by your server. This ID can be used as a search field when looking for operation details
  - `accountId` string, required — Payment Account ID to Credit
  - `totalAmount` integer, required — Amount to Debit Amounts are given as integer numbers in cents
  - `commissionAmount` integer — Your Fee Amounts are given as integer numbers in cents
  - `comment` string — Comment Regarding the Transaction
  - `autoCommission` boolean — If true: 1. [amountCom] will be ignored and will be replaced with Lemonway's fee 2. You will not receive any fee

## Response `200`

OK

- MoneyIn3DInitOutput
  - `acs` ACS
    - `actionUrl` string
    - `actionMethod` string
    - `pareqFieldName` string
    - `pareqFieldValue` string
    - `termurlFieldName` string
    - `mdFieldName` string
    - `mdFieldValue` string
    - `mpiResult` string
  - `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)
