---
title: "EMI select"
method: POST
path: "/v1/cards/emi-select"
tags: ["UPI"]
---

# EMI select

`POST /v1/cards/emi-select`

## Request

- Base URL: `https://sandbox.pismolabs.io/upi-gateway`
- URL: `https://sandbox.pismolabs.io/upi-gateway/v1/cards/emi-select`
- Auth: HTTP bearer

United Payments Interface (UPI) funds Equated Monthly Installments (EMI) for RuPay, an Indian card network.

Before calling this endpoint, you can call [List cards](ref:post-list-cards) to get the `account_reference_number`. You should also call [Validate card](ref:post-validate-card-data) to make sure the card data for the transfer request is genuine.

This endpoint generates a [Payment methods authorization created](https://developers.pismo.io/events/docs/payment-methods-authorization-1) event and a [Platform authorization created](https://developers.pismo.io/events/docs/platform-authorization-platform-authorization-1) event.

This operation is **idempotent**, meaning, it can be applied multiple times, yet the outcome remains the same. To guarantee this, the request has an `external_transaction_id` field, which must be unique by transaction type in the context of the same account reference number.

## Headers

- `Authorization` string, required
- `user-agent` string, required

## Request body

- CardsEmiRequest
  - `amount` number, required: Transaction amount
  - `currency` string, required: Transaction currency. ISO 4217 3-digit currency code. For example - `INR` (Indian rupee)
  - `account_reference_number` string, required: Account reference number. Pismo creates this automatically when creating a card linked to RuPay on UPI. This number combines 10 BIN digits and the credit account number. If BIN is 6 digits, the remaining 4 digits are set to zero (`0`). If BIN is 8 digits, then the remaining 2 digits are set to zero. This is a [NPCI](https://www.npci.org.in/what-we-do/rupay/product-overview) standard. For example, if the account reference number = `1234560000987654321`, the first six digits are the BIN, appended with 4 zeros and then the credit account number (`987654321``). You can call [List cards](ref:post-list-cards) to get a card's account reference number.
  - `external_transaction_datetime` string, required: Request datetime. ISO 8601 format.
  - `external_transaction_id` string, required: Request ID code
  - `original_external_transaction_id` string, required: Request identification code
  - `emi_status` 'PRE' | 'POST' | 'DURING' | 'FORECLOSE', required: EMI status
  - `mcc` string, required: Transaction Merchant Category Code (MCC)
  - `merchant_name` string, required: Merchant name
  - `phone` Phone, required
    - `country_code` string, required: Phone number country code
    - `phone` string, required: Phone number
    - `area_code` string: Phone number area code
  - `transaction_type` 'C' | 'D' | 'R' | 'E' | 'F', required: Transaction type: * `C` - Credit * `D` - Debit * `R` - Reversal * `E` - Equated monthly installments (EMI) * `F` - Foreclose
  - `upi_reference_number` string, required: UPI reference number
  - `transaction_reference` string: Transaction reference
  - `credit_account_number` string: Payee account number if available
  - `foreclose_data` ForecloseData
    - `contract_amount` number, required: Total installment amount after calculation and addition of any necessary fees
  - `emi_data` EmiData
    - `contract_amount` number, required: Total installment amount calculation and addition of any necessary fees
    - `principal_amount` number, required: Total installment amount after calculation without the addition of any fees
    - `number_of_installments` number, required: Number of installments in this calculation
    - `fees` AmountAndRateEntity[]: All applied fees on this calculation
      - `type` string: Entity type
      - `amount` number: Entity applied amount
      - `rate` number: Percentage rate used for calculating
    - `taxes` AmountAndRateEntity[]: All applied taxes on this calculation
      - `type` string: Entity type
      - `amount` number: Entity applied amount
      - `rate` number: Percentage rate used for calculating
    - `interests` AmountAndRateEntity[]: All applied taxes on this calculation
      - `type` string: Entity type
      - `amount` number: Entity applied amount
      - `rate` number: Percentage rate used for calculating
    - `installments` Installment[], required: Installments applied
      - `contract_amount` number, required: Total installment amount after calculation and addition of any necessary fees
      - `principal_amount` number, required: Total installment amount after calculation without the addition of any fees
      - `number_of_installments` number, required: Number of installments in this calculation
      - `fees` AmountAndRateEntity[]: Applied fees in this calculation
        - `type` string: Entity type
        - `amount` number: Entity applied amount
        - `rate` number: Percentage rate used for calculating
      - `taxes` AmountAndRateEntity[]: Applied taxes in this calculation
        - `type` string: Entity type
        - `amount` number: Entity applied amount
        - `rate` number: Percentage rate used for calculating
      - `interests` AmountAndRateEntity[]: Applied interests in this calculation
        - `type` string: Entity type
        - `amount` number: Entity applied amount
        - `rate` number: Percentage rate used for calculating

## Response `201`

Emi created

- CardsEmiResponse
  - `external_transaction_id` string, required: Request ID code
  - `status` 'PROCESSING' | 'ACCEPTED' | 'ERROR' | 'CANCELLED', required: Transaction status
  - `upi_reference_number` string, required: UPI reference number
  - `authorization_id` number: Authorization ID
  - `authorization_datetime` string, datetime: When transfer was authorised. RFC 3339 format.
  - `foreclose_data` ForecloseData
    - `contract_amount` number, required: Total installment amount after calculation and addition of any necessary fees
  - `emi_data` EmiData
    - `contract_amount` number, required: Total installment amount calculation and addition of any necessary fees
    - `principal_amount` number, required: Total installment amount after calculation without the addition of any fees
    - `number_of_installments` number, required: Number of installments in this calculation
    - `fees` AmountAndRateEntity[]: All applied fees on this calculation
      - `type` string: Entity type
      - `amount` number: Entity applied amount
      - `rate` number: Percentage rate used for calculating
    - `taxes` AmountAndRateEntity[]: All applied taxes on this calculation
      - `type` string: Entity type
      - `amount` number: Entity applied amount
      - `rate` number: Percentage rate used for calculating
    - `interests` AmountAndRateEntity[]: All applied taxes on this calculation
      - `type` string: Entity type
      - `amount` number: Entity applied amount
      - `rate` number: Percentage rate used for calculating
    - `installments` Installment[], required: Installments applied
      - `contract_amount` number, required: Total installment amount after calculation and addition of any necessary fees
      - `principal_amount` number, required: Total installment amount after calculation without the addition of any fees
      - `number_of_installments` number, required: Number of installments in this calculation
      - `fees` AmountAndRateEntity[]: Applied fees in this calculation
        - `type` string: Entity type
        - `amount` number: Entity applied amount
        - `rate` number: Percentage rate used for calculating
      - `taxes` AmountAndRateEntity[]: Applied taxes in this calculation
        - `type` string: Entity type
        - `amount` number: Entity applied amount
        - `rate` number: Percentage rate used for calculating
      - `interests` AmountAndRateEntity[]: Applied interests in this calculation
        - `type` string: Entity type
        - `amount` number: Entity applied amount
        - `rate` number: Percentage rate used for calculating

## Other responses

- `202`: It is returned for duplicated requests, when the transfer is still being processed
- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `408`: Timeout
- `409`: Conflict
- `500`: Internal Server Error
- `502`: Bad Gateway

---

[API](https://skmtc.dev/pismo/apis/instant-payments-rupay-on-upi.md) - [All operations](https://skmtc.dev/pismo/apis/instant-payments-rupay-on-upi/llms.txt) - [OpenAPI document](https://skmtc.dev/pismo/apis/instant-payments-rupay-on-upi/revisions/892669202dfc?raw)
