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

# Get the NPCI Token

> Get the NPCI token using the Razorpay TPAP Pro API.

<div style={{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0.35rem 0.9rem",border:"1px solid rgba(128,128,128,0.28)",borderRadius:"0.5rem",padding:"0.45rem 0.75rem",margin:"0 0 1.25rem",fontSize:"0.875rem"}}>
  <span style={{fontWeight:600}}>Available in</span>
  <span>🇮🇳 India</span>
</div>

Use this endpoint to get the NPCI token.

<RequestExample>
  ```bash Request theme={null}
  curl -X POST 'api.rzp.<bank>.com/v1/upi/tpap/devices/token' \
  -u [YOUR_KEY_ID]:[YOUR_SECRET] \
  -H "Content-type: application/json" \
  -H "x-device-fingerprint: <device_fingerprint>" \
  -H "x-device-fingerprint-timestamp: 1496918882000" \
  -H "x-customer-reference: customer-id-from-customer" \
  -d '{
    "upi_transaction_id": "123qwert12",
    "challenge": "challenge received from CL"
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "mobile": "string",
    "token": "string"
  }
  ```
</ResponseExample>

## Request Parameters

<ParamField body="upi_transaction_id" type="string" required>
  The unique identifier of the transaction across all UPI entities created by the originator.
</ParamField>

<ParamField body="challenge" type="string" required>
  TPAP when executing **Get Challenge** in CL to receive a challenge from the common library. You can fetch the NPCI token using this challenge.
</ParamField>

## Response Parameters

<ResponseField name="token" type="string">
  The NPCI token received for the challenge. TPAP uses this token to register the application and communicate securely with CL and NPCI.
</ResponseField>

<ResponseField name="mobile" type="string">
  The mobile number of the customer.
</ResponseField>
