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

# EMI select

`POST /v1/cards/emi-select`

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

Before calling this endpoint, you can call [List cards](https://developers.pismo.io/pismo-docs/reference/post-list-cards) to get the `account_reference_number`. You should also call [Validate card](https://developers.pismo.io/pismo-docs/reference/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](https://developers.pismo.io/pismo-docs/reference/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.net/pismo/apis/platform-authentication.md) · [All operations](https://skmtc.net/pismo/apis/platform-authentication/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pismo/platform-authentication/revisions/935b62e16de4/schema)
