Enkash APIs
HomePayment GatewayPayoutsCreate Account
HomePayment GatewayPayoutsCreate Account
Login
  1. APIs
  • Payment Gateway Overview
  • Getting Started
  • Payment Methods
  • Integration
  • API Endpoints
  • APIs
    • Authorisation
      • Get Authorization Token
    • Order
      • Create Order
      • Get Order Status
      • Get Order By Merchant Order Id
      • Get BNPL Payment Modes
      • Get Dynamic QR Code
      • UPI Intent Links
    • Payment
      • Submit Payment Detail
      • Get Transaction Status
      • Validate OTP
      • Resend OTP
      • Payment Notify Request
      • Get UPI Transaction Status
      • Verify VPA
    • Refund
      • Refund
    • Settlement
      • Settlement Reporting
      • Get Settlement Payout By ID
      • Search Settlement Payouts
    • Split Settlement
      • Create Split Settlement Account
      • Update Split Settlement Account
      • Get All Split Settlement Account
      • Deactivate Split Settlement Account
      • Activate Split Settlement Account
      • Submit Payment with Split Details
      • Edit/Deferred Split Settlement
    • E-Commerce Plugins
    • Payment Button
    • Qr Code
      • Create Qr Code
      • Get QR Code
      • Search QR Code
      • createCustomer
      • searchCustomer
      • Cancel QR Code
    • UPI Mandate
      • Create UPI Mandate
      • Update UPI Mandate
      • Revoke UPI Mandate
      • Get UPI Mandate
      • UPI mandate create callback
      • Mandate Pre-debit Notification
      • Execute mandate debit
      • Mandate Debit callback
    • Payment Links
      • Payment Links Overview
      • Payment Link APIs
      • Payment Link
        • Create Payment Link
        • Get Payment Link Details
        • Delete Payment Link
      • Payment Link Webhook
        • Payment Link Webhook Request
  1. APIs

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.
Previous
UPI Intent Links
Next
Submit Payment Detail
Built with