Installments

Installment transactions are available for the following transactions:

Channels (entityId) for installments

For the purposes of processing installments transactions, a dedicated channel (entity ID) will be created, per country. The number of installments is determined in the payment request, which is explained in further detail in the “Implementation” section below.

For example:

Brazil

  • BR_CC_Installments

Mexico

  • MX_CC_Installments

Calculation of installments

From a technical perspective, a transaction in installments is one single transaction. The issuing bank handles the charges to the customer, which will occur each month.

The calculation of the installments amount for each month is done by dividing the amount by the number of installments. The resulting value is then added up with a precision of two decimals. In case the result is lower than the amount, the missing fraction is added to the first installment.

Brazil

Example:

Transaction of 100.00 BRL in 3 installments:

  • 100.00 BRL/ 3 = 33,33 BRL

  • 33,33 BRL x 3 = 99,99 BRL

First installment: BRL 33,34 2nd and 3rd installments: BRL 33,33

Mexico

Example:

Transaction of 300.00 MXN in 3 installments:

  • 300.00 BRL/ 3 = 100.00 MXN

First installment: 100.00 MXN 2nd and 3rd installments: 100.00 MXN

Limitations

From a technical perspective, up to 12 installments are allowed. Please check back with the Project Owner the maximum number of installments agreed in your contract.

Minimum amount for an installment

Brazil

The minimum amount for an installment is 5.00 BRL. Ex: Total DB amount 10.00 BRL in 2 installments (5.00 BRL/installment).

Mexico

The minimum total Amount for 3, 6, 9 and 12 installments are:

Note: 2, 4, 5, 7, 8, 10 and 11 installments are not supported in Mexico! You should obligatory send exactly 3, 6, 9 or 12 installments in according to the minimum amount above.

Implementation

Installments transactions have a single parameter added to a “normal” transaction: recurring.numberOfInstallments.

PPRO supports two flows for processing Credit and Debit Card transactions, either Debit (DB) Flow or Preauthorization (PA) and Capture (CP) flow. Both flows are valid; please discuss both options with your Account Manager.

  1. Debit (DB) flow authorizes and debits card holder’s account in a single step.

  2. Preauthorization (PA) and Capture (CP) flow splits authorizes and debiting card holder’s account into two steps.

Note: In Mexico installments are not available for Amex PA (Preauthorization)!

Note: For recurring transactions the CVV is not mandatory!

Test Cards

Brazil

Mexico

COPYandPAY - Installments

Debit (DB)

curl https://test.oppwa.com/v1/checkouts \
 -d "entityId=8a8294174e918ca6014e9c6f5ae12a9c" \
 -d "amount=100.00" \
 -d "currency=BRL" \
 -d "paymentType=DB" \
 -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 "recurring.numberOfInstallments=3" \
 -d "recurringType=INITIAL" \
 -d "testMode=EXTERNAL" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="

To create the payment form you just need to add the following lines of HTML/Javascript to your page and populating the following variables • The checkout id that you got in the response from step 1

<script src="https://test.oppwa.com/v1/paymentWidgets.js?checkoutId={checkoutId}"></script>

The shopperresultUrl, is the page on your site where the customer should be redirected to after the payment is processed and the brands that will be available

<form action="{shopperResultUrl}" class="paymentWidgets"> VISA MASTER AMEX DINERS DISCOVER ELO JCB</form>

After you input the credit card data on the form above, the request for payment is processed.

PreAuthorization (PA) + Capture (CP)

curl https://test.oppwa.com/v1/checkouts \
 -d "entityId=8a8294174e918ca6014e9c6f5ae12a9c" \
 -d "amount=100.00" \
 -d "currency=BRL" \
 -d "paymentType=PA" \
 -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 "recurring.numberOfInstallments=3" \
 -d "recurringType=INITIAL" \
 -d "testMode=EXTERNAL" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="

To create the payment form you just need to add the following lines of HTML/Javascript to your page and populating the following variables • The checkout id that you got in the response from step 1

<script src="https://test.oppwa.com/v1/paymentWidgets.js?checkoutId={checkoutId}"></script>

The shopperresultUrl, is the page on your site where the customer should be redirected to after the payment is processed and the brands that will be available

<form action="{shopperResultUrl}" class="paymentWidgets"> VISA MASTER AMEX DINERS DISCOVER ELO JCB</form>

Get the payment status - Preauthorization (PA)

curl -G https://test.oppwa.com/v1/checkouts/{id}/payment \
 -d "entityId=8a8294174e918ca6014e9c6f5ae12a9c" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="

Capture the payment:

curl https://test.oppwa.com/v1/payments/{id} \
 -d "entityId=8a8294174e918ca6014e9c6f5ae12a9c" \
 -d "amount=100.00" \
 -d "currency=BRL" \
 -d "paymentType=CP" \
 -d "testMode=EXTERNAL" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="

Server-to-Server - Installments

Debit (DB)

curl https://test.oppwa.com/v1/payments \
 -d "entityId=8a8294174e918ca6014e9c6f5ae12a9c" \
 -d "amount=15.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=2020" \
 -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 "recurring.numberOfInstallments=3" \
 -d "recurringType=INITIAL" \
 -d "testMode=EXTERNAL" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="

PreAuthorization (PA) + Capture)

curl https://test.oppwa.com/v1/payments \
 -d "entityId=8a8294174e918ca6014e9c6f5ae12a9c" \
 -d "amount=300.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=2020" \
 -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 "recurring.numberOfInstallments=3" \
 -d "recurringType=INITIAL" \
 -d "testMode=EXTERNAL" \
 -H "Authorization: Bearer OGE4Mjk0MTcyODFiOGVlMzAxMjgyOTkwNjZmNTBjZGJ8ZGVtbw=="

Last updated