# Method-specific parameters If you specify the `method` parameter when [creating a payment](create-payment), optional parameters may be available for the payment method. All possible method-specific parameters are listed below. If no method is specified, you can still send the optional parameters and we will apply them when the customer selects the relevant payment method. Similarly, the response object will often contain method-specific details only relevant for the payment method chosen by the customer. These are listed at the bottom of this page. Need more information on a certain payment method? Check out our [Payment methods](https://docs.mollie.com/docs/payment-methods) overview. # Payment creation request parameters **`POST`** `/v2/payments` ## Apple Pay #### `applePayPaymentToken` *string* > The [Apple Pay Payment](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypayment) token object (encoded as JSON) that is part of the result of authorizing a payment request. The token contains the payment information needed to authorize the payment. > > The object should be passed encoded in a JSON string. For example: > `{"paymentData": {"version": "EC_v1", "data": "vK3BbrCbI/...."}}` ## Bank transfer #### `dueDate` *string* > The date the bank transfer payment should expire, in `YYYY-MM-DD` format. The minimum date is tomorrow, and the maximum date is 100 days after tomorrow. > > After you created the payment, you can still update the `dueDate` via [Update payment](update-payment) > > > If `dueDate` falls out of business days, it will be set to the **next business day** and the payment will expire at 00:00 (on the following business day).\ > Example: `dueDate` is `2025-12-06` (Saturday) ->`dueDate` will be set for `2025-12-08`, `expiresAt` `2025-12-09 00:00` > #### `billingEmail` *string* > > This field is deprecated. Use `billingAddress.email` instead. > > > For bank transfer payments, we provide a hosted payment screen with bank transfer details. The screen includes a field where customers can fill out their email address to receive the instructions via email. If you provide the email address up front, we will automatically send the instructions email upon payment creation. The language of the email will follow the locale parameter of the payment. ## Billie #### `company` *object* > Billie is a business-to-business (B2B) payment method. It requires extra information to identify the organization that is completing the payment. It is recommended to include these parameters up front for a seamless flow. Otherwise, Billie will ask the customer to complete the missing fields during checkout. > > * `billingAddress.organizationName` : The organization's name. > * `registrationNumber` *string*: The organization's registration number. > * `vatNumber` *string*: The organization's VAT number. > * `entityType` *string*: The organization's entity type. ## Credit card #### `cardToken` *string* > When creating credit card payments using Mollie Components, you need to provide the card token you received from the card component in this field. The token represents the customer's card information needed to complete the payment. **Note:** field only valid for `oneoff` and `first` payments. For recurring payments, the `customerId` alone is enough. ## Gift card #### `voucherNumber` *string* > The card token you received from the card component of Mollie Components. The token represents the customer's card information needed to complete the payment. #### `voucherPin` *string* > The PIN on the gift card. You can supply this to prefill the PIN, if the card has any. ## iDeal in3 #### `consumerDateOfBirth` *string* > The customer's date of birth. If not provided via the API, iDeal in3 will ask the customer to provide it during the payment process. ## Klarna #### `extraMerchantData` *object* > For some industries, additional purchase information can be sent to Klarna to increase the authorization rate. You can submit your extra data in this field if you have agreed upon this with Klarna. This field should be an object containing any of the allowed keys and sub-objects described at the Klarna Developer Documentation . > > Reach out to your account manager at Mollie to enable this feature with Klarna, and to agree on which fields you can send. ## PayPal #### `sessionId` *string* > The unique ID you have used for the PayPal fraud library. You should include this if you use PayPal for an on-demand payment. #### `digitalGoods` *boolean* > Indicate if you are about to deliver digital goods, such as for example a software license. Setting this parameter can have consequences for your PayPal Seller Protection. Refer to [PayPal's documentation](https://molapi.readme.io/reference/create-payment#:~:text=PayPal%27s%20documentation) for more information. ## paysafecard #### `customerReference` *string* > Used by paysafecard for customer identification across payments. When you generate a customer reference yourself, make sure not to put personal identifiable information or IP addresses in the customer reference directly. > > If not provided, Mollie will use a hashed version of the customer's IP address. ## Point-of-sale #### `terminalId` *string* > The ID of the terminal device where you want to initiate the payment on. See also the [Terminals API](https://docs.mollie.com/reference/terminals-api). ## Przelewy24 #### `billingEmail` *string* | *null* > > This field is deprecated. Use `billingAddress.email` instead. > > > For Przelewy24 payments, the customer needs to provide their email address as part of the standard payment flow. We provide a hosted page where the customer can fill out their email address. You can skip this page by providing the email address using the billingEmail parameter. # Payment response object If the payment has been created with a `method`, or if the customer selected a method in the payment method selection screen, a `details` object becomes available on the payment object. This object contains detail fields specific to the selected payment method. Additionally, some methods might provide specific `_links` properties. ## Customer details For most payment methods the name and account details of the customer are available. #### `details.consumerName` *string | null* > The customer's name, if made available by the payment method. For card payments, refer to `details.cardHolder`. #### `details.consumerAccount` *string | null* > The customer's account reference. > > For banking-based payment methods — such as iDEAL — this is normally either an IBAN or a domestic bank account number. > > For PayPal, the account reference is an email address. > > For card and Bancontact payments, refer to `details.cardNumber`. #### `details.consumerBic` *string | null* > The BIC of the customer's bank account, if applicable. #### `details.shippingAddress` *object | null* > For wallet payment methods — such as Apple Pay and PayPal — the shipping address is often already known by the wallet provider. In these cases the shipping address may be available as a payment detail. ## Apple Pay Since Apple Pay payments are card payments, the same detail fields will be available as for card payments. Additionally, `details.wallet` will be set to `applepay`. ## Bancontact #### `details.cardNumber` *string | null* > The customer's masked card number. #### `_links.mobileAppCheckout` *object* > The deeplink URL to the app of the payment method. ## Bank transfer #### `details.bankName` *string* > The name of the bank that the customer will need to make the bank transfer payment towards. #### `details.bankAccount` *string* > The bank account number the customer will need to make the bank transfer payment towards. #### `details.bankBic` *string* > The BIC of the bank the customer will need to make the bank transfer payment towards. #### `details.billingEmail` *string | null* > > This field is deprecated. Use `billingAddress.email` instead. > > > The email address which the customer requested us to send the payment instructions to. Only available if provided via the API during payment creation, or if filled out by the customer in the hosted checkout screen. #### `details.transferReference` *string* > The Mollie-generated reference the customer needs to use when transfering the amount. Do not apply any formatting here; show it to the customer as-is. #### `_links.status` *object* > Link to customer-facing page showing the status of the bank transfer (to verify if the transcation was successful). #### `_links.payOnline` *object* > Link to [Mollie Checkout page](https://docs.mollie.com/docs/hosted-checkout#/) allowing customers to select a different payment method instead of legacy bank transfer. ## Cards #### `details.cardFingerprint` *string | null* > A unique fingerprint for this specific card. Can be used to identify returning customers. #### `details.cardNumber` *string | null* > The last4-digit of the PAN #### `details.cardHolder` *string | null* > The customer's name as shown on their card. #### `details.cardAudience` *string | null* > The card's target audience, if known. > > Possible values: `consumer` `business` #### `details.cardLabel` *string | null* > The card's label, if known. > > Possible values: `American Express` `Carta Si` `Carte Bleue` `Dankort` `Diners Club` `Discover` `JCB` `Laser` `Maestro` `Mastercard` `Unionpay` `Visa` #### `details.cardCountryCode` *string | null* > The ISO 3166-1 alpha-2 country code of the country the card was issued in. #### `details.cardExpiryDate` *string | null* > The expiry date (`MM/YY`) of the card as displayed on the card. #### `details.cardFunding` *string | null* > The card type. > > Possible values: `debit`, `credit`, `prepaid` ,`deferred-debit` #### `details.cardSecurity` *string | null* > The level of security applied during card processing. > > Possible values: `normal` `3dsecure` #### `details.feeRegion` *string | null* > The applicable card fee region. > > For example, `intra-eu` applies to consumer cards from the European Economic Area (EEA). > > Possible values: `american-express` `amex-intra_eea` `carte-bancaire` `intra-eu` `intra-eu-corporate` `domestic` `maestro` `other` #### `details.cardMaskedNumber` *string | null* > The first6 and last4 digits of the card number. #### `details.card3dsEci` *string | null* > The outcome of authentication attempted on transactions enforced by 3DS (ie valid only for `oneoff` and `first`). #### `details.cardBin` *string | null* > The first6 digit of the card bank identification number. #### `details.cardIssuer` *string | null* > The issuer of the Card. #### `details.failureReason` *string | null* > A failure code to help understand why the payment failed. > > Possible values: `authentication_abandoned` `authentication_failed` `authentication_required` `authentication_unavailable_acs` `card_declined` `card_expired` `inactive_card` `insufficient_funds` `invalid_cvv` `invalid_card_holder_name` `invalid_card_number` `invalid_card_type` `possible_fraud` `refused_by_issuer` `unknown_reason` #### `details.failureMessage` *string | null* > A human-friendly failure message that can be shown to the customer. The message is translated in accordance with the payment's locale setting. #### `details.wallet` *string | null* > The wallet used when creating the payment. > > Possible values: `applepay` ## Multibanco #### `details.multibancoReference` *string | null* > Multibanco payment reference of the transaction. #### `details.multibancoEntity` *string | null* > Multibanco entity reference of the transaction. ## PayPal #### `details.paypalReference` *string | null* > PayPal's reference for the payment. #### `details.paypalPayerId` *string | null* > ID of the customer's PayPal account. #### `details.sellerProtection` *string | null* > Indicates to what extent the payment is eligible for PayPal's Seller Protection. Only available for PayPal payments, if the information is made available by PayPal. > > Classic values: `Eligible` `Ineligible` `Partially Eligible - INR Only` `Partially Eligible - Unauth Only` `PartiallyEligible` `None` `Active` `Fraud Control - Unauth Premium Eligible` > > Current values: `ELIGIBLE` `PARTIALLY_ELIGIBLE` `NOT_ELIGIBLE` > > *Note:* Classic values are legacy and may still appear in older payments. #### `details.paypalFee` *object | null* > An amount object containing the fee PayPal will charge for this transaction. The field may be omitted if PayPal will not charge a fee for this transaction. ## paysafecard #### `details.customerReference` *string* > The paysafecard customer reference either provided via the API or otherwise auto-generated by Mollie. ## Point-of-sale #### `details.terminalId` *string* > The ID of the terminal device where the payment took place on. #### `details.cardNumber` *string | null* > The last 4 digits of the customer's masked card number. #### `details.maskedNumber` *string | null* > The first 6 digits & last 4 digits of the customer's masked card number. #### `details.cardFingerprint` *string | null* > A unique identifier assigned to a cardholder's payment account, linking multiple transactions from wallets and physical card to a single account, also across payment methods or when the card is reissued. #### `details.cardAudience` *string | null* > The card's target audience, if known. > Possible values: `consumer` `business` #### `details.cardLabel` *string | null* > The card's label, if known. > Possible values: `Mastercard` `Visa` `Maestro` `Vpay` #### `details.cardFunding` *string | null* > The card funding type, if known. > Possible values: `credit` `debit` #### `details.cardCountryCode` *string | null* > The ISO 3166-1 alpha-2 country code of the country the card was issued in. #### `details.feeRegion` *string | null* > The applicable card fee region. > For example, `intra_eea` applies to consumer cards from the European Economic Area (EEA). > Possible values: `domestic` `inter` `intra_eea` #### `details.receipt` *object* (⚠️ Beta feature, reach out to [Support](https://www.mollie.com/contact/merchants)) > The Point of sale receipt object. > > * `authorizationCode` *string|null* - a unique code provided by the cardholder’s bank to confirm that the transaction was successfully approved. > * `applicationIdentifier` *string|null* - the unique number that identifies a specific payment application on a chip card. > * `cardReadMethod` *string|null* - the method by which the card was read by the terminal. > Possible values: `chip` | `magnetic-stripe` | `near-field-communication` | `contactless` | `moto`. > * `cardVerificationMethod` *string|null* - the method used to verify the cardholder's identity. > Possible values: `no-cvm-required` | `online-pin` | `offline-pin` | `consumer-device` | `signature` | `signature-and-online-pin` | `online-pin-and-signature` | `none` | `failed`. #### `statusReason.code` *string* > A failure code to understand why the payment failed. > See the full list of possible values in the [Status reasons article](https://docs.mollie.com/reference/status-reasons). #### `statusReason.message` *string* > A human-friendly failure message that you can show to the customer. > See the full list of possible values in the [Status reasons article](https://docs.mollie.com/reference/status-reasons). #### `_links.terminal` *object* > The API resource URL of the [terminal](https://docs.mollie.com/reference/terminals-api#/) this payment was created for. ## SEPA Direct Debit #### `details.transferReference` *string* > The reference generated by Mollie to uniquely identify the payment. #### `details.creditorIdentifier` *string* > The creditor identifier indicates who is authorized to execute the payment. In this case, it is a reference to Mollie. #### `details.dueDate` *string* > Estimated date the payment is debited from the customer's bank account, in `YYYY-MM-DD` format. #### `details.signatureDate` *string | null* > Date the payment has been signed by the customer, in `YYYY-MM-DD` format. Only available if the payment has been signed. #### `details.bankReasonCode` *string | null* > The official reason why this payment has failed. A detailed description of each reason is available on the website of the European Payments Council. #### `details.bankReason` *string | null* > A human-friendly description of the failure reason. #### `details.endToEndIdentifier` *string | null* > The end-to-end identifier you provided in the batch file. #### `details.mandateReference` *string | null* > The mandate reference you provided in the batch file. #### `details.batchReference` *string | null* > The batch reference you provided in the batch file. #### `details.fileReference` *string | null* > The file reference you provided in the batch file. ## QR-enabled payments #### `details.qrCode` *object* > **Optional include.** If a QR code was requested during payment creation for a QR-compatible payment method, the QR code details will be available in this object. > > The QR code can be scanned by the customer to complete the payment on their mobile device. For example, Bancontact QR payments can be completed by the customer using the Bancontact app. > > * `height` *integer* > * `width` *integer* > * `src` *string* ## Payments with gift cards or vouchers If gift cards or vouchers were applied to the payment, details are made available to help understand what transactions the payment is composed of. #### `details.voucherNumber` *string* > For payments with gift cards: the masked gift card number of the first gift card applied to the payment. #### `details.giftcards` *array* > An array of detail objects for each gift card that was used on this payment, if any. #### `details.issuer` *string* > For payments with vouchers: the brand name of the first voucher applied. #### `details.vouchers` *array* > An array of detail objects for each voucher that was used on this payment, if any. #### `details.remainderAmount` *object* > An amount object for the amount that remained after all gift cards or vouchers were applied. #### `details.remainderMethod` *string* > The payment method used to pay the remainder amount, after all gift cards or vouchers were applied. #### `details.remainderDetails` *object* > **Optional include.** The full payment method details of the remainder payment.