Build payments
without the complexity.
Integrate payroxx / payroxx APIs to collect payments, initiate payouts, monitor transaction status and receive real-time transaction updates through webhooks. Everything you need to build a modern payment experience is available through a simple REST API.
Authentication
Every API request should include your API key in the Authorization header.
API Key Authentication
Authenticate requests using the API key issued to your account. Include the key in the Authorization header for every API request. Keep your API key private and never expose it in browser-side JavaScript or public repositories.
Authorization: API-KEY Content-Type: application/json
Quick Start
A typical payment flow can be implemented in a few simple steps.
Authenticate
Add your API key to the Authorization header.
Create Transaction
Create a Payin or Payout transaction.
Track Status
Query the transaction using its order identifier.
Receive Webhook
Process the final transaction update on your server.
Get Balance
Retrieve the available account balance associated with your API credentials.
How it works
Your server sends an authenticated request to the balance endpoint. The API identifies the account using your API key and returns the current account balance. This endpoint can be used by dashboards, reconciliation systems and internal transaction services.
curl --location 'https://api.payroxx.com/v4/api/account/balance' \ --header 'Authorization: API-KEY' \ --header 'Content-Type: application/json'
Create Payin Intent
Create a payment transaction and receive a UPI deeplink and payment link.
How the Payin flow works
Your backend creates a Payin Intent by sending the User and transaction information. payroxx creates the transaction and returns transaction details including a transaction ID, UPI deeplink and hosted payment link. You can use the returned payment link to redirect the User to the payment experience, or use the UPI deeplink where supported.
| Parameter | Type | Required | Description |
|---|---|---|---|
User_name
|
String | Yes | User name |
amount
|
String | Yes | Transaction amount |
txnid
|
String | Yes | Your unique transaction/order ID |
User_email
|
String | Yes | User email address |
User_mobile
|
String | Yes | User mobile number |
curl --location "https://api.payroxx.com/v4/api/payin/create_payin" \
--header "Authorization: API-KEY" \
--header "Content-Type: application/json" \
--data-raw '{
"user_name": "Alex",
"amount": "100",
"txnid": "TXN_9988",
"user_email": "alex@gmail.com",
"user_mobile": "XXXXXX0989"
}'
{
"status": "true",
"msg": "Transaction Successful",
"order_details": {
"tid": "PAYR326020...",
"deeplink": "upi://pay?pa=payroxx@nsdlpbma&pn=payroxx%20PAYMENT%20SOLUTIONS&mc=6012&tr=537557917695082544&tn=Topup&am=100&cu=INR&mode=05&orgid=181046&purpose=00&catagory=01&tid=NPT017695082544&sign=MEUC=",
"payment_link": "https://api.payroxx.com/payment_initiate.php?amount=100&id=TXN0699o44r5074&txn=Payroxx3260325032149105296"
}
}
Payin Status Check
Check the current status and payment details of a Payin transaction.
How it works
Send the order ID generated during Payin creation. The API returns the transaction amount, bank UTR, transaction status, transaction ID and payer VPA when available. Your server can use this endpoint to reconcile a transaction when required.
curl --location "https://api.payroxx.com/v4/api/payin/check_status" \
--header "Authorization: API-KEY" \
--header "Content-Type: application/json" \
--data-raw '{
"txnid": "TXN_9988"
}'
{
"status": "true",
"msg": "Successfully Found",
"order_details": {
"amount": "100",
"bank_utr": "123456",
"status": "success",
"tid": "123456",
"txnid": "udf1",
"payer_vpa": "text@ypbiz"
}
}
Create Payout
Initiate a bank transfer using beneficiary and transaction information.
How the Payout flow works
Your backend sends a unique transaction identifier, beneficiary details, bank information and payout amount. The API creates the payout transaction and returns transaction details including the bank UTR when available and the current transaction status. A payout may initially return a pending status while the banking process is being completed.
| Parameter | Type | Description |
|---|---|---|
mid
|
String | Unique transaction ID |
name
|
String | Beneficiary name |
account_number
|
String | Beneficiary bank account number |
ifsc_code
|
String | Beneficiary IFSC code |
amount
|
String | Payout amount |
bank
|
String | Bank name |
curl --location "https://api.payroxx.com/v4/api/payout/create_payout" \
--header "Authorization: API-KEY" \
--header "Content-Type: application/json" \
--data-raw '{
"mid": "Unique TXN Id",
"name": "hello",
"account_number": "ACCOUNT NUMBER",
"ifsc_code": "IFSC CODE",
"amount": "100 TO 25000",
"bank": "BANK NAME"
}'
{
"status": "true",
"msg": "Transaction Successfull",
"order_details": {
"bank_utr": 1,
"tid": 1,
"status": "pending"
}
}
Payout Status Check
Retrieve the latest status of a payout transaction.
How it works
Send the same mid that was used when creating the payout. The API returns the transaction amount, bank UTR, current status, transaction ID and merchant transaction ID.
curl --location "https://api.payroxx.com/v4/api/payout/check_status" \
--header "Authorization: API-KEY" \
--header "Content-Type: application/json" \
--data-raw '{
"mid": "Unique TXN Id"
}'
{
"status": "true",
"msg": "Status Found",
"order_details": {
"amount": "100",
"bank_utr": "123456",
"status": "success",
"tid": "123456",
"mid": "m1234"
}
}
Payin Webhook
Receive a server-to-server notification when a User completes a Payin transaction.
How the Payin Webhook works
After a User completes a QR payment, payroxx sends the transaction information to the webhook URL configured for your application. Your server should receive the request, validate the transaction data and update your internal order status.
{
"status": "true",
"msg": "Payin Webhook",
"order_details": {
"amount": "100.00",
"bank_utr": "386034893990",
"status": "success",
"tid": "EXP326020111911674484",
"txnid": "11005308437",
"payee_vpa": "Upi"
}
}
Payout Webhook
Receive the bank UTR and final payout status once the bank confirms the transfer.
How the Payout Webhook works
When the bank confirms the payout, payroxx pushes the latest transaction information to your configured webhook endpoint. Your server can use the bank UTR and transaction status to update the payout record in your database.
{
"status": "true",
"msg": "Payout Webhook",
"order_details": {
"status": "success",
"bank_utr": "12345678",
"tid": "12345678",
"amount": "300",
"mid": "m1234"
}
}
Transaction Lifecycle
Recommended architecture for handling transaction creation, status checks and webhooks.
Create
Your server creates the Payin or Payout transaction.
Process
User payment or bank transfer is processed.
Notify
payroxx sends a webhook when transaction information is available.
Reconcile
Your server updates its database and reconciles transaction status.