EBANX Integration Guide

PayPal's partnership with EBANX enables merchants to leverage their existing Braintree integration to process transactions through the PayPal Payment Orchestration platform in the supported markets. This guide helps developers set up this integration by providing the necessary information about required fields, transaction states, and other configuration or processing requirements.

This integration supports transactions in the following countries: Argentina, Brazil, Chile, Colombia, Costa Rica, Egypt, Guatemala, Mexico, Nigeria, Paraguay, Peru, South Africa, and Uruguay. For information about regional requirements and support for specific features, see Country-specific requirements and limitations.

FeaturesAnchorIcon

The following topics describe the capabilities that this EBANX integration supports.

Core transaction lifecycleAnchorIcon

The following table describes the support for core transaction lifecycle operations with this integration.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by configuration

CapabilitySupportNotes
Core transaction lifecycle
Charge (single step)Authorize and capture in the same call.
Charge (dual step)⚠️Varies based on the country. To enable this feature, contact your Braintree account manager (AM) or technical account manager (TAM).
Standalone authorizationCapture the authorization within 5 days.
Capture (full)Captures a previously authorized transaction. Capture authorizations within 5 days.
Partial capture⚠️This feature is supported in Brazil, Costa Rica, Guatemala, Nigeria, South Africa, but it might be enabled only for certain merchants or markets.
Capture greater than authorized amount
Adjust Authorization API (incremental auth or partial reversal during capture or settlement)

Voids and refundsAnchorIcon

The following table describes the support for void and refund operations with this integration.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by configuration

CapabilitySupportNotes
Full void (auth reversal)Voids cancel an authorized transaction prior to settlement.
Partial void
Void on settled transactionUse refund instead.
Full refundIf you need to enable refunds for more than 90 days after the transaction, contact EBANX.
Partial refundRefunds cannot exceed the settled amount.
Multiple refunds
Blind credits (refunds for transactions that were processed elsewhere)Refunds must reference their original transaction.

Payment instruments and methodsAnchorIcon

The following table describes the support for payment instruments and methods with this integration.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by configuration

CapabilitySupportNotes
Credit cardsArgentina: Mastercard, Visa, Diners, American Express

Brazil: Mastercard, Visa, Diners, American Express, Elo

Chile: Mastercard, Visa, Diners, American Express

Colombia: Mastercard, Visa, Diners, American Express

Costa Rica: Mastercard, Visa, American Express

Egypt: Mastercard, Visa

Guatemala: Mastercard, Visa, American Express

Mexico: Mastercard, Visa, American Express

Nigeria: Mastercard, Visa, Verve

Paraguay: Mastercard, Visa, Diners, American Express

Peru: Mastercard, Visa, Diners, American Express

Uruguay: Mastercard, Visa, Diners
Debit cardsArgentina: Mastercard, Visa

Brazil: Mastercard, Visa, Elo

Chile: Mastercard, Visa

Colombia: Mastercard, Visa

Costa Rica: Mastercard, Visa

Egypt: Mastercard, Visa

Guatemala: Mastercard, Visa

Mexico: Mastercard, Visa

Nigeria: Mastercard, Visa, Verve

Paraguay: Mastercard, Visa

Peru: Mastercard, Visa

Uruguay: Mastercard, Visa
Prepaid cardsThese transactions are supported if the processor supports prepaid cards.
PLCCs
Gift cards
Apple PayIn progress
Google PayIn progress
Android Pay or Samsung Pay
Venmo or PayPal

Data, descriptors, and fraud signalsAnchorIcon

The following table describes the support for data, descriptors, and fraud signals with this integration.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by configuration

CapabilitySupportNotes
Address Verification System (AVS) or Card Verification Value (CVV) response handling
Dynamic descriptors⚠️Not supported in Chile or Mexico. For additional country-specific information, see Country-specific requirements and limitations.
Network tokens⚠️Can be enabled only for Brazil. For more information, see Network token support.
Level 2, Level 3, or lodging data
3D Secure (3DS)⚠️This functonality is supported in Brazil and required for debit cards. It is supported in Costa Rica and required for customer-initiated transactions. To enable 3DS for additional markets, contact your Braintree AM or TAM.

VerificationsAnchorIcon

The following table lists the verifications that this integration supports.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by configuration

CapabilitySupportNotes
$0 verification
Non-zero dollar verificationUse $0 verification instead. EBANX performs a ghost authorization and void with a minimum amount if needed.

Before you beginAnchorIcon

This integration requires setup on both Braintree and EBANX. Before you begin the integration, complete these setiup tasks.

  • On Braintree: To process card transactions through EBANX, you need currency-specific Braintree merchant accounts for use in your integration. Your account manager (AM) or technical account manager (TAM) can assist you in setting these up. If you do not have a dedicated AM or TAM for Braintree, contact [email protected] for support.
  • On EBANX: Set up an account with EBANX using the EBANX Direct API documentation. EBANX provides 2 integration keys: 1 for sandbox and 1 for production.

Also review the following EBANX-specific requirements to ensure that you are in compliance before processing transactions through EBANX:

  • CVV requirements: Recurring transactions and transactions that use vaulted cards do not includes a CVV. EBANX can relax the CVV requirement, but you must configure it manually. This change can affect approval rates.
  • Refunds: Configure EBANX to send synchronous responses for refunds. Without this configuration, all refunds return as FAILED or SETTLEMENT_DECLINED. Merchants can enable refunds for periods that exceed 90 days, but after you enable this change, all refunds become asynchronous and return SETTLING. When EBANX confirms the status of the refunds, they transition to SETTLED or SETTLEMENT_DECLINED.
  • Debit cards: To use debit cards with the EBANX integration, you must enable the debit cards option in the EBANX dashboard. For more information, see the EBANX debit card guide.
  • Dual step transaction: To perform a dual-step authorization and immediate capture using the Braintree SDK or GraphQL API, work with EBANX to enable this setting.
  • Relaxing required fields: If you are unable to provide required values, such as phone number or street number, contact EBANX to relax these requirements. For more information, see Required fields.

After you complete all necessary setup, proceed to Transactions to create your first transaction.

TransactionsAnchorIcon

After you complete the necessary setup, use the Braintree SDK or GraphQL API to create and manage transactions.

For general information about Braintree transactions, see:

Transaction creationAnchorIcon

Use the Braintree SDK or GraphQL API to create a transaction. The following sections list the fields that EBANX transactions require and tells how they map to EBANX's API. Add these values to your existing Braintree transaction creation call.

The following table describes the fields that an EBANX transaction requires.

FieldLocationHow to provideNotes
amountTransactionInclude in transactionTransaction amount in the smallest currency unit
customer.firstNameCustomerCreate the Braintree customer first. If you cannot add to the customer, contact your Braintree AM or TAM.
customer.lastNameCustomerCreate the Braintree customer first. If you cannot add to the customer, contact your Braintree AM or TAM.
customer.emailCustomerCreate the Braintree customer first. If you cannot add to the customer, contact your Braintree AM or TAM.
billing.countryCodePayment methodInclude during tokenizationTwo-letter ISO country code
taxIdentifiersCustomerIf you cannot add this value to the customer, contact your Braintree AM or TAM.Required in Argentina, Brazil, Paraguay, and Uruguay

For more information, see Tax identifier.
card.cardholderNamePayment methodInclude during tokenizationName as it appears on the card

Fields that Braintree passes to EBANXAnchorIcon

The following table maps Braintree fields to their corresponding EBANX fields for authorize and charge operations.

Legend: ✅ Required | ⚠️ Conditional or varies by configuration

Braintree fieldEBANX fieldRequiredNotes
customer.firstName + customer.lastNamepayment.name
customer.emailpayment.email
customer.phonepayment.phone_number⚠️Can be relaxed for all countries
billing.streetAddresspayment.address⚠️Required for BR, AR, CL, CO, MX, PE
billing.localitypayment.city⚠️Required for BR, AR, CL, CO, MX, PE
billing.regionpayment.state⚠️Required for BR, AR, CL, CO, MX, PE
billing.postalCodepayment.zipcode⚠️Required for BR, AR, CL, CO, MX, PE
currencyIsoCodepayment.currency_codeUppercase
amountpayment.amount_totalDirect
customer.taxIdentifierspayment.document⚠️Required for BR, AR, UY, PY

Note: You can override this setting through processingOverrides.customerTaxIdentifier.
orderIdpayment.order_numberOptional
installmentCountpayment.installmentsOptional
taxAmountpayment.taxes.iva_coOptionalColombia and local entities only
paymentMethod.numberpayment.card.card_numberTest cards are remapped in the sandbox environment.
paymentMethod.expirationMonth + expirationYearpayment.card.card_due_dateFormat: MM/YYYY
paymentMethod.cvvpayment.card.card_cvvOptionalOmitted for recurring or vaulted transactions
paymentMethod.cardholderNamepayment.card.card_name
descriptor.namepayment.card.soft_descriptorOptionalNot supported in Chile or Mexico
threeDSecureData.eciFlagpayment.card.threeds_eciOptionalBrazil debit 3DS
threeDSecureData.cavvpayment.card.threeds_cryptogramOptional
threeDSecureData.dsTransactionIdpayment.card.threeds_trxidOptional
vaultedCredentialTypepayment.cof_infoOptionalCredentials on File (CoF) fields sent for merchant-initiated transaction (MIT) or stored credential flows.

Customer creationAnchorIcon

Customer creation is a mandatory step for the EBANX integration. You can do this using either the Braintree SDK or GraphQL API.

When you create a customer, name (first and last) and email are required for EBANX transactions, even though they are not required fields in Braintree. Not providing a first or last name could lead to transaction issues. Not providing an email or full name will result in PROCESSOR_DECLINED for all transactions that customer creates.

Vaulted payment methodsAnchorIcon

Vaulting a tokenized payment method creates a reusable token that can be authorized or charged multiple times. You can vault a payment method in 2 ways:

  • Direct vaulting of an already-tokenized payment method
  • During the authorization process using the SDK or GraphQL API

Tax identifiersAnchorIcon

Brazil, Argentina, Paraguay, and Uruguay require the taxIdentifier field. The tax identifier can contain dashes and dots, or it can be passed without them.

Examples:

  • Brazil: 853.513.468-93 (can also be passed as 85351346893)
  • Argentina: 30-52135353-1 (can also be passed as 30521353531)

You can provide the tax identifier in 2 ways:

  • On a customer using the SDK or GraphQL API: You can add this value when you create or update a customer. After you add it, the taxIdentifier is securely vaulted and used during the transaction.
  • On a transaction using the SDK or GraphQL API: You must provide the taxIdentifiers on every call. These are not vaulted and are only used for processing.

Transaction object supportAnchorIcon

The following topics describe support for transaction operations and CVV handling with this integration.

Supported transaction operationsAnchorIcon

The following table lists the transaction request fields that this integration supports.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by country, merchant configuration, or processor |

Transaction operationSupport
Sale
Find
Void
Refund
Submit for settlement
Clone
Search
Adjust Authorization
Hold in Escrow
Release from Escrow
Submit for Partial Settlement
Cancel Release

CVV handlingAnchorIcon

For recurring transactions or when using vaulted cards, the CVV might not be present, which can cause lower approval rates. To relax the CVV requirements in EBANX, configure it manually.

Transaction status mappingAnchorIcon

The following table maps EBANX response statuses to Braintree transaction statuses. For general information about Braintree result objects, see Result Objects.

OperationEBANX responseBraintree transaction statusAdditional information
AuthorizeOK / SuccessfulAUTHORIZEDDual-step transaction

Important: Capture payment within 5 days.
AuthorizeRetryFAILEDYou can configure a retry option on Braintree or implement your own retry logic.
AuthorizeNOK or DeclinePROCESSOR_DECLINEDHard decline from acquirer
AuthorizeAPI errorFAILEDYou can configure a retry option on Braintree or implement your own retry logic.
ChargeOK or SuccessfulSETTLEDYou can configure this for single-step or dual-step transactions.
ChargeRetryFAILEDIn this rare event, Braintree reconciles the transaction. For more information, see FAILED status during charge.
ChargeNOK / DeclinePROCESSOR_DECLINEDHard decline from acquirer
ChargeAPI errorFAILED
CaptureOK / SuccessfulSETTLED
CaptureAPI errorSETTLINGIn this rare event, Braintree reconciles the transaction, working with EBANX, and changes its status to either SETTLED or SETTLEMENT_DECLINED. Do not ship goods or provide service until the status is SETTLED. For more infomration, see SETTLING status with HTTP errors.
CaptureNOK or DeclinedSETTLEMENT_DECLINEDThis is a rare event. It might indicate that the authorization expired.
RefundOK or SuccessfulSETTLED
RefundAPI errorSETTLINGRare event. Braintree will reconcile the transaction with EBANX and move it to SETTLED or SETTLEMENT_DECLINED. For more information, see SETTLING status with HTTP errors.
RefundNOK or UnsuccessfulSETTLEMENT_DECLINEDThis should be a rare event, but it can be more common if there are disputes or chargebacks or if you are attempting to refund after 90 days or more.
RefundRetryFAILED
VerifyCardOK or SuccessfulVERIFIED
VerifyCardRetryFAILED
VerifyCardNOK or DeclinePROCESSOR_DECLINED
VerifyCardAPI errorFAILED

SETTLING status with HTTP errorsAnchorIcon

In rare cases when EBANX returns HTTP 4xx or 5xx errors after a successful authorization, the transaction remains in SETTLING status. This can happen due to network or server overload or it EBANX is unavailable.

Reconciliation logic: Braintree queries EBANX for transaction information 3 times daily. If EBANX confirms authorization, Braintree retries capture, and the transaction ultimately transitions to SETTLED. If EBANX declines, Braintree marks the transaction as SETTLEMENT_DECLINED and sends notification by email.

FAILED status during chargeAnchorIcon

If Braintree receives no inline response from EBANX due to network errors or timeouts, the transaction status is FAILED. Braintree reconciles this transaction. If the transaction is identified as successful during reconciliation, the status is updated from FAILED to SETTLED, and a refund is automatically initiated. The refund follows its own transaction lifecycle (SETTLED, SETTLEMENT_DECLINED, SETTLING, or FAILED). The original transaction remains SETTLED. This operation can be retried. For more information, see Retries.

RetriesAnchorIcon

Follow these guidelines when handling retries for EBANX transactions:

  • Do not build a duplicate capture or refund retry loop when you see success: true but the status is SETTLING.
  • Always confirm that the transaction status is SETTLED before you ship goods or provide service.
  • You can configure retries on FAILED transactions at the merchant account ID (MAID) level. For help with configuration, contact your Braintree AM or TAM.

Network tokensAnchorIcon

EBANX supports network tokens. The integration includes 2 provisioning options:

Response codesAnchorIcon

Braintree can display only a limited number of response codes, because EBANX controls transaction outcomes. When EBANX decline codes do not map to equivalent Braintree decline codes, Braintree returns the code 2000 with this message: Do Not Honor.

The following table maps EBANX error codes to their Braintree equivalents.

.
Braintree error codeBraintree error messageEBANX error codeEBANX message
2000Do Not HonorBP-REF-2Payment not found for merchant, hash: X
2001Insufficient FundsNOKInsufficient funds
2004Expired CardNOKExpired card
2005Invalid Credit Card NumberNOKInvalid card or card type
2005Invalid Credit Card NumberNOKInvalid card number
2006Invalid Expiration DateNOKInvalid due date
2006Invalid Expiration DateBP-DR-57Parameter is in an invalid format: due_date. Correct format: dd/MM/yyyy
2006Invalid Expiration DateBP-DR-67Field payment.creditcard.card_due_date is invalid
2010Card Issuer Declined CVVNOKSecurity code mismatch
2015Transaction Not AllowedNOKHigh risk transaction
2015Transaction Not AllowedBP-DR-113Customer document blocked by compliance
2019Invalid TransactionBP-DR-33Invalid value for instalments: X (single value)
2019Invalid TransactionBP-DR-34Invalid value for instalments: X (range)
2019Invalid TransactionBP-DR-79The amount of instalments is larger than the maximum allowed for merchant
2019Invalid TransactionBP-DR-89The amount of instalments is not allowed — blocked values are: {payment.api.instalments.blocked}
2024Card Type Not EnabledBP-DR-35Invalid payment_type_code: X
2024Card Type Not EnabledBP-DR-36Payment type is not active
2024Card Type Not EnabledBP-DR-38Payment type not allowed in Direct API (full mode): X
2025Set Up Error – MerchantBP-DPAR-4Invalid integration key
2027Set Up Error - AmountBP-DR-117Value per instalment cannot be lower than R$5.00
2029Setup Error - CardBP-R-11Payment type does not support instalments
2029Setup Error - CardBP-DR-97Instalment payments are not allowed for prepaid cards
2029Setup Error - CardBP-DR-100Instalment payments are not allowed for debit cards
2033Inconsistent DataNOKBroken communication
2033Inconsistent DataNOKCommunication mismatch
2033Inconsistent DataBP-DR-15Field payment.email is required
2033Inconsistent DataBP-DR-22Field payment.document is required
2033Inconsistent DataBP-DR-23Field payment.document must be a valid {document}
2033Inconsistent DataBP-DR-98Customer email associated with multiple countries
2054Reversal amount does not match authorization amountBP-REF-6Refund amount is greater than payment amount: X and X
2054Reversal amount does not match authorization amountBP-REF-9Pending refund amount for payment would be greater than payment amount: X
2059Address Verification FailedNOKIncorrect customer data
2064Invalid Currency CodeBP-DR-3Field payment.currency_code is required
2064Invalid AmountBP-DR-5Field payment.amount_total is required
2103Invalid AmountBP-CAP-10Invalid Amount
3000FailedNOKNot accepted
3001ErrorNOKNot accepted
4004Already RefundedBP-REF-14Refund is already confirmed
4004Already RefundedBP-REF-17A refund already exists with this merchant_refund_code: X
4006Capture Amount Exceeded Allowable LimitBP-CAP-12Payment cannot be captured, amount must be equal or less than {currency_code} {max_amount}
4001Settlement DeclinedBP-REF-5Refund amount must be positive
4001Settlement DeclinedBP-REF-7Payment status is not CO, cannot be refunded: X
4024Refund Time Limit ExceededBP-REF-19Credit card payment's open date is older than 85 days ago

To find the details for the EBANX response message, use eiher of these options:

  • SDK: additional_processor_response. For more information, see the SDK documentation.
  • GraphQL: PaymentStatusEvent.processorResponse.additionalInformation. For more information, see the GraphQL documentation.

Test cardsAnchorIcon

Braintree provides a set of test card numbers for sandbox testing. With the EBANX integration, some Braintree test card numbers are automatically mapped to EBANX test card numbers.

Credit cards: SuccessAnchorIcon

The following test cards return a successful response in the sandbox environment.

Card brandBraintree test numberEBANX test numberAutomatically mapped?
American Express378282246310005371449635398431
Diner's Club3625960000000430569309025904
Discover60110009913000096011111111111117
Mastercard55555555555544445555555555554444Pass-through
Visa41111111111111114111111111111111Pass-through

Debit cardsAnchorIcon

Use the following debit card for testing.

Card brandBraintree test numberEBANX test numberAutomatically mapped?
Visa Debit40120000333301254242424242424242Pass-through

Credit cards: FailureAnchorIcon

The following test cards return a declined response in the sandbox environment.

ScenarioBraintree test numberEBANX test numberAutomatically mapped?Braintree result
Insufficient funds40001111111111154716909774636285PROCESSOR_DECLINED
Invalid data51051051051051005102026827345142PROCESSOR_DECLINED
Not approved378734493671000378568775709157PROCESSOR_DECLINED
Card expired60110009901394246011088896715918PROCESSOR_DECLINED

Country-specific requirements and limitationsAnchorIcon

The following table describes additional requirements and limitations by country.

CountryCaveats
Argentina
  • Partial capture is not supported.
  • taxIdentifiers is required.
Brazil
  • 3DS is required for debit card authorization.
  • taxIdentifiers is required.
Chile
  • The amount field must be an integer (decimal values are not supported).
  • Partial capture is not supported.
  • Dynamic descriptors are not supported.
Colombia
  • IVA/VAT is optionally passed through the taxAmount field.
  • Partial capture is not supported.
Costa Rica
  • 3DS is required for non-recurring transactions.
  • Local processing is not supported.
Egypt
  • Partial capture is not supported.
  • Local processing is not supported.
Guatemala
  • Local processing is not supported.
Mexico
  • Dynamic descriptors are not supported.
  • Partial capture is not supported.
Nigeria
  • Partial capture is not supported.
  • 3DS support will be added but is not yet supported.
  • Local processing is not supported.
Paraguay
  • Partial capture is not supported.
  • taxIdentifiers is required.
  • The amount field must be an integer (decimal values are not supported).
  • Local processing is not supported.
Peru
  • Partial capture is not supported.
South Africa
  • 3DS is supported. Additional configuration is required.
  • taxIdentifiers is required (National ID or Passport ID).
  • Local processing is not supported.
Uruguay
  • Partial capture is not supported.
  • taxIdentifiers is required.
  • The amount field must be an integer (decimal values are not supported).
  • Local processing is not supported.

The following resources provide additional information about EBANX and Braintree transactions.