> ## Documentation Index
> Fetch the complete documentation index at: https://doc-test-my.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment Method Error Parameters

> List of values for Source and Step parameters for each payment method supported by Razorpay.

There are certain error codes specific for each payment method supported by Razorpay. To understand the errors and their `reasons`, it is recommended to know the `source` (stakeholders) and the `steps` involved in the payment flows:

* [Cards](#cards)
* [FPX](#fpx)
* [Wallet](#wallet)

## Cards

<Tabs>
  <Tab title="Source Parameter">
    The possible values for the `source` parameter for cards are listed below:

    * `customer`
    * `business`
    * `internal`
    * `gateway`
    * `issuer_bank`
  </Tab>

  <Tab title="Step Parameter">
    The possible values for the `step` parameter, along with the description, are listed below:

    1. `payment_initiation`<br />
       Your system initiates and sends the payment request to our server. Our server validates your request, creates the payment flow and forwards the request to the Gateway.

    2. `card_enrollment_check`<br />
       Upon receiving a request from Razorpay, Gateway sends the enrollment check request to the bank for the enrollment of the card check.

    3. `payment_authentication`<br />
       The bank verifies the enrollment of the card, and then requests the authentication of the customer by sending 3DS URL and OTP to the customer.

       * 3DS URL<br />
         Bank sends the Authentication (3DS URL), which is routed through Gateway > Razorpay > Customer.

       * OTP<br />
         The bank sends the OTP to the customer’s mobile directly. The customer enters the valid OTP within the time on the bank's OTP page.

    4. `payment_authorization`<br />
       Once the customer has completed the authentication, the bank authorises the release of the funds. The authorisation status is communicated to the Gateway which in turn communicates the same to Razorpay.

    5. `payment_capture`<br />
       Once the payment is successfully authorised, Razorpay sends the capture request to the Gateway which in turn sends the same to the bank to capture the authorised payment.
  </Tab>
</Tabs>

## FPX

<Tabs>
  <Tab title="Source Parameter">
    The possible values for the `source` parameter for FPX are listed below:

    * `customer`
    * `business`
    * `internal`
    * `issuer_bank`
  </Tab>

  <Tab title="Step Parameter">
    The possible values for the `step` parameter, along with the description, are listed below:

    1. `payment_initiation`<br />
       Your system initiates and sends the payment request to our server. Razorpay sends the bank URL back to you.

    2. `payment_authentication`<br />
       The customer logs into his bank account and completes the transaction.

    3. `payment_authorization`<br />
       Upon successful authentication, bank authorises the release of funds and notifies Razorpay. Razorpay in turn, notifies the business.
  </Tab>
</Tabs>

## Wallet

The payment flow for **Wallet** payments is illustrated below:

<img src="https://curlec.com/docs/build/browser/assets/images/payment-flow-wallet.jpg" class="click-zoom" alt="Errors Payment Methods Wallets" width="800" />

<Tabs>
  <Tab title="Source Parameter">
    The possible values for the `source` parameter for wallet are listed below:

    * `customer`
    * `business`
    * `internal`
    * `issuer`
  </Tab>

  <Tab title="Step Parameter">
    The possible values for the `step` parameter, along with the description, are listed below:

    1. `payment_initiation`<br />
       Your system initiates and sends the payment request to our server. Our server sends the same request to the Bank/Gateway.

    2. `payment_eligibility_check`<br />
       Razorpay sends the eligibility check request to the issuer to determine if the entered customer information is correct.

    3. `payment_authentication`<br />
       Customer authenticates the payment using OTP provided by the issuer.

    4. `payment_authorization`<br />
       Issuer authorises the release of funds and sends confirmation to Razorpay.
  </Tab>
</Tabs>
