> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://ixopay.ferndocs.com/developer-hub/documentation/adapters/stripe/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://ixopay.ferndocs.com/_mcp/server. # Stripe This page provides an overview of the payments methods provided by the Stripe adapter in the IXOPAY platform. It also includes a full list of all configuration options available to you when integrating Stripe within your payments landscape, as well as an overview of the parameters required when submitting a transaction via IXOPAY's API. ## Payment Methods | Payment Method | Transaction Flows | Transaction Types | | --------------------------- | ----------------------------------------- | ----------------------------------------------------- | | Creditcard | payment.js Integration | All | | Giropay | Full-page Redirect | Debit | | iDeal | Full-page Redirect | Debit | | Sofort | Full-page Redirect | Debit | | Bancontact | Full-page Redirect | Debit | | DirectDebit | Server-to-Server | Register, Debit, Refund | | Pre-Authorized debit (ACSS) | Full-page Redirect & Server-to-Server | Register, Debit, Refund | | ACH | Full-page Redirect & Server-to-Server | Register, Debit, Refund | | ACH Credit Transfer | Server-to-Server and push-in transactions | Register, Debit (pushed via Stripe's Webhook), Refund | > **Note** > > NOTE: the payment.js integration differs from the general implementation. > > Stripe does not support to render card number and CVC/CVV fields in different DIV elements, but uses a standard widget to collect card data. Hence, only the `numberDivId` will be considered, and the `cvvDivId` is ignored. ## Additional Parameters ### ACSS/Pre-Authorized debit ("PAD") Prior to being able to charge the customer, the merchant must verify that the account is owned by the customer and obtain a mandate. This may be either achieved with a successful `Register` transaction or a`Debit` transaction with the `withRegister` flag set. Additionally, the merchant is required to pass on the following data when trying to acquire the initial mandate. | Transaction fields | Required | Description | | ------------------------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `customer.email` | **true** | | | `customer.firstName` | **true** | | | `customer.lastName` | **true** | | | `extraData.acss_transaction_type` | **true** | The type of the mandate. Valid values are `personal` (B2C) and `business` (B2B) | | `extraData.acss_payment_schedule` | **true** | The [Payment schedule](https://stripe.com/docs/payments/acss-debit#payment-schedule) for the mandate. Valid values are `spoardic`, `interval` or `combined` | | `extraData.acss_interval_description` | **true** , if `extraData.acss_payment_schedule` is `interval` or `combined` | A description, based on which criteria the interval-related payments may be triggered (refer to [Stripe's documentation](https://stripe.com/docs/payments/acss-debit#mandates)). | For subsequent transactions, these data are not required anymore. ### ACH Prior to being able to charge the customer, the merchant must verify that the account is owned by the customer and obtain a mandate. This may be either achieved with a successful `Register` transaction or a`Debit` transaction with the `withRegister` flag set. Additionally, the merchant is required to pass on the following data when trying to acquire the initial mandate. | Transaction fields | Required | Description | | -------------------- | -------- | ----------- | | `customer.email` | **true** | | | `customer.firstName` | **true** | | | `customer.lastName` | **true** | | For subsequent transactions, these data are not required anymore. ### ACH Credit Transfer In order to provision and retrieve a VBAN from Stripe, send a `Register` transaction. The bank data are included in the response object. | Transaction fields | Required | Description | | ------------------ | -------- | ------------------------- | | `customer.email` | **true** | for register transactions | ### Creditcard | Parameter | Required | Description | | ------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------- | | `extradata.isFinalCapture` | **false** | Boolean parameter that can be sent with the \`Capture' API request to indicate if it should be a final capture | | `extradata.statementDescriptor` | **false** | In case of using the connector setting 'Use extraData statementDescriptor', statement descriptor will be mapped from this field | ### Postback Extra Data for Credit Card | Parameter | Value | | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `authentication_flow` | For authenticated transactions: how the customer was authenticated by the issuing bank. For possible values see [Stripe API reference](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-three_d_secure) | | `electronic_commerce_indicator` | A protocol-level field indicating what degree of authentication was performed. For possible values see [Stripe API reference](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-three_d_secure) | | `exemption_indicator` | The exemption requested via 3DS and accepted by the issuer at authentication time. For possible values see [Stripe API reference](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-three_d_secure) | | `exemption_indicator_applied` | Whether Stripe requested the value of exemption\_indicator in the transaction. For possible values see [Stripe API reference](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-three_d_secure) | | `result` | Indicates the outcome of 3D Secure authentication. For possible values see [Stripe API reference](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-three_d_secure) | | `result_reason` | Additional information about why 3D Secure succeeded or failed based on the result. For possible values see [Stripe API reference](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-three_d_secure) | | `transaction_id` | The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID (dsTransId) for this payment. For possible values see [Stripe API reference](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-three_d_secure) | | `version` | The version of 3D Secure that was used. For possible values see [Stripe API reference](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-three_d_secure) | ### Account Funding Transactions (AFTs) Refer to: [https://docs.stripe.com/payments/aft](https://docs.stripe.com/payments/aft) (page restricted; request access from Stripe) For description of Stripe request fields refer to: [https://docs.stripe.com/payments/aft/integration-guide](https://docs.stripe.com/payments/aft/integration-guide) (page restricted; request access from Stripe) It's required to enable AFT transactions by marking "Enable Account Funding Transactions" checkbox in connector Config (for PCI connectors in Vault Setup). | Parameter | Required | Value | Stripe request field | | ------------------------------------- | --------- | ------------------ | ------------------------------------------------------------------------------- | | `extradata.recipientFirstName` | **false** | | `recipient_details.first_name` | | `extradata.recipientLastName` | **false** | | `recipient_details.last_name` | | `extradata.recipientEmail` | **false** | | `recipient_details.email` | | `extradata.recipientPhone` | **false** | | `recipient_details.phone` | | `extradata.recipientAddress1` | **false** | | `recipient_details.address.line1` | | `extradata.recipientAddress2` | **false** | | `recipient_details.address.line2` | | `extradata.recipientCity` | **false** | | `recipient_details.address.city` | | `extradata.recipientState` | **false** | | `recipient_details.address.state` | | `extradata.recipientCountry` | **false** | | `recipient_details.address.country` | | `extradata.recipientZip` | **false** | | `recipient_details.address.postal_code` | | `extradata.recipientAccountReference` | **false** | | `recipient_details.account_details.unique_identifier.identifier` | | `extradata.recipientCardFirst6` | **false** | | `recipient_details.account_details.card.first6` | | `extradata.recipientCardLast4` | **false** | | `recipient_details.account_details.card.last4` | | `extradata.recipientBankAccount` | **false** | | `recipient_details.account_details.bank.account_number` | | `customer.firstName` | **false** | | `sender_details.first_name` | | `customer.lastName ` | **false** | | `sender_details.last_name` | | `customer.birthDate` | **false** | format: YYYY-MM-DD | `sender_details.dob.year`, `sender_details.dob.month`, `sender_details.dob.day` | | `customer.billingAddress1` | **false** | | `sender_details.address.line1` | | `customer.billingAddress2` | **false** | | `sender_details.address.line2` | | `customer.billingCity` | **false** | | `sender_details.address.city` | | `customer.billingCountry` | **false** | | `sender_details.address.country` | | `customer.email` | **false** | | `sender_details.email` | | `extradata.senderOccupation` | **false** | | `sender_details.occupation` | | `extradata.senderNationality` | **false** | | `sender_details.nationality` | | `extradata.senderBirthCountry` | **false** | | `sender_details.birth_country` | ## Extended Authorization | Parameter | Required | Description | | -------------------------------------- | -------- | -------------------------------------------------------------------------------- | | extraData.requestExtendedAuthorization | optional | Overwrites the connector configuration. Possible values: `if_available`, `never` | Refer to [https://docs.stripe.com/payments/extended-authorization](https://docs.stripe.com/payments/extended-authorization) ### Postback/Response Extra Data for Extended Authorization refer to [https://docs.stripe.com/terminal/features/extended-authorizations](https://docs.stripe.com/terminal/features/extended-authorizations) | Extra Data Parameter | Value | | ------------------------------------------------------------------------- | ----------------------------------------------------- | | charges.data.payment\_method\_details.card.extended\_authorization.status | Extended authorization status | | charges.data.payment\_method\_details.card.capture\_before | Validity window for an authorisation - UNIX timestamp | ```json Example "extraData": { "charges.data.payment_method_details.card.extended_authorization.status": "enabled", "charges.data.payment_method_details.card.capture_before": 1732878746 }, ```