1.1.8.1 UPI Circle (Partial Delegation) APIs

UPI Circle partial delegation APIs allow a primary user to add, update, or remove a secondary user linkage, with transactions requiring primary user authorization as applicable. Responses are made available to the TPAP or channel through the query service.

The UPI Circle requirements for partial delegation are implemented by making the following changes to the APIs.

UPI Circle (Partial Delegation) - Secondary User APIs (Add / Update / Remove)

Table 1-4 UPI Circle (Partial Delegation) - Secondary User APIs (Add / Update / Remove)

API Description
ReqDelegateAdd

From the primary user TPAP to PSP(P) UPI switch to add a secondary user for partial delegation. The request is sent with type set to ADD and subtype set to PARTIAL. PSP(P) stores the request and sends a synchronous acknowledgement to the TPAP.

ReqDelegateAdd

From PSP(P) UPI switch to NPCI UPI switch to initiate the partial delegation add request. PSP(P) stores the outbound request. NPCI sends an acknowledgement and PSP(P) stores the acknowledgement.

ReqDelegateAdd

From NPCI UPI switch to PSP(S) UPI switch. PSP(S) stores the request, performs XSD validations, sends an acknowledgement to NPCI, and stores the acknowledgement.

Secondary user notification

PSP(S) sends a notification to the secondary user TPAP to accept or decline the UPI Circle linkage. PSP(S) stores the secondary user response.

RespDelegateAdd

From PSP(S) UPI switch to NPCI UPI switch with the add delegation result. If the secondary user declines, PSP(S) sends FAILURE and does not maintain any linkage. If the secondary user accepts, PSP(S) sends SUCCESS and maintains the linkage record. PSP(S) stores the outbound response. NPCI sends an acknowledgement and PSP(S) stores the acknowledgement.

RespDelegateAdd

From NPCI UPI switch to PSP(P) UPI switch. PSP(P) sends an acknowledgement to NPCI and stores the response and acknowledgement. If the result is SUCCESS, PSP(P) maintains the linkage record. If the result is FAILURE, PSP(P) does not maintain the linkage record.

Query Service

The TPAP or channel fetches the RespDelegateAdd outcome from PSP(P) UPI switch using the query service, based on the response table populated by PSP(P).

ReqPay

ReqPay API (for UPI Circle delegate payments) is updated to identify delegate payments with the following parameter:

Purpose: 87 (Delegate Payment)

UPI Circle (Partial Delegation) - Transaction APIs

Table 1-5 UPI Circle (Partial Delegation) - Transaction APIs

API Description
ReqValAdd (Payee Validation Initiation)

From TPAP (UPI App) to PSP(S) UPI switch:

Secondary user scans QR / enters beneficiary details.

TPAP sends payee validation request. PSP(S) stores request and sends synchronous acknowledgment to TPAP.

ReqValAdd

From PSP(S) UPI switch to NPCI UPI switch:

Forwards payee validation request. PSP(S) stores sent request.

NPCI sends acknowledgment which PSP(S) stores.

RespValAdd

From NPCI UPI switch to PSP(S) UPI switch:

Validates payee details response from Payee PSP.

PSP(S) sends acknowledgment to NPCI, stores response + ack, and populates TPAP/channel response table.

Query Service (for Payee Validation)

From TPAP / Channel to PSP(S) UPI switch:

TPAP fetches RespValAdd outcome using query service from PSP(S) response table.

ReqDelegateAuth (Transaction Initiation)

From TPAP (UPI App) to PSP(S) UPI switch:

Secondary user initiates transaction.

TPAP sends transaction details. PSP(S) stores request and sends synchronous acknowledgment to TPAP.

ReqDelegateAuth

From PSP(S) UPI switch to NPCI UPI switch:

Sends delegate authorization request. PSP(S) stores sent request.

NPCI sends acknowledgment which PSP(S) stores.

ReqDelegateAuth (Forwarded)

From NPCI UPI switch to PSP(P) UPI switch:

Forwards delegate authorization request to payer PSP.

PSP(P) stores received request and sends acknowledgment to NPCI. PSP(P) triggers notification to primary user (Authorize/Decline) on the TPAP application and stores user response.

RespDelegateAuth

From PSP(P) UPI switch to NPCI UPI switch:

Sends authorization decision with result = SUCCESS (Authorize) / FAILURE (Decline).

PSP(P) stores sent response. NPCI sends acknowledgment which PSP(P) stores.

RespDelegateAuth (Forwarded)

From NPCI UPI switch to PSP(S) UPI switch:

Forwards authorization result. PSP(S) stores received response and sends acknowledgment to NPCI.

If FAILURE, flow stops (no further processing).

ReqPay

If RespDelegateAuth = SUCCESS:

PSP(P) UPI switch prepares ReqPay (based on ReqDelegateAuth transaction details) and sends to NPCI UPI switch.

PSP(P) stores ReqPay. NPCI sends acknowledgment which PSP(P) stores.

ReqAuthDetails

From NPCI UPI switch to Payee PSP UPI switch:

Requests beneficiary address translation / authentication details.

Payee PSP stores request and sends acknowledgment to NPCI.

RespAuthDetails

From Payee PSP UPI switch to NPCI UPI switch:

Returns beneficiary address translation/auth details. Payee PSP stores response.

NPCI sends acknowledgment which Payee PSP stores.

ReqPay (Debit Leg)

From NPCI UPI switch to Remitter Bank UPI switch:

Sends ReqPay to debit the primary user account.

Remitter bank stores request and acknowledgment, and debits in CBS (if validations pass).

RespPay (Debit Response)

From Remitter Bank UPI switch to NPCI UPI switch:

Returns debit outcome in RespPay (success as per provided flow). Remitter bank stores sent response and received ack.

ReqPay (Credit Leg)

From NPCI UPI switch to Beneficiary Bank UPI switch:

Sends ReqPay to credit beneficiary account.

Beneficiary bank stores request and acknowledgment, and credits in CBS (if validations pass).

RespPay (Credit Response)

From Beneficiary Bank UPI switch to NPCI UPI switch:

Returns credit outcome in RespPay (success as per provided flow).

Beneficiary bank stores sent response + received ack.

RespPay (Payer PSP Notification)

From NPCI UPI switch to PSP(P) UPI switch:

Sends transaction outcome RespPay to payer PSP.

PSP(P) stores received RespPay and sends acknowledgment to NPCI.

ReqTxnConfirmation (To PSP(S))

From NPCI UPI switch to PSP(S) UPI switch:

Sends transaction confirmation request. PSP(S) stores request and acknowledgment, updates transaction status (record of ReqDelegateAuth) and updates TPAP response table for notifying secondary user.

RespTxnConfirmation (From PSP(S))

From PSP(S) UPI switch to NPCI UPI switch:

Sends transaction confirmation response. PSP(S) stores sent response and received acknowledgment.

ReqTxnConfirmation (To Payee PSP)

From NPCI UPI switch to Payee PSP UPI switch:

Sends transaction confirmation request. Payee PSP stores request and acknowledgment.

RespTxnConfirmation (From Payee PSP)

From Payee PSP UPI switch to NPCI UPI switch:

Sends transaction confirmation response. Payee PSP stores sent response and received acknowledgment.

Query Service (for Transaction Status to TPAP/Secondary User)

From TPAP / Channel to PSP(S) UPI switch:

TPAP fetches updated transaction status (populated after ReqTxnConfirmation processing) so TPAP can notify secondary user.