Server-to-Server

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.

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=="

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=="

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

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

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

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=="

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

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:

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

  • XML Query (pull)

  • 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=="

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=="

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

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.

EXTERNAL_SYSTEM_LINK:"https://staging-oxxo-batch.allpago.com/rest/acon2/v1/barcode/8ac7a49f6a8bd5d4016a8e0dd0bf2c6e"

Sample of Oxxo slip:

Receipt (RC) - Payment confirmation

Payment confirmations can be received by:

  • Instant Payment Notification (Webhooks), (push)

  • XML Query (pull)

  • 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=="

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

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.

Important: The baseUrl must end in a "/", e.g. "https://test.oppwa.com/".

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}

endpoint: https://test.oppwa.com/v1/payments/8a8294495baf2abe015bb603a5036098

curl -G https://test.oppwa.com/v1/payments/8a8294495baf2abe015bb603a5036098 \
 \
 -d "entityId=8a8294174e918ca6014e9c77fe772acb" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="

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'

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'

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'

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'

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'

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)

Last updated