EverSafePay API

Secure gateway to accept payments (Payin), send payouts, check status & real-time webhooks.

Base URL: https://eversafepay.com/v1

🔐 Authentication

Every request requires:

ParameterRequiredDescription
client_id✅ YesProvided by EverSafePay
secret_key✅ YesAPI Secret Key (keep secure)

1. Create Payment (Payin) — Webpage

POST /create_order

Generates a hosted payment page URL for customers.

📋 Request Parameters
ParameterDescription
client_idMerchant Client ID
secret_keyMerchant Secret Key
amountTransaction Amount
companyMerchant Name
descriptionOrder Description
first_nameCustomer First Name
last_nameCustomer Last Name
emailCustomer Email
phoneCustomer Phone
✅ Success Response (Webpage)
{
  "isError": false,
  "message": "Order created successfully",
  "data": {
    "order_id": "ORDdbb1f1e33caf",
    "payment_url": "https://codevasolutions.in/ohxgxuuiynnbmlkl/?token=..."
  }
}

UPI Intent Mode (create_upi)

POST /create_upi

Returns QR code (Base64) and deep-link UPI intent URL for instant app redirection.

📥 Same parameters as /create_order
📤 Success Sample
{
  "isError": false,
  "message": "Order created successfully",
  "data": {
    "order_id": "ORDc1d9a8a6ac5c",
    "amount": 100,
    "created_at": "2026-04-10 11:46:12",
    "qr_code": "data:image/png;base64,iVBORw0KGgo...",
    "payment_url": "upi://pay?mode=04&cu=INR&pa=codevasol@suryoday&pn=Codeva..."
  }
}
On failure both endpoints return: {"isError": true, "message": "Error details"}

Payment Status API (Payin)

POST /status

Check order status using order_id.

ParamRequired
client_id
secret_key
order_id
{
  "isError": false,
  "message": "Order Status Fetched Successfully",
  "utr": "123466",
  "status": "SUCCESS",
  "created_at": "2026-04-10 11:46:12",
  "updated_at": "2026-04-10 11:50:30"
}

⚠️ Failed: {"isError": true, "message": "Order Status Fetched Failed"}

Dynamic statuses: ATTEMPT, CREATED, SUCCESS, PENDING, FAILED.

Payout Request API

POST /payout/

Initiate bank transfer to beneficiary.

ParameterRequiredTypeDescription
client_idstringClient ID
secret_keystringAPI Secret
amountnumberPayout amount
namestringBeneficiary name
mobilestringMobile number
accountNumberstringBank account number
ifscCodestringIFSC code
bankNamestringBank name
📦 Payout Success Response
{
  "status": true,
  "message": "Payout request accepted",
  "data": {
    "order_id": "ORD1769172441",
    "amount": 1000,
    "status": "PENDING",
    "createdAt": "2026-01-23T12:47:22.161Z",
    "utr": "PO1769172442161RSR8MO",
    "beneficiary": {
      "name": "Test User",
      "accountNumber": "123456789012",
      "bankName": "HDFC Bank",
      "ifscCode": "HDFC0001234"
    }
  }
}

Payout Order Status API

POST /payout/ (same endpoint, but with order_id)

Retrieve payout status using order_id.

ParameterRequired
client_id
secret_key
order_id
{
  "success": true,
  "message": "Fetch success",
  "data": {
    "order_id": "ORD123",
    "amount": 1000,
    "status": "SUCCESS",
    "utr": "1234567890"
  }
}
Note: Payout callback/response schema is similar to status response — includes status and utr when completed.

Webhook / Callback (Real-time updates)

EverSafePay sends POST form-data (or JSON equivalent) to your configured callback URL for both Payin & Payout events.

📦 Callback Parameters (Payin & Payout common fields)
FieldTypeExampleDescription
order_idstringORD123456Unique order ID
amountnumber100Transaction amount
statusstringSUCCESS/PENDING/FAILEDCurrent status
codenumber200HTTP/Status code
messagestringPayment was SUCCESSStatus message
utrstring139708079707UTR / transaction reference
// Example form-urlencoded format
order_id=ORD123456&amount=100&status=SUCCESS&code=200&message=Payment+was+SUCCESS&utr=139708079707

Payout webhook example (callback response similar structure):

{
  "success": true,
  "message": "Fetch success",
  "data": {
    "order_id": "ORD123",
    "amount": 1000,
    "status": "SUCCESS",
    "utr": "1234567890"
  }
}

📊 Transaction Status Reference

Common status values across Payin & Payout:

StatusMeaningDescription
PENDINGProcessingPayment/Payout is in progress
SUCCESSCompletedTransaction successful
FAILEDFailedTransaction failed
REJECTRejectedRequest rejected by system/bank
REVERSALRefundedAmount reversed/refunded after success
ATTEMPTAttemptedCustomer initiated but not confirmed
CREATEDCreatedOrder generated

Important: PENDING may later transition to SUCCESS or FAILED. Always handle asynchronous updates via webhook.