> ## 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.

# Fetch Payment Details using ID and Transfer Method

> Fetch Payment Details using ID and Transfer Method using the Razorpay Smart Collect API.

Use this endpoint to fetch payment details for a bank transfer. If Razorpay does not receive the bank account information of the customer from the remitting bank, the `payer_bank_account` parameter will be set to null.

<RequestExample>
  ```bash Curl theme={null}
  curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \
  -X GET \
  https://api.razorpay.com/v1/payments/pay_CmiztqmYJPtDAu/bank_transfer \
  ```

  ```java Java theme={null}
  RazorpayClient razorpay = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");

  String paymentId = "pay_CmiztqmYJPtDAu";

  Payment payment = instance.payments.fetchBankTransfers(paymentId);
  ```

  ```python Python theme={null}
  import razorpay
  client = razorpay.Client(auth=("YOUR_ID", "YOUR_SECRET"))

  client.payment.bank_transfer(paymentId)
  ```

  ```php PHP theme={null}
  $api = new Api($api_key, $api_secret);

  $api->payment->fetch($paymentId)->bankTransfer();
  ```

  ```ruby Ruby theme={null}
  payment_id = "pay_Di5iqCqA1WEHq6"

  Razorpay::Payment.fetch(paymend_id).bank_transfer
  ```

  ```javascript Node.js theme={null}
  var instance = new Razorpay({ key_id: 'YOUR_KEY_ID', key_secret: 'YOUR_SECRET' })

  instance.payments.bankTransfer(paymentId)
  ```

  ```go Go theme={null}
  import ( razorpay "github.com/razorpay/razorpay-go" )
  client := razorpay.NewClient("YOUR_KEY_ID", "YOUR_SECRET")

  body, err := client.Payment.BankTransfer("<paymentID>", nil, nil)
  ```

  ```csharp .NET theme={null}
  RazorpayClient client = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]

  string paymentId = "pay_Z6t7VFTb9xHeOs";

  BankTransfer virtualaccount = client.Payment.Fetch(paymentId).BankTransfers();
  ```

  ```bash CLI theme={null}
  razorpay smart-collect fetch-by-bank-transfer pay_DlGmm7jInLudH8
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "id": "bt_Di5iqCElVyRlCb",
    "entity": "bank_transfer",
    "payment_id": "pay_Di5iqCqA1WEHq6",
    "mode": "NEFT",
    "bank_reference": "157414364471",
    "amount": 239000,
    "payer_bank_account": {
      "id": "ba_Di5iqSxtYrTzPU",
      "entity": "bank_account",
      "ifsc": null,
      "bank_name": null,
      "name": "Acme Corp",
      "notes": [],
      "account_number": "765432123456789"
    },
    "virtual_account_id": "va_Di5gbNptcWV8fQ",
    "virtual_account": {
      "id": "va_Di5gbNptcWV8fQ",
      "name": "Acme Corp",
      "entity": "virtual_account",
      "status": "closed",
      "description": "Customer Identifier created for M/S ABC Exports",
      "amount_expected": 2300,
      "notes": {
        "material": "teakwood"
      },
      "amount_paid": 239000,
      "customer_id": "cust_DOMUFFiGdCaCUJ",
      "receivers": [
        {
          "id": "ba_Di5gbQsGn0QSz3",
          "entity": "bank_account",
          "ifsc": "RATN0VAAPIS",
          "bank_name": "RBL Bank",
          "name": "Acme Corp",
          "notes": [],
          "account_number": "1112220061746877"
        }
      ],
      "allowed_payers": [
        {
          "type": "bank_account",
          "id":"ba_DlGmm9mSj8fjRM",
          "bank_account": {
            "ifsc": "UTIB0000013",
            "account_number": "914010012345679"
          }
        },
        {
          "type": "bank_account",
          "id":"ba_Cmtnm5tSj6agUW",
          "bank_account": {
            "ifsc": "UTIB0000014",
            "account_number": "914010012345680"
          }
        }
      ],
      "close_by": 1574427237,
      "closed_at": 1574164078,
      "created_at": 1574143517
    }
  }
  ```

  ```json Failure theme={null}
  {
    "error": {
      "code": "BAD_REQUEST_ERROR",
      "description": "The api key provided is invalid",
      "source": "NA",
      "step": "NA",
      "reason": "NA",
      "metadata": {}
    }
  }
  ```
</ResponseExample>

## Path Parameters

<ParamField path="id" type="string" required>
  The unique identifier of the payment made to the Customer Identifier.
</ParamField>

## Response Parameters

<ResponseField name="id" type="string">
  Unique identifier of the payment.
</ResponseField>

<ResponseField name="entity" type="string">
  Indicates the type of entity.
</ResponseField>

<ResponseField name="amount" type="integer">
  The payment amount in currency subunits. For example, for an amount of ₹1 enter 100.
</ResponseField>

<ResponseField name="currency" type="string">
  The currency in which the payment is made.
</ResponseField>

<ResponseField name="status" type="string">
  The status of the payment. Possible values:

  * `created`
  * `authorized`
  * `captured`
  * `refunded`
  * `failed`
</ResponseField>

<ResponseField name="method" type="string">
  The payment method used for making the payment. Possible values:

  * `card`
  * `netbanking`
  * `wallet`
  * `emi`
  * `upi`
</ResponseField>

<ResponseField name="order_id" type="string">
  Order id, if provided. Know more about [Orders](/docs/payments/orders).
</ResponseField>

<ResponseField name="description" type="string">
  Description of the payment, if any.
</ResponseField>

<ResponseField name="amount_expected" type="integer">
  The amount expected by the merchant.
</ResponseField>

<ResponseField name="international" type="boolean">
  Indicates whether the payment is done via an international card or a domestic one. Possible values:

  * `true`: Payment made using international card.
  * `false`: Payment not made using international card.
</ResponseField>

<ResponseField name="refund_status" type="string">
  The refund status of the payment. Possible values:

  * `null`
  * `partial`
  * `full`
</ResponseField>

<ResponseField name="amount_refunded" type="integer">
  The amount refunded in currency subunits. For example, if `amount_refunded = 100`, it is equal to ₹1.
</ResponseField>

<ResponseField name="captured" type="boolean">
  Indicates if the payment is captured. Possible values:

  * `true`: Payment has been captured.
  * `false`: Payment has not been captured.
</ResponseField>

<ResponseField name="email" type="string">
  Customer email address used for the payment.
</ResponseField>

<ResponseField name="contact" type="string">
  Customer contact number used for the payment.
</ResponseField>

<ResponseField name="fee" type="integer">
  Fee (including GST) charged by Razorpay.
</ResponseField>

<ResponseField name="tax" type="integer">
  GST charged for the payment.
</ResponseField>

<ResponseField name="error_code" type="string">
  Error that occurred during payment. For example, `BAD_REQUEST_ERROR`.
</ResponseField>

<ResponseField name="error_description" type="string">
  Description of the error that occurred during payment. For example, `Payment processing failed because of incorrect OTP`.
</ResponseField>

<ResponseField name="error_source" type="string">
  The point of failure. For example, `customer`.
</ResponseField>

<ResponseField name="error_step" type="string">
  The stage where the transaction failure occurred. The stages can vary depending on the payment method used to complete the transaction. For example, `payment_authentication`.
</ResponseField>

<ResponseField name="error_reason" type="string">
  The exact error reason. For example, `incorrect_otp`.
</ResponseField>

<ResponseField name="notes" type="json object">
  Contains user-defined fields, stored for reference purposes.
</ResponseField>

<ResponseField name="created_at" type="integer">
  Timestamp, in UNIX format, on which the payment was created.
</ResponseField>

<ResponseField name="card_id" type="string">
  The unique identifier of the card used by the customer to make the payment.
</ResponseField>

<ResponseField name="card" type="object">
  Details of the card used to make the payment.
</ResponseField>

<ResponseField name="id" type="string">
  The unique identifier of the card used by the customer to make the payment.
</ResponseField>

<ResponseField name="entity" type="string">
  The name of the entity. Here, it is `card`.
</ResponseField>

<ResponseField name="name" type="string">
  Name of the cardholder.
</ResponseField>

<ResponseField name="last4" type="integer">
  The last 4 digits of the card number.
</ResponseField>

<ResponseField name="network" type="string">
  The card network. Possible values:

  * `American Express`
  * `Diners Club` (Only available for private limited and registered businesses)
  * `Maestro`
  * `MasterCard`
  * `RuPay`
  * `Unknown`
  * `Visa`
</ResponseField>

<ResponseField name="type" type="string">
  The card type. Possible values:

  * `credit`
  * `debit`
  * `prepaid`
  * `unknown`
</ResponseField>

<ResponseField name="issuer" type="string">
  The card issuer. The 4-character code denotes the issuing bank. <br />

  <Info>
    **Handy Tips**

    This attribute will not be set for the card issued by a foreign bank.
  </Info>
</ResponseField>

<ResponseField name="emi" type="boolean">
  Indicates whether the card can be used for EMI payment method. Possible values:

  * `true`: Card can be used for EMI payments.
  * `false`: Card cannot be used for EMI payments.
</ResponseField>

<ResponseField name="sub_type" type="string">
  The sub-type of the customer's card. Possible values:

  * `customer`
  * `business`

  <Info>
    **Handy Tips**

    Know how to accept payments made by customers using [corporate cards](/docs/payments/payment-methods/cards/corporate-cards).
  </Info>
</ResponseField>

<ResponseField name="upi" type="object">
  Details of the UPI payment received. Only applicable if `method` is `upi`.
</ResponseField>

<ResponseField name="payer_account_type" type="string">
  The payment method used for making the payment. Possible values:

  * `bank_account`
  * `credit_card`
  * `wallet`
</ResponseField>

<ResponseField name="vpa" type="string">
  The customer's VPA (Virtual Payment Address) or UPI id used to make the payment. For example, `gauravkumar@exampleupi`.
</ResponseField>

<ResponseField name="flow" type="string">
  The type of UPI flow. Possible value `in_app`.

  <Info>
    **Handy Tips**

    The field `flow` is present only in the case of Turbo UPI Payments.
  </Info>
</ResponseField>

<ResponseField name="bank" type="string">
  The 4-character bank code which the customer's account is associated with. For example, `UTIB` for Axis Bank.
</ResponseField>

<ResponseField name="vpa" type="string">
  The customer's VPA (Virtual Payment Address) or UPI id used to make the payment. For example, `gauravkumar@exampleupi`.
</ResponseField>

<ResponseField name="wallet" type="string">
  The name of the wallet used by the customer to make the payment. For example, `payzapp`.
</ResponseField>

<ResponseField name="acquirer_data" type="array">
  A dynamic array consisting of a unique reference numbers.
</ResponseField>

<ResponseField name="rrn" type="string">
  A unique bank reference number provided by the banking partner when a refund is processed. This reference number can be used by the customer to track the status of the refund with the bank.
</ResponseField>

<ResponseField name="authentication_reference_number" type="string">
  A unique reference number generated for RuPay card payments.
</ResponseField>

<ResponseField name="bank_transaction_id" type="string">
  A unique reference number provided by the banking partner in case of netbanking payments.
</ResponseField>

## Errors

<AccordionGroup>
  <Accordion
    title="The API `<key/secret>
` provided is invalid."
  >
    **Code:** `4xx`

    Occurs when there is a mismatch between the API credentials passed in the API call and the API credentials generated on the dashboard.

    **Solution:** Make sure that the API keys are active and entered correctly. Also, make sure there are no whitespaces before or after the keys.
  </Accordion>
</AccordionGroup>
