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

Name Currencies Identifier
SPEI MXN mx_spei_bank

Sample JSON for Transaction Request

When creating a Transaction in the API, set payment-method.type to bank 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",
                "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"
    }
  }
}

Table of contents