> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.mangopay.com/api-reference/web-card-payins/create-web-card-payin/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mangopay.com/_mcp/server. # Create a Web Card PayIn POST https://api.sandbox.mangopay.com/v2.01/{ClientId}/payins/card/web Content-Type: application/json **Note – Timeout after 15 minutes** The hosted payment page session on the `RedirectURL` lasts 15 minutes, at which point the pay-in fails automatically with result code [101109](/errors/codes/101109) if it is not completed by the user. **Caution – TemplateURL customization feature deprecated** The `TemplateURL` response parameter is deprecated and must no longer be used to redirect the user. You must redirect the user on the `RedirectURL`. The `TemplateURLOptions` body parameter is also deprecated as the feature allowing minor customization of the hosted page is no longer supported. [Read more about the Web Card PayIn object →](/api-reference/web-card-payins/web-card-payin-object) **Note:** The legacy iDEAL integration also uses this endpoint with `CardType` set to `IDEAL`. New integrations of iDEAL should use the Create an iDEAL PayIn endpoint. Reference: https://docs.mangopay.com/api-reference/web-card-payins/create-web-card-payin ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. If your platform is using a [proxy](/guides/sca/proxy-management) to take SCA-triggering action on behalf of users, you also need to integrate [mTLS authentication](/guides/sca/platform) and use the `api-mtls` base URL. ## Servers - `https://api.sandbox.mangopay.com` (Sandbox, default) - `https://api.mangopay.com` (Production) - `https://api-mtls.sandbox.mangopay.com` (mTLS Sandbox) - `https://api-mtls.mangopay.com` (mTLS Production) ## Request ### Path parameters - `ClientId` (string, required) — Platform's API account identifier, associated with the API key. ### Body (application/json) This endpoint expects a CreateAWebCardPayInRequest. - `AuthorId` (string, required) — The unique identifier of the user at the source of the transaction. - `DebitedFunds` (CreateAWebCardPayInRequestDebitedFunds, required) — Information about the debited funds. - `Fees` (CreateAWebCardPayInRequestFees, required) — Information about the fees. - `CreditedWalletId` (string, required) — The unique identifier of the credited wallet. - `ReturnURL` (string, required) — Max length: 220 characters. The URL to which the user is returned after the payment, whether the transaction is successful or not. - `CardType` (string, required) — **Allowed values:** `CB_VISA_MASTERCARD`, `AMEX`, `MAESTRO`, `BCMC`. The type of the card. - `Culture` (string, required) — **Allowed values:** One of the supported languages in the [ISO 639-1 format](/api-reference/overview/data-formats): CS, DA, DE, EL, EN, ES, FI, FR, HU, IT, NL, NO, PL, PT, SK, SV. The language in which the payment page is to be displayed. - `Tag` (string, optional) — Max. length: 255 characters Custom data that you can add to this object, such as unique identifiers in your system. To store multiple values, you can serialize them into a single string, for example a JSON object: `"{\"id_1\":AB123,\"id_2\":DE456}"`. - `CreditedUserId` (string, optional) — **Default value:** The unique identifier of the owner of the credited wallet. The unique identifier of the user whose wallet is credited. - `FlowDescriptor` (FlowDescriptorRequest, optional) — Information about the Owner beneficiaries targeted by the pay-in and its subsequent transfers, who must all be KYC/KYB verified when the pay-in request is made ([read more](/guides/payin-beneficiaries)). If the `FlowDescriptor.Beneficiaries` is sent in the API request, then: - The transaction's `CreditedWalletId` holder is disregarded in KYC/KYB checks. - **ALL** `UserId` values in the array must be one of: - `OWNER` whose `KYCLevel` is `REGULAR` - `PLATFORM` The pay-in `Status` becomes `FAILED` with `ResultCode` [002951](/errors/codes/002951) if at least one `FlowDescriptor.Beneficiaries.UserId` is: - `PAYER` - `OWNER` whose `KYCLevel` is `LIGHT` If the `FlowDescriptor.Beneficiaries` is not sent in the API request, then the `CreditedWalletId` holder is subject to KYC/KYB checks. This property is optional for backwards compatibility but is recommended for all pay-in flows, even when the `CreditedWalletId` holder is a `PAYER` or the same value as one of the `FlowDescriptor.Beneficiaries`. - `TemplateURLOptions` (CreateAWebCardPayInRequestTemplateUrlOptions, optional) — **Caution:** This customization feature is deprecated and must no longer be used. The URL of the SSL page of your customized payment page. - `SecureMode` (string, optional) — **Allowed values:** `DEFAULT`, `FORCE`, `NO_CHOICE` **Default value:** `DEFAULT` The mode applied for the 3DS2 protocol for CB, Visa, and Mastercard. The options are: - `DEFAULT` – Requests an exemption to strong customer authentication (SCA), and thus a frictionless payment experience, if allowed by your Mangopay contract and accepted by the issuer. - `FORCE` – Requests SCA. - `NO_CHOICE` – Leaves the choice to the issuer whether to allow for a frictionless payment experience or to enforce SCA. - `Billing` (Billing_DefaultsShippingUser_Request, optional) — **Default values:** `FirstName`, `LastName`, and `Address` information of the `Shipping` object if sent, otherwise of the `AuthorId` (if address values present). Information about the billing address. - `Shipping` (Shipping_DefaultsBillingUser_Request, optional) — **Default values:** `FirstName`, `LastName`, and `Address` information of the `Billing` object if sent, otherwise of the `AuthorId` (if address values present). Information about the shipping address. - `StatementDescriptor` (string, optional) — Max. length: 22 characters; only alphanumeric and spaces Custom description to appear on the user’s bank statement along with the platform name. Different banks may show more or less information. See the Customizing bank statement references article for details. - `ProfilingAttemptReference` (string, optional) — The unique reference generated for the profiling session, used by the fraud prevention solution to produce recommendations for the transaction using the profiling data. **Note:** Parameter not returned by the API. Profiling feature available on request – contact Mangopay via the Dashboard for more information. - `Bic` (string, optional, nullable, deprecated) — **Deprecated.** **Allowed values:** The BIC of a bank supported by iDEAL. The bank identifier code (BIC) of the user's bank. If provided, the user is redirected to the bank's interface to log in and authenticate the payment. If not provided, the user is redirected to an intermediary page where they must choose their bank. This field was used by legacy iDEAL integrations and is still accepted by the API for backwards compatibility. New integrations should use the dedicated Create an iDEAL PayIn endpoint instead. **Note:** Parameter not returned – the `BankName` is returned instead. ## Response ### 200 Success - `Id` (string, optional) — Max length: 128 characters (see [data formats](/api-reference/overview/data-formats) for details) The unique identifier of the object. - `Tag` (string, optional) — Max. length: 255 characters Custom data that you can add to this object, such as unique identifiers in your system. To store multiple values, you can serialize them into a single string, for example a JSON object: `"{\"id_1\":AB123,\"id_2\":DE456}"`. - `CreationDate` (integer, optional) — Unix timestamp (UTC) of the date and time the object was created. - `AuthorId` (string, optional) — The unique identifier of the user at the source of the transaction. - `CreditedUserId` (string, optional) — **Default value:** The unique identifier of the owner of the credited wallet. The unique identifier of the user whose wallet is credited. - `FlowDescriptor` (FlowDescriptorResponse, optional) — Information about the Owner beneficiaries targeted by the pay-in and its subsequent transfers, who must all be KYC/KYB verified when the pay-in request is made ([read more](/guides/payin-beneficiaries)). If the `FlowDescriptor.Beneficiaries` is sent in the API request, then: - The transaction's `CreditedWalletId` holder is disregarded in KYC/KYB checks. - **ALL** `UserId` values in the array must be one of: - `OWNER` whose `KYCLevel` is `REGULAR` - `PLATFORM` The pay-in `Status` becomes `FAILED` with `ResultCode` [002951](/errors/codes/002951) if at least one `FlowDescriptor.Beneficiaries.UserId` is: - `PAYER` - `OWNER` whose `KYCLevel` is `LIGHT` If the `FlowDescriptor.Beneficiaries` is not sent in the API request, then the `CreditedWalletId` holder is subject to KYC/KYB checks. This property is optional for backwards compatibility but is recommended for all pay-in flows, even when the `CreditedWalletId` holder is a `PAYER` or the same value as one of the `FlowDescriptor.Beneficiaries`. - `DebitedFunds` (WebCardPayInResponseDebitedFunds, optional) — Information about the debited funds. - `CreditedFunds` (WebCardPayInResponseCreditedFunds, optional) — Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`). - `Fees` (WebCardPayInResponseFees, optional) — Information about the fees taken by the platform for this transaction (and hence transferred to the Fees Wallet). - `Status` (string, optional) — **Returned values:** `CREATED`, `SUCCEEDED`, `FAILED` The status of the transaction. - `ResultCode` (string, optional) — The code indicating the result of the operation. This information is mostly used to handle errors or for filtering purposes. - `ResultMessage` (string, optional) — The explanation of the result code. - `ExecutionDate` (integer, optional) — Unix timestamp (UTC) of the date and time the status changed to `SUCCEEDED`, indicating that the transaction occurred. The statuses `CREATED` and `FAILED` return an `ExecutionDate` of `null`. - `Type` (string, optional) — **Returned values:** `PAYIN`, `TRANSFER`, `CONVERSION`, `PAYOUT` The type of the transaction. - `Nature` (string, optional) — **Returned values:** `REGULAR`, `REPUDIATION`, `REFUND`, `SETTLEMENT` The nature of the transaction, providing more information about the context in which the transaction occurred: - `REGULAR` – Relative to most of the transactions (pay-ins, payouts, and transfers) in a usual workflow. - `REPUDIATION` – Automatic withdrawal of funds from the platform's repudiation wallet as part of the dispute process (when the user has requested a chargeback). - `REFUND` – Reimbursement of a transaction to the user (pay-in refund), to a wallet (transfer refund), or of a payout (payout refund, only initiated by Mangopay). - `SETTLEMENT` – Transfer made to the repudiation wallet by the platform to settle a lost dispute. - `CreditedWalletId` (string, optional) — The unique identifier of the credited wallet. - `DebitedWalletId` (string, optional) — The unique identifier of the debited wallet. In the case of a pay-in, this value is always `null` since there is no debited wallet. - `PaymentType` (string, optional) — **Returned values:** `CARD` The payment type of the pay-in. - `ExecutionType` (string, optional) — **Returned values:** `WEB` The execution type of the pay-in. - `RedirectURL` (string, optional) — The URL to which to redirect the user to complete the payment. **Caution:** This variable URL is specific to each payment. You must rely on the returned URL in full (host, path, and queries) and not hardcode any part of it. - `ReturnURL` (string, optional) — Max. length: 220 characters The URL to which the user is returned after the payment, whether the transaction is successful or not. - `TemplateURL` (string, optional) — **Caution:** This customization feature is deprecated and must no longer be used. You must redirect on the `RedirectURL` instead. The customized URL to which to redirect the user to complete the payment. - `CardType` (string, optional) — **Returned values:** `CB_VISA_MASTERCARD`, `AMEX`, `MAESTRO`, `BCMC` The type of the card. - `Culture` (string, optional) — **Returned values:** One of the supported languages in the [ISO 639-1 format](/api-reference/overview/data-formats): CS, DA, DE, EL, EN, ES, FI, FR, HU, IT, NL, NO, PL, PT, SK, SV. The language in which the payment page is to be displayed. - `SecureMode` (string, optional) — **Returned values:** `DEFAULT`, `FORCE`, `NO_CHOICE` The mode applied for the 3DS2 protocol for CB, Visa, and Mastercard. The options are: - `DEFAULT` – Requests an exemption to strong customer authentication (SCA), and thus a frictionless payment experience, if allowed by your Mangopay contract and accepted by the issuer. - `FORCE` – Requests SCA. - `NO_CHOICE` – Leaves the choice to the issuer whether to allow for a frictionless payment experience or to enforce SCA. - `Billing` (Billing_DefaultsShippingUser_Response, optional) — **Default values:** `FirstName`, `LastName`, and `Address` information of the `Shipping` object if sent, otherwise of the `AuthorId` (if address values present). Information about the billing address. - `Shipping` (Shipping_DefaultsBillingUser_Response, optional) — **Default values:** `FirstName`, `LastName`, and `Address` information of the `Billing` object if sent, otherwise of the `AuthorId` (if address values present). Information about the shipping address. - `StatementDescriptor` (string, optional) — Max. length: 22 characters; only alphanumeric and spaces Custom description to appear on the user’s bank statement along with the platform name. Different banks may show more or less information. See the Customizing bank statement references article for details. - `BankName` (string, optional) — The user's bank, if the `CardType` is `IDEAL`, as defined by the `Bic` parameter sent in the call. This parameter is `null` for other card types or if the BIC was not sent on the legacy iDEAL implementation. See Create a Web Card PayIn (iDEAL) for more information. - `AuthenticationResult` (AuthenticationResult, optional) — Information about the authentication result, based on the request made by Mangopay and the decision of the issuer regarding the type of authentication to be enforced (if applicable). ## Types ### CreateAWebCardPayInRequestDebitedFunds Information about the debited funds. - `Currency` (string, required) — **Allowed values:** The three-letter ISO 4217 code (EUR, GBP, etc.) of a supported currency (depends on feature, contract, and activation settings). The currency of the amount. - `Amount` (integer, required) — The amount of the currency in its minor unit. For example, EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`. ### CreateAWebCardPayInRequestFees Information about the fees. - `Currency` (string, required) — **Allowed values:** The three-letter ISO 4217 code (EUR, GBP, etc.) of a supported currency (depends on feature, contract, and activation settings). The currency of the amount. - `Amount` (integer, required) — The amount of the currency in its minor unit. For example, EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`. ### FlowDescriptorRequest Information about the Owner beneficiaries targeted by the pay-in and its subsequent transfers, who must all be KYC/KYB verified when the pay-in request is made ([read more](/guides/payin-beneficiaries)). If the `FlowDescriptor.Beneficiaries` is sent in the API request, then: - The transaction's `CreditedWalletId` holder is disregarded in KYC/KYB checks. - **ALL** `UserId` values in the array must be one of: - `OWNER` whose `KYCLevel` is `REGULAR` - `PLATFORM` The pay-in `Status` becomes `FAILED` with `ResultCode` [002951](/errors/codes/002951) if at least one `FlowDescriptor.Beneficiaries.UserId` is: - `PAYER` - `OWNER` whose `KYCLevel` is `LIGHT` If the `FlowDescriptor.Beneficiaries` is not sent in the API request, then the `CreditedWalletId` holder is subject to KYC/KYB checks. This property is optional for backwards compatibility but is recommended for all pay-in flows, even when the `CreditedWalletId` holder is a `PAYER` or the same value as one of the `FlowDescriptor.Beneficiaries`. - `Beneficiaries` (list of FlowDescriptorRequestBeneficiariesItems, optional, nullable) — Max. length: 5 items The list of up to 5 Natural or Legal Users declared as beneficiaries of the pay-in and its subsequent transfers, who must all be KYC/KYB verified when the pay-in request is made. The pay-in also fails if the `Beneficiaries` array contains nulled objects or invalid `UserId` values. ### CreateAWebCardPayInRequestTemplateUrlOptions **Caution:** This customization feature is deprecated and must no longer be used. The URL of the SSL page of your customized payment page. - `PAYLINEV2` (string, optional) — **Caution:** This customization feature is deprecated and must no longer be used. The URL of the corresponding template with the Javascript widget. ### Billing_DefaultsShippingUser_Request **Default values:** `FirstName`, `LastName`, and `Address` information of the `Shipping` object if sent, otherwise of the `AuthorId` (if address values present). Information about the billing address. - `FirstName` (string, optional) — The first name of the user. - `LastName` (string, optional) — The last name of the user. - `Address` (Address_SubPropsRequired, optional) — The postal address. ### Shipping_DefaultsBillingUser_Request **Default values:** `FirstName`, `LastName`, and `Address` information of the `Billing` object if sent, otherwise of the `AuthorId` (if address values present). Information about the shipping address. - `FirstName` (string, optional) — The first name of the user. - `LastName` (string, optional) — The last name of the user. - `Address` (Address_SubPropsRequired, optional) — The postal address. ### FlowDescriptorResponse Information about the Owner beneficiaries targeted by the pay-in and its subsequent transfers, who must all be KYC/KYB verified when the pay-in request is made ([read more](/guides/payin-beneficiaries)). If the `FlowDescriptor.Beneficiaries` is sent in the API request, then: - The transaction's `CreditedWalletId` holder is disregarded in KYC/KYB checks. - **ALL** `UserId` values in the array must be one of: - `OWNER` whose `KYCLevel` is `REGULAR` - `PLATFORM` The pay-in `Status` becomes `FAILED` with `ResultCode` [002951](/errors/codes/002951) if at least one `FlowDescriptor.Beneficiaries.UserId` is: - `PAYER` - `OWNER` whose `KYCLevel` is `LIGHT` If the `FlowDescriptor.Beneficiaries` is not sent in the API request, then the `CreditedWalletId` holder is subject to KYC/KYB checks. This property is optional for backwards compatibility but is recommended for all pay-in flows, even when the `CreditedWalletId` holder is a `PAYER` or the same value as one of the `FlowDescriptor.Beneficiaries`. - `FlowId` (string, optional) — Unique identifier of the payment flow, used by Mangopay for internal purposes. - `Beneficiaries` (list of FlowDescriptorResponseBeneficiariesItems, optional, nullable) — Max. length: 5 items The list of up to 5 Natural or Legal Users declared as beneficiaries of the pay-in, who must all be KYC/KYB verified when the pay-in request is made. The pay-in also fails if the `Beneficiaries` array contains nulled objects or invalid `UserId` values. ### WebCardPayInResponseDebitedFunds Information about the debited funds. - `Currency` (string, optional) — **Allowed values:** The three-letter ISO 4217 code (EUR, GBP, etc.) of a supported currency (depends on feature, contract, and activation settings). The currency of the amount. - `Amount` (integer, optional) — The amount of the currency in its minor unit. For example, EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`. ### WebCardPayInResponseCreditedFunds Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`). - `Currency` (string, optional) — **Allowed values:** The three-letter ISO 4217 code (EUR, GBP, etc.) of a supported currency (depends on feature, contract, and activation settings). The currency of the amount. - `Amount` (integer, optional) — The amount of the currency in its minor unit. For example, EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`. ### WebCardPayInResponseFees Information about the fees taken by the platform for this transaction (and hence transferred to the Fees Wallet). - `Currency` (string, optional) — **Allowed values:** The three-letter ISO 4217 code (EUR, GBP, etc.) of a supported currency (depends on feature, contract, and activation settings). The currency of the amount. - `Amount` (integer, optional) — The amount of the currency in its minor unit. For example, EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`. ### Billing_DefaultsShippingUser_Response **Default values:** `FirstName`, `LastName`, and `Address` information of the `Shipping` object if sent, otherwise of the `AuthorId` (if address values present). Information about the billing address. - `FirstName` (string, optional) — The first name of the user. - `LastName` (string, optional) — The last name of the user. - `Address` (Address, optional) — The postal address. ### Shipping_DefaultsBillingUser_Response **Default values:** `FirstName`, `LastName`, and `Address` information of the `Billing` object if sent, otherwise of the `AuthorId` (if address values present). Information about the shipping address. - `FirstName` (string, optional) — The first name of the user. - `LastName` (string, optional) — The last name of the user. - `Address` (Address_SubPropsRequired, optional) — The postal address. ### AuthenticationResult Information about the authentication result, based on the request made by Mangopay and the decision of the issuer regarding the type of authentication to be enforced (if applicable). - `AuthenticationType` (string, optional, nullable) — **Returned values:** `CHALLENGE`, `FRICTIONLESS`, `DIRECT_AUTHORIZATION` The type of authentication: - `CHALLENGE` – The issuer requested SCA to be enforced (for example, using 3DS). - `FRICTIONLESS` – The transaction was exempted from SCA because an exemption was granted by the issuer. - `DIRECT_AUTHORIZATION` – The transaction was sent to the issuer for authorization without any frictionless or challenge (for example, if SCA doesn't apply). A `null` value typically indicates that authentication was not requested (for example, because the request failed before being sent) or a decision was not received. A `null` value typically indicates that authentication was not requested (for example, because the request failed before being sent) or a decision was not received. ### FlowDescriptorRequestBeneficiariesItems - `UserId` (string, optional) — The unique identifier of the Natural User or Legal User declared as a beneficiary of the pay-in. ### Address_SubPropsRequired The postal address. - `AddressLine1` (string, required) — The first line of the address. - `City` (string, required) — The city of the address. - `PostalCode` (string, required) — The postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces. - `Country` (string, required) — Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats)) The country of the address. - `AddressLine2` (string, optional) — The second line of the address. - `Region` (string, optional) — Required if `Country` is US, CA, or MX. The region of the address. ### FlowDescriptorResponseBeneficiariesItems - `UserId` (string, optional) — The unique identifier of the Natural User or Legal User declared as a beneficiary of the pay-in. ### Address The postal address. - `AddressLine1` (string, optional) — The first line of the address. - `AddressLine2` (string, optional) — The second line of the address. - `City` (string, optional) — The city of the address. - `Region` (string, optional) — Required if `Country` is US, CA, or MX. The region of the address. - `PostalCode` (string, optional) — The postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces. - `Country` (string, optional) — Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats)) The country of the address. ## Examples ### webCardPayins **Request** ```json { "body": { "AuthorId": "user_m_01JHQRCND66XP99SVBXQRP54MF", "Billing": { "Address": { "AddressLine1": "6 rue de la Cité", "AddressLine2": "Appartement 3", "City": "Paris", "Country": "FR", "PostalCode": "75001", "Region": "Île-de-France" }, "FirstName": "Alex", "LastName": "Smith" }, "CardType": "CB_VISA_MASTERCARD", "CreditedWalletId": "wlt_m_01JHQRD0WZ1QWKNAMQF93E5M15", "Culture": "EN", "DebitedFunds": { "Amount": 2000, "Currency": "EUR" }, "Fees": { "Amount": 100, "Currency": "EUR" }, "FlowDescriptor": { "Beneficiaries": [ { "UserId": "user_m_02APAYTWSDYXHXN1FRTKX9WMA2" } ] }, "ReturnURL": "http://www.example.com", "SecureMode": "DEFAULT", "Shipping": { "Address": { "AddressLine1": "6 rue de la Cité", "AddressLine2": "Appartement 3", "City": "Paris", "Country": "FR", "PostalCode": "75001", "Region": "Île-de-France" }, "FirstName": "Alex", "LastName": "Smith" }, "StatementDescriptor": "Example123", "Tag": "Created using the Mangopay API Postman collection" } } ``` **Response** ```json { "Id": "wt_f0f67b58-2856-469c-952c-b06e556a70e6", "Tag": "Created using the Mangopay API Postman collection", "CreationDate": 1746006308, "AuthorId": "user_m_01JHQRCND66XP99SVBXQRP54MF", "CreditedUserId": "user_m_01JHQRCND66XP99SVBXQRP54MF", "FlowDescriptor": { "FlowId": "flow_wt_97448e0a-5bc6-4b83-ac29-cdfcadf60a08", "Beneficiaries": [ { "UserId": "user_m_02APAYTWSDYXHXN1FRTKX9WMA2" } ] }, "DebitedFunds": { "Currency": "EUR", "Amount": 2000 }, "CreditedFunds": { "Currency": "EUR", "Amount": 1900 }, "Fees": { "Currency": "EUR", "Amount": 100 }, "Status": "CREATED", "ResultCode": null, "ResultMessage": null, "ExecutionDate": null, "Type": "PAYIN", "Nature": "REGULAR", "CreditedWalletId": "wlt_m_01JHQRD0WZ1QWKNAMQF93E5M15", "DebitedWalletId": null, "PaymentType": "CARD", "ExecutionType": "WEB", "RedirectURL": "https://pay.mangopay.com?id=wt_f0f67b58-2856-469c-952c-b06e556a70e6&client-token=hpp_f5d3a2c1b8e045f7a9d6c3b2a1e9d8c7", "ReturnURL": "http://example.com&transactionId=wt_f0f67b58-2856-469c-952c-b06e556a70e6", "TemplateURL": null, "CardType": "CB_VISA_MASTERCARD", "Culture": "EN", "SecureMode": "DEFAULT", "Billing": { "FirstName": "Alex", "LastName": "Smith", "Address": { "AddressLine1": "6 rue de la Cité", "AddressLine2": "Appartement 3", "City": "Paris", "Region": "Île-de-France", "PostalCode": "75001", "Country": "FR" } }, "Shipping": { "FirstName": "Alex", "LastName": "Smith", "Address": { "AddressLine1": "6 rue de la Cité", "City": "Paris", "PostalCode": "75001", "Country": "FR", "AddressLine2": "Appartement 3", "Region": "Île-de-France" } }, "StatementDescriptor": "Example123", "BankName": null, "AuthenticationResult": { "AuthenticationType": "FRICTIONLESS" } } ``` **SDK Code** ```python webCardPayins from pprint import pprint import mangopay mangopay.client_id='your-client-id' mangopay.apikey='your-api-key' from mangopay.api import APIRequest handler = APIRequest(sandbox=True) from mangopay.resources import NaturalUser, Wallet, Money, CardWebPayIn natural_user = NaturalUser.get('210513027') natural_user_wallet = Wallet.get('210514820') web_card_payin = CardWebPayIn( author_id = natural_user.id, debited_funds = Money(amount=1000, currency='EUR'), fees = Money(amount=0, currency='EUR'), credited_wallet_id = natural_user_wallet.id, return_url = 'https://docs.mangopay.com/please-ignore', culture = 'EN', card_type = 'CB_VISA_MASTERCARD', tag = 'Created using Mangopay Python SDK' ) create_web_card_payin = web_card_payin.save() pprint(create_web_card_payin) ``` ```javascript webCardPayins const mangopayInstance = require('mangopay4-nodejs-sdk') const mangopay = new mangopayInstance({ clientId: 'your-client-id', clientApiKey: 'your-api-key', }) let myPayIn = { PaymentType: 'CARD', ExecutionType: 'WEB', AuthorId: '146476890', Tag: 'Created with Mangopay Node.js SDK', CreditedUserId: '146476890', DebitedFunds: { Currency: 'EUR', Amount: 1000, }, Fees: { Currency: 'EUR', Amount: 100, }, CreditedWalletId: '148968396', ReturnURL: 'https://docs.mangopay.com/please-ignore', CardType: 'CB_VISA_MASTERCARD', Culture: 'EN', SecureMode: 'DEFAULT', Billing: { FirstName: 'Alex', LastName: 'Smith', Address: { AddressLine1: 'Rue des plantes', AddressLine2: 'The Oasis', City: 'Paris', Region: 'IDF', PostalCode: '75000', Country: 'FR', }, }, Shipping: { FirstName: 'Alex', LastName: 'Smith', Address: { AddressLine1: 'Rue des plantes', AddressLine2: 'The Oasis', City: 'Paris', Region: 'IDF', PostalCode: '75000', Country: 'FR', }, }, StatementDescriptor: 'Nov2023', } const createWebCardPayIn = async (payin) => { return await mangopay.PayIns.create(payin) .then((response) => { console.info(response) return response }) .catch((err) => { console.log(err) return false }) } createWebCardPayIn(myPayIn) ``` ```java webCardPayins import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.mangopay.MangoPayApi; import com.mangopay.core.Money; import com.mangopay.core.enumerations.CardType; import com.mangopay.core.enumerations.CultureCode; import com.mangopay.core.enumerations.CurrencyIso; import com.mangopay.core.enumerations.PayInExecutionType; import com.mangopay.core.enumerations.PayInPaymentType; import com.mangopay.entities.PayIn; import com.mangopay.entities.subentities.PayInExecutionDetailsWeb; import com.mangopay.entities.subentities.PayInPaymentDetailsCard; public class CreateWebCardPayin { public static void main(String[] args) throws Exception { MangoPayApi mangopay = new MangoPayApi(); mangopay.getConfig().setClientId("your-client-id"); mangopay.getConfig().setClientPassword("your-api-key"); var userId = "user_m_01HT2NFK7Z2BRQNGNHMY30VVTT"; var walletId = "wlt_m_01HTHTXEF4BJCTKMXNWMSZ6KP5"; PayIn webCardPayin = new PayIn(); webCardPayin.setAuthorId(userId); webCardPayin.setCreditedUserId(userId); webCardPayin.setCreditedWalletId(walletId); webCardPayin.setPaymentType(PayInPaymentType.CARD); webCardPayin.setExecutionType(PayInExecutionType.WEB); webCardPayin.setDebitedFunds(new Money(CurrencyIso.EUR, 1000)); webCardPayin.setFees(new Money(CurrencyIso.EUR, 0)); webCardPayin.setTag("Created using the Mangopay Java SDK"); PayInExecutionDetailsWeb executionDetails = new PayInExecutionDetailsWeb(); executionDetails.setReturnUrl("https://www.mangopay.com/docs/please-ignore"); executionDetails.setCulture(CultureCode.FR); webCardPayin.setExecutionDetails(executionDetails); PayInPaymentDetailsCard paymentDetails = new PayInPaymentDetailsCard(); paymentDetails.setCardType(CardType.CB_VISA_MASTERCARD); webCardPayin.setPaymentDetails(paymentDetails); PayIn createwebCardPayIn = mangopay.getPayInApi().create(webCardPayin); Gson prettyPrint = new GsonBuilder().setPrettyPrinting().create(); String prettyJson = prettyPrint.toJson(createwebCardPayIn); System.out.println(prettyJson); } } ``` ```csharp webCardPayins using MangoPay.SDK; using MangoPay.SDK.Core.Enumerations; using MangoPay.SDK.Entities; using MangoPay.SDK.Entities.POST; using Newtonsoft.Json; class Program { static async Task Main(string[] args) { MangoPayApi api = new MangoPayApi(); api.Config.ClientId = "your-client-id"; api.Config.ClientPassword = "your-api-key"; var userId = "user_m_01J2TZ261WZNDM0ZDRWGDYA4GN"; var walletId = "wlt_m_01J30991BXBB7VF28PBS82EWD3"; var webCardPayIn = new PayInCardWebPostDTO ( userId, new Money { Amount = 5000, Currency = CurrencyIso.EUR }, new Money { Amount = 0, Currency = CurrencyIso.EUR }, walletId, "http://www.mangopay.com/docs/please-ignore", CultureCode.FR, CardType.CB_VISA_MASTERCARD, "MGP", "BINAADADXXX" ) { Tag = "Created using the Mangopay .NET SDK" }; var createWebCardPayIn = await api.PayIns.CreateCardWebAsync(webCardPayIn); string prettyPrint = JsonConvert.SerializeObject(createWebCardPayIn, Formatting.Indented); Console.WriteLine(prettyPrint); } } ``` ```php webCardPayins Config->ClientId = 'your-client-id'; $api->Config->ClientPassword = 'your-api-key'; $api->Config->TemporaryFolder = 'tmp/'; try { $payIn = new \MangoPay\PayIn(); $payIn->Tag = 'Created using Mangopay PHP SDK'; $payIn->CreditedWalletId = '148968396'; $payIn->PaymentType = 'CARD'; $payIn->AuthorId = '146476890'; $payIn->DebitedFunds = new \MangoPay\Money(); $payIn->DebitedFunds->Amount = 1000; $payIn->DebitedFunds->Currency = 'EUR'; $payIn->Fees = new \MangoPay\Money(); $payIn->Fees->Amount = 10; $payIn->Fees->Currency = 'EUR'; $payIn->PaymentDetails = new \MangoPay\PayInPaymentDetailsCard(); $payIn->PaymentDetails->CardType = 'CB_VISA_MASTERCARD'; $payIn->ExecutionType = 'WEB'; $payIn->ExecutionDetails = new \MangoPay\PayInExecutionDetailsWeb(); $payIn->ExecutionDetails->ReturnURL = 'https://docs.mangopay.com/please-ignore'; $payIn->ExecutionDetails->Culture = 'FR'; $response = $api->PayIns->Create($payIn); print_r($response); } catch(MGPResponseException $e) { print_r($e); } catch(MGPException $e) { print_r($e); } ``` ```ruby webCardPayins require 'mangopay' MangoPay.configure do |client| client.preproduction = true client.client_id = 'your-client-id' client.client_apiKey = 'your-api-key' client.log_file = File.join(Dir.pwd, 'mangopay.log') end def createPayPalPayIn(payInObject) begin response = MangoPay::PayIn::PayPal::Web.create(payInObject) puts response return response rescue MangoPay::ResponseError => error puts "Failed to create pay-in: #{error.message}" puts "Error details: #{error.details}" return false end end myPayIn = { AuthorId: '192822811', Tag: 'Created with Mangopay Ruby SDK', CreditedUserId: '192822811', DebitedFunds: { Currency: 'EUR', Amount: 1500, }, Fees: { Currency: 'EUR', Amount: 100, }, CreditedWalletId: '192822814', ReturnURL: 'https://docs.mangopay.com/please-ignore', Culture: 'EN', ShippingAddress: { RecipientName: 'Alex Smith', Address: { AddressLine1: 'Rue des plantes', AddressLine2: 'The Oasis', City: 'Paris', Region: 'IDF', PostalCode: '75000', Country: 'FR', }, }, StatementDescriptor: 'Nov2023', } createPayPalPayIn(myPayIn) ``` ### ideal **Request** ```json { "body": { "AuthorId": "204068024", "Bic": "BITSNL2A", "CardType": "IDEAL", "CreditedWalletId": "204068186", "Culture": "EN", "DebitedFunds": { "Amount": 12000, "Currency": "EUR" }, "Fees": { "Amount": 1000, "Currency": "EUR" }, "FlowDescriptor": { "Beneficiaries": [ { "UserId": "user_m_02APAYTWSDYXHXN1FRTKX9WMA2" } ] }, "ReturnURL": "http://example.com", "Tag": "Created using Mangopay API Postman Collection" } } ``` **Response** ```json { "Id": "wt_144da3b7-b6b0-4438-9a7c-75a9695a1816", "Tag": "Created using Mangopay API Postman Collection", "CreationDate": 1701296081, "AuthorId": "204068024", "CreditedUserId": "204068024", "FlowDescriptor": { "FlowId": "flow_wt_97448e0a-5bc6-4b83-ac29-cdfcadf60a08", "Beneficiaries": [ { "UserId": "user_m_02APAYTWSDYXHXN1FRTKX9WMA2" } ] }, "DebitedFunds": { "Currency": "EUR", "Amount": 12000 }, "CreditedFunds": { "Currency": "EUR", "Amount": 11000 }, "Fees": { "Currency": "EUR", "Amount": 1000 }, "Status": "CREATED", "ResultCode": null, "ResultMessage": null, "ExecutionDate": null, "Type": "PAYIN", "Nature": "REGULAR", "CreditedWalletId": "204068186", "DebitedWalletId": null, "PaymentType": "CARD", "ExecutionType": "WEB", "RedirectURL": "https://r3.girogate.de/ti/dumbdummy?tx=140149714181&rs=PyFMwmikCotrnVEf50EQx9jR9Ib38oMG&cs=3d5141c0cf871b4c8a6a53e635a39ebaabbf1e76093fa19bcba331728381b005", "ReturnURL": "http://example.com?transactionId=wt_144da3b7-b6b0-4438-9a7c-75a9695a1816", "TemplateURL": null, "CardType": "IDEAL", "Culture": "EN", "SecureMode": "DEFAULT", "Billing": null, "Shipping": null, "StatementDescriptor": null, "BankName": "Yoursafe" } ``` **SDK Code** ```python ideal from pprint import pprint import mangopay mangopay.client_id='your-client-id' mangopay.apikey='your-api-key' from mangopay.api import APIRequest handler = APIRequest(sandbox=True) from mangopay.resources import NaturalUser, Wallet, Money, CardWebPayIn natural_user = NaturalUser.get('210513027') natural_user_wallet = Wallet.get('210514820') web_card_payin = CardWebPayIn( author_id = natural_user.id, debited_funds = Money(amount=1000, currency='EUR'), fees = Money(amount=0, currency='EUR'), credited_wallet_id = natural_user_wallet.id, return_url = 'https://docs.mangopay.com/please-ignore', culture = 'EN', card_type = 'CB_VISA_MASTERCARD', tag = 'Created using Mangopay Python SDK' ) create_web_card_payin = web_card_payin.save() pprint(create_web_card_payin) ``` ```javascript ideal const mangopayInstance = require('mangopay4-nodejs-sdk') const mangopay = new mangopayInstance({ clientId: 'your-client-id', clientApiKey: 'your-api-key', }) let myPayIn = { PaymentType: 'CARD', ExecutionType: 'WEB', AuthorId: '146476890', Tag: 'Created with Mangopay Node.js SDK', CreditedUserId: '146476890', DebitedFunds: { Currency: 'EUR', Amount: 1000, }, Fees: { Currency: 'EUR', Amount: 100, }, CreditedWalletId: '148968396', ReturnURL: 'https://docs.mangopay.com/please-ignore', CardType: 'CB_VISA_MASTERCARD', Culture: 'EN', SecureMode: 'DEFAULT', Billing: { FirstName: 'Alex', LastName: 'Smith', Address: { AddressLine1: 'Rue des plantes', AddressLine2: 'The Oasis', City: 'Paris', Region: 'IDF', PostalCode: '75000', Country: 'FR', }, }, Shipping: { FirstName: 'Alex', LastName: 'Smith', Address: { AddressLine1: 'Rue des plantes', AddressLine2: 'The Oasis', City: 'Paris', Region: 'IDF', PostalCode: '75000', Country: 'FR', }, }, StatementDescriptor: 'Nov2023', } const createWebCardPayIn = async (payin) => { return await mangopay.PayIns.create(payin) .then((response) => { console.info(response) return response }) .catch((err) => { console.log(err) return false }) } createWebCardPayIn(myPayIn) ``` ```java ideal import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.mangopay.MangoPayApi; import com.mangopay.core.Money; import com.mangopay.core.enumerations.CardType; import com.mangopay.core.enumerations.CultureCode; import com.mangopay.core.enumerations.CurrencyIso; import com.mangopay.core.enumerations.PayInExecutionType; import com.mangopay.core.enumerations.PayInPaymentType; import com.mangopay.entities.PayIn; import com.mangopay.entities.subentities.PayInExecutionDetailsWeb; import com.mangopay.entities.subentities.PayInPaymentDetailsCard; public class CreateWebCardPayin { public static void main(String[] args) throws Exception { MangoPayApi mangopay = new MangoPayApi(); mangopay.getConfig().setClientId("your-client-id"); mangopay.getConfig().setClientPassword("your-api-key"); var userId = "user_m_01HT2NFK7Z2BRQNGNHMY30VVTT"; var walletId = "wlt_m_01HTHTXEF4BJCTKMXNWMSZ6KP5"; PayIn webCardPayin = new PayIn(); webCardPayin.setAuthorId(userId); webCardPayin.setCreditedUserId(userId); webCardPayin.setCreditedWalletId(walletId); webCardPayin.setPaymentType(PayInPaymentType.CARD); webCardPayin.setExecutionType(PayInExecutionType.WEB); webCardPayin.setDebitedFunds(new Money(CurrencyIso.EUR, 1000)); webCardPayin.setFees(new Money(CurrencyIso.EUR, 0)); webCardPayin.setTag("Created using the Mangopay Java SDK"); PayInExecutionDetailsWeb executionDetails = new PayInExecutionDetailsWeb(); executionDetails.setReturnUrl("https://www.mangopay.com/docs/please-ignore"); executionDetails.setCulture(CultureCode.FR); webCardPayin.setExecutionDetails(executionDetails); PayInPaymentDetailsCard paymentDetails = new PayInPaymentDetailsCard(); paymentDetails.setCardType(CardType.CB_VISA_MASTERCARD); webCardPayin.setPaymentDetails(paymentDetails); PayIn createwebCardPayIn = mangopay.getPayInApi().create(webCardPayin); Gson prettyPrint = new GsonBuilder().setPrettyPrinting().create(); String prettyJson = prettyPrint.toJson(createwebCardPayIn); System.out.println(prettyJson); } } ``` ```csharp ideal using MangoPay.SDK; using MangoPay.SDK.Core.Enumerations; using MangoPay.SDK.Entities; using MangoPay.SDK.Entities.POST; using Newtonsoft.Json; class Program { static async Task Main(string[] args) { MangoPayApi api = new MangoPayApi(); api.Config.ClientId = "your-client-id"; api.Config.ClientPassword = "your-api-key"; var userId = "user_m_01J2TZ261WZNDM0ZDRWGDYA4GN"; var walletId = "wlt_m_01J30991BXBB7VF28PBS82EWD3"; var webCardPayIn = new PayInCardWebPostDTO ( userId, new Money { Amount = 5000, Currency = CurrencyIso.EUR }, new Money { Amount = 0, Currency = CurrencyIso.EUR }, walletId, "http://www.mangopay.com/docs/please-ignore", CultureCode.FR, CardType.CB_VISA_MASTERCARD, "MGP", "BINAADADXXX" ) { Tag = "Created using the Mangopay .NET SDK" }; var createWebCardPayIn = await api.PayIns.CreateCardWebAsync(webCardPayIn); string prettyPrint = JsonConvert.SerializeObject(createWebCardPayIn, Formatting.Indented); Console.WriteLine(prettyPrint); } } ``` ```php ideal Config->ClientId = 'your-client-id'; $api->Config->ClientPassword = 'your-api-key'; $api->Config->TemporaryFolder = 'tmp/'; try { $payIn = new \MangoPay\PayIn(); $payIn->Tag = 'Created using Mangopay PHP SDK'; $payIn->CreditedWalletId = '148968396'; $payIn->PaymentType = 'CARD'; $payIn->AuthorId = '146476890'; $payIn->DebitedFunds = new \MangoPay\Money(); $payIn->DebitedFunds->Amount = 1000; $payIn->DebitedFunds->Currency = 'EUR'; $payIn->Fees = new \MangoPay\Money(); $payIn->Fees->Amount = 10; $payIn->Fees->Currency = 'EUR'; $payIn->PaymentDetails = new \MangoPay\PayInPaymentDetailsCard(); $payIn->PaymentDetails->CardType = 'CB_VISA_MASTERCARD'; $payIn->ExecutionType = 'WEB'; $payIn->ExecutionDetails = new \MangoPay\PayInExecutionDetailsWeb(); $payIn->ExecutionDetails->ReturnURL = 'https://docs.mangopay.com/please-ignore'; $payIn->ExecutionDetails->Culture = 'FR'; $response = $api->PayIns->Create($payIn); print_r($response); } catch(MGPResponseException $e) { print_r($e); } catch(MGPException $e) { print_r($e); } ``` ```ruby ideal require 'mangopay' MangoPay.configure do |client| client.preproduction = true client.client_id = 'your-client-id' client.client_apiKey = 'your-api-key' client.log_file = File.join(Dir.pwd, 'mangopay.log') end def createPayPalPayIn(payInObject) begin response = MangoPay::PayIn::PayPal::Web.create(payInObject) puts response return response rescue MangoPay::ResponseError => error puts "Failed to create pay-in: #{error.message}" puts "Error details: #{error.details}" return false end end myPayIn = { AuthorId: '192822811', Tag: 'Created with Mangopay Ruby SDK', CreditedUserId: '192822811', DebitedFunds: { Currency: 'EUR', Amount: 1500, }, Fees: { Currency: 'EUR', Amount: 100, }, CreditedWalletId: '192822814', ReturnURL: 'https://docs.mangopay.com/please-ignore', Culture: 'EN', ShippingAddress: { RecipientName: 'Alex Smith', Address: { AddressLine1: 'Rue des plantes', AddressLine2: 'The Oasis', City: 'Paris', Region: 'IDF', PostalCode: '75000', Country: 'FR', }, }, StatementDescriptor: 'Nov2023', } createPayPalPayIn(myPayIn) ```