Online Bank Transfer
Online Bank Transfer allows customers to enter their bank accounts details on an online banking platform and digitally confirm a payment. The merchant then receives a payment notification once the transaction has been successfully completed.
The Paysafe Payments API supports Online Bank transfer via SafetyPay as a payment instrument for iGaming and Crypto Merchants in the following countries:
- Brazil
- Chile
- Columbia
- Costa Rica
- Peru
Features
Online bank transfer:
- Has a large bank network in seven countries.
- Has payments with the biggest and most reputable bank institutions.
- Has a large customer base.
- Supports one-step payments with some banks.
- Supports payment code expiration date for the two-step bank transfers. If the payment code is not paid in the appropriate time, it expires and the transaction is cancelled.
Setup Requirements
To create an account in sandbox and production environment:
- Send your details to it_integrations@safetypay.com
- You will receive access to Portal where you will see below details
- Merchant secret key
- Merchant signature key
- You will receive access to Portal where you will see below details
- Share above details with us to create an API Key – you will use this API key in our API calls.
Your account manager will help to guide you through this process.
Certification Requirements
You are required to go through a certification process to support Safetypay Express as a payment method.
The Paysafe integration team will share certification requirements.
Transaction Types
Paysafe supports the following transaction type:
- Payments – Used to transfer money from customer's bank account to merchant's account. After a successful payment, the merchant credits the customer's wallet.
Processing currencies: BRL, CLP, COP, PEN, CRC
Settlement currency: USD
NOTE: CLP and COP have no minor currency units. However, when you send an API request, you must send the amount with a 2 decimal shift - this is to maintain consistency across all payments methods, as a 2 decimal shift is standard in the Paysafe Payments API. When you want to process the amount of 123 in CLP or COP for example, you must send the amount as 12300 in your API request.
Typical Scenarios
To process a payment request using Online Bank Transfer:
-
Create a Payment Handle with the following parameter settings:
transactionType: PAYMENT
paymentType: ONLINE_BANK_TRANSFER- As ONLINE_BANK_TRANSFER is available in multiple countries, you need to pass "countryCode" in the request. You can refer to the table at the bottom of the page for countryCodes.
- You need to pass "bankNameCodes" in the request. There is also an option to display particular banks to the user in Safetypay express by sending Bankcodes in request.
-
Redirect the customer to the SafetyPay redirect URL, so they can select the bank and make the payment.
-
The status of the Payment Handle becomes PAYABLE.
-
The merchant gets notified of this status change via a webhook.
-
-
Use the paymentHandleToken returned in the response to process the payment request. The Payment will have a status of PROCESSING until the customer has made the payment.
You will receive a Payment Completed notification via webhooks when the customer successfully completes the payment.
You can get the transaction status with a GET call if you don't get a webhook. It is recommended to avoid constant polling. See Webhooks and GET calls for more information.
Return links
- After the customer has been redirected to SafetyPay Express, you will receive a Payment Handle Payable webhook. When you make a /payments call, you will get a payment status of either Processing, Completed or Failed.
- After the customer completes the transaction at Safetypay Express, the customer will be redirected to your return link. You can check the status of the /payments response and redirect the customer to your relevant page depending on the payment status:
Payment status | Description |
---|---|
PROCESSING | The transaction is not complete and is in progress. It does not mean that the transaction has failed. You will get a COMPLETED or FAILED webhook for this transaction at a later stage when you will be able to update the transaction status at your end. |
COMPLETED | The customer has successfully completed the transaction at the SafetyPay end. |
FAILED | The payment has expired at the SafetyPay end. |
APIs to use
Payment handle request without bank code
{
"amount": 1000,
"currencyCode": "BRL",
"dupCheck": true,
"merchantRefNum": "11b93b1f-2c97-401a-8fae-b2cf9c537048",
"transactionType": "PAYMENT",
"paymentExpiryMinutes":15,
"accountId": "1002495210",
"paymentType": "ONLINE_BANK_TRANSFER",
"profile": {
"email": "BRTESTQA202_01@gmail.com"
},
"paymentDetails": {
"countryCode": "BR"
},
"returnLinks": [
{
"rel": "default",
"href": "https://www.paysafe.com/en/"
}
]
}
Payment handle request with bank code
{
"amount": 1000,
"currencyCode": "BRL",
"dupCheck": true,
"merchantRefNum": "61896753-3204-491d-8344-61c5480ee3d9",
"transactionType": "PAYMENT",
"paymentExpiryMinutes":15,
"accountId": "1002495210",
"paymentType": "ONLINE_BANK_TRANSFER",
"profile": {
"email": "BRTESTQA202_01@gmail.com"
},
"paymentDetails": {
"countryCode": "BR",
"bankNameCodes": [
"ITAU"
]
},
"returnLinks": [{
"rel": "default",
"href": "https://www.paysafe.com/en/"
}
]
}
Payment handle response
{
"id": "2bb8fa2d-09fb-43b1-aa21-5f8225bb0a0e",
"paymentType": "ONLINE_BANK_TRANSFER",
"paymentHandleToken": "PHN2Gx7nItmtxmTL",
"merchantRefNum": "0a296dc9-1a2e-443b-bc28-6d18293445c1",
"currencyCode": "BRL",
"txnTime": "2023-03-14T04:45:42Z",
"customerIp": "213.208.158.220",
"status": "INITIATED",
"links": [
{
"rel": "redirect_payment",
"href": "https://api.test.paysafe.com/alternatepayments/v1/redirect?accountId=1002495210&paymentHandleId=2bb8fa2d-09fb-43b1-aa21-5f8225bb0a0e&token=eyJhbGciOiJIUzI1NiJ9.eyJhY2QiOiIxMDAyNDk1MjEwIiwicHlkIjoiMmJiOGZhMmQtMDlmYi00M2IxLWFhMjEtNWY4MjI1YmIwYTBlIiwiZXhwIjoxNjc4NzcwOTQ0fQ.rc5KYNx6smoTz4jBsbB6ZcWeIcoyl5eJerj-ovCGfo0"
}
],
"liveMode": false,
"simulator": "EXTERNAL",
"usage": "SINGLE_USE",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"amount": 1000,
"timeToLiveSeconds": 898,
"gatewayResponse": {
"operationId": "0123073466130230",
"id": "926ce5b0-7978-4c7e-a3d9-16b2f891b589",
"processor": "SAFETYPAY"
},
"returnLinks": [
{
"rel": "default",
"href": "https://www.paysafe.com/en/"
}
],
"transactionType": "PAYMENT",
"gatewayReconciliationId": "926ce5b0-7978-4c7e-a3d9-16b2f891b589",
"updatedTime": "2023-03-14T04:45:44Z",
"statusTime": "2023-03-14T04:45:44Z",
"paymentExpiryMinutes":15,
"paymentDetails": {
"countryCode": "BR"
},
"profile": {
"email": "BRTESTQA202_01@gmail.com"
}
}
Payments request
{
"merchantRefNum": "aa1811d6-fb46-401e-9bdf-a0774f12a831",
"amount": 1000,
"currencyCode": "BRL",
"dupCheck": true,
"settleWithAuth": true,
"paymentHandleToken": "PHN2Gx7nItmtxmTL"
}
Payments response
{
"id": "dcf27a44-0380-49ba-a65e-5319925a4838",
"paymentType": "ONLINE_BANK_TRANSFER",
"paymentHandleToken": "PHN2Gx7nItmtxmTL",
"merchantRefNum": "43af49ee-5a87-41d2-b09f-ed9300ede621",
"currencyCode": "BRL",
"settleWithAuth": true,
"dupCheck": true,
"txnTime": "2023-03-14T05:05:21Z",
"customerIp": "213.208.158.220",
"status": "PROCESSING",
"gatewayReconciliationId": "b839e5a6-0879-498a-bb09-a28764dc6be4",
"amount": 1000,
"availableToRefund": 0,
"consumerIp": "213.208.158.220",
"liveMode": false,
"simulator": "EXTERNAL",
"updatedTime": "2023-03-14T05:05:42Z",
"statusTime": "2023-03-14T05:05:42Z",
"gatewayResponse": {
"operationId": "0123073466165265",
"id": "b839e5a6-0879-498a-bb09-a28764dc6be4",
"processor": "SAFETYPAY",
"status": "101"
},
"availableToSettle": 0,
"profile": {
"email": "BRTESTQA202_01@gmail.com"
},
"settlements": {
"amount": 1000,
"txnTime": "2023-03-14T05:05:21.000+0000",
"availableToRefund": 0,
"merchantRefNum": "43af49ee-5a87-41d2-b09f-ed9300ede621",
"id": "dcf27a44-0380-49ba-a65e-5319925a4838",
"status": "PROCESSING"
}
}
Bank Codes
Bank Name Code | Currencies | Min Amount | Max Amount |
ITAU | BRL | No minimum amount | BRL 57,000 |
SANTANDER | BRL | No minimum amount | BRL 57,000 |
BANCO_DO_BRASIL | BRL | No minimum amount | BRL 57,000 |
BRADESCO | BRL | No minimum amount | BRL 57,000 |
BANCO_ESTADO | CLP | No Minimum amount | CLP 8,500,000 |
BANCO_BCI | CLP | No Minimum amount | CLP 500,000 |
SCOTIABANK_CHILE | CLP | No Minimum amount | CLP 8,500,000 |
BBVA_COLOMBIA | COP | 1 COP | COP 40,000,000 |
BANCO_DE_BOGOTA | COP | 1 COP | COP 40,000,000 |
BANCO_AV_VILLAS | COP | 1 COP | COP 40,000,000 |
BANCO_CAJA_SOCIAL | COP | 10,000.00 COP | COP 40,000,000 |
BANCO_SCOTIABANK_COLPATRIA | COP | 1 COP | COP 40,000,000 |
ITAU | COP | 1 COP | COP 40,000,000 |
BANCO_DAVIVIENDA | COP | 1 COP | COP 40,000,000 |
BANCO_DE_OCCIDENTE | COP | 2,000 COP | COP 40,000,000 |
BANCO_GNB_SUDAMERIS | COP | 1 COP | COP 40,000,000 |
BANCO_PICHINCHA_COL | COP | 1 COP | COP 40,000,000 |
BANCO_POPULAR | COP | 1 COP | COP 40,000,000 |
BANCO_PROCREDIT | COP | 1 COP | COP 40,000,000 |
ONLINE_BANK_PAYMENT_BANCOLOMBIA_COLOMBIA | COP | 1 COP | COP 40,000,000 |
ONLINE_BANK_PAYMENT_BANCOOMEVA_COLOMBIA | COP | 1 COP | COP 40,000,000 |
CITIBANK_COLOMBIA | COP | 1 COP | COP 40,000,000 |
BANCO_FALABELLA | COP | 1 COP | COP 40,000,000 |
BANCO_COOPERATIVO_COOPCENTRAL | COP | 1 COP | COP 40,000,000 |
BANCO_AGRARIO | COP | 1 COP | COP 40,000,000 |
NEQUI_COLOMBIA | COP | 1 COP | COP 40,000,000 |
ONLINE_BANK_PAYMENT_BANCO_SANTANDER_COLOMBIA | COP | No Minimum amount | COP 40,000,000 |
DAVIPLATA | COP | 1 COP | COP 40,000,000 |
CONFIAR_COOPERATIVA_FINANCIERA | COP | 1 COP | COP 40,000,000 |
BANCO_SERFINANZA | COP | 1 COP | COP 40,000,000 |
CFA_COOPERATIVA_FINANCIERA | COP | 1 COP | COP 40,000,000 |
BANCAMIA | COP | 1 COP | COP 40,000,000 |
RAPPIPAY | COP | 1 COP | COP 40,000,000 |
COLTEFINANCIERA | COP | 1 COP | COP 40,000,000 |
COTRAFA | COP | 1 COP | COP 40,000,000 |
BANCO_CREDIFINANCIERA | COP | #N/A | COP 40,000,000 |
COLTEFINANCIERA | COP | No Minimum amount | COP 40,000,000 |
MOVII_SA | COP | No Minimum amount | COP 40,000,000 |
DALE | COP | No Minimum amount | COP 40,000,000 |
GIROS_Y_FINANZAS | COP | No Minimum amount | COP 40,000,000 |
IRIS | COP | No Minimum amount | COP 40,000,000 |
COOFINEP | COP | No Minimum amount | COP 40,000,000 |
BANCO_NACIONAL_DE_COSTA_RICA | CRC | No minimum amount | CRC 6,200,000 |
BBVA_CONTINENTAL | PEN | No minimum amount | PEN 43,000 |
BANCO_DE_CREDITO | PEN | No minimum amount | PEN 43,000 |
SCOTIABANK | PEN | No minimum amount | PEN 43,000 |
INTERBANK | PEN | No minimum amount | PEN 43,000 |
CAJA_TACNA_PERU | PEN | 10 PEN | PEN 43,000 |
CAJA_TRUJILLO_PERU | PEN | No minimum amount | PEN 43,000 |
CAJA_HUANCAYO_PERU | PEN | No minimum amount | PEN 43,000 |
CAJA_AREQUIPA | PEN | No minimum amount | PEN 43,000 |
BCP_CUOTEALO | PEN | No Minimum amount | PEN 7,000 |
Testing Instructions
Country | currencyCode | countryCode | Instructions | Bank Name Codes |
---|---|---|---|---|
If you want to test with bankNameCode, pass the following codes in the request: | ||||
Brazil | BRL | BR |
| ITAU |
Chile | CLP | CL |
--------------
| BANCO_ESTADO |
Columbia | COP | CO |
| COTRAFA |
Costa Rica | CRC | CR |
| BANCO_NACIONAL_DE_COSTA_RICA |
Peru | PEN | PE |
--------------
| BBVA_CONTINENTAL |
Was this page helpful?
- Features
- Setup Requirements
- Certification Requirements
- Transaction Types
- Payments Flow Diagram
- Typical Scenarios
- Return links
- Code Examples
- Payment handle request without bank code
- Payment handle request with bank code
- Payment handle response
- Payments request
- Payments response
- Country Codes
- Bank Codes
- Testing Instructions