> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.mangopay.com/api-reference/payconiq/create-payconiq-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 Payconiq PayIn POST https://api.sandbox.mangopay.com/v2.01/{ClientId}/payins/payment-methods/payconiq Content-Type: application/json **Deprecated – Payconiq discontinued from Dec 4, 2025** Following its acquisition by the European Payments Initiative (EPI), the Payconiq brand and services are being phased out (read more on Payconiq's website). The timeline is as follows: * Dec 4, 2025 - [Payconiq pay-ins](/api-reference/payconiq/create-payconiq-payin) attempted after **12:00 noon CET** will fail * Dec 31, 2025 - Final day for processing [pay-in refunds](/api-reference/refunds/create-refund-payin) * Jan 1, 2026 - Refunds possible using payouts ([see guide](/guides/payment-methods/payconiq#refunds-from-jan-1,-2026)) Platforms using Payconiq are invited to integrate [Bancontact](https://www.notion.so/guides/payment-methods/bancontact), which allows users to continue paying with their Payconiq by Bancontact mobile app via the `DeepLinkURL`. **Note – Timeout after 1 hour** The Payconiq payment session lasts for 1 hour, at which point the pay-in fails automatically if no action has been taken by the user. Create a Payconiq PayIn Reference: https://docs.mangopay.com/api-reference/payconiq/create-payconiq-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 CreateAPayconiqPayInRequest. - `AuthorId` (string, required) — The unique identifier of the user at the source of the transaction. - `DebitedFunds` (CreateAPayconiqPayInRequestDebitedFunds, required) — Information about the debited funds. - `Fees` (CreateAPayconiqPayInRequestFees, required) — Information about the fees. - `CreditedWalletId` (string, required) — The unique identifier of the credited wallet. - `ReturnURL` (string, required) — Max. length: 255 characters The URL to which the user is returned after the payment, whether the transaction is successful or not. - `Country` (string, required) — **Allowed values:** BE, LU The country of residence of the user. - `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}"`. - `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`. - `StatementDescriptor` (string, optional) — Max. length: 10 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. ## 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. - `DebitedFunds` (PayconiqPayInResponseDebitedFunds, optional) — Information about the debited funds. - `CreditedFunds` (PayconiqPayInResponseCreditedFunds, optional) — Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`). - `Fees` (PayconiqPayInResponseFees, optional) — Information about the fees. - `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. - `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`. - `PaymentType` (string, optional) — **Returned values:** `PAYCONIQ` The payment type of the pay-in. - `ExecutionType` (string, optional) — **Returned values:** `WEB` The execution type of the pay-in. - `ReturnURL` (string, optional) — Max. length: 255 characters The URL to which the user is returned after the payment, whether the transaction is successful or not. - `RedirectURL` (string, optional) — The URL to which to redirect the user to complete the payment on a hosted page showing the QR code and Payconiq by Bancontact branding and instructions. **Note:** In Sandbox, this value redirects to Mangopay's web-based simulator. **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. - `StatementDescriptor` (string, optional) — Max. length: 10 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. - `Country` (string, optional) — **Returned values:** BE, LU The country of residence of the user. - `DeepLinkURL` (string, optional) — The mobile URL to which to redirect the user to complete the payment in an app-to-app flow. **Note:** In Sandbox, this value is a placeholder: the `RedirectURL` must be used to complete the payment using Mangopay's web-based simulator. - `QRCodeURL` (string, optional) — The URL of a page containing only the QR code which you can use in your payment experience. You can lightly customize the QR code's format, size, and color by adding query parameters to the `QRCodeURL` before redirecting the user. See the Payconiq guide for details. **Note:** In Sandbox, this value is a placeholder. The `RedirectURL` must be used to complete the payment using Mangopay's web-based simulator. ## Types ### CreateAPayconiqPayInRequestDebitedFunds 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`. ### CreateAPayconiqPayInRequestFees 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. ### PayconiqPayInResponseDebitedFunds 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`. ### PayconiqPayInResponseCreditedFunds 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`. ### PayconiqPayInResponseFees Information about the 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`. ### 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. ### FlowDescriptorRequestBeneficiariesItems - `UserId` (string, optional) — The unique identifier of the Natural User or Legal User declared as a beneficiary of the pay-in. ### FlowDescriptorResponseBeneficiariesItems - `UserId` (string, optional) — The unique identifier of the Natural User or Legal User declared as a beneficiary of the pay-in. ## Examples **Request** ```json { "body": { "AuthorId": "user_m_01J18HZSACR1EMYNY1TBS8KTJD", "Country": "BE", "CreditedWalletId": "wlt_m_01J18J1SQGG6KXNM3F8GD674TP", "DebitedFunds": { "Amount": 1000, "Currency": "EUR" }, "Fees": { "Amount": 0, "Currency": "EUR" }, "FlowDescriptor": { "Beneficiaries": [ { "UserId": "user_m_02APAYTWSDYXHXN1FRTKX9WMA2" } ] }, "ReturnURL": "http://example.com", "StatementDescriptor": "Example123", "Tag": "Created using the Mangopay API Postman collection" } } ``` **Response** ```json { "Id": "wt_706087f1-d1df-48a9-9d15-e8c603457d64", "Tag": "Created using the Mangopay API Postman collection", "CreationDate": 1720095972, "AuthorId": "user_m_01J18HZSACR1EMYNY1TBS8KTJD", "DebitedFunds": { "Currency": "EUR", "Amount": 1000 }, "CreditedFunds": { "Currency": "EUR", "Amount": 1000 }, "Fees": { "Currency": "EUR", "Amount": 0 }, "Status": "CREATED", "ResultCode": null, "ResultMessage": null, "ExecutionDate": null, "Type": "PAYIN", "Nature": "REGULAR", "CreditedWalletId": "wlt_m_01J18J1SQGG6KXNM3F8GD674TP", "CreditedUserId": "user_m_01J18HZSACR1EMYNY1TBS8KTJD", "FlowDescriptor": { "FlowId": "flow_wt_97448e0a-5bc6-4b83-ac29-cdfcadf60a08", "Beneficiaries": [ { "UserId": "user_m_02APAYTWSDYXHXN1FRTKX9WMA2" } ] }, "PaymentType": "PAYCONIQ", "ExecutionType": "WEB", "ReturnURL": "http://example.com?transactionId=wt_706087f1-d1df-48a9-9d15-e8c603457d64", "RedirectURL": "https://r2.girogate.de/payconiq/T1146/I?tx=1207176177&rs=8OHbVocjQQa4OIcB4o31BgQBw7c45bXK&cs=76745cafd862d134ce7be068a029c71368ff5e22339379d72780845cee02a10f", "StatementDescriptor": "Example123", "Country": "BE", "DeepLinkURL": "https://PAYCONIQ.COM/PAY/2/F8B4348C390A925F00D0682C?returnUrl=https%3A%2F%2Fr2.giro[…]436a10f4077908aa014795ba528a622315b2bada9f1ddc33e097c2fe5d9f5b", "QRCodeURL": "https://portal.payconiq.com/qrcode?c=https%3A%2F%2Fpayconiq.com%2Fpay%2F2%2Ff8b4348c390a925f00d0682c" } ``` **SDK Code** ```csharp 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 payIn = new PayInPayconiqPostDTO { AuthorId = userId, CreditedWalletId = walletId, DebitedFunds = new Money { Amount = 2000, Currency = CurrencyIso.EUR }, Fees = new Money { Amount = 50, Currency = CurrencyIso.EUR }, Country = "BE", ReturnURL = "http://www.mangopay.com/docs/please-ignore/", Tag = "Created using the Mangopay .NET SDK" }; var createPayconiqPayIn = await api.PayIns.CreatePayconiqAsync(payIn); string prettyPrint = JsonConvert.SerializeObject(createPayconiqPayIn, Formatting.Indented); Console.WriteLine(prettyPrint); } } ```