---
title: "Create a Pay by Bank PayIn"
method: POST
path: "/v2.01/{ClientId}/payins/payment-methods/openbanking"
tags: ["payByBank"]
---

# Create a Pay by Bank PayIn

`POST /v2.01/{ClientId}/payins/payment-methods/openbanking`

Initiate a Pay by Bank pay-in request.

<Note icon="fa-regular fa-circle-info">
**Note – Session timeout 9 minutes**

The Pay by Bank session lasts for 9 minutes, at which point the pay-in fails automatically if no action has been taken by the user.
</Note>

Related: [test data](/testing/payment-methods#pay-by-bank), [guide](/guides/payment-methods/banking/pay-by-bank)

## Path parameters

- `ClientId` string, required

## Headers

- `Authorization` string, required

## Request body

- CreateAPayByBankPayInRequest
  - `Tag` string — Max. length: 255 characters Custom data that you can add to this object.
  - `AuthorId` string, required — The unique identifier of the user at the source of the transaction.
  - `DebitedFunds` CreateAPayByBankPayInRequestDebitedFunds, required — Information about the debited funds.
    - `Currency` string, required — **Allowed values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (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`.
  - `Fees` CreateAPayByBankPayInRequestFees, required — Information about the fees.
    - `Currency` string, required — **Allowed values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (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`.
  - `CreditedWalletId` string, required — The unique identifier of the credited wallet.
  - `FlowDescriptor` 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` FlowDescriptorRequestBeneficiariesItems[], 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.
      - `UserId` string — The unique identifier of the Natural User or Legal User declared as a beneficiary of the pay-in.
  - `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.
  - `StatementDescriptor` string — 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 <a href="/bank-statements">Customizing bank statement references</a> article for details.
  - `Country` string, required — **Allowed values:** `AT`, `DE`, `DK`, `EE`, `ES`, `FI`, `FR`, `GB`, `IE`, `IT`, `LV`, `LT`, `NL`, `NO`, `PL`, `PT`. The country of residence of the user.
  - `BIC` string — The BIC of the user's bank account, which is only returned if it was sent. If both the `IBAN` and `BIC` are provided, one of the two authentication steps required by certain banks may be avoided.
  - `IBAN` string — The IBAN of the user's bank account, which is only returned if it was sent. If both the `IBAN` and `BIC` are provided, one of the two authentication steps required by certain banks may be avoided.
  - `PaymentFlow` string — **Allowed values:** `WEB`, `APP` **Default value:** `WEB` The platform environment of the post-payment flow. The `PaymentFlow` value combines with the `ReturnURL` to manage the redirection behavior after payment: - Set the value to `APP` to send the user to your platform's mobile app - Set the value to `WEB` to send the user to a web browser In both cases you need to provide the relevant `ReturnURL`, whether to your app or website.
  - `BankName` string — **Allowed values:** One of the [supported bank names](/guides/payment-methods/banking/pay-by-bank#banks-and-schemes). The name of the bank, which is only returned if it was sent. If the `BankName` is provided, the user doesn't have to select their bank when they are redirected.
  - `Culture` string — **Allowed values:** `DA`, `CS`, `DE`, `EN`, `ET`, `ES`, `FI`, `FR`, `IT`, `LT`, `LV`, `NL`, `NO`, `PL`, `PT`, `SV` **Default value:** `EN` The language in which the Tink open banking page is to be displayed.
  - `Scheme` string — **Allowed values:** One of the [supported schemes](/guides/payment-methods/banking/pay-by-bank#banks-and-schemes) for the `Country`. **Default value:** The [listed instant scheme](/guides/payment-methods/banking/pay-by-bank#banks-and-schemes) for the `Country`. If `Country` is `DK`, there is no default and the `Scheme` must be specified. The scheme to use to process the payment. Note that some banks may charge additional fees to the user for instant payment schemes.

## Response `200`

Success

- PayByBankPayInResponse — A Pay by Bank pay-in: - `PaymentType` – `PAY_BY_BANK` - `ExecutionType` – `WEB`
  - `Id` string — Max length: 128 characters (see [data formats](/api-reference/overview/data-formats) for details) The unique identifier of the object.
  - `Tag` string — Max. length: 255 characters Custom data that you can add to this object.
  - `CreationDate` integer — Unix timestamp (UTC) of the date and time the object was created.
  - `AuthorId` string — The unique identifier of the user at the source of the transaction.
  - `DebitedFunds` PayByBankPayInResponseDebitedFunds — Information about the debited funds.
    - `Currency` string — **Allowed values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings). The currency of the amount.
    - `Amount` integer — 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`.
  - `CreditedFunds` PayByBankPayInResponseCreditedFunds — Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`).
    - `Currency` string — **Allowed values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings). The currency of the amount.
    - `Amount` integer — 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`.
  - `Fees` PayByBankPayInResponseFees — Information about the fees.
    - `Currency` string — **Allowed values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings). The currency of the amount.
    - `Amount` integer — 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`.
  - `Status` string — **Returned values:** `CREATED`, `SUCCEEDED`, `FAILED` The status of the transaction.
  - `ResultCode` string — The code indicating the result of the operation. This information is mostly used to <a href="/errors/codes">handle errors</a> or for filtering purposes.
  - `ResultMessage` string — The explanation of the result code.
  - `ExecutionDate` integer — 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 — **Returned values:** `PAYIN`, `TRANSFER`, `CONVERSION`, `PAYOUT` The type of the transaction.
  - `Nature` string — **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 — The unique identifier of the credited wallet.
  - `CreditedUserId` string — **Default value:** The unique identifier of the owner of the credited wallet. The unique identifier of the user whose wallet is credited.
  - `FlowDescriptor` 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 — Unique identifier of the payment flow, used by Mangopay for internal purposes.
    - `Beneficiaries` FlowDescriptorResponseBeneficiariesItems[], 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.
      - `UserId` string — The unique identifier of the Natural User or Legal User declared as a beneficiary of the pay-in.
  - `PaymentType` string — **Returned values:** `PAY_BY_BANK` The payment type of the pay-in.
  - `ExecutionType` string — **Returned values:** `WEB` The execution type of the pay-in.
  - `ReturnURL` string — Max. length: 255 characters The URL to which the user is returned after the payment, whether the transaction is successful or not.
  - `RedirectURL` string — 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.
  - `StatementDescriptor` string — 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 <a href="/bank-statements">Customizing bank statement references</a> article for details.
  - `Country` string — **Allowed values:** `AT`, `DE`, `DK`, `EE`, `ES`, `FI`, `FR`, `GB`, `IE`, `IT`, `LV`, `LT`, `NL`, `NO`, `PL`, `PT`. The country of residence of the user.
  - `BIC` string — The BIC of the user's bank account, which is only returned if it was sent. If both the `IBAN` and `BIC` are provided, one of the two authentication steps required by certain banks may be avoided.
  - `IBAN` string — The IBAN of the user's bank account, which is only returned if it was sent. If both the `IBAN` and `BIC` are provided, one of the two authentication steps required by certain banks may be avoided.
  - `PaymentFlow` string — **Allowed values:** `WEB`, `APP` **Default value:** `WEB` The platform environment of the post-payment flow. The `PaymentFlow` value combines with the `ReturnURL` to manage the redirection behavior after payment: - Set the value to `APP` to send the user to your platform's mobile app - Set the value to `WEB` to send the user to a web browser In both cases you need to provide the relevant `ReturnURL`, whether to your app or website.
  - `BankName` string — **Allowed values:** One of the [supported bank names](/guides/payment-methods/banking/pay-by-bank#banks-and-schemes). The name of the bank, which is only returned if it was sent. If the `BankName` is provided, the user doesn't have to select their bank when they are redirected.
  - `Culture` string — **Allowed values:** `DA`, `CS`, `DE`, `EN`, `ET`, `ES`, `FI`, `FR`, `IT`, `LT`, `LV`, `NL`, `NO`, `PL`, `PT`, `SV` **Default value:** `EN` The language in which the Tink open banking page is to be displayed.
  - `Scheme` string — **Allowed values:** One of the [supported schemes](/guides/payment-methods/banking/pay-by-bank#banks-and-schemes) for the `Country`. **Default value:** The [listed instant scheme](/guides/payment-methods/banking/pay-by-bank#banks-and-schemes) for the `Country`. If `Country` is `DK`, there is no default and the `Scheme` must be specified. The scheme to use to process the payment. Note that some banks may charge additional fees to the user for instant payment schemes.
  - `ProcessingStatus` string — **Possible values:** `PENDING_SUCCEEDED` Parameter that is only returned once the bank wire has been successfully authenticated and initiated by the user but has not yet been received by Mangopay. When the funds are received, the `Status` changes from `CREATED` to `SUCCEEDED` and the `ProcessingStatus` is no longer returned. For non-instant schemes, processing can take up to 72 hours but is typically completed within 2 days.

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.dev/mangopay/apis/api-reference.md) · [All operations](https://skmtc.dev/mangopay/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mangopay/api-reference/revisions/fafbd0c69654/schema)
