Search Overlay

SafetyPay Cash

With SafetyPay Cash, your customers can select SafetyPay as their preferred payment method along with a currency while making purchases online or over the phone (via a variety of service channels, such as e-commerce or a call centre). They are then given a special payment code, which they can present to one of SafetyPay's local payment partners, such as a local bank.

The Paysafe Payments API supports SafetyPay Cash via SafetyPay as a Payment Instrument for iGaming and Crypto merchants in the following countries:

  • Brazil
  • Chile
  • Columbia
  • Costa Rica
  • Peru

Features

SafetyPay Cash:

  • Allows you to accept payments from unbanked customers.
  • Has no chargebacks risks.
  • Has a large collection network in 11 countries.
  • Allows payments with the most popular local agencies and retail stores.

Setup Requirements

To create accounts in both the sandbox and production environments: 

  1. Send your details to it_integrations@safetypay.com
    You will receive access to a Portal where you will be able to access the following keys:
    • Merchant Secret Key
    • Merchant Signature Key
  2. Share these details with us to create your API Key. You will use this API key in your 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 the certification requirements with you.

Transaction Types

Paysafe supports the following transaction type:

  • Payments - used to transfer money from a customer's bank account to your merchant account. After successful payment, you credit the customer's wallet.

    Processing currencies: BRL, CLP, COP, PEN, CRC
    Settlement currency: USD

    See Bank Codes, below, for details of the minimum and maximum transaction amounts, as min/max amounts vary according to the bank selected.

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.

Payments Flow Diagram

Typical Scenarios

To process a payment request using SafetyPay Cash as the payment type:

  1. Create a Payment Handle with the following parameter settings:
    transactionType: PAYMENT
    paymentType: SAFETYPAY_CASH
    countryCode: As SafetyPay Cash is available for multiple countries, you need to pass countryCode in the request. See Country Codes, below.
    bankNameCodes: Optionally, you can pass bankNameCodes in your request if you would like the customer to see particular banks in SafetyPay Express. See Bank Codes, below.

  2. Redirect the customer to the SafetyPay redirect URL so that they can generate a payment code.
    The status of the Payment Handle will change to PAYABLE - you will be notified of this status change via your configured webhooks.

  3. 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.

If you don't receive webhooks, you can use a GET call to query the transaction status. However, we recommend that you avoid constant polling of the API.

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.

Code Examples

Payment Handle requests

Payment Handle Creation request for a SafetyPay Cash payment without bank codes:

{
"amount": 500,
"currencyCode": "BRL",
"merchantRefNum": "78c09d3e-f6c6-4c03-b8c0-4e21fb08f232",
"transactionType": "PAYMENT",
"paymentExpiryMinutes": 20,
"accountId": "1002622950",
"paymentType": "SAFETYPAY_CASH",
"safetypayCash": {
"countryCode": "BR"
},
"profile": {
"email": "brlspcash@gmail.com"
},
"returnLinks": [
{
"rel": "default",
"href": "http://www.amazon.ca"
}
]
}

Payment Handle Creation request for a SafetyPay Cash payment with bank codes:

{
"amount": 500,
"currencyCode": "BRL",
"merchantRefNum": "78c09d3e-f6c6-4c03-b8c0-4e21fb08f232",
"transactionType": "PAYMENT",
"paymentExpiryMinutes": 20,
"accountId": "1002622950",
"paymentType": "SAFETYPAY_CASH",
"safetypayCash": {
"countryCode": "BR",
"bankNameCodes":[
"LOTERICAS"
]
},
"profile": {
"email": "brlspcash@gmail.com"
},
"returnLinks": [
{
"rel": "default",
"href": "http://www.amazon.ca"
}
]
}

Payment Handle response

Response to a Payment Handle creation request:

{
"id": "42517a01-94a7-484d-9040-5a09c0898101",
"paymentType": "SAFETYPAY_CASH",
"paymentHandleToken": "PH72waPqDtaxmRzj",
"merchantRefNum": "57e8b2d3-ad2c-4a79-ae1f-7e7752cbe8d0",
"currencyCode": "BRL",
"txnTime": "2023-03-14T05:24:56Z",
"customerIp": "213.208.158.220",
"status": "INITIATED",
"links": [
{
"rel": "redirect_payment",
"href": "https://api.test.paysafe.com/alternatepayments/v1/redirect?accountId=1002622950&paymentHandleId=42517a01-94a7-484d-9040-5a09c0898101&token=eyJhbGciOiJIUzI1NiJ9.eyJhY2QiOiIxMDAyNjIyOTUwIiwicHlkIjoiNDI1MTdhMDEtOTRhNy00ODRkLTkwNDAtNWEwOWMwODk4MTAxIiwiZXhwIjoxNjc4NzczMjk4fQ.zcnmnkOHeEVYzmqTr-X94XY-p5WJX8ZsRS-k114i1oU"
}
],
"liveMode": false,
"simulator": "EXTERNAL",
"usage": "SINGLE_USE",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"amount": 500,
"timeToLiveSeconds": 898,
"gatewayResponse": {
"operationId": "0123073466308408",
"id": "7401a4ac-9737-4c9b-bd7a-3a95bceecccd",
"processor": "SAFETYPAY"
},
"returnLinks": [
{
"rel": "default",
"href": "http://www.amazon.ca"
}
],
"transactionType": "PAYMENT",
"gatewayReconciliationId": "7401a4ac-9737-4c9b-bd7a-3a95bceecccd",
"updatedTime": "2023-03-14T05:24:58Z",
"statusTime": "2023-03-14T05:24:58Z",
"safetypayCash": {
"countryCode": "BR"
},
"profile": {
"email": "brlspcash@gmail.com"
}
}

Payment request

SafetyPay Cash payment request using the paymentHandleToken received in the Payment Handle response:

{
"merchantRefNum": "daf6947b-3ee1-421a-bea8-dc5bcd45b678",
"amount": 500,
"currencyCode": "BRL",
"dupCheck": true,
"settleWithAuth": true,
"paymentHandleToken": "PH72waPqDtaxmRzj"
}

Payment response

Response to a SafetyPay Cash payment request:

{
"id": "f6f69572-90da-4e41-bdd6-de7e3f7787d3",
"paymentType": "SAFETYPAY_CASH",
"paymentHandleToken": "PH72waPqDtaxmRzj",
"merchantRefNum": "1b9d0b1c-ce9a-44e6-9c2e-ef668f40f6b3",
"currencyCode": "BRL",
"settleWithAuth": true,
"dupCheck": true,
"txnTime": "2023-03-14T05:24:56Z",
"customerIp": "213.208.158.220",
"status": "PROCESSING",
"gatewayReconciliationId": "7401a4ac-9737-4c9b-bd7a-3a95bceecccd",
"amount": 500,
"availableToRefund": 0,
"consumerIp": "213.208.158.220",
"liveMode": false,
"simulator": "EXTERNAL",
"updatedTime": "2023-03-14T05:25:56Z",
"statusTime": "2023-03-14T05:25:56Z",
"gatewayResponse": {
"operationId": "0123073466308408",
"id": "7401a4ac-9737-4c9b-bd7a-3a95bceecccd",
"processor": "SAFETYPAY",
"status": "101"
},
"availableToSettle": 0,
"profile": {
"email": "brlspcash@gmail.com"
},
"settlements": {
"amount": 500,
"txnTime": "2023-03-14T05:24:56.000+0000",
"availableToRefund": 0,
"merchantRefNum": "1b9d0b1c-ce9a-44e6-9c2e-ef668f40f6b3",
"id": "f6f69572-90da-4e41-bdd6-de7e3f7787d3",
"status": "PROCESSING"
}
}

Country Codes

Pass the relevant country code in your Payment Handle request:

Country Country Code
Brazil BR
Chile CL
Columbia CO
Costa Rica CR
Peru PE

Bank Codes

Use the following codes in your Payment Handle requests if you want to display bank names to your customers:

Bank Name Code Currencies Min Amount Max Amount 
LOTERICAS BRL No minimum amount BRL57,000
BRADESCO BRL No minimum amount BRL 5,000
BANCO_ESTADO CLP No Minimum amount CLP 8,500,000
CAJA_VECINA CLP No Minimum amount CLP 8,500,000
BANCO_ESTADO_EXPRESS CLP No Minimum amount CLP 8,500,000
WALMART_CHILE CLP No Minimum amount CLP 3,000,000
LIDER CLP No Minimum amount CLP 3,000,000
EXPRESS_DE_LIDER CLP No Minimum amount CLP 3,000,000
ACUENTA CLP No Minimum amount CLP 3,000,000
EFECTY COP N/A COP 6,000,000
MOVILRED_COLOMBIA COP N/A COP 1,000,000
SURED COP N/A COP 4,000,000
PAGA_TODO_PARA_TODO COP N/A COP 4,000,000
GANA_GANA COP N/A COP 4,000,000
GANA COP N/A COP 4,000,000
DIMONEX COP N/A COP 6,000,000
APUESTAS_UNIDAS COP N/A COP 4,000,000
APUESTAS_CUCUTA_75 COP N/A COP 4,000,000
LA_PERLA COP N/A COP 4,000,000
SUCHANCE COP N/A COP 4,000,000
ACERTEMOS COP N/A COP 4,000,000
JER COP N/A COP 4,000,000
ACCIONES_Y_VALORES COP N/A COP 25,000,000
PUNTO_RED COP N/A COP 800,000
PUNTO_DE_PAGO COP N/A COP 4,000,000
CREDIBANCO COP N/A COP 300,000
FULL_CARGA COP N/A COP 3,000,000
REDEBAN COP N/A COP 300,000
BANCO_NACIONAL_DE_COSTA_RICA CRC CRC 637 CRC 6,200,000
BBVA_CONTINENTAL PEN No minimum amount Agentes PEN 1,900
BANCO_DE_CREDITO PEN No minimum amount Agentes PEN 1,000
SCOTIABANK PEN No minimum amount Agentes PEN 5,000
INTERBANK PEN No minimum amount Agentes PEN 700
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
WESTERN_UNION PEN No minimum amount PEN 43,000
BANCO_RIPLEY PEN No minimum amount PEN 43,000
CAJA_AREQUIPA PEN No minimum amount PEN 43,000
TAMBO PEN 1 PEN PEN 500
KASNET PEN 1 PEN PEN 1,000
AGENTE_NIUBIZ PEN 1 PEN PEN 500

Testing Instructions

Country currencyCode countryCode Instructions
Brazil BRL BR
  • On the SafetyPay Express page:
    • Select any bank.
    • Enter 36570630563 for the CPF number.
    • Enter 10 random digits for the Cellphone number.
      On the next page, you will see payment instructions.
  • In a separate window/tab, open the Bank Test page:
    http://sandbox-demobank.safetypay.com/Default/Login.aspx
    • Log in to the test bank:
      Username: test
      Password: test
    • Select an appropriate currency.
    • Enter the "Payment Code" from the Safetypay Express page for the Transaction ID.
    • Enter the amount from the Safetypay Express page for the Amount.
    • Click Accept to confirm the transaction.
Chile CLP CL
Columbia COP CO
Costa Rica CRC CR
Peru PEN PE