Bank Transfer Payments Guide
The OpenTransact API is able to connect to payment processing providers that enable the receipt of electronic bank transfers initiated by their customers. This guide will walk you through integrating with the OpenTransact API for the purposes of connecting to one of the integrated partners that supports processing payments at supported banks.
Processing Workflow
In general, the customer will visit your site or application and select a supported bank transfer method at checkout. Your application will receive a reference code and/or information that should be displayed to the user regarding how to complete the bank transfer. The user can take these instructions, or print them and use them to complete the transaction at their bank’s website, mobile application, ATM or retail branch. When the payment is completed, our API will receive a notification of that completion and update the status of the payment.
Available Options for Bank Transfers
Identifier | Name | Icon | Cancelable? | Expirable? | Refundable | Min Expiration | Max Expiration |
---|---|---|---|---|---|---|---|
mx_spei_bank | SPEI Bank | false | false | true |
Sample JSON for Transaction Request
When creating a Transaction in the API, set payment-method.type
to bank_transfer
and payment-method.options.identifier
to the identifier value for the bank the user has selected.
{
"data": {
"type": "transactions",
"attributes": {
"transaction-type": "debit",
"amount": 100,
"precision": 2,
"currency": "MXN",
"memo": "Test Transaction",
"payment-method": {
"type": "bank_transfer",
"options": {
"identifier": "mx_spei_bank"
}
},
"metadata": {
}
},
"relationships": {
"profile": {
"data": {
"type": "profiles",
"id": profile_id
}
}
}
}
}
Sample JSON for Transaction Response
When you create a transaction that should trigger a bank transfer, the details required to complete the bank transfer will be present on the metadata attributre of the transaction. Grab the reference code from metadata.charge.Rapyd.response.params.paycode
and display the code to the user with instructions.
- metadata object is truncated for clarity.
{
"data": {
"id": "example-uuid",
"type": "transactions",
"attributes": {
"transaction-type": "debit",
"amount": 100,
"currency": "MXN",
"precision": 2,
"memo": "Test Transaction",
"status": "pending",
"metadata": {
"charge": {
"Rapyd": {
"duration": 1144,
"release": "0.1.1-alpha.21197",
"processor-configuration-id": "example-uuid",
"response": {
"params": {
"payCode": "888455799438564343"
}
}
}
}
},
"created-at": "2021-01-01T02:01:22Z",
"updated-at": "2021-01-01T02:01:27Z"
},
"relationships": {
"profile": {
"data": {
"id": "example-uuid",
"type": "profiles"
}
}
},
"links": {
"self": "https://api.opentransact.com/v1/transactions/sample-uuid"
}
}
}