PayU Brazil
Follow the standard PaymentsOS integration procedure, and then apply the relevant extra specifications described below.
- API Version
- Payment Methods
- Currencies
- Features
- Requests
- Setup Procedures
- Integration Procedures
- Handling the Charge Request Response for Cash Transactions
- Errors in a Redirection Flow
- Testing
API Version
Minimum required API version: 1.0.0
Payment Methods
The following table lists all supported payment methods.
Payment Method | Payment Method Type | Notes |
---|---|---|
American Express | Cards | |
BOLETO BANCARIO | Cash | |
DINERS | Cards | |
Elo | Cards | This is a local card vendor. |
Hipercard | Cards | This is a local card vendor. |
MASTERCARD | Cards | |
VISA | Cards |
Currencies
BRL, USD
Features
The following table provides an overview of all supported and non-supported features.
Requests
Note
The PaymentsOS test environment only supports Authorize and Capture requests (this is a limitation of the PayU Latam sandbox environment).
The following table lists all supported requests. Use the bodybuilder to create a sample request body for each request type.
Request | Partial/Multiple | Mode | Notes |
---|---|---|---|
Authorize | Partial and multiple are not supported | Asynchronous or Synchronous |
|
Capture | Partial and multiple are not supported | Asynchronous or Synchronous |
|
Charge | Not Applicable | Asynchronous or Synchronous | The request can be synchronous or asynchronous, depending on your setup. |
Refund | Partial is supported | Asynchronous | Partial refund is only supported for the following payment methods: VISA, MASTERCARD, AMEX, DINERS. |
Void | Not Applicable | Asynchronous |
Request | Partial/Multiple | Mode |
---|---|---|
Charge | Not Applicable | Asynchronous |
Partial Refund Limitations
While partial refunds are supported, the following limitations apply:
You can send any amount for the partial refund as long as the value doesn’t exceed the initial or actual amount.
You can send as many as partial refund request as you require. The sum of the partial refund amounts cannot not exceed the total value of the transaction.
A partial refund request will always get a status of
pending
in the response. Partial refunds are processed manually by a PayU representative. The refund may take 2 to 6 calendar days to be processed. Once done, depending on the acquirer, the amount will appear in the extract in the next 1 to 30 days after the partial refund is processed.If a partial refund is pending or is being processed, you cannot send a new request until the last one is processed.
Setup Procedures
The following table lists the setup procedures that are specific to this provider.
Configuration | Required/Optional |
---|---|
In the PaymentsOS Control Center, configure the following credentials:
| Required |
In the PaymentsOS Control Center, register webhooks to be notified when a transaction changes its status. Notes:
| Required |
In your PayU Brazil account, enable the validate unique. This will validate that each payment reference sent to the PayU Latam system is unique. | Required |
In your PayU Brazil account, enable asynchronous refunds (refunds will initially have a status of pending) | Required |
In your PayU Brazil account, enable refund notifications. Make sure to include the transaction_type field in the notification (this step is required for PaymentsOS to remain in sync with the refund status). | Required |
In your PayU Brazil account, enable the 'Process without a cvv2 security code' feature if you intend to use it. | Optional |
Contact PayU Latam Support to get a list of the minimum payment amounts required by the payment methods that you intend to use. To avoid unnecessary request failures, we recommend that you include some 'minimum value' validation for the transaction payment.amount in your system. | Optional |
Integration Procedures
The following sections list the integration procedures that are specific to this provider.
Handling the Charge Request Response for Cash Transactions
If the charge request is successful, then the provider will return a charge response containing:
- A
status
ofpending
. - The expiration date of the Payment Receipt.
- A
provider_data.document
object with href links to the Payment Receipt in HTML format and possibly the Payment Receipt in PDF format.
Note that the provider_data.additional_information
field may contain a barcode, for receipt tracking purposes.
Now direct your customer to one, or both of the transaction payment receipts, so that they can print the receipt. Your customer should then take the payment receipt to the relevant Payment Office and pay for their purchase, before the expiration date.
When the provider notifies us that your customer has paid, we will update the transaction status. If no payment notification is received by the expiration date then the transaction will be considered as failed.
Errors in a Redirection Flow
In a redirection flow, customers finalize a transaction on a third-party site and are then directed back to your web page (the merchant_site_url
) where you inform them of the status of their payment. Of course, there’s always a chance of an unexpected error (such as a provider communication timeout) in this process. If an error does occur, we’ll let you know about it by appending the type of error (api_error
or provider_error
) to the merchant_site_url
. If available, we will also include the ID of the original payment request and related transaction request (action).
Here’s an example.
<merchant_site_url>?error=api_error&payment_id=dd1fbe34-4636-4a61-8cb1-27ac8a175284
&action_id=f7cdc75d-68d3-4a0b-b6ae-39c5a9a2cbcb/
Testing
Follow the steps in the PayU integration testing page.
To test requests in the PayU Latam sandbox environment, make sure your account has been configured to operate in test mode. You can then simulate specific response statuses for each request type, as listed below.
For Authorization and Charge Requests:
To simulate a status of
Approved
, pass in"holder_name": "APPROVED"
in the Create Token request.To simulate a status of
Pending
, pass in"holder_name": "PENDING_TRANSACTION_REVIEW"
in the Create Token request.To simulate a status of
Failed
, pass in"holder_name": "REJECTED"
in the Create Token request.
For Capture, Refund and Void requests:
To simulate a successful Capture request, first initiate a successful Authorization request.
To simulate a successful Refund request, first initiate a successful Charge or Capture request.
To simulate a successful Void request, first initiate a successful Authorization request.
Test Cards
You can use the following cards for testing:
Card | Number |
---|---|
AMEX Credit Card | 376611000000000 |
DINERS Credit Card | 36213800000009 |
ELO Credit Card | 5067310000000002 |
HIPERCARD Credit Card | 6062820000000003 |
MASTER Credit Card | 5123740000000002 |
VISA Credit Card | 4422120000000008 - 4984460000000008 |