documentation
  • LATAM Payment Methods
  • Integration guide
    • Getting started
      • Payment Methods
      • Payment Types
      • Supported Brands
      • Overview (Authentication and Endpoint)
    • COPYandPAY
      • Customization
      • Advanced Options
      • COPYandPAY API
      • Tokenization
      • Mobile Optimization
    • Server-to-Server
      • Tokenization
  • Manage Payments
    • Backoffice Operations
    • Recurring Payments
    • Installments
    • ZeroAuth
    • Transactions status
  • Instant Payment Notification (IPN) / Webhooks
    • General Information
    • Integration Guide
  • Queries
    • XML Integrator (Queries)
  • Reporting
    • Overview
    • Processed Report
    • Payout Report
    • Report Availability
    • Glossary of Fields
  • Compliance
    • Mandatory parameters by country
    • Test cards by country
    • Customer Identification Number by country (Customer ID)
    • Supported Countries and States
    • Requirements Before Going-Live
  • Reference
    • API Reference
    • Result Codes
  • FAQ
    • COPYandPAY FAQ
    • PCI DSS
    • TLS 1.2
Powered by GitBook
On this page
  • Quick links
  • Card Payment (CC)
  • Preauthorization (PA) + Capture (CP)
  • Debit (DB)
  • Boleto (PP) - (Brazil only)
  • Preauthorization (PA) - Issue the Boleto
  • Receipt (RC) - Payment confirmation
  • Boleto Refund (RF)
  • Oxxo (PP) - (Mexico only)
  • Preauthorization (PA) - Issue the payment slip
  • Receipt (RC) - Payment confirmation
  • Oxxo Refund (RF)
  • PayPal (VA) - (Brazil)
  • Debit (DB)
  • PIX - (Brazil only)
  • Preauthorization (PA) - Issue the PIX
  • Receipt (RC) - Payment confirmation
  • PIX Refund (RF)
  • PIX Reversal (RV)
  • Rapipago - (Argentina only)
  • Preauthorization (PA) - Issue the Rapipago voucher
  • Receipt (RC) - Payment confirmation
  • PagoFácil - (Argentina only)
  • Preauthorization (PA) - Issue the PagoFácil voucher
  • Receipt (RC) - Payment confirmation
  1. Integration guide

Server-to-Server

PreviousMobile OptimizationNextTokenization

Last updated 2 years ago

Note: You should be fully PCI compliant if you want to use the Server-to-Server api (as it requires that you collect the card data). If you are not fully PCI compliant, you can use COPYandPAY to collect the payment data securely.

You can perform different types of initial payments using our server-to-server REST API.

Quick links

Card Payment (CC)

Preauthorization (PA) + Capture (CP)

A PA is created by sending a POST request over HTTPS to the /v1/payments resource. The request should include all required information such as your authentication credentials, the type of transaction, the amount and the payment information such as card details. A capture may be sent against a successful PA to request the funds being sent for clearing. See backoffice operations for more details.

curl https://test.oppwa.com/v1/payments \
 -d "entityId=8a8294174e918ca6014e9c6f5ae12a9c" \
 -d "merchantTransactionId=Order Number 123" \
 -d "amount=1.00" \
 -d "currency=BRL" \
 -d "paymentType=PA" \
 -d "paymentBrand=VISA" \
 -d "card.number=4111111111111111" \
 -d "card.holder=Jose da Silva" \
 -d "card.expiryMonth=05" \
 -d "card.expiryYear=2025" \
 -d "card.cvv=123" \
 -d "customer.merchantCustomerId=12345678909" \
 -d "customer.givenName=Jose" \
 -d "customer.surname=da Silva" \
 -d "customer.email= info@provider.com" \
 -d "customer.ip=123.123.123.123" \
 -d "descriptor=123 Usage" \
 -d "billing.city=Sao Paulo" \
 -d "billing.country=BR" \
 -d "billing.state=SP" \
 -d "billing.street1=Rua Itapeva 547" \
 -d "billing.postcode=01332000" \
 -d "customParameters[product]=1 month membership" \
 -d "customParameters[merchant_website]=www.store.com" \
 -d "recurringType=INITIAL" \
 -d "testMode=EXTERNAL" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="
{
  "id":"8ac7a4a06a00f56b016a03df1f6b5754",
  "paymentType":"PA",
  "paymentBrand":"VISA",
  "amount":"1.00",
  "currency":"BRL",
  "descriptor":"123 Usage",
  "merchantTransactionId":"Order Number 123",
  "result":{
    "code":"000.100.112",
    "description":"Request successfully processed in 'Merchant in Connector Test Mode'"
  },
  
  "card":{
    "bin":"411111",
    "last4Digits":"1111",
    "holder":"Jose da Silva",
    "expiryMonth":"05",
    "expiryYear":"2025"
  },
  "customer":{
    "givenName":"Jose",
    "surname":"da Silva",
    "merchantCustomerId":"12345678909",
    "email":" info@provider.com",
    "ip":"123.123.123.123"
  },
  "billing":{
    "street1":"Rua Itapeva 547",
    "city":"Sao Paulo",
    "state":"SP",
    "postcode":"01332000",
    "country":"BR"
  },
  "customParameters":{
    "merchant_website":"www.store.com",
    "product":"1 month membership"
  },
  "risk":{
    "score":"0"
  },
  "buildNumber":"9530bc5348dcf347df44e234fa57653109617938@2019-04-09 04:42:22 +0000",
  "timestamp":"2019-04-09 20:51:56+0000",
  "ndc":"8a8294174e918ca6014e9c6f5ae12a9c_14eca79734c14f31b82f391b08e90b7b"
}
curl https://test.oppwa.com/v1/payments/8ac7a4a06a00f56b016a03df1f6b5754 \
 -d "entityId=8a8294174e918ca6014e9c6f5ae12a9c" \
 -d "amount=1.00" \
 -d "currency=BRL" \
 -d "paymentType=CP" \
 -d "testMode=EXTERNAL" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="
{
	"id": "8ac7a4a26a977d95016a99b9c15b00c8",
	"referencedId": "8ac7a4a06a00f56b016a03df1f6b5754",
	"paymentType": "CP",
	"amount": "1.00",
	"currency": "BRL",
	"descriptor": "123 Usage",
	"merchantTransactionId": "Order Number 123",
	"result": {
		"code": "000.100.112",
		"description": "Request successfully processed in 'Merchant in Connector Test Mode'"
	},
	
	"customer": {
		"merchantCustomerId": "12345678909"
	},
	"buildNumber": "e61441a649f53ee436210a78b3c5a713f3e54e8a@2019-05-08 08:36:44 +0000",
	"timestamp": "2019-05-08 23:14:09+0000",
	"ndc": "8a8294174e918ca6014e9c6f5ae12a9c_f9b9ee0131494621a93d186cbf8cca03"
}

Debit (DB)

A DB is created by sending a POST request over HTTPS to the /v1/payments resource. The request should include all required information such as your authentication credentials, the type of transaction, the amount and the payment information such as card details. A DB request effectively combines a PA and capture (CP) request, automatically requesting that the funds are cleared if the authorization was successful.

curl https://test.oppwa.com/v1/payments \
 -d "entityId=8a8294174e918ca6014e9c6f5ae12a9c" \
 -d "amount=1.00" \
 -d "currency=BRL" \
 -d "paymentType=DB" \
 -d "paymentBrand=VISA" \
 -d "card.number=4111111111111111" \
 -d "card.holder=Jose da Silva" \
 -d "card.expiryMonth=05" \
 -d "card.expiryYear=2025" \
 -d "card.cvv=123" \
 -d "merchantTransactionId=Order Number 123" \
 -d "customer.merchantCustomerId=12345678909" \
 -d "customer.givenName=Jose" \
 -d "customer.surname=da Silva" \
 -d "customer.email= info@provider.com" \
 -d "customer.ip=123.123.123.123" \
 -d "descriptor=123 Usage" \
 -d "billing.city=Sao Paulo" \
 -d "billing.country=BR" \
 -d "billing.state=SP" \
 -d "billing.street1=Rua Itapeva 547" \
 -d "billing.postcode=01332000" \
 -d "customParameters[product]=1 month membership" \
 -d "customParameters[merchant_website]=www.store.com" \
 -d "recurringType=INITIAL" \
 -d "testMode=EXTERNAL" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="
{
  "id":"8ac7a4a16a00e9b3016a03f1daf52030",
  "paymentType":"DB",
  "paymentBrand":"VISA",
  "amount":"1.00",
  "currency":"BRL",
  "descriptor":"123 Usage",
  "merchantTransactionId":"Order Number 123",
  "result":{
    "code":"000.100.112",
    "description":"Request successfully processed in 'Merchant in Connector Test Mode'"
  },
  
  "card":{
    "bin":"411111",
    "last4Digits":"1111",
    "holder":"Jose da Silva",
    "expiryMonth":"05",
    "expiryYear":"2025"
  },
  "customer":{
    "givenName":"Jose",
    "surname":"da Silva",
    "merchantCustomerId":"12345678909",
    "email":" info@provider.com",
    "ip":"123.123.123.123"
  },
  "billing":{
    "street1":"Rua Itapeva 547",
    "city":"Sao Paulo",
    "state":"SP",
    "postcode":"01332000",
    "country":"BR"
  },
  "customParameters":{
    "merchant_website":"www.store.com",
    "product":"1 month membership"
  },
  "risk":{
    "score":"0"
  },
  "buildNumber":"9530bc5348dcf347df44e234fa57653109617938@2019-04-09 04:42:22 +0000",
  "timestamp":"2019-04-09 21:12:24+0000",
  "ndc":"8a8294174e918ca6014e9c6f5ae12a9c_442a40ed22984abdad86b19afa0e6bc8"
}

Please note that for a HTTP POST request all the parameters are expected to go into the message body and not into the URL.

Boleto (PP) - (Brazil only)

  • Boleto Bancário is a PrePayment (PP) method (invoice/slip/voucher), which is widely used in Brazil to pay offline and online. Boleto represents 20% of payments in e-Commerce.

  • Boletos are payment slips, issued by sending a PA to the PPRO system. A Boleto is displayed at end customer’s browser where the Boleto can be printed out and paid in any bank in Brazil.

  • Clearing could take up to D+3.

  • PPRO matches bank return and generates a payment confirmation transaction type (RC) in the system. The merchant receives a report including Receipts (RC) for paid Boletos through a pre-defined SFTP server or webhook.

  • Advantage: Boleto payments are not subject to chargebacks. Once the payment has been made it is final and may only be refunded via bank transfer.

  • Boletos have due dates, up to which a payment is possible. Please discuss the optimal due dates (expiry dates) with your Account Manager, as it depends on the industry. Reminder emails sent to the customer up to 3 days before due date improve conversion significantly.

Preauthorization (PA) - Issue the Boleto

1. Send an Initial Payment

The first step is to send a Server-to-Server initial payment request with the paymentBrand and shopperResultUrl. The shopperResultUrl must be url-encoded.

curl https://test.oppwa.com/v1/payments \
 -d "entityId=8a8294174e918ca6014e9c6e44672a96" \
 -d "paymentType=PA" \
 -d "paymentBrand=BOLETO" \
 -d "amount=1.00" \
 -d "currency=BRL" \
 -d "descriptor=yourstore.com - product description - order number 1234" \
 -d "customer.givenName= Jose" \
 -d "customer.surname=da Silva" \
 -d "merchantTransactionId=Order-123" \
 -d "customer.merchantCustomerId=12345678909" \
 -d "billing.city=São Paulo" \
 -d "billing.country=BR" \
 -d "billing.state=SP" \
 -d "billing.street1=Rua Itapeva, 574" \
 -d "billing.postcode=01332000" \
 -d "customer.email=email@email.com" \
 -d "customer.ip=123.123.123.123" \
 -d "customParameters[CUSTOM_CPF_number]=12345678909" \
 -d "customParameters[CUSTOM_due_date]=31/12/2019" \
 -d "customParameters[merchant_sitename]= www.yourstore.com" \
 -d "customParameters[product]=product description" \
 -d "testMode=EXTERNAL" \
 -d "shopperResultUrl=https://docs.allpago.com/intro/servertoserver-flow" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="
{
  "id":"8ac7a4a26a26c733016a2725a8260f0e",
  "paymentType":"PA",
  "paymentBrand":"BOLETO",
  "amount":"1.00",
  "currency":"BRL",
  "descriptor":"Demo 4196.0450.7155 Order-123",
  "merchantTransactionId":"Order-123",
  "result":{
    "code":"000.100.112",
    "description":"Request successfully processed in 'Merchant in Connector Test Mode'"
  },
  "resultDetails":{
    "ExtendedDescription":"User redirected to Itau",
    "ConnectorTxID1":"8ac7a4a26a26c733016a2725a8260f0e",
    "merchantAccount":"BR_Itau_ACON4_STAGING_AP",
    "connectorInstanceId":"10.2.3.225",
    "acquirerReturnCode":"0",
    "connectorVersion":"1.0.25",
    "AcquirerResponse":"000.000.000",
    "EXTERNAL_SYSTEM_LINK":"https://shopline.itau.com.br/shopline/itaubloqueto.asp?DC=Y183Y175P209L12G238U104I153A172Q232U63P165W217G103N205O5O138Y92A103G208F14V7Q146V37P98V254R251U59Q108Q144J66S46M4I56H227Y195F163Z172D72Q162V223U164L99Y221S137M150M94Y217J195Q42R125Z61A101P114O253Y20D176C143P113U244L25M99H184P9C121C177D38W211B218N224V25I239X81J245H48T21R187H216O184W103D64J209O89J101K226R148Z16K193F215T219E32V150P143K185R224F226A219V219V85X172M62S247K129W20T172E47K117R97Q3D223N92T212M48X73X85Z249U20W11P2J176S216W90L120G117S236A60R76L213P186R150I193S67B164I44Y216I75U97M242Q70P148J12A117J151N187H5F3F255L220Z52C14T72B243Z254Z199O9F182D224G243J81U224Y214O39X141J6K9D136P112D91P54W62L171R217D128P28C128W201T47P198H163U76I244C215S206A130H0Y75Z255M236W180U11I89P63R31W27M131Q166E37L78P131W158Y152V27R13P17U19L128A65B253G184V71K165X143R73U239Z209Q130U195W207D109B6M194J159H117E230G104K165R176T45R157B228Y10J7J254N184B184C36Q128W184Y164R63Y2T254C208T192A201P168B81U44P46P46H79O112O188S46G244O222H115L185Y13L59Z126D50Z178C218Y193P146J48T33D107N0T131A92W156Y15Q2W173D164A43G87Z65G203E116L74N134X25E162P77C16K81F5Y122D194J110Q231X127V141G57L79I74X247I14Q21K58L163H76V207D16I142P206R74Z203L145G214R96Y104Z34V244M67P253U196X195H144D90H30S229Q84L92L18R240P104I226C105U53I95Z35Y231H190T87W150S177Y182N47B92R206X191G12S210N99P249P203E234E221G88U94R241E207Q19J128X111Z15U99M251Z222K31Y82F19A23D204M190T230S124N93G82Z128M90D53O61P120K186G41F205X48X91G107G149G132Q117Y65F195C140R12C67G6H139D129L131E198F9C71P70B221B67Z40T14Q211Y61G179K217V90H208G60K170O183Y255C111E55X82C163H137R11S7K145L141U84Q74H80Y144C198V82S42T82A117I18E6K114R120L61K130Q159E198K109T160M200U100L192U15N229F246G232J160U199V26V29V204I192X213W5B67R66B",
    "connectorName":"acon4-itau",
    "acquirerReturnMessage":"BOLETO LINK SUCCESSFULLY GENERATED",
    "acquirerTxId1":"4196.0450.7155",
    "acquirerTxId2":"41960450"
  },
  "customer":{
    "givenName":" Jose",
    "surname":"da Silva",
    "merchantCustomerId":"12345678909",
    "email":"email@email.com",
    "ip":"123.123.123.123"
  },
  "billing":{
    "street1":"Rua Itapeva, 574",
    "city":"São Paulo",
    "state":"SP",
    "postcode":"01332000",
    "country":"BR"
  },
  "customParameters":{
    "CUSTOM_CPF_number":"12345678909",
    "CUSTOM_due_date":"31/12/2019",
    "merchant_sitename":" www.yourstore.com",
    "product":"product description"
  },
  "buildNumber":"5722481a6ed3a5cfea3c8e48d1d62348dde956b8@2019-04-16 11:07:00 +0000",
  "timestamp":"2019-04-16 17:15:40+0000",
  "ndc":"8a8294174e918ca6014e9c6e44672a96_c1ed88adddbf464a9de1970d48e5d56e"
}

Note:

Brazilian banks do not support special characters for Boletos. i.e: !, @, #, $, %, ¨, &, , (, ), _ , +, = , ´ , “ , ‘ , ] ,[ , ^,? ,: , >, <, TM, ®, º, °, /, |, \, {, }, ª, ¢, ¬, £, etc, then you must ensure that the customer does not enter special character in these fields.

Expiry date. Payment of the Boleto is possible up to this date. At least 3 days from issuing date is recommended, so that the customer has enough time to conclude the payment.

2. Redirect the shopper

The boleto can be displayed both on desktop and mobile devices. Typically the user will expect to receive an email containing the order information and the link to display the boleto.

Redirect the shopper to the EXTERNAL_SYSTEM_LINK.

"EXTERNAL_SYSTEM_LINK":"https://shopline.itau.com.br/shopline/itaubloqueto.asp?DC=Y183Y175P209L12G238U104I153A172Q232U63P165W217G103N205O5O138Y92A103G208F14V7Q146V37P98V254R251U59Q108Q144J66S46M4I56H227Y195F163Z172D72Q162V223U164L99Y221S137M150M94Y217J195Q42R125Z61A101P114O253Y20D176C143P113U244L25M99H184P9C121C177D38W211B218N224V25I239X81J245H48T21R187H216O184W103D64J209O89J101K226R148Z16K193F215T219E32V150P143K185R224F226A219V219V85X172M62S247K129W20T172E47K117R97Q3D223N92T212M48X73X85Z249U20W11P2J176S216W90L120G117S236A60R76L213P186R150I193S67B164I44Y216I75U97M242Q70P148J12A117J151N187H5F3F255L220Z52C14T72B243Z254Z199O9F182D224G243J81U224Y214O39X141J6K9D136P112D91P54W62L171R217D128P28C128W201T47P198H163U76I244C215S206A130H0Y75Z255M236W180U11I89P63R31W27M131Q166E37L78P131W158Y152V27R13P17U19L128A65B253G184V71K165X143R73U239Z209Q130U195W207D109B6M194J159H117E230G104K165R176T45R157B228Y10J7J254N184B184C36Q128W184Y164R63Y2T254C208T192A201P168B81U44P46P46H79O112O188S46G244O222H115L185Y13L59Z126D50Z178C218Y193P146J48T33D107N0T131A92W156Y15Q2W173D164A43G87Z65G203E116L74N134X25E162P77C16K81F5Y122D194J110Q231X127V141G57L79I74X247I14Q21K58L163H76V207D16I142P206R74Z203L145G214R96Y104Z34V244M67P253U196X195H144D90H30S229Q84L92L18R240P104I226C105U53I95Z35Y231H190T87W150S177Y182N47B92R206X191G12S210N99P249P203E234E221G88U94R241E207Q19J128X111Z15U99M251Z222K31Y82F19A23D204M190T230S124N93G82Z128M90D53O61P120K186G41F205X48X91G107G149G132Q117Y65F195C140R12C67G6H139D129L131E198F9C71P70B221B67Z40T14Q211Y61G179K217V90H208G60K170O183Y255C111E55X82C163H137R11S7K145L141U84Q74H80Y144C198V82S42T82A117I18E6K114R120L61K130Q159E198K109T160M200U100L192U15N229F246G232J160U199V26V29V204I192X213W5B67R66B",

Sample of Boleto:

Receipt (RC) - Payment confirmation

Important: Not every boleto will in fact be paid by your customer. Depending on the industry, up to 50% of the issued boletos will not receive a payment. Note that these will remain on the platform, even if already overdue.

Payment confirmations can be received by:

  • Business Intelligence Platform (BIP), (search)

Boleto Refund (RF)

Most boletos are paid with cash at any of the acceptance places in Brazil (post offices, gas stations etc). Since the boleto does not have a native method to refund a transaction, PPRO enables the merchant to refund these transactions via bank transfer. For that it is required for the merchant to collect and provide the customers bank account data, either: programmatically via API or manually via Business Intelligence Platform (BIP).

Boleto RF via API

A refund is performed against a previous payment (RC), referencing its payment.id by sending a POST request over HTTPS to the /v1/payments/{id} endpoint.

A refund is performed

curl https://test.oppwa.com/v1/payments/{id} \
 -d "entityId=8a8294185b674555015b7ce34a9a17d3" \
 -d "amount=1" \
 -d "currency=BRL" \
 -d "paymentType=RF" \
 -d "merchantMemo=Name: João Comprador CPF:12345678909 Bank Name: Banco Santander Agency Number: 1234 Account Number: 123456789" \
 -d "testMode=EXTERNAL" \
 -H "Authorization: Bearer OGE4Mjk0MTg1YjY3NDU1NTAxNWI3Y2UzMGFjZTE3ZDF8d1N6NG1nNzZYUQ=="
{
  "id":"8ac7a4a06cf2812c016cfda0c3a216ed",
  "referencedId":"8ac7a4a16cf27265016cfd9d00e9293f",
  "paymentType":"RF",
  "amount":"1.00",
  "currency":"BRL",
  "descriptor":"3460.2304.5751 Produto 1",
  "merchantInvoiceId":"ADB065957000B",
  "result":{
    "code":"000.100.112",
    "description":"Request successfully processed in 'Merchant in Connector Test Mode'"
  },
  "customer":{
    "merchantCustomerId":"56359439000160"
  },
  "buildNumber":"26c2d6b9c96c447b626bf1480d38a81508aefd69@2019-09-04 09:39:42 +0000",
  "timestamp":"2019-09-04 18:54:27+0000",
  "ndc":"8a8294185b674555015b7ce34a9a17d3_46f0168f2e80436997c285ca8acc8636"
}

Boleto RF via Business Intelligence Platform (BIP)

Required data from the customer:

Name
Brazilian CPF (see compliance (Customer ID number by country))
Bank name
Bank agency number
Bank account data

Oxxo (PP) - (Mexico only)

  • Oxxo is a PrePayment (PP) method (invoice/slip/voucher), which is widely used in Mexico to pay offline (Oxxo store).

  • Oxxo are payment slips, issued by sending a PA request to PPRO’s system. The slip is displayed on the end customer’s browser where it can be either printed out or scanned off a mobile device.

  • The Oxxo slip has two important elements: barcode & reference number (numerical representation of the barcode). The customer is able to pay by either of them. It is a question of which design fits your checkout better. In addition, PPRO provides a hosted page containing both elements.

  • Clearing usually happens the next day, but can be delayed (in case of weekends and public holidays in Mexico).

  • Oxxo due dates are configurable. Please discuss the optimal due dates (expiry dates) with your Account Manager. Reminder emails sent to the customer up to 3 days before due date improve conversion significantly.

Preauthorization (PA) - Issue the payment slip

1. Send an Initial Payment

The first step is to send a Server-to-Server initial payment request with the paymentBrand .

curl https://test.oppwa.com/v1/payments \
 -d "entityId=8a829417545c8cf1015476ec405c23b7" \
 -d "paymentType=PA" \
 -d "paymentBrand=OXXO" \
 -d "amount=1.00" \
 -d "currency=MXN" \
 -d "descriptor=yourstore.com - product description - order number 1234" \
 -d "merchantTransactionId=Order-123" \
 -d "customer.givenName=Juan" \
 -d "customer.surname=Uribe" \
 -d "customer.email= info@provider.com" \
 -d "customer.ip=123.123.123.123" \
 -d "billing.city=Mexico City" \
 -d "billing.country=MX" \
 -d "billing.state=MX" \
 -d "billing.street1=Calle 1, 232" \
 -d "billing.postcode=01309" \
 -d "customParameters[url_logo]=https://www.allpago.com/logos/demo-logo.jpg" \
 -d "customParameters[due_date]=14/12/2020" \
 -d "customParameters[merchant_sitename]= www.yourstore.com" \
 -d "customParameters[product]=product description" \
 -d "testMode=EXTERNAL" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="
{
  "id":"8ac7a4a26a304583016a46f8fe2624ee",
  "paymentType":"PA",
  "paymentBrand":"OXXO",
  "amount":"1.00",
  "currency":"MXN",
  "descriptor":"3503.1119.7264 MX_Oxxo yourstore.com - product description - order number 1234",
  "merchantTransactionId":"Order-123",
  "result":{
    "code":"000.100.112",
    "description":"Request successfully processed in 'Merchant in Connector Test Mode'"
  },
  "resultDetails":{
    "ConnectorTxID1":"8ac7a4a26a304583016a46f8fe2624ee",
    "connectorInstanceId":"10.2.4.221",
    "acquirerReturnCode":"-",
    "EXTERNAL_SYSTEM_BARCODE_IMAGE":"https://staging-oxxo-batch.allpago.com/rest/acon2/v1/barcode/image/8ac7a4a26a304583016a46f8fe2624ee",
    "EXTERNAL_SYSTEM_LINK":"https://staging-oxxo-batch.allpago.com/rest/acon2/v1/barcode/8ac7a4a26a304583016a46f8fe2624ee",
    "EXTERNAL_SYSTEM_BARCODE_NUMBER":"46350311197264520201214000010004",
    "ExtendedDescription":"Transaction succeeded",
    "merchantAccount":"Oxxo_Batch_ACON3_STAGING",
    "connectorVersion":"1.0.15",
    "AcquirerResponse":"000.000.000",
    "connectorName":"Oxxo-Batch",
    "acquirerInitialTxId":"3503.1119.7264",
    "acquirerReturnMessage":"-",
    "acquirerTxId1":"3503.1119.7264"
  },
  "customer":{
    "givenName":"Juan",
    "surname":"Uribe",
    "email":" info@provider.com",
    "ip":"123.123.123.123"
  },
  "billing":{
    "street1":"Calle 1, 232",
    "city":"Mexico City",
    "state":"MX",
    "postcode":"01309",
    "country":"MX"
  },
  "customParameters":{
    "due_date":"14/12/2020",
    "merchant_sitename":" www.yourstore.com",
    "product":"product description",
    "url_logo":"https://www.allpago.com/logos/demo-logo.jpg"
  },
  "buildNumber":"08ae206a84afb5098e11e974146f478e5c8e307e@2019-04-18 07:26:11 +0000",
  "timestamp":"2019-04-22 21:34:44+0000",
  "ndc":"8a829417545c8cf1015476ec405c23b7_66c555e58d7a42249294bc382abac905"
}

The PA’s response has 3 elements:

  • ConnectorDetails.EXTERNAL_SYSTEM_LINK: PPRO hosted complete page containing all elements (barcode, reference number)

  • ConnectorDetails.EXTERNAL_SYSTEM_BARCODE_IMAGE: barcode url of PPRO hosted png.

  • ConnectorDetails.EXTERNAL_SYSTEM_BARCODE_NUMBER: reference number (can be used equally for paying the oxxo slip). The first option is a complete solution, options 2&3 offer the merchant full flexibility to build his own oxxo page by using the elements to this end.

2. Redirect the shopper

The Oxxo slip can be displayed both on desktop and mobile devices. Typically the user will expect to receive an email containing the order information and the link to display the Oxxo slip.

Redirect the shopper to the EXTERNAL_SYSTEM_LINK.

Sample of Oxxo slip:

Receipt (RC) - Payment confirmation

Payment confirmations can be received by:

  • Business Intelligence Platform (BIP), (search)

Oxxo Refund (RF)

Most slips are paid with cash at any of the acceptance places in Mexico (Oxxo stores). Since the slip does not have a native method to refund a transaction, PPRO enables the merchant to refund these transactions via bank transfer. For that it is required for the merchant to collect and provide the customers bank account data, via Business Intelligence Platform (manual):

Oxxo RF via BIP

PayPal (VA) - (Brazil)

PayPal is one of the most popular alternative payment methods. In an asynchronous workflow a redirect takes place to allow the account holder to complete/verify the payment. After this the account holder is redirected back to the shopperResultUrl and the status of the payment can be queried.

Debit (DB)

In an asynchronous workflow a redirect takes place to allow the account holder to complete/verify the payment. After this the account holder is redirected back to the shopperResultUrl and the status of the payment can be queried.

1. Send an Initial Payment

The first step is to send a Server-to-Server initial payment request with the paymentBrand and shopperResultUrl. The shopperResultUrl must be url-encoded.

curl https://test.oppwa.com/v1/payments \
 -d "entityId=8a8294174e918ca6014e9c77fe772acb" \
 -d "merchantTransactionId=100" \
 -d "merchantInvoiceId=ORDERID 123" \
 -d "paymentBrand=PAYPAL" \
 -d "paymentType=DB" \
 -d "amount=1.00" \
 -d "currency=BRL" \
 -d "customer.givenName=Paulo" \
 -d "customer.surname=Souza" \
 -d "billing.city=São Paulo" \
 -d "billing.country=BR" \
 -d "billing.state=SP" \
 -d "billing.street1=Rua um, 123" \
 -d "billing.postcode=01332000" \
 -d "customer.email=buyer@yourstore.com" \
 -d "customer.ip=127.0.0.1" \
 -d "customer.merchantCustomerId=12345678909" \
 -d "customParameters[merchant_sitename]=http://www.yourstore.com" \
 -d "customParameters[product]=product description" \
 -d "shopperResultUrl=https://docs.allpago.com/intro/servertoserver-flow" \
 -d "testMode=EXTERNAL" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="
{
  "id":"8ac7a49f6a303992016a3238975213be",
  "paymentType":"DB",
  "paymentBrand":"PAYPAL",
  "amount":"1.00",
  "currency":"BRL",
  "descriptor":"8920.8131.8461 BR_Paypal ",
  "merchantTransactionId":"100",
  "merchantInvoiceId":"ORDERID 123",
  "result":{
    "code":"000.200.000",
    "description":"transaction pending"
  },
  "resultDetails":{
    "CORRELATIONID":"fdb9715a895be",
    "AcquirerResponse":"Success"
  },
  "customer":{
    "givenName":"Paulo",
    "surname":"Souza",
    "merchantCustomerId":"12345678909",
    "email":"buyer@yourstore.com",
    "ip":"127.0.0.1"
  },
  "billing":{
    "street1":"Rua um, 123",
    "city":"São Paulo",
    "state":"SP",
    "postcode":"01332000",
    "country":"BR"
  },
  "customParameters":{
    "merchant_sitename":"http://www.yourstore.com",
    "product":"product description"
  },
  "redirect":{
    "url":"https://www.sandbox.paypal.com/cgi-bin/webscr",
    "parameters":[
      {
        "name":"cmd",
        "value":"_express-checkout"
      },
      {
        "name":"useraction",
        "value":"commit"
      },
      {
        "name":"token",
        "value":"EC-0K812030W0710811W"
      }
    ]
  },
  "buildNumber":"08ae206a84afb5098e11e974146f478e5c8e307e@2019-04-18 07:26:11 +0000",
  "timestamp":"2019-04-18 20:52:12+0000",
  "ndc":"8a8294174e918ca6014e9c77fe772acb_b765a224bdd64563b10b0a690e1609ba"
}

2. Redirect the shopper

The next step is to redirect the account holder. To do this you must parse the redirect.url from the Initial Payment response along with any parameters. If parameters are present they should be POST in the redirect, otherwise a straight forward redirect to the redirect.urlis sufficient.

<form action="{redirectUrl}" class="paymentWidgets">
<input type="text" name="{name-1}" value="{value-1}">
...
<input type="text" name="{name-2}" value="{value-2}">
</form>       

Redirect the shopper to the redirect.url

https://www.sandbox.paypal.com/cgi-bin/webscr&cmd=_express-checkout&useraction=commit&token=EC-0K812030W0710811

Buyer test account:

e-mail: pp.buyer@ppro.com

password: buyer123

3. Get Payment Status

Once the payment has been processed, the customer is redirected to your shopperResultUrl along with a GET parameter resourcePath.

Then, to get the status of the payment, you make a GET request to the baseUrl + resourcePath, including your authentication parameters. Example of a resourcePath:

resourcePath=/v1/ payments/{id}

curl -G https://test.oppwa.com/v1/payments/8a8294495baf2abe015bb603a5036098 \
 \
 -d "entityId=8a8294174e918ca6014e9c77fe772acb" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="
Response:
{
"id":"8a8294495baf2abe015bb603a5036098",
"paymentType":"DB",
"paymentBrand":"PAYPAL",
"amount":"1.00",
"currency":"BRL",
"descriptor":"9226.4459.5362 BR_Paypal",
"merchantTransactionId":"100",
"merchantInvoiceId":"ORDERID 123",
"result":{
"code":"000.100.112",
"description":"Request successfully processed in 'Merchant in Connector Test Mode'"
},
"resultDetails":{
"PAYERID":"4UNBGJQE9AUX6",
"TAXIDTYPE":"BR_CPF",
"AcquirerResponse":"Success",
"ConnectorTxID1":"0GY99688DD5155316",
"SHIPTOSTATE":"SP",
"TAXID":"30949017787"
},
"customer":{
"givenName":"Paulo",
"surname":"Souza",
"merchantCustomerId":"12345678909",
"email":"buyer@allpago.com",
"ip":"127.0.0.1"
},
"billing":{
"street1":"Rua um, 123",
"city":"São Paulo",
"state":"SP",
"postcode":"01332000",
"country":"BR"
},
"customParameters":{
"product":"produc description",
"merchant_sitename":"http://www.yourstore.com"
},
"buildNumber":"660cde0fae70ab0b5deb72d13560b661be0706de@2017-04-27 08:46:08 +0000",
"timestamp":"2017-04-28 19:29:59+0000",
"ndc":"8a8294174e918ca6014e9c77fe772acb_c68f93a382da4bd6b45220b56ecbe4a2",
"virtualAccount":{
"accountId":"buyer@allpago.com",
"holder":"Paulo Souza"
}
}

PIX - (Brazil only)

  • PIX is the first instant payment system available to Brazilian consumers, developed by the Central Bank of Brazil.

  • PIX is a PrePayment (PP) method, which allows transfers and payments between different financial institutions in up to 10 seconds, 24 hours a day and every day of the year, including weekends and holidays (funds are transferred in real-time from the customer’s account to the payee).

  • PIX is issued by sending a PA to the PPRO system. PPRO can offer two different PIX solutions:

    1. A complete solution: PPRO generates and hosts a complete page containing all elements (dynamic QR code image, EMV code - including the Copy EMV code button and merchant logo);

    2. QR Code (dynamic) URL/Image: gives to merchant full flexibility to build its own PIX checkout page based on a QR code image.

  • PPRO receives the bank confirmation and generates a payment confirmation transaction type (RC) in the system. The merchant receives via webhook a notification about the payment confirmation. (The merchant should provide its webhook URL).

{
    "type": "PAYMENT",
    "payload": {
        "id": "8ac7a4a180f46dd40180f64fff9758f4",
        "referencedId": "8ac7a49f80f46dd40180f64ffd575919",
        "paymentType": "RC",
        "paymentBrand": "PIX",
        "amount": "2.99",
        "currency": "BRL",
        "presentationAmount": "2.99",
        "presentationCurrency": "BRL",
        "descriptor": "4665.9054.5519 BR_PIX CNL-T331 Test PIX Transaction",
        "merchantTransactionId": "d58580f6-4dca-4a7f-8629-81784352df5d",
        "result": {
            "code": "000.100.112",
            "description": "Request successfully processed in 'Merchant in Connector Test Mode'",
            "randomField958178183": "Please allow for new unexpected fields to be added"
        },
        "customer": {
            "givenName": "P",
            "surname": "PRO - IT"
        },
        "billing": {
            "street1": "Rua Nenhuma **** Bloco 29",
            "city": "Fortaleza",
            "state": "CE",
            "postcode": "12345678",
            "country": "BR"
        },
        "authentication": {
            "entityId": "8a8294186242c2be01624d0416f620ed"
        },
        "redirect": {
            "parameters": []
        },
        "risk": {
            "score": ""
        },
        "timestamp": "2022-05-24 13:44:39+0000",
        "ndc": "8a8294186242c2be01624d0416f620ed_c0e0eadf0f7b4c00ab08e546a7474642",
        "merchantAccountId": "8ac7a4c8675ffec1016779db30f325ef",
        "channelName": "BR_PIX",
        "source": "OPP"
    }
}
  • Advantage: Besides the instant confirmation, PIX payments are not subject to chargebacks. Once the payment has been made it is final and can be refunded only by the merchant.

  • PIX has due dates, up to which a payment is possible. Please discuss the optimal due dates (expiry dates) with your Account Manager, as it depends on the industry. Reminder emails sent to the customer up to 3 days before the due date improve conversion significantly.

Preauthorization (PA) - Issue the PIX

1. Send an Initial Payment

curl --location --request POST 'https://test.oppwa.com/v1/payments' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer OGFjN2E0Y2E2NmM1OTMwMDAxNjZjNWRiMjQwMDAwOTF8QjloanhBe3DBCJs==' \
--data-urlencode 'entityId=8ac7a4c87e6fdf6f017e738f136703b9' \
--data-urlencode 'amount=0.01' \
--data-urlencode 'currency=BRL' \
--data-urlencode 'paymentBrand=PIX' \
--data-urlencode 'paymentType=PA' \
--data-urlencode 'customer.merchantCustomerId=15351770806' \
--data-urlencode 'merchantTransactionId=90a1e944-e7a7-42f3-8d9a-4737bd71aa44' \
--data-urlencode 'customer.givenName=PPRO' \
--data-urlencode 'customer.surname=LATAM' \
--data-urlencode 'customer.email=ppro@ppro.com.br' \
--data-urlencode 'descriptor=PPRO descriptor' \
--data-urlencode 'customParameters[product]=PPRO product' \
--data-urlencode 'customParameters[merchant_website]=www.ppro.com' \
--data-urlencode 'recurringType=INITIAL' \
--data-urlencode 'billing.state=SP' \
--data-urlencode 'billing.city=Ernestton' \
--data-urlencode 'billing.country=BR' \
--data-urlencode 'billing.street1=5577 Breanne Corner' \
--data-urlencode 'billing.postcode=12345609' \
--data-urlencode 'customer.ip=130.225.128.202' \
--data-urlencode 'testMode=EXTERNAL'
{
"id": "8ac7a49f80479b6d01804845887326c6",
"paymentType": "PA",
"paymentBrand": "PIX",
"amount": "0.01",
"currency": "BRL",
"descriptor": "",
"merchantTransactionId": "90a1e944-e7a7-42f3-8d9a-4737bd71aa44",
"result": {
"code": "000.100.112",
"description": "Request successfully processed in 'Merchant in Connector Test Mode'"
},
"resultDetails": {
"ConnectorTxID1": "8ac7a49f80479b6d01804845887326c6",
"connectorInstanceId": "127.0.0.1",
"acquirerReturnCode": "ATIVA",
"EXTERNAL_SYSTEM_LINK": "https://pix-itau.dev.lpm.latam.ppro.com/pix-itau/rest/acon4/v1/qrcode/6892721e-b8fd-44a9-a308-3266dbf6a2ea/8ac7a49f80479b6d01804845887326c6",
"ExtendedDescription": "Transaction succeeded",
"recurrence": "true",
"merchantAccount": "pix-itau-local-dev",
"aprId": "6892721e-b8fd-44a9-a308-3266dbf6a2ea",
"installments": "1",
"EXTERNAL_SYSTEM_EMV": "00020101021226770014BR.GOV.BCB.PIX2555api.itau/pix/qr/v2/91475506-141a-4c89-8cde-b766741d2fcd5204000053039865802BR5916PPRO BRASIL LTDA6009SAO PAULO62070503***630477B3",
"connectorVersion": "1.1.5",
"AcquirerResponse": "000.000.000",
"EXTERNAL_SYSTEM_QRCODE_IMAGE": "https://pix-itau.dev.lpm.latam.ppro.com/pix-itau/rest/acon4/v1/image/6892721e-b8fd-44a9-a308-3266dbf6a2ea/8ac7a49f80479b6d01804845887326c6",
"connectorName": "Pix-Itau",
"acquirerReturnMessage": "Success",
"acquirerTxId1": "8ac7a49f80479b6d01804845887326c6"
},
"customer": {
"givenName": "PPRO",
"surname": "LATAM",
"merchantCustomerId": "15351770806",
"email": "ppro@ppro.com.br",
"ip": "130.225.128.202"
},
"billing": {
"street1": "5577 Breanne Corner",
"city": "Ernestton",
"state": "SP",
"postcode": "12345609",
"country": "BR"
},
"customParameters": {
"merchant_website": "www.ppro.com",
"product": "PPRO product"
},
"buildNumber": "085f2cb3f703d5c18d9195efaac46ccaf360c661@2022-04-19 12:32:39 +0000",
"timestamp": "2022-04-20 18:39:22+0000",
"ndc": "8ac7a4c87e6fdf6f017e738f136703b9_2c23e4048831473d927257f4b2cc56e0"
}

List of mandatory fields: --data-urlencode 'authentication.entityId=8ac9a4cb7859e48801785f9debcd53af' \ --data-urlencode 'amount=0.01' \ --data-urlencode 'currency=BRL' \ --data-urlencode 'paymentBrand=PIX' \ --data-urlencode 'paymentType=PA' \ --data-urlencode 'billing.country=BR' --data-urlencode customParameters[referencedTxUuid]=(Parente UUID)' {ONLY FOR RF}

Note: Brazilian banks do not support special characters. i.e: !, @, #, $, %, ¨, &, , (, ), _ , +, = , ´ , “ , ‘ , ] ,[ , ^,? ,: , >, <, TM, ®, º, °, /, |, \, {, }, ª, ¢, ¬, £, etc, then you must ensure that the customer does not enter a special character in these fields.

2. Redirect the shopper The PIX QR Code can be displayed both on desktop and mobile devices. Typically the user will expect to receive an email containing the order information and the link to display the PIX QR Code.

Redirect the shopper to the EXTERNAL_SYSTEM_LINK.

"EXTERNAL_SYSTEM_LINK":"https://pix-itau.allpago.com/pix-itau/rest/acon4/v1/qrcode/e72c8102-2909-4758-be5a-efbfc381953b/8ac9a4a37c3097b3017c521022ca0174",

Sample of PIX:

Receipt (RC) - Payment confirmation

Important: Not every PIX will in fact be paid by your customer.Note that these will remain on the platform, even if already overdue.

Payment confirmations can be received by:

  • Instant Payment Notification (IPN) / Webhooks, (push)

  • XML Query (pull)

  • Business Intelligence Platform (BIP), (search)

PIX Refund (RF)

PIX has its native Refund solution that can be triggered via API. PIX RF via API A refund is performed against a previous payment (RC), referencing its e2e id by sending a POST request over HTTPS to the /v1/payments/{id} endpoint.

REMARK: To perform the Refund correctly, it is very important the information customParameters[referencedTxUuid] should be filled with the preauthorization’s (PA) UUID.

curl --location --request POST 'https://test.oppwa.com/v1/payments/8ac9a4a37c3097b3017c521022ca0174' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw==' \
--data-urlencode 'entityId=8ac9a4cb7859e48801785f9debcd53af' \
--data-urlencode 'amount=0.01' \
--data-urlencode 'currency=BRL' \
--data-urlencode 'paymentBrand=PIX' \
--data-urlencode 'paymentType=RF' \
--data-urlencode 'customParameters[referencedTxUuid]=8ac9a4a37c3097b3017c521022ca0174'
{
    "id": "8ac9a4a77c3097b4017c5212c4a97a17",
    "referencedId": "8ac9a4a37c3097b3017c521022ca0174",
    "paymentType": "RF",
    "amount": "0.01",
    "currency": "BRL",
    "descriptor": "LTest PPRO descriptor",
    "merchantTransactionId": "74b490be-9e79-4999-af9a-4e750bc35205",
    "result": {
        "code": "000.000.000",
        "description": "Transaction succeeded"
    },
    "resultDetails": {
        "ConnectorTxID1": "8ac9a4a77c3097b4017c5212c4a97a17",
        "connectorInstanceId": "10.3.4.67",
        "acquirerReturnCode": "DEVOLVIDO",
        "ExtendedDescription": "Transaction succeeded",
        "merchantAccount": "pix-itau-production",
        "aprId": "e72c8102-2909-4758-be5a-efbfc381953b",
        "installments": "1",
        "connectorVersion": "1.0.3",
        "AcquirerResponse": "000.000.000",
        "connectorName": "Pix-Itau",
        "acquirerReturnMessage": "Success",
        "acquirerTxId1": "8ac9a4a77c3097b4017c5212c4a97a17",
        "acquirerTxId2": "D6070119020211005200829246133773"
    },
    "customer": {
        "merchantCustomerId": "15351770806"
    },
    "customParameters": {
        "referencedTxUuid": "8ac9a4a37c3097b3017c521022ca0174"
    },
    "buildNumber": "71cebf76025d376fd99a25c816e52cb62e2fbf31@2021-09-30 07:00:38 +0000",
    "timestamp": "2021-10-05 20:09:01+0000",
    "ndc": "8ac9a4cb7859e48801785f9debcd53af_ae474ce950d2450b8b35dbdea58137a2"
}

PIX Reversal (RV)

As well as the RF, PIX has its native Reversal solution that can be triggered via API, to be used to invalidate a QR Code that has not been paid yet. In this case, the PA uuid should be used to reference the QR Code to be reversed.

curl curl --location --request POST 'https://test.oppwa.com/v1/payments/8ac9a4a47c30b11c017c5207dba31d91' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw==' \
--data-urlencode 'entityId=8ac9a4cb7859e48801785f9debcd53af' \
--data-urlencode 'amount=0.01' \
--data-urlencode 'currency=BRL' \
--data-urlencode 'paymentBrand=PIX' \
--data-urlencode 'paymentType=RV'
{
    "id": "8ac9a4a47c30b11c017c5207dba31d91",
    "referencedId": "8ac9a4a17c3097b3017c51bf49092079",
    "paymentType": "RV",
    "amount": "0.01",
    "currency": "BRL",
    "descriptor": "LTest PPRO descriptor",
    "merchantTransactionId": "e2a3ae44-cef1-4b50-9e07-0c892b6151c7",
    "result": {
        "code": "000.000.000",
        "description": "Transaction succeeded"
    },
    "resultDetails": {
        "ConnectorTxID1": "8ac9a4a47c30b11c017c5207dba31d91",
        "connectorInstanceId": "10.3.4.67",
        "acquirerReturnCode": "REMOVIDA_PELO_USUARIO_RECEBEDOR",
        "ExtendedDescription": "Transaction succeeded",
        "recurrence": "true",
        "merchantAccount": "pix-itau",
        "aprId": "e72c8102-2909-4758-be5a-efbfc381953b",
        "installments": "1",
        "connectorVersion": "1.0.3",
        "AcquirerResponse": "000.000.000",
        "acquirerParentTxId": "8ac9a4a17c3097b3017c51bf49092079",
        "connectorName": "Pix-Itau",
        "acquirerReturnMessage": "Success",
        "acquirerTxId1": "8ac9a4a17c3097b3017c51bf49092079"
    },
    "customer": {
        "merchantCustomerId": "15351770806"
    },
    "buildNumber": "71cebf76025d376fd99a25c816e52cb62e2fbf31@2021-09-30 07:00:38 +0000",
    "timestamp": "2021-10-05 19:57:01+0000",
    "ndc": "8ac9a4cb7859e48801785f9debcd53af_21adce61d2fd4e70b4d0d88413b51d7a"
}

Rapipago - (Argentina only)

  • Rapipago is an Argentinian offline payment method used for online purchases. Shoppers buy their goods and services online and pay offline at one of the 6,000+ Rapipago payment locations.

  • The customer is presented with a payment slip including a barcode, which can be paid in cash at the payment locations by scanning the slip at the terminal.

  • Different from other cash based PMs, Rapipago offers realtime payment confirmations.

  • After successful payment, the customer is handed a printed receipt for the operation.

  • PPRO receives the payment confirmation and generates a payment confirmation transaction type (RC) in the system. The merchant receives via webhook a notification about the payment confirmation. (The merchant should provide its webhook URL).

{
    "type": "PAYMENT",
    "payload": {
        "id": "8ac7a4a180f46dd40180f64fff9758f5",
        "referencedId": "8ac7a49f80f46dd40180f64ffd575910",
        "paymentType": "RC",
        "paymentBrand": "RAPI_PAGO",
        "amount": "100.99",
        "currency": "ARS",
        "presentationAmount": "100.99",
        "presentationCurrency": "ARS",
        "descriptor": "4665.9054.5519 AR_RAPIPAGO CNL-T331 Test Rapipago Transaction",
        "merchantTransactionId": "d58580f6-4dca-4a7f-8629-81784352df5e",
        "result": {
            "code": "000.100.112",
            "description": "Request successfully processed in 'Merchant in Connector Test Mode'",
            "randomField958178183": "Please allow for new unexpected fields to be added"
        },
        "customer": {
            "givenName": "P",
            "surname": "PRO - IT"
        },
        "billing": {
            "street1": "Calle florida",
            "city": "Buenos aires",
            "state": "BA",
            "postcode": "12345678",
            "country": "AR"
        },
        "authentication": {
            "entityId": "8a8294186242c2be01624d0416f620ee"
        },
        "redirect": {
            "parameters": []
        },
        "risk": {
            "score": ""
        },
        "timestamp": "2022-05-23 13:44:39+0000",
        "ndc": "8a8294186242c2be01624d0416f620ed_c0e0eadf0f7b4c00ab08e546a7474642",
        "merchantAccountId": "8ac7a4c8675ffec1016779db30f325ef",
        "channelName": "AR_RAPIPAGO",
        "source": "OPP"
    }
}
  • Advantage: Besides the instant confirmation, Rapipago payments are not subject to chargebacks. Once the payment has been made it is final and can be refunded only by the merchant (Rapipago does not have any native Refund functionality. Therefore a refund can only be performed via a bank transfer.).

  • Rapipago has due dates, up to which a payment is possible. Please discuss the optimal due dates (expiry dates) with your Account Manager, as it depends on the industry. Reminder emails sent to the customer up to 3 days before the due date improve conversion significantly.

Preauthorization (PA) - Issue the Rapipago voucher

1. Send an Initial Payment

curl --location --request POST 'https://test.oppwa.com/v1/payments' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer OGFjN2E0Y2E2NmM1OTMwMDAxNjZjNWRiMjQwMDAwOTF8QjloanhBelR6OA==' \
--header 'Cookie: ak_bmsc=3C4B9C4FAEA42252DE1AC41016436388~000000000000000000000000000000~YAAQPtsAyei5WZWAAQAAwG7t4Q8RE2hjNFtmV/AJb+WYYaXTFZE9SJbb/FMUwxElQiPaPJ0RGYQRtD2RMDYVROP844RKPG8X9GEysZgYI0AG4M0yePub2tC8MdcvIxaz4euwHTIF8poO5RKT/Qh8Oy/sd5RcxPhkYk6K0wyuU4kqYIYlMvcAd7+zF2Z6TMop0wxt1rfee4i1IscmVfK93PsmOoNZ5CuU1wxXQPWGdWFKDCzIeP3z0AvZDZLH2jhMHM6kUlaaAtFy64zdczjIMKpJb74RVQX4pVXi1/nhOIzyz0Nn1cRfBBIrqCJ6V/j3d8Hp78tCuCT1dcxwZdwNDDPI/ANdrJf+b9iPs02j2YUBNNcs1ZhXzoEP; bm_sv=F282F404DCCD0CA0F8B5BD4FF843DDD5~YAAQNtsAyag2I9yAAQAAGVv64Q902kkWbwU3kDuFzQOZoqJ9Er7krQ10arDtdJFtm648Vt5Q8Bw/qN/9/dBBCJcKD0veBPSUVmS+2vsiaSCklxC2qBwqzs8RVQDPq+kmgrZ0ukTcRX+OhATbaOre+l4ow/tl71KO0hgkBcZ067syt1JTkdbqeSTF/Q7WJi1XsTSYJJRZr/mxjgcsHiOMzds8ljDIF2/C/gMJCFwJ4WJHnijUEVPN6aRK2ieQqtM=~1' \
--data-urlencode 'entityId=8ac7a4c76b078d1f016b09cd06e304ee' \
--data-urlencode 'amount=359' \
--data-urlencode 'currency=ARS' \
--data-urlencode 'paymentBrand=RAPI_PAGO' \
--data-urlencode 'paymentType=PA' \
--data-urlencode 'descriptor=Service 354 - Boleto Generated 1653058741' \
--data-urlencode 'customer.givenName=Leonardo' \
--data-urlencode 'customer.surname=Sobral ' \
--data-urlencode 'customer.email=leonardo.sobral@allpago.com' \
--data-urlencode 'customer.ip=123.123.123.123' \
--data-urlencode 'merchantTransactionId=905' \
--data-urlencode 'billing.street1=Rua Thinkpad X1 Carbon' \
--data-urlencode 'billing.postcode=02902030' \
--data-urlencode 'billing.city=Limeira' \
--data-urlencode 'billing.state=SP' \
--data-urlencode 'billing.country=AR' \
--data-urlencode 'testMode=EXTERNAL' \
--data-urlencode 'customParameters[render_type]=2' \
--data-urlencode 'customer.merchantCustomerId=470.847.140-81' \
--data-urlencode 'customParameters[merchant_sitename]=www.allpago.com' \
--data-urlencode 'customParameters[product]=Service 308' \
--data-urlencode 'customParameters[url_logo]=https://scontent.fcgh19-1.fna.fbcdn.net/v/t31.18172-8/10830847_1513030722293080_991909997390580216_o.jpg?_nc_cat=103&ccb=1-7&_nc_sid=09cbfe&_nc_eui2=AeH03joJ390lvvQs0y8LbhU7U1scxmzDPgVTWxzGbMM-BfDr-xTYK9o5uzhcC_aiVYAfALZS87aTk0ZM8GGtaYyd&_nc_ohc=0ODgV_fu07gAX89y0aF&_nc_ht=scontent.fcgh19-1.fna&oh=00_AT9pmFsi-PyP-3jHqFMPsW-m8u9x8bY30-o2hgrfQr-KGA&oe=62AEDC54'
{
    "id": "8ac7a4a180e13cd40180e1fa59426830",
    "paymentType": "PA",
    "paymentBrand": "RAPI_PAGO",
    "amount": "80.00",
    "currency": "ARS",
    "descriptor": "0242.0519.6591",
    "merchantTransactionId": "989",
    "result": {
        "code": "000.100.112",
        "description": "Request successfully processed in 'Merchant in Connector Test Mode'"
    },
    "resultDetails": {
        "ConnectorTxID1": "8ac7a4a180e13cd40180e1fa59426830",
        "connectorInstanceId": "127.0.0.1",
        "acquirerReturnCode": "0",
        "EXTERNAL_SYSTEM_BARCODE_IMAGE": "https://test-rapipago.allpago.com/rapipago/rest/acon4/v1/image/8ac7a4a180e13cd40180e1fa59426830",
        "EXTERNAL_SYSTEM_LINK": "https://test-rapipago.allpago.com/rapipago/rest/acon4/v1/barcode/8ac7a4a180e13cd40180e1fa59426830",
        "EXTERNAL_SYSTEM_BARCODE_NUMBER": "0004708471400008000230522024205196591",
        "ExtendedDescription": "Transaction succeeded",
        "recurrence": "true",
        "merchantAccount": "rapipago-local-dev",
        "aprId": "3ba205ae-e949-4473-8de5-8b850ba9598f",
        "installments": "1",
        "connectorVersion": "1.0.0-SNAPSHOT",
        "AcquirerResponse": "000.000.000",
        "connectorName": "Rapipago",
        "acquirerReturnMessage": "-",
        "acquirerTxId1": "8ac7a4a180e13cd40180e1fa59426830",
        "acquirerTxId2": "0242.0519.6591"
    },
    "customer": {
        "givenName": "Leonardo",
        "surname": "Sobral ",
        "merchantCustomerId": "470.847.140-81",
        "email": "leonardo.sobral@allpago.com",
        "ip": "123.123.123.123"
    },
    "billing": {
        "street1": "Rua Thinkpad X1 Carbon",
        "city": "Limeira",
        "state": "SP",
        "postcode": "02902030",
        "country": "AR"
    },
    "customParameters": {
        "merchant_sitename": "www.allpago.com",
        "product": "Service 283",
        "render_type": "2",
        "url_logo": "https://scontent.fcgh19-1.fna.fbcdn.net/v/t31.18172-8/10830847_1513030722293080_991909997390580216_o.jpg?_nc_cat=103&ccb=1-7&_nc_sid=09cbfe&_nc_eui2=AeH03joJ390lvvQs0y8LbhU7U1scxmzDPgVTWxzGbMM-BfDr-xTYK9o5uzhcC_aiVYAfALZS87aTk0ZM8GGtaYyd&_nc_ohc=0ODgV_fu07gAX89y0aF&_nc_ht=scontent.fcgh19-1.fna&oh=00_AT9pmFsi-PyP-3jHqFMPsW-m8u9x8bY30-o2hgrfQr-KGA&oe=62AEDC54"
    },
    "buildNumber": "e1e4d45f1c4d9a9f2591bd0eddcd51d2ae66dc3b@2022-05-20 00:42:34 +0000",
    "timestamp": "2022-05-20 14:58:42+0000",
    "ndc": "8ac7a4c76b078d1f016b09cd06e304ee_6eff51c9bd7e4e4b963d2a07b1e906c5"
}

List of mandatory fields: --data-urlencode 'entityId=8ac7a4c76b078d1f016b09cd06e304ee' \ --data-urlencode 'amount=0.01' \ --data-urlencode 'currency=ARS' \ --data-urlencode 'paymentBrand=RAPI_PAGO' \ --data-urlencode 'paymentType=PA' \ --data-urlencode 'billing.country=AR'

2. Redirect the shopper The Rapipago voucher can be displayed both on desktop and mobile devices. Typically the user will expect to receive an email containing the order information and the link to display the Rapipago voucher. The voucher has to be printed, but there is an ongoing development in order to scan the payment slip directly from the mobile screen.

Redirect the shopper to the EXTERNAL_SYSTEM_LINK.

"EXTERNAL_SYSTEM_LINK":"https://test-rapipago.allpago.com/rapipago/rest/acon4/v1/barcode/8ac7a4a180e13cd40180e1fa59426830",

Sample of Rapipago voucher:

Receipt (RC) - Payment confirmation

Important: Not every Rapipago voucher will in fact be paid by your customer. Note that these will remain on the platform, even if already overdue.

Payment confirmations can be received by:

  • Instant Payment Notification (IPN) / Webhooks, (push)

  • XML Query (pull)

  • Business Intelligence Platform (BIP), (search)

PagoFácil - (Argentina only)

  • PagoFácil is a payment service in Argentina that allows its users to send money, top up their cell phone and payments. PagoFácil can be used for online purchases and for offline payment at 4,000 locations.

  • The customer is presented with a payment slip including a barcode, which can be paid in cash at the payment locations by scanning the slip at the terminal.

  • Different from other cash based PMs, PagoFácil offers realtime payment confirmations.

  • After successful payment, the customer is handed a printed receipt for the operation.

  • PPRO receives the payment confirmation and generates a payment confirmation transaction type (RC) in the system. The merchant receives via webhook a notification about the payment confirmation. (The merchant should provide its webhook URL).

{
    "type": "PAYMENT",
    "payload": {
        "id": "8ac7a4a180f46dd40180f64fff9758f5",
        "referencedId": "8ac7a49f80f46dd40180f64ffd575910",
        "paymentType": "RC",
        "paymentBrand": "PAGO_FACIL",
        "amount": "100.99",
        "currency": "ARS",
        "presentationAmount": "100.99",
        "presentationCurrency": "ARS",
        "descriptor": "4665.9054.5519 AR_PAGOFACIL CNL-T331 Test Pagofacil Transaction",
        "merchantTransactionId": "d58580f6-4dca-4a7f-8629-81784352df5f",
        "result": {
            "code": "000.100.112",
            "description": "Request successfully processed in 'Merchant in Connector Test Mode'",
            "randomField958178183": "Please allow for new unexpected fields to be added"
        },
        "customer": {
            "givenName": "P",
            "surname": "PRO - IT"
        },
        "billing": {
            "street1": "Calle florida",
            "city": "Buenos aires",
            "state": "BA",
            "postcode": "12345678",
            "country": "AR"
        },
        "authentication": {
            "entityId": "8a8294186242c2be01624d0416f620ee"
        },
        "redirect": {
            "parameters": []
        },
        "risk": {
            "score": ""
        },
        "timestamp": "2022-05-23 13:44:39+0000",
        "ndc": "8a8294186242c2be01624d0416f620ed_c0e0eadf0f7b4c00ab08e546a7474642",
        "merchantAccountId": "8ac7a4c8675ffec1016779db30f325ef",
        "channelName": "AR_PAGOFACIL",
        "source": "OPP"
    }
}
  • Advantage: Besides the instant confirmation, PagoFácil payments are not subject to chargebacks. Once the payment has been made it is final and can be refunded only by the merchant (PagoFácil does not have any native Refund functionality. Therefore a refund can only be performed via a bank transfer.).

  • PagoFácil has due dates, up to which a payment is possible. Please discuss the optimal due dates (expiry dates) with your Account Manager, as it depends on the industry. Reminder emails sent to the customer up to 3 days before the due date improve conversion significantly.

Preauthorization (PA) - Issue the PagoFácil voucher

1. Send an Initial Payment

curl --location --request POST 'https://test.oppwa.com/v1/payments' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer OGFjN2E0Y2E2NmM1OTMwMDAxNjZjNWRiMjQwMDAwOTF8QjloanhBelR6OA==' \
--header 'Cookie: ak_bmsc=FD08878DCC4684BE2371939E458C3B36~000000000000000000000000000000~YAAQPtsAycOBYJWAAQAAGPPE4g8KF6uIYXX9lMtfM6ia19MsPx2Lj+QTWwOmYVzcPATSmTMsdZPG4TpMGJa7My6gyTJHUOE9B7dtmqOCzW8sYI/E8isrKPwuQI+oa42Hhe/AzPbh2euXXmx1W5oDfrkODxai8uqPOBYWsajetpajqcxkOaPpBbyGBowT0LiSM2briKdGzlCaA4QzHnS125mUAerIHfJabY/VKVPgsDZDLgBs3gK/QFpRGoGTOygLEMx5+GADpAJfDBWzoSYVg+OhbplnD1AIkIHDbYv3EgGhPkoyD/8NZX+U1rS7gF68yUC8ynz+Pp/kGCL+OCXRCMze34s+C3LcD3rGV8Cm1RHWNapeO7CyabG2' \
--data-urlencode 'entityId=8ac7a4ca6b308f7c016b32565f2a02b4' \
--data-urlencode 'amount=491' \
--data-urlencode 'currency=ARS' \
--data-urlencode 'paymentBrand=PAGO_FACIL' \
--data-urlencode 'paymentType=PA' \
--data-urlencode 'descriptor=Service 193 - Boleto Generated 1653072107' \
--data-urlencode 'customer.givenName=Maynard' \
--data-urlencode 'customer.surname=Harber' \
--data-urlencode 'customer.email=Odell.Beier82@hotmail.com' \
--data-urlencode 'customer.ip=223.17.244.191' \
--data-urlencode 'merchantTransactionId=490' \
--data-urlencode 'billing.street1=Rua Thinkpad X1 Carbon' \
--data-urlencode 'billing.postcode=02902030' \
--data-urlencode 'billing.city=Limeira' \
--data-urlencode 'billing.state=SP' \
--data-urlencode 'billing.country=AR' \
--data-urlencode 'testMode=EXTERNAL' \
--data-urlencode 'customParameters[render_type]=2' \
--data-urlencode 'customer.merchantCustomerId=470.847.140-81' \
--data-urlencode 'customParameters[merchant_sitename]=www.allpago.com' \
--data-urlencode 'customParameters[product]=Service 348' \
--data-urlencode 'customParameters[url_logo]=https://scontent.fcgh19-1.fna.fbcdn.net/v/t31.18172-8/10830847_1513030722293080_991909997390580216_o.jpg?_nc_cat=103&ccb=1-7&_nc_sid=09cbfe&_nc_eui2=AeH03joJ390lvvQs0y8LbhU7U1scxmzDPgVTWxzGbMM-BfDr-xTYK9o5uzhcC_aiVYAfALZS87aTk0ZM8GGtaYyd&_nc_ohc=0ODgV_fu07gAX89y0aF&_nc_ht=scontent.fcgh19-1.fna&oh=00_AT9pmFsi-PyP-3jHqFMPsW-m8u9x8bY30-o2hgrfQr-KGA&oe=62AEDC54'
{
    "id": "8ac7a4a280e145b10180e2c4f0222ca2",
    "paymentType": "PA",
    "paymentBrand": "PAGO_FACIL",
    "amount": "797.00",
    "currency": "ARS",
    "descriptor": "0212.5091.7679 Service 508 - Boleto Generated 1653071997",
    "merchantTransactionId": "781",
    "result": {
        "code": "000.100.112",
        "description": "Request successfully processed in 'Merchant in Connector Test Mode'"
    },
    "resultDetails": {
        "ConnectorTxID1": "8ac7a4a280e145b10180e2c4f0222ca2",
        "connectorInstanceId": "127.0.0.1",
        "acquirerReturnCode": "0",
        "EXTERNAL_SYSTEM_BARCODE_IMAGE": "https://test-pagofacil.allpago.com/pagofacil/rest/acon4/v1/image/8ac7a4a280e145b10180e2c4f0222ca2",
        "EXTERNAL_SYSTEM_LINK": "https://test-pagofacil.allpago.com/pagofacil/rest/acon4/v1/barcode/8ac7a4a280e145b10180e2c4f0222ca2",
        "EXTERNAL_SYSTEM_BARCODE_NUMBER": "12345678002125091767933267217000000079700221430000000000000",
        "ExtendedDescription": "Transaction succeeded",
        "recurrence": "true",
        "merchantAccount": "pagofacil-local-dev",
        "aprId": "cb25d7ba-ffbe-49ff-b08d-631b05d41d84",
        "installments": "1",
        "connectorVersion": "1.0.0-SNAPSHOT",
        "AcquirerResponse": "000.000.000",
        "connectorName": "Pagofacil",
        "acquirerReturnMessage": "-",
        "acquirerTxId1": "8ac7a4a280e145b10180e2c4f0222ca2",
        "acquirerTxId2": "0212.5091.7679"
    },
    "customer": {
        "givenName": "Maria",
        "surname": "Connelly",
        "merchantCustomerId": "470.847.140-81",
        "email": "Fannie15@hotmail.com",
        "ip": "123.122.250.83"
    },
    "billing": {
        "street1": "Rua Thinkpad X1 Carbon",
        "city": "Limeira",
        "state": "SP",
        "postcode": "02902030",
        "country": "AR"
    },
    "customParameters": {
        "merchant_sitename": "www.allpago.com",
        "product": "Service 360",
        "render_type": "2",
        "url_logo": "https://scontent.fcgh19-1.fna.fbcdn.net/v/t31.18172-8/10830847_1513030722293080_991909997390580216_o.jpg?_nc_cat=103&ccb=1-7&_nc_sid=09cbfe&_nc_eui2=AeH03joJ390lvvQs0y8LbhU7U1scxmzDPgVTWxzGbMM-BfDr-xTYK9o5uzhcC_aiVYAfALZS87aTk0ZM8GGtaYyd&_nc_ohc=0ODgV_fu07gAX89y0aF&_nc_ht=scontent.fcgh19-1.fna&oh=00_AT9pmFsi-PyP-3jHqFMPsW-m8u9x8bY30-o2hgrfQr-KGA&oe=62AEDC54"
    },
    "buildNumber": "e1e4d45f1c4d9a9f2591bd0eddcd51d2ae66dc3b@2022-05-20 00:42:34 +0000",
    "timestamp": "2022-05-20 18:39:59+0000",
    "ndc": "8ac7a4ca6b308f7c016b32565f2a02b4_06385290a5664e9ab0ae3117ed49f9b6"
}

List of mandatory fields: --data-urlencode 'entityId=8ac7a4ca6b308f7c016b32565f2a02b4' \ --data-urlencode 'amount=0.01' \ --data-urlencode 'currency=ARS' \ --data-urlencode 'paymentBrand=PAGO_FACIL' \ --data-urlencode 'paymentType=PA' \ --data-urlencode 'billing.country=AR'

2. Redirect the shopper The PagoFácil voucher can be displayed both on desktop and mobile devices. Typically the user will expect to receive an email containing the order information and the link to display the PagoFácil voucher. The voucher has to be printed, but there is an ongoing development in order to scan the payment slip directly from the mobile screen.

Redirect the shopper to the EXTERNAL_SYSTEM_LINK.

"EXTERNAL_SYSTEM_LINK":"https://test-pagofacil.allpago.com/pagofacil/rest/acon4/v1/barcode/8ac7a4a280e145b10180e2c4f0222ca2",

Sample of PagoFácil voucher:

Receipt (RC) - Payment confirmation

Important: Not every PagoFácil voucher will in fact be paid by your customer. Note that these will remain on the platform, even if already overdue.

Payment confirmations can be received by:

  • Instant Payment Notification (IPN) / Webhooks, (push)

  • XML Query (pull)

  • Business Intelligence Platform (BIP), (search)

For a full list of Mandatory Parameters please, see the .

For a full list of parameters that can be sent in the initial payment request, please see the .

For a full list of Mandatory Parameters please, see the (Brazil - Boleto).

Instant Payment Notification (IPN) / , (push)

(pull)

For a full list of Mandatory Parameters please, see the (Mexico - Oxxo).

EXTERNAL_SYSTEM_LINK

Instant Payment Notification (), (push)

(pull)

For a full list of Mandatory Parameters please, see the (Brazil - PayPal).

Important: The baseUrl must end in a "/", e.g. "".

endpoint:

Please check the for all details.

Please check the for all details.

Please check the for all details.

Mandatory parameters by country
API Reference
Webhooks
XML Query
:"https://staging-oxxo-batch.allpago.com/rest/acon2/v1/barcode/8ac7a49f6a8bd5d4016a8e0dd0bf2c6e"
Webhooks
XML Query
https://test.oppwa.com/
https://test.oppwa.com/v1/payments/8a8294495baf2abe015bb603a5036098
Webhook Integration Guide
Webhook Integration Guide
Webhook Integration Guide
Card Payment (CC)
Boleto (PP)
Oxxo (PP)
PayPal (VA)
PIX
Rapipago
PagoFácil
Preauthorization (PA) + Capture (CP)
Debit (DB)
Mandatory parameters by country
Mandatory parameters by country
Mandatory parameters by country
Oxxo sample
Select RC and then click on RF
Add the information required and then click on Submit.
Transaction processed successfully.
Confirm success on the flow.
Sample of PIX
Sample of Rapipago
Sample of PagoFácil