Refunding Pix Automático Payments
Overview
This guide quickly demonstrates how to refund a confirmed Pix Automático payment in EBANX. We will walk you through the basic steps to achieve this goal using your already existing Direct API integration.
How it works
The refund process can only be triggered for payments that have already been confirmed, payments with a pending status were not yet paid and cannot be refunded. Make sure the payment statis is CO
(confirmed) and start the refund process.
To learn more about how it works, refer to the refund flow diagram below:
- The merchant requests the refund through the Dashboard or the API.
- This refund request gets directly into EBANX refund queue, marked as Requested.
- EBANX then acknowledges the refund and the refund is marked as Pending.
- When the customer receives the money back (in the same bank account of their Pix Automatico set up), the refund transitions its state to Confirmed.
note
When the refund is Requested or Pending, it can be cancelled by the merchant.
Please, keep in mind:
- Each payment can have multiple refunds, given that the sum of their amounts does not exceed the original payment amount. Cancelled refunds do not count toward this sum;
- Only confirmed payments (
CO
) can be refunded; - The currency of the refund is the same as the original payment;
- Refunds are notified when the refund is pending and when the refund is confirmed.
To Refund a payment through EBANX Direct API, please follow the steps below.
Make sure that the payment status is equal confirmed
You can only refund a payment if its
status
is equal toCO
(confirmed).You can check the status of your payment using the end-point
ws/query
, refering to thehash
provided in the payment response.curl POST 'https://sandbox.ebanxpay.com/ws/query' \--header 'Content-Type: application/json' \--data '{"integration_key": "{{integration_key}}","hash": "{{unique_payment_hash}}"}'A successful request will return a JSON response like the one below, with a status of
CO
for a recurring payment that is eligible for a refund.{"payment": {"hash": "{{unique_payment_hash}}","country": "BR","merchant_payment_code": "{{unique_payment_code}}","status": "CO","status_date": "2024-01-17 03:00:00","open_date": "2024-01-10 13:00:00","confirm_date": "2024-01-17 03:00:00","transfer_date": null,"amount_br": "19.90","amount_ext": "19.90","amount_iof": "0.00","amount_ext_requested": "0.00","currency_rate": "1.0000","currency_ext": "BRL","due_date": "2024-01-17","instalments": "1","payment_type_code": "pix-automatico","redirect_url": "00020101021226740014br.gov.bcb.pix2552pix.ebanx.com\/qr\/v2\/F2D9448AA5B94ED3450A4A8933748F5952040000556345643602BR5911EbanxLTDA.6008CURITIBA62070503***63045022","pre_approved": false,"capture_available": null,"customer": {"document": "{{customer_document}}","email": "{{customer_email}}","name": "{{customer_name}}","birth_date": "1992-08-15","address": "","street_number": "","street_complement": "","city": "","state": "","zipcode": "","country": "BR","phone_number": ""},"single_transaction": {"amount_local": "0.00","amount_crossborder": "19.90"},"enrollment": {"merchant_enrollment_code": "{{merchant_enrollment_code}}"}}}Confirmed payments
Please, note that payments with status
PE
pending can only be canceled, not refunded.Refund the payment using /ws/refund end-point
To refund a payment, you just need to call the end-point
/ws/refund
(from your server) with the following required fields:Parameter Requirement Description integration_key
Required Your unique and secret integration key operation
Required Required hash
Required The payment hash (EBANX unique identifier) amount
Required The amount to be refunded; expressed in the original payment currency. description
Optional Description of the refund reason. merchant_refund_code
Optional The unique ID of the refund on the merchant system. Please, check the example below:
curl -X POST \--location 'https://sandbox.ebanxpay.com/ws/refund' \--header 'Content-Type: application/json' \--data '{"integration_key": "{{integration_key}}","operation": "request","hash": "{{unique_payment_hash}}","amount": "10.00","description": "Order did not arrive""merchant_refund_code": "{{unique_refund_code}}"}'A successful request will return a JSON response similar to the one below.
{"payment": {"hash": "{{unique_payment_hash}}","country": "BR","merchant_payment_code": "{{unique_payment_code}}","merchant_enrollment_code": "{{unique_enrollment_code}}","status": "CO","status_date": "2024-01-27 03:00:00","open_date": "2024-01-10 13:00:00","confirm_date": "2024-01-17 03:00:00","transfer_date": null,"amount_br": "19.90","amount_ext": "19.90","amount_iof": "0.00","currency_rate": "1.0000","currency_ext": "BRL","due_date": "2024-01-17","payment_type_code": "pix-automatico","pre_approved": false,"refunds": [{"id": "68682","merchant_refund_code": "{{unique_refund_code}}","status": "RE","request_date": "2024-01-27 03:00:00","pending_date": null,"confirm_date": null,"cancel_date": null,"amount_ext": "10.00","description": "Order did not arrive"}]},"status": "SUCCESS"}The payment will be refunded to the bank account associated with its Pix Automático enrollment.
Canceling a refund request
If the refund is no more needed, you can also cancel its request using our APIs. A refund can be cancelled only if its status is equal to requested (RE
) or pending (PE
).
If everything goes well the refund will be immediately cancelled.
note
If a refund is cancelled, the customer will not receive the money and the merchant will not be charged. Customers are NOT notified about the refund cancellation.
To cancel a refund through EBANX Direct API, you just need to call the same end-point /ws/refund
with the parameter operation
equal to cancel and refer to its merchant_refund_code
.
Please, check the example below:
A successful response will look like the one below, note the refund status is updated to CA
and we also add the cancel_date
.
note
Pix Automático will go live on June 16, 2025. In the meantime, you can use our Sandbox environment, available since December 1, 2024!
Still need help?
We hope this article was helpful. If you still have questions, you can explore the following options:
- Customer support: Contact our support team at integration@ebanx.com for assistance.
- Not a partner yet? Please complete the Merchant Signup Form, and our commercial team will reach out to you.