EnKash Developer Portal
Home
Home
Login
  1. Home
  • Back to home
  • APIs - Payment Gateway
  • Authorization
    • Generate Authorization Token
    • Payment Modes Details
  • Order
    • UPI Intent Links
    • Get Dynamic UPI QR
    • Create Order
    • Get Order Status
    • Get Order By Merchant Order Id
    • Get BNPL Payment Methods
    • Search Order
  • Payment
    • Get Transaction Status
    • Submit Payment Request
    • Payment Notify Request
    • Verify UPI VPA
    • Validate OTP
    • Get UPI Transaction Status
    • Resend OTP
    • Search Transaction
  • Refund
    • Refund
    • Get Refund Transaction Status
    • Refund Webhook Request
  • Settlement
    • Get Settlement Payout By ID
    • Search Settlement Payouts
  • Split Settlement
    • Get All Split Settlement Account
    • Deactivate Split Settlement Account
    • Submit Payment with Split Details
    • Activate Split Settlement Account
    • Edit Or Deferred Split Settlement
    • Create Split Settlement Account
    • Update Split Settlement Account
    • Get IntentLink/QrCode with Split details
  • E-Commerce Plugins
  • UPI QR
    • Create UPI QR
    • Get UPI QR
    • Search UPI QR
    • Create Customer
    • Search Customer
    • Cancel UPI QR
  • UPI Autopay
    • Mocking & Simulator (UAT)
    • Create UPI Mandate
    • Update UPI Mandate
    • Revoke UPI Mandate
    • Get UPI Mandate
    • UPI Mandate Callback
    • Mandate Pre-debit Notification
    • Execute Mandate Debit
    • Mandate Debit Callback
  • Payment Links
    • Payment Link APIs
    • Create Payment Link
    • Webhook Request
    • Get Payment Link Details
    • Delete Payment Link
  • E-Collect
    • Create Virtual Account
    • View Virtual Account by Id
    • Update Virtual Account
    • View Virtual Account by Account Number
    • Search Virtual Account
    • Search Transactions
    • View Virtual Account by Customer Reference Id
  1. Home

Payment Lifecycle and Request Structure

The EnKash Payment Gateway provides a secure and scalable platform for processing digital payments. To initiate a transaction, you must create a well-structured payment request containing essential payment details.

Payment Lifecycle#

Understanding payment statuses helps in managing transaction states effectively:
StatusDescription
CREATEDPayment request initialized.
AUTHORIZEDPayment authorized post OTP (if applicable).
PENDING_WITH_BANKAwaiting confirmation from the customer’s bank.
SUCCESSPayment successfully completed.
FAILEDPayment failed due to error, decline, or timeout.
CANCELLEDPayment cancelled by the user.
PARTIALLY_REFUNDEDA portion of the transaction amount has been refunded.
REFUNDEDFull amount has been refunded.

Payment Request Structure#

Submit a JSON payload with required fields based on the selected payment mode:
FieldTypeRequiredDescription
orderIdstringYesUnique identifier for the transaction.
paymentDetailobjectOptionalContains amount and currency.
paymentModestringYesAccepted values: NET_BANKING, UPI, CREDIT_CARD, DEBIT_CARD, PREPAID_CARD, PAY_LATER, WALLET, CORPORATE_CARD
cardHolderNamestringDependsRequired for card-based payments.
cardNumberstringDependsRequired for card-based payments.
cvvstringDependsRequired for card-based payments.
expirystringDependsFormat: MM/YY. Required for card-based payments.
bankCodestringDependsRequired for NetBanking, BNPL, and Wallet modes.
bnplPaymentOptionIdstringDependsRequired for BNPL mode.
vpastringDependsRequired for UPI mode.
accountNumberstringDependsRequired for UPI TPV. Must be between 9–36 characters.
ifscstringDependsRequired for UPI TPV. Must match ^[A-Z]{4}0[A-Z0-9]{6}$.

Example Payment Request#

{
  "orderId": "ORD123456789",
  "paymentDetail": {
    "amount": 1000,
    "currency": "INR"
  },
  "paymentMode": "CREDIT_CARD",
  "cardHolderName": "John Doe",
  "cardNumber": "4111111111111111",
  "cvv": "123",
  "expiry": "12/24",
  "bankCode": "HDFC",
  "vpa": "john.doe@upi",
  "accountNumber": "123456789012",
  "ifsc": "HDFC0001234"
}

Key Considerations#

UniqueorderId
Must be unique per transaction to avoid payment duplication.
Field Validation
Format and validate card/UPI/bank details on the client side to prevent backend errors.
Error Handling
Implement logic for status transitionsFAILED,PENDING_WITH_BANK,CANCELLED
Security
Ensure sensitive fields are handled over secure connections and never exposed on the client.
Modified at 2025-07-05 12:02:39
Previous
Search Order
Next
Get Transaction Status
Built with