Push 2 Payment
Introduction
Push Payment is a mobile application for payment platform in the form of e-money and its uniquely directly connected to the user's user account. For push payments, buyers accept and approve invoices and send payments, as is the case with pull payments. However, for push payments, the transaction process will automatically expire and the money will be paid directly into the seller's account. ACH, account payments and direct deposits are examples of push payments. With lower transaction costs and easier reconciliation processes, push payments are often used to convince suppliers to accept credit card payments.
In the field of digitization, payments for the future will be made easier. As with the PUSH2PAY payment method, ESPAY indirectly invites its users/customers to move closer to the era of digitization via the Internet and smartphones. In addition, users also get benefits like:
- User-friendly payment (Very SIMPLE, seriously!)
- Safer payment
- A better experience for users
For this payment method, previously required entities were:

Becomes,

With the convenience that payments offer, transactions become more enjoyable. It gives users a much better transaction experience than before.
"Payment methods that change your transaction experience"

Parameter Request & Parameter Response
Web Service to Push to Pay to Payment Application
Message Flow
Merchant → Espay
Method
HTTP Post
API URL
Endpoint Development: https://sandbox-api.espay.id/rest/digitalpay/pushtopay
Endpoint Production: https://api.espay.id/rest/digitalpay/pushtopay
Parameter Request:
Name Field | Attribute | Mandatory | Description |
rq_uuid | 64 | Yes | Request identifier. Unique ID to identify these messages with other messages |
rq_datetime | 19 | Yes | Date and time on the Espay application server when the message was sent |
comm_code | 32 | Yes | The seller code is registered in the Espay application |
order_id | 20 | Yes | Transaction number / invoice ID / unique ID that identifies the order / invoice / invoice |
product_code | 10 | Yes | The desired product code.
|
amount | 13 | Yes | Number of invoices to pay |
customer_id | 64 | Yes | Customer data
|
promo_code | 64 | No | Promo Code |
is_sync | 1 | No | 1 = Sync / 0 = Async Default Async |
branch_id | 64 | Optional | Branch ID |
pos_id | 64 | Optional | POS ID Machine |
description | 20 | Yes | Order description |
signature | 64 | Yes | Validation by the seller requires a signature |
Parameter Respone:
Name Field | Attribute | Mandatory | Description |
error_code | 4 | Yes | If error_code equal 0000 = Successful If error_code is not the same as 0000 = Failed to call request to Payment Application |
error_message | 32 | Yes | If error_code equal 0000 = Successful If error_code is not the same as 0000 = Failed to call request to Payment Application |
trx_id | 32 | Yes | Transaction ID of Espay |
QRLink | 64 | Yes | URL QR https://api.espay.id/gojek/QR/uafu-134fd-erdf-353--erdf-353-/ |
QRCode | BLOB | Yes | data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGB gcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UxwcKDcpLDAxNDQ0Hyc5PTgyP….. |
order_id | 20 | Optional | Transaction number / invoice ID / unique ID that identifies the order / invoice / invoice |
customer_id | 32 | Optional | Customer data
|
trx_status | 2 | Optional | Transaction Status |
amount | 13 | Optional | Invoice Amount |
approval_code | 64 | Optional | Approval code, reference of Bank |
product_code | 10 | Optional | Product code |
Signature
Each request must be signed for validation. The customer receives a secret key in a separate document. The key is processed into a signature using the following steps:
Step 1 :
Combine the parameters used in the following order:
##rq_uuid##comm_code##product_code##order_id##amount##mode##key##
Example :
rq_uuid : 123ABC-DEF456
comm_code : MYCOMMCODE
product_code : OVO
order_id : ORDER001
amount : 10000
key : S3cr317kEY
mode : PUSHTOPAY
The string is as follows:
Result = ##123ABC-DEF456##MYCOMMCODE##OVO##ORDER001##10000##PUSHTOPAY##S3cr317kEY##
Step 2 :
The results of step 1 in capital letters are as follows:
##123ABC-DEF456##MYCOMMCODE##OVO##ORDER001##10000##PUSHTOPAY##S3CR317KEY##
Step 3 :
Hash results from step 2 with sha256:
$sha256 = hash(sha256, '##123ABC-DEF456##MYCOMMCODE##OVO##ORDER001##10000##PUSHTOPAY##S3CR317KEY##')
Result = aa19e37e1bf6d5cfb23d59988d397f9ba6e79cf6853606e45a6809e0ca9a7b5d
The results of step 3 are used as the value of the signature parameter.