Enkash Developer Portal
Home
Home
Login
  1. Home
  • Back to home
  • Payment Gateway APIs
  • Merchant
    • Generate Authorization Token
      POST
    • Payment Modes Details
      GET
  • Order
    • Create Order
      POST
    • Get Order Status
      GET
    • Get Order By Merchant Order Id
      GET
    • Get BNPL Payment Methods
      GET
    • Get Dynamic UPI QR
      GET
    • UPI Intent Links
      GET
  • Payment
    • Submit Payment Request
      POST
    • Get Transaction Status
      GET
    • Validate OTP
      POST
    • Resend OTP
      GET
    • Payment Notify Request
      POST
    • Get UPI Transaction Status
      GET
    • Verify UPI VPA
      POST
  • Refund
    • Refund
      POST
  • Settlement
    • Get Settlement Payout By ID
      GET
    • Search Settlement Payouts
      POST
  • Split Settlement
    • Create Split Settlement Account
      POST
    • Update Split Settlement Account
      POST
    • Get All Split Settlement Account
      GET
    • Deactivate Split Settlement Account
      PATCH
    • Activate Split Settlement Account
      PATCH
    • Submit Payment with Split Details
      POST
    • Edit Or Deferred Split Settlement
      POST
  • E-Commerce Plugins
  • UPI QR
    • Create UPI QR
    • Get UPI QR
    • Search UPI QR
    • Create Customer
    • Search Customer
    • Cancel UPI QR
  • UPI Autopay
    • 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
    • Get Payment Link Details
    • Delete Payment Link
    • Webhook Request
  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
UPI Intent Links
Next
Submit Payment Request
Built with