Payment Request v1.0
Payment Request v1.0 Specification
Version 1.0
version
Payment Request version
1.0
destination.alias
Payee alias
@merchant1
source.alias
Payer alias
@user1
amount
Payment amount
100.12
asset
Payment currency
USD
description
Payment description
Order #1
tags
Array of tags
["online","sport"]
data.system
Ecommerce system that generated Payment request.
VTEX
data.callback
Status change callback URL.
https://domain.com/orangepill/payment
data.store
Store name
Pet shop Barney
data.merchant
Merchant name
Pet shop Ltd.
data.cart
Related cart id
cart737743
data.order
Related order id
623347473
data.invoice
Related invoice id
INV122-3
data.image
base64 invoice scan
data.valid_until
UNIX timestamp. Validity expiry rule.
172266633528382
data.not_before
UNIX timestamp. Validity expiry rule.
172266633522332
Static Payment Requests
Static Payment Requests contain only information about the payee, the receiver of payment and lack the information about exact amounts and payment reference. Example of Static Payment Requests are QR codes exposed at Merchant stores. Payer use this Payment Request to initiate the payment flow, yet needs to add additional information about the exact amount and reference of payment.
Dynamic Payment Requests
Dynamic Payment Requests contain both complete information about the payee and the information about exact amounts and payment reference. Example of Dynamic Payment Requests are QR codes generated at checkout process on e-commerce platforms or printed on POS devices. Payer use this Payment Request to initiate the payment flow with known total amount and reference of payment.
Direct Payment Requests
Direct Payment Requests contain complete information about the payee, payer and the information about exact amounts and payment reference. Example of Direct Payment Requests are subscriptions and recurring payments. Payer receives notification about Payment Request and initiates the payment flow with known total amount and reference of payment.
Create Payment Request v1.0
When creating new Apps.Payment you can use additional fields.
Use data object to add custom fields and data.
Use description object to add custom description.
Use data.valid_until to define expiry for this Payment Request. Any transaction sent will change status to LATE.
Use data.not_before to define if there is start date to accept payments for this Payment Request. Any transaction sent will change status to EARLY.
In response we get new Payment Request object.
Get Payment Request details
You can get details of Payment Requests by providing id.
In response we get Payment Request entity.
Delete Payment Request
To delete Payment Request use following call.
In response we get id of deleted Payment Request object.
List Payment Requests
You can list all Payment Requests or filter them using query method..
In response we get array of Payment Requests.
Generate QR Code for URL
You can encode URL as QR code. Use it to generate code with link for conversational channels like WhatsApp or custom URL for your mobile application.
Use endpoint GET /v1/apps/payment/qr/:format/:width/:data to get image of QR code form Orangepill platform.
Supported formats are png and base64.
Use parameter
widthto define the size of QR code.Use parameter
datato provide URL you want to encode.

Use encodeUrl method for data parameter. For example URL https://wa.me/447860034005?text=payment code q0YR6lzpXJiNo5GMjwXk should be encoded like https%3A%2F%2Fwa.me%2F447860034005%3Ftext%3Dpayment%2520code%2520q0YR6lzpXJiNo5GMjwXk.
PNG format of QR Code
In response we get QR code in PNG format.

base64 format of QR code
In response we get base64 format of QR code PNG image.
Generate QR Code for Payment Request Unique Code
You can encode Payment Request Unique Code as QR code.
Use endpoint GET /v1/apps/payment/:payment_requst_unique_code/qr/:format/:width to get image of QR code form Orangepill platform.
Supported formats are png and base64.
Use parameter
widthto define the size of QR code.

PNG format of QR Code
In response we get QR code in PNG format.

base64 format of QR code
In response we get base64 format of QR code PNG image.
Reveal QR Code
You can use Orangepill API to reveal the image of QR code and decode the Payment Request Unique Code.
You must provide QR code in base64 format.
In response we get Payment Request Unique Code.
Make payment
To make payment and change status of the Payment Request, you must create transaction of type payment and reference Payment Request in related object.
Transaction can be in any currency. After the transaction is processed, amount in transaction asset is calculated and compared to amount in Payment Request currency. If transaction amount is equal or greater than the amount of Payment Request, status will be changed to DONE. If amount of transaction is less then amount in Payment Request, status will be changed to INCOMPLETE.
After the Payment Request status is changed, Orangepill core will call callback URL.
In response we get new Transaction object.
Last updated