---
id: "in_upi_id"
kind: "datatype"
status: "draft"
is_pii: true
categories: ["finances", "pii"]
country: ["IN"]
langs: ["common"]
quality: 75
url: "https://registry.apicrafter.io/datatype/in_upi_id"
---

# Indian UPI ID (virtual payment address) (`in_upi_id`)

> **Draft.** Draft records have not been reviewed yet and may be incomplete or wrong; do not treat them as authoritative for legal or compliance decisions.

UPI ID, or virtual payment address, an alias of a bank account in the Unified Payments Interface run by the National Payments Corporation of India. It has the form prefix@handle: the user chooses the prefix, such as a name or mobile number, and the handle is fixed by the payment app or bank. NPCI does not publish the allowed characters; the regexp follows those used by payment apps and rejects e-mail addresses, whose domain has a dot.

- Personal data (PII): yes
- Categories: Finances and banking (finances), Personally identifiable information (pii)
- Countries: India (IN)
- Languages: Common to most languages (common)
- Classification: identifier

## Detection

Regular expression (Python `re`):

```
^[A-Za-z0-9._-]+@[A-Za-z0-9]+$
```

## Examples

- `bivek@npci` — Sample payee address in the NPCI UPI linking specification
- `bivekrath@npci` — Sample payee address in the NPCI UPI linking specification
- `user@gmail.com` (invalid example) — An e-mail address, the handle has no dot

## Sources

- wikipedia: <https://en.wikipedia.org/wiki/Unified_Payments_Interface>
- doc: <https://www.npci.org.in/uploads/BHIM_UPI_Guidelines_2026_012a0b1bce.pdf>

## Quality

Score 75/100. Missing: mapping (Wikidata, Schema.org, ...), translation, detector coverage.

JSON: <https://registry.apicrafter.io/api/v1/datatypes/in_upi_id.json> · Edit: <https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/IN/finances/in_upi_id.yaml>
