> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.mangopay.com/api-reference/bank-wire-payins/create-bank-wire-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 Bank Wire PayIn POST https://api.sandbox.mangopay.com/v2.01/{ClientId}/payins/bankwire/direct Content-Type: application/json **Caution – Retrieve the returned bank details dynamically** In addition to the `WireReference`, ensure you implement the `BankAccount` object parameter dynamically so the `IBAN`, `BIC`, and other response values appear as returned in for each pay-in. Mangopay may change the underlying bank account without prior notice and mismatched data my lead to delays. See the bank wire pay-in guide for more details. Create a Bank Wire PayIn This call declares the payment to be made by the end user and returns the `BankAccount` details and `WireReference` they must use. Reference: https://docs.mangopay.com/api-reference/bank-wire-payins/create-bank-wire-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 CreateABankWirePayInRequest. - `AuthorId` (string, required) — The unique identifier of the user at the source of the transaction. - `CreditedWalletId` (string, required) — The unique identifier of the credited wallet. - `DeclaredDebitedFunds` (CreateABankWirePayInRequestDeclaredDebitedFunds, required) — Information about the declared funds to be wired by the end user to the returned bank account. - `DeclaredFees` (CreateABankWirePayInRequestDeclaredFees, required) — Information about the fees to be taken by the platform for this transaction (and hence transferred to the Fees Wallet). - `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`. - `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. ## 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. - `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. - `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` (BankWirePayInResponseDebitedFunds, optional) — Information about the debited funds. For a direct bank wire pay-in, the `DebitedFunds` displays placeholder values (currency `XXX` and amount `0`) until the `Status` changes to `SUCCEEDED`. - `CreditedFunds` (BankWirePayInResponseCreditedFunds, optional) — Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`). For a direct bank wire pay-in, the `CreditedFunds` displays placeholder values (currency `XXX` and amount `0`) until the `Status` changes to `SUCCEEDED`. - `Fees` (BankWirePayInResponseFees, 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. - `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:** `BANK_WIRE` The payment type of the pay-in. - `ExecutionType` (string, optional) — **Returned values:** `DIRECT` The execution type of the pay-in. - `DeclaredDebitedFunds` (BankWirePayInResponseDeclaredDebitedFunds, optional) — Information about the declared debited funds. - `DeclaredFees` (BankWirePayInResponseDeclaredFees, optional) — Information about the declared fees. - `WireReference` (string, optional) — Max. length: 255 characters The reference which the end user must provide when making the bank wire. The `WireReference` is used to reconcile the funds that arrive on the bank account with the `DeclaredDebitedFunds` in the Direct Bank Wire PayIn object. **Caution:** This reference is specific to each payment and must be retrieved dynamically. - `BankAccount` (BankWirePayInResponseBankAccount, optional) — Information about the bank account to which the bank wire must be made by the end user. **Caution:** Do not hardcode the returned values. Mangopay may change the underlying bank details without prior notice. - `TransactionDetails` (list of BankWirePayInResponseTransactionDetailsItems, optional) — Max. length: 50 characters Information received from banking partners for the transaction, based on the cash management (Camt) messages of ISO 20022. This information is only returned when the pay-in `Status` becomes `SUCCEEDED`. If data is not available then an empty array, `null`, or nulled fields are returned. If multiple wire payments are received for a single pay-in, then multiple objects are returned. ## Types ### CreateABankWirePayInRequestDeclaredDebitedFunds Information about the declared funds to be wired by the end user to the returned bank account. - `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`. ### CreateABankWirePayInRequestDeclaredFees Information about the fees to be taken by the platform for this transaction (and hence transferred to the Fees Wallet). - `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. ### 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. ### BankWirePayInResponseDebitedFunds Information about the debited funds. For a direct bank wire pay-in, the `DebitedFunds` displays placeholder values (currency `XXX` and amount `0`) until the `Status` changes to `SUCCEEDED`. - `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`. ### BankWirePayInResponseCreditedFunds Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`). For a direct bank wire pay-in, the `CreditedFunds` displays placeholder values (currency `XXX` and amount `0`) until the `Status` changes to `SUCCEEDED`. - `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`. ### BankWirePayInResponseFees 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`. ### BankWirePayInResponseDeclaredDebitedFunds Information about the declared 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`. ### BankWirePayInResponseDeclaredFees Information about the declared 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`. ### BankWirePayInResponseBankAccount Information about the bank account to which the bank wire must be made by the end user. **Caution:** Do not hardcode the returned values. Mangopay may change the underlying bank details without prior notice. - `OwnerAddress` (Address, optional) — The postal address. - `Type` (string, optional) — **Returned values:** `IBAN`, `US`, `CA`, `GB`, `OTHER` The type of the bank account. - `OwnerName` (string, optional) — The full name of the owner of the bank account. - `IBAN` (string, optional) — The IBAN (international bank account number) for the bank account. - `BIC` (string, optional) — The BIC (international identifier of the bank) for the bank account. ### BankWirePayInResponseTransactionDetailsItems - `BankTransactionDomainCode` (string, optional) — Max. length: 50 characters The bank transaction domain code (e.g. PMNT). - `BankTransactionDomainFamilyCode` (string, optional) — Max. length: 50 characters The bank transaction domain family code (e.g. ICDT). - `BankTransactionDomainSubFamilyCode` (string, optional) — Max. length: 50 characters The domain sub-family code (e.g. ACDT). - `References` (list of BankWirePayInResponseTransactionDetailsItemsReferencesItems, optional) — References for the transaction. If multiple references are available, multiple objects are returned. - `DebtorName` (string, optional) — Max. length: 100 characters The name of the debtor (i.e. the registered owner of the account that was debited). - `DebtorAccount` (string, optional) — Max. length: 50 characters The account identifier of the debtor (e.g. the account number). - `DebtorAgent` (string, optional) — Max. length: 50 characters The agent of the debtor (e.g. the BIC or bank code). - `DebtorAddressLine1` (string, optional) — Max. length: 500 characters The first line of the debtor's address. - `DebtorAddressLine2` (string, optional) — Max. length: 500 characters The second line of the debtor's address. - `DebtorAddressLine3` (string, optional) — Max. length: 500 characters The third line of the debtor's address. - `RemittanceInformationLine1` (string, optional) — Max. length: 1,000 characters Remittance information for the transaction. - `RemittanceInformationLine2` (string, optional) — Max. length: 1,000 characters Remittance information for the transaction. - `RemittanceInformationLine3` (string, optional) — Max. length: 1,000 characters Remittance information for the transaction. - `RemittanceInformationLine4` (string, optional) — Max. length: 1,000 characters Remittance information for the transaction. ### 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. ### 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. ### BankWirePayInResponseTransactionDetailsItemsReferencesItems - `Type` (string, optional) — Max. length: 50 characters The type of the reference. - `Value` (string, optional) — Max. length: 100 characters The value of the reference. ## Examples **Response** ```json { "Id": "payin_m_01JFAJSSR3VW3SHX2X74C8GW82", "Tag": "Created using Mangopay API Postman Collection", "CreationDate": 1734448310, "ResultCode": null, "ResultMessage": null, "AuthorId": "user_m_01JCQYJNHFPENP1SKTCBYER0F8", "CreditedUserId": "user_m_01JCQYJNHFPENP1SKTCBYER0F8", "FlowDescriptor": { "FlowId": "flow_wt_97448e0a-5bc6-4b83-ac29-cdfcadf60a08", "Beneficiaries": [ { "UserId": "user_m_02APAYTWSDYXHXN1FRTKX9WMA2" } ] }, "DebitedFunds": { "Currency": "XXX", "Amount": 0 }, "CreditedFunds": { "Currency": "XXX", "Amount": 0 }, "Fees": { "Currency": "XXX", "Amount": 0 }, "Status": "CREATED", "ExecutionDate": null, "Type": "PAYIN", "Nature": "REGULAR", "CreditedWalletId": "wlt_m_01JFAJS7838A32W7KPJ7NNGJ1D", "DebitedWalletId": null, "PaymentType": "BANK_WIRE", "ExecutionType": "DIRECT", "DeclaredDebitedFunds": { "Currency": "EUR", "Amount": 62789 }, "DeclaredFees": { "Currency": "EUR", "Amount": 7826 }, "WireReference": "MGgq1y8jjb", "BankAccount": { "OwnerAddress": { "AddressLine1": "2 Avenue Amélie", "AddressLine2": null, "City": "Luxembourg", "Region": null, "PostalCode": "L-1125", "Country": "LU" }, "Type": "IBAN", "OwnerName": "MANGOPAY SA", "IBAN": "FR7630056009271234567890182", "BIC": "CCFRFRPPXXX" }, "TransactionDetails": [] } ``` **SDK Code** ```python 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, BankWirePayIn from mangopay.utils import Money natural_user = NaturalUser.get('213753890') user_wallet = Wallet.get('215029593') direct_bank_wire_payin = BankWirePayIn( author_id=natural_user, credited_wallet_id=user_wallet.id, declared_debited_funds=Money(amount=1000, currency='EUR'), declared_fees=Money(amount=50, currency='EUR') ) create_direct_bank_wire_payin = direct_bank_wire_payin.save() pprint(create_direct_bank_wire_payin) ``` ```javascript const mangopayInstance = require('mangopay4-nodejs-sdk') const mangopay = new mangopayInstance({ clientId: 'your-client-id', clientApiKey: 'your-api-key', }) let myDirectBankWirePayIn = { PaymentType: 'BANK_WIRE', ExecutionType: 'DIRECT', AuthorId: '146476890', Tag: 'Created with Mangopay Node.js SDK', CreditedUserId: '146476890', DeclaredDebitedFunds: { Currency: 'EUR', Amount: 1000, }, DeclaredFees: { Currency: 'EUR', Amount: 100, }, CreditedWalletId: '148968396', } const createDirectBankWirePayIn = async (payin) => { return await mangopay.PayIns.create(payin) .then((response) => { console.info(response) return response }) .catch((err) => { console.log(err) return false }) } createDirectBankWirePayIn(myDirectBankWirePayIn) ``` ```java import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.mangopay.MangoPayApi; import com.mangopay.core.Money; import com.mangopay.core.enumerations.CurrencyIso; import com.mangopay.entities.PayIn; import com.mangopay.entities.subentities.PayInExecutionDetailsDirect; import com.mangopay.entities.subentities.PayInPaymentDetailsBankWire; public class CreateDirectBankWirePayIn { 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_01HQK25M6KVHKDV0S36JY9NRKR"; var walletId = "wlt_m_01HQT6422EER2N7FPRXWTSDCSV"; PayIn bankwirePayin = new PayIn(); PayInPaymentDetailsBankWire payinDetails = new PayInPaymentDetailsBankWire(); payinDetails.setDeclaredDebitedFunds(new Money(CurrencyIso.EUR, 1000)); payinDetails.setDeclaredFees(new Money(CurrencyIso.EUR, 1000)); bankwirePayin.setAuthorId(userId); bankwirePayin.setCreditedWalletId(walletId); bankwirePayin.setPaymentDetails(payinDetails); bankwirePayin.setExecutionDetails(new PayInExecutionDetailsDirect()); PayIn createPayIn = mangopay.getPayInApi().create(bankwirePayin); Gson prettyPrint = new GsonBuilder().setPrettyPrinting().create(); String prettyJson = prettyPrint.toJson(createPayIn); System.out.println(prettyJson); } } ``` ```csharp using MangoPay.SDK; using MangoPay.SDK.Entities.PUT; 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 PayInBankWireDirectPostDTO( userId, walletId, new Money { Amount = 1000, Currency = CurrencyIso.EUR }, new Money { Amount = 0, Currency = CurrencyIso.EUR } ) { CreditedWalletId = walletId, AuthorId = userId, Tag = "Created using the Mangopay .NET SDK" }; PayInDTO createBankWirePayIn = await api.PayIns.CreateBankWireDirectAsync(payIn); string prettyPrint = JsonConvert.SerializeObject(createBankWirePayIn, Formatting.Indented); Console.WriteLine(prettyPrint); } } ``` ```php Config->ClientId = 'your-client-id'; $api->Config->ClientPassword = 'your-api-key'; $api->Config->TemporaryFolder = 'tmp/'; try { $userId = 'user_m_01HQK25M6KVHKDV0S36JY9NRKR'; $walletId = 'wlt_m_01HQT6422EER2N7FPRXWTSDCSV'; $bankwirePayIn = new \MangoPay\PayIn(); $bankwirePayIn->AuthorId = $userId; $bankwirePayIn->CreditedWalletId = $walletId; $bankwirePayIn->PaymentDetails = new \MangoPay\PayInPaymentDetailsBankWire(); $bankwirePayIn->PaymentDetails->DeclaredDebitedFunds = new \MangoPay\Money(); $bankwirePayIn->PaymentDetails->DeclaredDebitedFunds->Amount = 1000; $bankwirePayIn->PaymentDetails->DeclaredDebitedFunds->Currency = 'EUR'; $bankwirePayIn->PaymentDetails->DeclaredFees = new \MangoPay\Money(); $bankwirePayIn->PaymentDetails->DeclaredFees->Amount = 0; $bankwirePayIn->PaymentDetails->DeclaredFees->Currency = 'EUR'; $bankwirePayIn->ExecutionDetails = new \MangoPay\PayInExecutionDetailsDirect(); $bankwirePayIn->ExecutionDetails->Culture = 'FR'; $response = $api->PayIns->Create($bankwirePayIn); print_r($response); } catch(MGPResponseException $e) { print_r($e); } catch(MGPException $e) { print_r($e); } ``` ```ruby 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 createDirectBankWirePayIn(payInObject) begin response = MangoPay::PayIn::BankWire::Direct.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: '146476890', Tag: 'Created with Mangopay Node.js SDK', CreditedUserId: '146476890', DeclaredDebitedFunds: { Currency: 'EUR', Amount: 1000, }, DeclaredFees: { Currency: 'EUR', Amount: 100, }, CreditedWalletId: '148968396', } createDirectBankWirePayIn(myPayIn) ```