```html API Documentation — payroxx / payroxx
payroxx API Docs
Authentication Get Balance GET Create Payin POST Payin Status POST Create Payout POST Payout Status POST Webhooks
Developer Platform

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.

REST
API architecture
JSON
Request & response
API v4
Current version
Webhook
Real-time updates

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.

Authentication Header
Authorization: API-KEY
Content-Type: application/json
Security: Never hard-code your production API key inside a frontend application. Store credentials securely on your backend/server environment.

Quick Start

A typical payment flow can be implemented in a few simple steps.

STEP 01
Authenticate

Add your API key to the Authorization header.

STEP 02
Create Transaction

Create a Payin or Payout transaction.

STEP 03
Track Status

Query the transaction using its order identifier.

STEP 04
Receive Webhook

Process the final transaction update on your server.

Get Balance

Retrieve the available account balance associated with your API credentials.

GET
https://api.payroxx.com/v4/api/account/balance

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 — Request
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.

POST
https://api.payroxx.com/v4/api/payin/initiate_payment

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 — Request
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"
}'
Success Response
JSON
{
  "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.

POST
https://api.payroxx.com/v4/api/payin/check_status

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 — Request
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"
}'
Success Response
JSON
{
  "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.

POST
https://api.payroxx.com/v4/api/payout/create_payout

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 — Request
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"
}'
Success Response
JSON
{
  "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.

POST
https://api.payroxx.com/v4/api/payout/check_status

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 — Request
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"
}'
Success Response
JSON
{
  "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.

User
UPI Payment
payroxx
Your Server

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.

Your webhook endpoint should be publicly accessible over HTTPS and should be designed to process transaction updates safely and idempotently.
Webhook Payload
JSON
{
  "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.

Your Server
payroxx
Bank

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.

Webhook Payload
JSON
{
  "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.

01
Create

Your server creates the Payin or Payout transaction.

02
Process

User payment or bank transfer is processed.

03
Notify

payroxx sends a webhook when transaction information is available.

04
Reconcile

Your server updates its database and reconciles transaction status.

Recommended practice: Treat webhooks as an important source of transaction updates, and use the status endpoints as a reconciliation mechanism when necessary. Your application should avoid blindly crediting or debiting User accounts based solely on a frontend redirect.
```