Search Overlay

Pix

Pix is a payment method used in Brazil, and it is supported by the Paysafe Payments API. With the use of Pix , transactions can be completed in less than 10 seconds, round-the-clock, on all days of the week, including weekends and holidays. A QR Code can be scanned with a smartphone or copied and pasted into a banking or digital wallet app by the users who choose this payment option at the checkout page. All that's left to do is confirm the action and check the receiver's information. 

Features

Pix: 

  • Accept payments from unbanked people

  • Instant payment confirmation

  • Pix has no chargeback risk

  • QR code expiration date – If the QR code is not paid in the appropriate time, it expires and the transaction is cancelled.

  • Large customer base of 100 million users in Brazil

Setup Requirements

To create an account in the sandbox and production environment, you need to follow these steps. Your account manager will guide you in the process. 

  1. Send your details to it_integrations@safetypay.com
    • You will receive access to a portal where you will see these details
      • Merchant Secret key
      • Merchant Signature key
  2. Share above details with us to create API Key. You will use this API key in our API calls.

Certification Requirements

A certification process is needed for each merchant to use 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 account. After successful payment, the merchant credits the customer's wallet.
    Minimum Amount: No minimum amount
    Maximum Amount: R$ 1.000,00​
    Processing Currency: BRL
    Settlement Currency: USD 

Payments Flow Diagram

Typical Scenarios

When you want to process a payment request using Pix as the payment type, you would do the following:

  1. Create a payment handle with the transactionType parameter set to PAYMENT and the paymentType parameter set to value: PIX

  2. Redirect the customer to the SafetyPay redirect URL, so they can generate a payment code. The status of the Payment Handle becomes PAYABLE. The merchant gets notified of this status change via webhooks that have been configured.

  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.

Once the payment is successfully completed by customer online, the merchant gets Payment Completed notification via webhooks

  • 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 request

{
"amount": 500,
"currencyCode": "BRL",
"dupCheck": true,
"merchantRefNum": "f1e79262-fdee-4e7c-bd5e-006063f07d28",
"transactionType": "PAYMENT",
"paymentExpiryMinutes":15,
"accountId": "1002495220",
"paymentType": "PIX",
"profile": {
"email": "BRPIXQA0220_01@gmail.com"
},
"returnLinks": [
{
"rel": "default",
"href": "https://www.paysafe.com/en/"
}
]
}

Payment handle response

{
"id": "d5b72dc1-4f2d-4dad-8299-ba2733073917",
"paymentType": "PIX",
"paymentHandleToken": "PHWPYAgGyPEnn56C",
"merchantRefNum": "3f5c68c5-ffa1-4e61-9399-9f17d2a0586f",
"currencyCode": "BRL",
"txnTime": "2023-03-14T05:08:43Z",
"customerIp": "213.208.158.220",
"status": "INITIATED",
"links": [
{
"rel": "redirect_payment",
"href": "https://api.test.paysafe.com/alternatepayments/v1/redirect?accountId=1002495220&paymentHandleId=d5b72dc1-4f2d-4dad-8299-ba2733073917&token=eyJhbGciOiJIUzI1NiJ9.eyJhY2QiOiIxMDAyNDk1MjIwIiwicHlkIjoiZDViNzJkYzEtNGYyZC00ZGFkLTgyOTktYmEyNzMzMDczOTE3IiwiZXhwIjoxNjc4NzcyMzI0fQ.F0Vv5w9xKezks7Kj8hJ1aYnInyxWZu2aPa3FhLC7jSA"
}
],
"liveMode": false,
"simulator": "EXTERNAL",
"usage": "SINGLE_USE",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"amount": 500,
"timeToLiveSeconds": 898,
"gatewayResponse": {
"operationId": "0123073466231331",
"id": "17050834-913d-48aa-901f-fb5a377d3fde",
"processor": "SAFETYPAY"
},
"returnLinks": [
{
"rel": "default",
"href": "https://www.paysafe.com/en/"
}
],
"transactionType": "PAYMENT",
"gatewayReconciliationId": "17050834-913d-48aa-901f-fb5a377d3fde",
"updatedTime": "2023-03-14T05:08:44Z",
"statusTime": "2023-03-14T05:08:44Z",
"paymentExpiryMinutes":15,
"profile": {
"email": "BRPIXQA0220_01@gmail.com"
}
}

Payments request

{
"merchantRefNum": "915c1a0f-9380-40e6-b1a2-adc968b11efc",
"amount": 500,
"currencyCode": "BRL",
"dupCheck": true,
"settleWithAuth": true,
"paymentHandleToken": "PHWPYAgGyPEnn56C"
}

Payments response

{
"id": "c0b0a8cf-c706-4da8-8980-442a08dfdea2",
"paymentType": "PIX",
"paymentHandleToken": "PHWPYAgGyPEnn56C",
"merchantRefNum": "6b7dbb44-7bb1-4584-9707-a32f9be5bae5",
"currencyCode": "BRL",
"settleWithAuth": true,
"dupCheck": true,
"txnTime": "2023-03-14T05:11:55Z",
"customerIp": "213.208.158.220",
"status": "PROCESSING",
"gatewayReconciliationId": "d5685b03-9107-48dc-91b2-deba355ed8c3",
"amount": 500,
"availableToRefund": 0,
"consumerIp": "213.208.158.220",
"liveMode": false,
"simulator": "EXTERNAL",
"updatedTime": "2023-03-14T05:12:07Z",
"statusTime": "2023-03-14T05:12:07Z",
"gatewayResponse": {
"operationId": "0123073466280380",
"id": "d5685b03-9107-48dc-91b2-deba355ed8c3",
"processor": "SAFETYPAY",
"status": "101"
},
"availableToSettle": 0,
"profile": {
"email": "BRPIXQA0220_01@gmail.com"
},
"settlements": {
"amount": 500,
"txnTime": "2023-03-14T05:11:55.000+0000",
"availableToRefund": 0,
"merchantRefNum": "6b7dbb44-7bb1-4584-9707-a32f9be5bae5",
"id": "c0b0a8cf-c706-4da8-8980-442a08dfdea2",
"status": "PROCESSING"
}
}

Testing Instructions

Country currencyCode countryCode Instructions
Brazil BRL BR
  • Enter 36570630563 for the CPF number.
  • On the next page, click Copy QR code.
  • Open the copied QR code link in a new tab/window.
  • Select Paid (121) as the Payment Status.
  • Click Save and Notify.