APM (QR/WALLET) API

Quick Pay - Merchant Scan

post

This endpoint processes a payment using a customer-provided authorization code (often from a QR code or barcode on their device). This is typically used in a "merchant-scan" scenario where the merchant's point-of-sale system scans the customer's payment code.

Header parameters
jwt-tokenstringRequiredExample: {{ecommerceToken}}
signstringRequiredExample: signtext
Body
clientIdstringRequired

Your unique developer ID.

transIndexCodestring · max: 60Required

The unique order ID generated by your system.

scanChannelstringRequired

The payment channel associated with the auth code.

amountstringRequired

The total transaction amount.

Example: 10.5
authCodestringRequired

The authorization code scanned from the customer's device.

tranCurrencystringRequired

The 3-letter ISO currency code for the transaction.

Example: USD
productDescstringOptional

A brief description of the product(s) or service(s).

payerTypestringOptional

The type of payer identifier. Required when scanChannel is MOMO.

Example: MSISDN
notifyUrlstringOptional

The callback URL where you will receive the final transaction result notification.

Responses
200Success
application/json
post
POST /ovstrade/openPay/microPay HTTP/1.1
Host: 
jwt-token: text
sign: text
Content-Type: application/json
Accept: */*
Content-Length: 189

{
  "clientId": "825429536610058240",
  "transIndexCode": "20250401123534801",
  "scanChannel": "M_PAY",
  "amount": "10.5",
  "authCode": "awrawfsfegojpenmfkapowngpawngpgrigawfnrtujgpsn",
  "tranCurrency": "USD"
}
200Success
{
  "code": 200,
  "msg": "success",
  "timestamp": "2024-08-12 14:45:54",
  "data": {
    "mid": "10800000003",
    "paywizardId": "1000000011",
    "checkoutId": "768878984749514752",
    "transIndexCode": "202504011341223232135",
    "state": 0,
    "amount": "100.21"
  }
}

Generate QR Code - Customer Scan

post

This endpoint allows you to generate a QR code for a "customer-scan" payment scenario. The customer scans the generated QR code with their device to complete the payment.

Query parameters
jwt-tokenstringOptionalExample: {{ecommerceToken}}
Header parameters
jwt-tokenstringRequiredExample: {{ecommerceToken}}
signstringRequiredExample: signtext
Body
clientIdstringRequired

Your unique developer ID.

transIndexCodestring · max: 60Required

The unique order ID generated by your system.

payChannelstringRequired

The payment channel to be used.

amountstringRequired

The total transaction amount.

Example: 10.5
currencystringRequired

The 3-letter ISO currency code for the transaction amount. For PIX transactions, this must be BRL.

Example: BRL
exchangeCurrencystringOptional

The currency code for settlement. Valid values: BRL, USD, EUR. Required for PIX transactions. Currently only BRL is supported.

Example: BRL
documentNumberstringOptional

The customer's tax identification number (e.g., CPF or CNPJ). Required for PIX transactions.

socialNamestringOptional

The full name of the customer. Required for PIX transactions.

dynamicPixExpiresAtstringOptional

The expiration timestamp for a dynamic PIX QR code in ISO 8601 format: YYYY-MM-DDTHH:mm:ssZ.

productDescstringOptional

A brief description of the product(s) or service(s).

notifyUrlstringOptional

The callback URL where you will receive the transaction result notification.

Responses
200Success
application/json
post
POST /ovstrade/openPay/generateQrCode HTTP/1.1
Host: 
jwt-token: text
sign: text
Content-Type: application/json
Accept: */*
Content-Length: 256

{
  "clientId": "825429536610058240",
  "amount": "0.01",
  "payChannel": "PIX",
  "transIndexCode": "12313254654120",
  "notifyUrl": "https://oversea.hs1c.cn/xxx/thirdNotify/callback",
  "dynamicPixExpiresAt": "2025-06-25T16:30:09.845Z",
  "currency": "BRL",
  "exchangeCurrency": "USD"
}
200Success
{
  "code": 200,
  "msg": "success",
  "timestamp": "2024-08-12 14:45:54",
  "data": {
    "mid": "10800000003",
    "paywizardId": "1000000011",
    "checkoutId": "768878984749514752",
    "transIndexCode": "202504011341223232135",
    "qrCode": "00020101021226990014br.gov.bcb.pix2577pix.bancogenial.com/qrs1/v2/017si5czJTt4zOys319ukH9l1UD8m94JJ0xnElX3Bc6rMK3ug52040000530398654041.005802BR5923FACILITA PAGAMENTOS S/A6009SAO PAULO62070503***6304B8B8",
    "amount": "100.21"
  }
}

Query Transaction Status

post

This endpoint allows you to query the status and details of a specific transaction using either the platform's checkoutId or your original transIndexCode.

Header parameters
jwt-tokenstringRequiredExample: {{ecommerceToken}}
signstringRequiredExample: signtext
Body
clientIdstringRequired

Your unique developer ID.

checkoutIdstringOptional

The unique transaction ID generated by the payment platform.

transIndexCodestringOptional

The unique order ID that was generated by your system.

Responses
200Success
application/json
post
POST /ovstrade/openPay/queryOrder HTTP/1.1
Host: 
jwt-token: text
sign: text
Content-Type: application/json
Accept: */*
Content-Length: 107

{
  "clientId": "825429536610058240",
  "checkoutId": "202504011341223232135",
  "transIndexCode": "20250401123534801"
}
200Success
{
  "code": 200,
  "msg": "success",
  "timestamp": "2024-08-12 14:45:54",
  "data": {
    "mid": "10800000003",
    "paywizardId": "1000000011",
    "checkoutId": "768878984749514752",
    "transIndexCode": "202504011341223232135",
    "state": 2,
    "amount": "100.21",
    "tranTime": "2025-06-04 17:03:21"
  }
}

Refund

post

This endpoint is used to issue a full or partial refund for a previously completed transaction.

Note: Partial refunds are not supported by all payment channels. Please check the documentation for your specific channel.

Header parameters
jwt-tokenstringRequiredExample: {{ecommerceToken}}
signstringRequiredExample: signtext
Body
clientIdstringRequired

Your unique developer ID.

transIndexCodestring · max: 60Required

A new, unique order ID for this specific refund request, generated by your system.

oriCheckoutIdstringOptional

The original checkoutId of the transaction you want to refund.

oriTransIndexCodestringOptional

The original transIndexCode of the transaction you want to refund.

amountstringRequired

The amount to be refunded.

notifyUrlstringOptional

The callback URL where you will receive the final refund result notification.

Responses
200Success
application/json
post
POST /ovstrade/openPay/refundOrder HTTP/1.1
Host: 
jwt-token: text
sign: text
Content-Type: application/json
Accept: */*
Content-Length: 127

{
  "clientId": "825429536610058240",
  "transIndexCode": "202506091432000000013",
  "oriCheckoutId": "917121926164512768",
  "amount": "0.01"
}
200Success
{
  "code": 200,
  "msg": "success",
  "timestamp": "2025-06-09 15:32:00",
  "data": {
    "mid": "007889-3-006",
    "paywizardId": "10280000002",
    "checkoutId": "917122074735149056",
    "transIndexCode": "202506091432000000015",
    "amount": "0.01",
    "result": 0,
    "oriCheckoutId": "917121926164512768",
    "oriTransIndexCode": "202506091432000000012"
  }
}

Void

post

This endpoint is used to reverse (or void) a transaction. A reversal is typically used to cancel a transaction on the same day it was made, before the funds have settled.

Note: Partial reversals are not supported by all payment channels.

Header parameters
jwt-tokenstringRequiredExample: {{ecommerceToken}}
signstringRequiredExample: signtext
Body
clientIdstringRequired

Your unique developer ID.

transIndexCodestring · max: 60Required

A new, unique order ID for this specific refund request, generated by your system.

oriCheckoutIdstringRequired

The original checkoutId of the transaction you want to refund.

oriTransIndexCodestringRequired

The original transIndexCode of the transaction you want to refund.

amountstringRequired

The amount to be refunded.

notifyUrlstringRequired

The callback URL where you will receive the final refund result notification.

Responses
200Success
application/json
post
POST /ovstrade/openPay/reversalOrder HTTP/1.1
Host: 
jwt-token: text
sign: text
Content-Type: application/json
Accept: */*
Content-Length: 127

{
  "clientId": "825429536610058240",
  "transIndexCode": "202506091432000000013",
  "oriCheckoutId": "917121926164512768",
  "amount": "0.01"
}
200Success
{
  "code": 200,
  "msg": "success",
  "timestamp": "2025-06-09 15:32:00",
  "data": {
    "mid": "007889-3-006",
    "paywizardId": "10280000002",
    "checkoutId": "917122074735149056",
    "transIndexCode": "202506091432000000014",
    "amount": "0.01",
    "result": 0,
    "oriCheckoutId": "917121926164512768",
    "oriTransIndexCode": "202506091432000000012"
  }
}

Close Order

post

This endpoint is used to close an order that has been created but has not yet been paid. This action prevents the customer from completing the payment for the specified transaction.

Header parameters
jwt-tokenstringRequiredExample: {{ecommerceToken}}
signstringRequiredExample: signtext
Body
clientIdstringRequired

Your unique developer ID.

checkoutIdstringOptional

The unique transaction ID generated by the payment platform.

transIndexCodestringOptional

The unique order ID that was generated by your system.

Responses
200Success
application/json
post
POST /ovstrade/openPay/closeOrder HTTP/1.1
Host: 
jwt-token: text
sign: text
Content-Type: application/json
Accept: */*
Content-Length: 107

{
  "clientId": "825429536610058240",
  "checkoutId": "202504011341223232135",
  "transIndexCode": "20250401123534801"
}
200Success
{
  "code": 200,
  "msg": "success",
  "timestamp": "2024-08-12 14:45:54"
}