From 1d28ba969366dfac4e84492eb77d0320f60b6c26 Mon Sep 17 00:00:00 2001 From: bibaswan1 Date: Tue, 22 Apr 2025 13:52:27 +0530 Subject: [PATCH 01/12] Updated payment failure api webhook for pre built screen in COU --- .../payments/billpay/pre-built-screens/webhooks.mdx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/content/payments/billpay/pre-built-screens/webhooks.mdx b/content/payments/billpay/pre-built-screens/webhooks.mdx index e5676db8..f1bafd80 100644 --- a/content/payments/billpay/pre-built-screens/webhooks.mdx +++ b/content/payments/billpay/pre-built-screens/webhooks.mdx @@ -669,7 +669,12 @@ Below are the parameter tables and sample payloads for the listed events. Note t "dueDate": "2021-05-23", // if available "amountPaid": "601.00", "event": "bill_payment_failure", - "refId": "CMA0I65RCU2I32C3L0H0KNYQYAG40021831" + "refId": "CMA0I65RCU2I32C3L0H0KNYQYAG40021831", + "error": { + "Code": "insufficient-balance", + "Message": "Insufficient balance in the bank account. Please ensure sufficient funds are available before retrying.", + "Type": "FUND_TRANSFER" + } }`} @@ -817,6 +822,12 @@ Below are the parameter tables and sample payloads for the listed events. Note t CMA0I65RCU2I32C3L0H0KNYQYAG40021831 + + + + + +
errorObjectError details for failure of bill payment[{"Code": "insufficient-balance", "Message": "66578Insufficient balance in the bank account. Please ensure sufficient funds are available before retrying.01290", "Type": "FUND_TRANSFER"]
From 1670d11b57fa51d752d140dec76d487877920e09 Mon Sep 17 00:00:00 2001 From: bibaswan1 Date: Fri, 23 May 2025 18:41:42 +0530 Subject: [PATCH 02/12] changed the error object keys to camel case --- content/payments/billpay/pre-built-screens/webhooks.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/payments/billpay/pre-built-screens/webhooks.mdx b/content/payments/billpay/pre-built-screens/webhooks.mdx index f1bafd80..62fd515b 100644 --- a/content/payments/billpay/pre-built-screens/webhooks.mdx +++ b/content/payments/billpay/pre-built-screens/webhooks.mdx @@ -671,9 +671,9 @@ Below are the parameter tables and sample payloads for the listed events. Note t "event": "bill_payment_failure", "refId": "CMA0I65RCU2I32C3L0H0KNYQYAG40021831", "error": { - "Code": "insufficient-balance", - "Message": "Insufficient balance in the bank account. Please ensure sufficient funds are available before retrying.", - "Type": "FUND_TRANSFER" + "code": "insufficient-balance", + "message": "Insufficient balance in the bank account. Please ensure sufficient funds are available before retrying.", + "type": "FUND_TRANSFER" } }`} @@ -826,7 +826,7 @@ Below are the parameter tables and sample payloads for the listed events. Note t error Object Error details for failure of bill payment - [{"Code": "insufficient-balance", "Message": "66578Insufficient balance in the bank account. Please ensure sufficient funds are available before retrying.01290", "Type": "FUND_TRANSFER"] + [{"code": "insufficient-balance", "message": "66578Insufficient balance in the bank account. Please ensure sufficient funds are available before retrying.01290", "type": "FUND_TRANSFER"] From 9445d2e806041dc85646f647db6ee58b776cbe7f Mon Sep 17 00:00:00 2001 From: "Dhiraj Kumar. Ch" <56587515+Dhirajkumar55@users.noreply.github.com> Date: Fri, 26 Sep 2025 15:16:26 +0530 Subject: [PATCH 03/12] fix(bbps): htat v1 and v2 (#353) * fix(bbps): htat v1 and v2 * made some changes --------- Co-authored-by: dhiraj.kumar5 --- .../payments/billpay/api-integration.json | 43 +- .../payments/billpay_v1/api-integration.json | 874 ++++++++++++++++-- 2 files changed, 863 insertions(+), 54 deletions(-) diff --git a/api-references/payments/billpay/api-integration.json b/api-references/payments/billpay/api-integration.json index 662ded14..b18302e5 100644 --- a/api-references/payments/billpay/api-integration.json +++ b/api-references/payments/billpay/api-integration.json @@ -5685,6 +5685,30 @@ ], "example": "DISPUTE" }, + "ticketTAT": { + "type": "string", + "format": "date", + "nullable": true, + "example": "2024-01-20" + }, + "disposition": { + "type": "string", + "enum": [ + "D11", + "D12", + "D13", + "D21", + "D22", + "D23", + "D31", + "D32" + ], + "example": "D11" + }, + "responseReason": { + "type": "string", + "example": "Dispute assigned to appropriate resolver for investigation" + }, "assignedTo": { "type": "string", "example": "ICICI BOU" @@ -5694,7 +5718,12 @@ "description": "BBPS Complaint status", "example": "ASSIGNED", "enum": [ - "ASSIGNED" + "ASSIGNED", + "RESOLVED", + "REJECTED", + "DEFAULT_RESOLVED", + "REFUNDED", + "PENDING_REFUND" ] }, "disputeId": { @@ -5943,6 +5972,12 @@ ], "example": "DISPUTE" }, + "ticketTAT": { + "type": "string", + "format": "date", + "nullable": true, + "example": "2024-01-20" + }, "assignedTo": { "type": "string", "example": "ICICI BOU" @@ -6215,6 +6250,12 @@ ], "example": "DISPUTE" }, + "ticketTAT": { + "type": "string", + "format": "date", + "nullable": true, + "example": "2024-01-20" + }, "assignedTo": { "type": "string", "example": "ICICI BOU" diff --git a/api-references/payments/billpay_v1/api-integration.json b/api-references/payments/billpay_v1/api-integration.json index 96c8ef70..7d748830 100644 --- a/api-references/payments/billpay_v1/api-integration.json +++ b/api-references/payments/billpay_v1/api-integration.json @@ -2148,6 +2148,17 @@ "schema": { "type": "integer" } + }, + { + "name": "Authorization", + "in": "header", + "required": true, + "schema": { + "type": "string", + "pattern": "^Bearer [a-zA-Z0-9\\-\\._~\\+\\/]+=*$" + }, + "description": "Bearer token for authentication. Format: `Bearer `", + "example": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." } ], "requestBody": { @@ -2173,7 +2184,12 @@ "others", "amount-deducted-biller-credited-no-transaction-id", "amount-deducted-biller-not-credited-no-transaction-id", - "amount-deducted-multiple-times" + "amount-deducted-multiple-times", + "service-not-received", + "service-disconnected", + "late-payment-surcharge", + "wrong-amount", + "payment-info-delay" ] } } @@ -2391,19 +2407,31 @@ "schema": { "type": "integer" } + }, + { + "name": "Authorization", + "in": "header", + "required": true, + "schema": { + "type": "string", + "pattern": "^Bearer [a-zA-Z0-9\\-\\._~\\+\\/]+=*$" + }, + "description": "Bearer token for authentication. Format: `Bearer `", + "example": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." } ], "requestBody": { "content": { "application/json": { "schema": { - "required": ["refId"], + "required": [ + "refId" + ], "type": "object", "properties": { "refId": { "type": "string", - "description": "The generated BBPS Reference ID for the request.", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + "description": "The generated Reference ID for the request." } }, "x-go-name": "RefIdBasedRequest", @@ -2415,7 +2443,7 @@ }, "responses": { "200": { - "description": "OK", + "description": "Success - Dispute assigned to appropriate resolver for investigation", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -2463,7 +2491,10 @@ "content": { "application/json": { "schema": { - "required": ["success", "traceId"], + "required": [ + "success", + "traceId" + ], "type": "object", "properties": { "data": { @@ -2476,38 +2507,66 @@ ], "type": "object", "properties": { - "assignedTo": { + "remarks": { "type": "string", - "example": "ICICI BOU" + "example": "Dispute assigned to appropriate resolver for investigation" }, - "disputeId": { + "ticketType": { "type": "string", - "example": "OP0121046567755" + "enum": [ + "DISPUTE", + "COMPLAINT" + ], + "example": "DISPUTE" }, - "refId": { + "ticketTAT": { "type": "string", - "description": "The generated BBPS Reference ID for the request.", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + "format": "date", + "nullable": true, + "example": "2024-01-20" }, - "remarks": { + "disposition": { + "type": "string", + "enum": [ + "D11", + "D12", + "D13", + "D21", + "D22", + "D23", + "D31", + "D32" + ], + "example": "D11" + }, + "responseReason": { + "type": "string", + "example": "Dispute assigned to appropriate resolver for investigation" + }, + "assignedTo": { "type": "string", - "example": "Resolved in favour of Biller" + "example": "ICICI BOU" }, "status": { "type": "string", "description": "BBPS Complaint status", "example": "ASSIGNED", "enum": [ - "INITIALIZED", "ASSIGNED", - "RE_ASSIGNED", - "ASSIGNED_TO_BOU", - "ASSIGNED_TO_COU", - "ASSIGNED_TO_OU", - "ESCALATED", "RESOLVED", - "UNRESOLVED" + "REJECTED", + "DEFAULT_RESOLVED", + "REFUNDED", + "PENDING_REFUND" ] + }, + "disputeId": { + "type": "string", + "example": "OP0121046567755" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." } }, "x-go-name": "DisputeResponseData" @@ -2527,70 +2586,779 @@ } } }, - "400": { - "description": "Bad request", + "200-dispute-default-resolved": { + "description": "Success - Dispute automatically resolved due to timeout or default process in favour of customer", + "headers": { + "X-Frame-Options": { + "description": "X Frame options", + "schema": { + "type": "string" + } + }, + "Strict-Transport-Security": { + "description": "Strict transport security", + "schema": { + "type": "string" + } + }, + "Cache-Control": { + "description": "Cache control", + "schema": { + "type": "string" + } + }, + "X-Content-Type-Options": { + "description": "X Content type options", + "schema": { + "type": "string" + } + }, + "Content-Security-Policy": { + "description": "Content security policy", + "schema": { + "type": "string" + } + }, + "Pragma": { + "description": "Pragma", + "schema": { + "type": "string" + } + }, + "X-XSS-Protection": { + "description": "X Xss Protection", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "success", + "traceId" + ], "type": "object", "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "error": { - "required": ["code", "message"], + "data": { + "required": [ + "assignedTo", + "disputeId", + "refId", + "remarks", + "status" + ], "type": "object", "properties": { - "code": { + "remarks": { "type": "string", - "example": "error-code-if-any" + "example": "Dispute automatically resolved due to timeout or default process in favour of customer" }, - "message": { + "responseReason": { "type": "string", - "example": "error-message-if-any" + "example": "Automatic resolution due to timeout" + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" + ], + "example": "DISPUTE" + }, + "assignedTo": { + "type": "string", + "example": "ICICI BOU" + }, + "status": { + "type": "string", + "description": "BBPS Complaint status", + "example": "DEFAULT_RESOLVED", + "enum": [ + "DEFAULT_RESOLVED" + ] + }, + "ticketTAT": { + "type": "string", + "format": "date", + "nullable": true, + "example": "2024-01-20" + }, + "disposition": { + "type": "string", + "enum": [ + "D11", + "D12", + "D13", + "D21", + "D22", + "D23", + "D31", + "D32" + ], + "example": "D11" + }, + "disputeId": { + "type": "string", + "example": "OP0121046567755" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." } - } + }, + "x-go-name": "DisputeResponseData" }, "success": { "type": "boolean", - "example": false + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" } - } + }, + "x-go-name": "CouAgentDisputeResponse", + "x-omitempty": true } } } }, - "500": { - "description": "Bad request", + "200-dispute-pending-refund": { + "description": "Success - Refund approved and currently being processed", + "headers": { + "X-Frame-Options": { + "description": "X Frame options", + "schema": { + "type": "string" + } + }, + "Strict-Transport-Security": { + "description": "Strict transport security", + "schema": { + "type": "string" + } + }, + "Cache-Control": { + "description": "Cache control", + "schema": { + "type": "string" + } + }, + "X-Content-Type-Options": { + "description": "X Content type options", + "schema": { + "type": "string" + } + }, + "Content-Security-Policy": { + "description": "Content security policy", + "schema": { + "type": "string" + } + }, + "Pragma": { + "description": "Pragma", + "schema": { + "type": "string" + } + }, + "X-XSS-Protection": { + "description": "X Xss Protection", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "success", + "traceId" + ], "type": "object", "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "error": { - "required": ["code", "message"], + "data": { + "required": [ + "assignedTo", + "disputeId", + "refId", + "remarks", + "status" + ], "type": "object", "properties": { - "code": { + "remarks": { "type": "string", - "example": "error-code-if-any" + "example": "Refund approved and currently being processed" }, - "message": { + "responseReason": { "type": "string", - "example": "error-message-if-any" + "example": "Refund processing in progress" + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" + ], + "example": "DISPUTE" + }, + "ticketTAT": { + "type": "string", + "format": "date", + "nullable": true, + "example": "2024-01-20" + }, + "assignedTo": { + "type": "string", + "example": "ICICI BOU" + }, + "status": { + "type": "string", + "description": "BBPS Complaint status", + "example": "PENDING_REFUND", + "enum": [ + "PENDING_REFUND" + ] + }, + "disposition": { + "type": "string", + "enum": [ + "D11", + "D12", + "D13", + "D21", + "D22", + "D23", + "D31", + "D32" + ], + "example": "D11" + }, + "disputeId": { + "type": "string", + "example": "OP0121046567755" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." } - } + }, + "x-go-name": "DisputeResponseData" }, "success": { "type": "boolean", - "example": false + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + } + }, + "x-go-name": "CouAgentDisputeResponse", + "x-omitempty": true + } + } + } + }, + "200-dispute-refunded": { + "description": "Success - Refund successfully processed and completed", + "headers": { + "X-Frame-Options": { + "description": "X Frame options", + "schema": { + "type": "string" + } + }, + "Strict-Transport-Security": { + "description": "Strict transport security", + "schema": { + "type": "string" + } + }, + "Cache-Control": { + "description": "Cache control", + "schema": { + "type": "string" + } + }, + "X-Content-Type-Options": { + "description": "X Content type options", + "schema": { + "type": "string" + } + }, + "Content-Security-Policy": { + "description": "Content security policy", + "schema": { + "type": "string" + } + }, + "Pragma": { + "description": "Pragma", + "schema": { + "type": "string" + } + }, + "X-XSS-Protection": { + "description": "X Xss Protection", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "required": [ + "success", + "traceId" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "assignedTo", + "disputeId", + "refId", + "remarks", + "status" + ], + "type": "object", + "properties": { + "remarks": { + "type": "string", + "example": "Refund successfully processed and completed" + }, + "responseReason": { + "type": "string", + "example": "Refund initiated as per resolution" + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" + ], + "example": "DISPUTE" + }, + "assignedTo": { + "type": "string", + "example": "ICICI BOU" + }, + "status": { + "type": "string", + "description": "BBPS Complaint status", + "example": "REFUNDED", + "enum": [ + "REFUNDED" + ] + }, + "ticketTAT": { + "type": "string", + "format": "date", + "nullable": true, + "example": "2024-01-20" + }, + "disposition": { + "type": "string", + "enum": [ + "D11", + "D12", + "D13", + "D21", + "D22", + "D23", + "D31", + "D32" + ], + "example": "D11" + }, + "disputeId": { + "type": "string", + "example": "OP0121046567755" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + } + }, + "x-go-name": "DisputeResponseData" + }, + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + } + }, + "x-go-name": "CouAgentDisputeResponse", + "x-omitempty": true + } + } + } + }, + "200-dispute-rejected": { + "description": "Success - Dispute rejected due to insufficient evidence or invalid claims at biller's end", + "headers": { + "X-Frame-Options": { + "description": "X Frame options", + "schema": { + "type": "string" + } + }, + "Strict-Transport-Security": { + "description": "Strict transport security", + "schema": { + "type": "string" + } + }, + "Cache-Control": { + "description": "Cache control", + "schema": { + "type": "string" + } + }, + "X-Content-Type-Options": { + "description": "X Content type options", + "schema": { + "type": "string" + } + }, + "Content-Security-Policy": { + "description": "Content security policy", + "schema": { + "type": "string" + } + }, + "Pragma": { + "description": "Pragma", + "schema": { + "type": "string" + } + }, + "X-XSS-Protection": { + "description": "X Xss Protection", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "required": [ + "success", + "traceId" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "assignedTo", + "disputeId", + "refId", + "remarks", + "status" + ], + "type": "object", + "properties": { + "remarks": { + "type": "string", + "example": "Dispute rejected due to insufficient evidence or invalid claims at biller's end" + }, + "responseReason": { + "type": "string", + "example": "Invalid complaint type or missing documentation" + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" + ], + "example": "DISPUTE" + }, + "ticketTAT": { + "type": "string", + "format": "date", + "nullable": true, + "example": "2024-01-20" + }, + "assignedTo": { + "type": "string", + "example": "ICICI BOU" + }, + "status": { + "type": "string", + "description": "BBPS Complaint status", + "example": "REJECTED", + "enum": [ + "REJECTED" + ] + }, + "disposition": { + "type": "string", + "enum": [ + "D11", + "D12", + "D13", + "D21", + "D22", + "D23", + "D31", + "D32" + ], + "example": "D32" + }, + "disputeId": { + "type": "string", + "example": "OP0121046567755" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + } + }, + "x-go-name": "DisputeResponseData" + }, + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + } + }, + "x-go-name": "CouAgentDisputeResponse", + "x-omitempty": true + } + } + } + }, + "200-dispute-resolved": { + "description": "Success - Dispute successfully resolved through investigation in favour of customer", + "headers": { + "X-Frame-Options": { + "description": "X Frame options", + "schema": { + "type": "string" + } + }, + "Strict-Transport-Security": { + "description": "Strict transport security", + "schema": { + "type": "string" + } + }, + "Cache-Control": { + "description": "Cache control", + "schema": { + "type": "string" + } + }, + "X-Content-Type-Options": { + "description": "X Content type options", + "schema": { + "type": "string" + } + }, + "Content-Security-Policy": { + "description": "Content security policy", + "schema": { + "type": "string" + } + }, + "Pragma": { + "description": "Pragma", + "schema": { + "type": "string" + } + }, + "X-XSS-Protection": { + "description": "X Xss Protection", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "required": [ + "success", + "traceId" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "assignedTo", + "disputeId", + "refId", + "remarks", + "status" + ], + "type": "object", + "properties": { + "remarks": { + "type": "string", + "example": "Dispute successfully resolved through investigation in favour of customer" + }, + "responseReason": { + "type": "string", + "example": "Customer complaint validated" + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" + ], + "example": "DISPUTE" + }, + "assignedTo": { + "type": "string", + "example": "ICICI BOU" + }, + "status": { + "type": "string", + "description": "BBPS Complaint status", + "example": "RESOLVED", + "enum": [ + "RESOLVED" + ] + }, + "ticketTAT": { + "type": "string", + "format": "date", + "nullable": true, + "example": "2024-01-15" + }, + "disposition": { + "type": "string", + "enum": [ + "D11", + "D12", + "D13", + "D21", + "D22", + "D23", + "D31", + "D32" + ], + "example": "D11" + }, + "disputeId": { + "type": "string", + "example": "OP0121046567755" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + } + }, + "x-go-name": "DisputeResponseData" + }, + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + } + }, + "x-go-name": "CouAgentDisputeResponse", + "x-omitempty": true + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "required": [ + "error", + "success", + "traceId" + ], + "type": "object", + "properties": { + "error": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "validation-error" + }, + "message": { + "type": "string", + "example": "Input is invalid" + } + } + }, + "success": { + "type": "boolean", + "example": false + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + } + } + } + } + } + }, + "500": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "required": [ + "error", + "success", + "traceId" + ], + "type": "object", + "properties": { + "error": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "validation-error" + }, + "message": { + "type": "string", + "example": "Input is invalid" + } + } + }, + "success": { + "type": "boolean", + "example": false + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" } } } From 942ff2d8309d5368efb13bc9bdc9a616276160aa Mon Sep 17 00:00:00 2001 From: tanmay Date: Fri, 3 Oct 2025 15:14:05 +0530 Subject: [PATCH 04/12] Mandatory IP in MOB/MOBB --- api-references/payments/billpay.json | 2 +- api-references/payments/billpay/api-integration.json | 4 ++-- api-references/payments/billpay_v1/api-integration.json | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/api-references/payments/billpay.json b/api-references/payments/billpay.json index c9f139c3..4285c579 100644 --- a/api-references/payments/billpay.json +++ b/api-references/payments/billpay.json @@ -146,7 +146,7 @@ "ip": { "type": "string", "example": "124.170.23.24", - "description": "Mandatory if channel is `INT`, `INTB`. Not required for others." + "description": "Mandatory if channel is `INT`, `INTB`, `MOB`, `MOBB`. Not required for others." }, "imei": { "type": "string", diff --git a/api-references/payments/billpay/api-integration.json b/api-references/payments/billpay/api-integration.json index b18302e5..94d97cf8 100644 --- a/api-references/payments/billpay/api-integration.json +++ b/api-references/payments/billpay/api-integration.json @@ -286,7 +286,7 @@ }, "ip": { "type": "string", - "description": "Mandatory if channel is `INT`, `INTB`. Not required for others.", + "description": "Mandatory if channel is `INT`, `INTB`, `MOB`, `MOBB`. Not required for others.", "format": "ipv4", "example": "124.170.23.24" }, @@ -3073,7 +3073,7 @@ }, "ip": { "type": "string", - "description": "Mandatory if channel is `INT`, `INTB`. Not required for others.", + "description": "Mandatory if channel is `INT`, `INTB`, `MOB`, `MOBB`. Not required for others.", "format": "ipv4", "example": "124.170.23.24" }, diff --git a/api-references/payments/billpay_v1/api-integration.json b/api-references/payments/billpay_v1/api-integration.json index 7d748830..158440fc 100644 --- a/api-references/payments/billpay_v1/api-integration.json +++ b/api-references/payments/billpay_v1/api-integration.json @@ -237,7 +237,7 @@ }, "ip": { "type": "string", - "description": "Mandatory if channel is `INT`, `INTB`. Not required for others.", + "description": "Mandatory if channel is `INT`, `INTB`, `MOB`, `MOBB`. Not required for others.", "format": "ipv4", "example": "124.170.23.24" }, @@ -1222,7 +1222,7 @@ }, "ip": { "type": "string", - "description": "Mandatory if channel is `INT`, `INTB`. Not required for others.", + "description": "Mandatory if channel is `INT`, `INTB`, `MOB`, `MOBB`. Not required for others.", "format": "ipv4", "example": "124.170.23.24" }, From cd4134c1884a1621e3773ec666069eba5bfb35f8 Mon Sep 17 00:00:00 2001 From: bibaswan1 Date: Wed, 15 Oct 2025 16:22:34 +0530 Subject: [PATCH 05/12] change error message --- content/payments/billpay/pre-built-screens/webhooks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/payments/billpay/pre-built-screens/webhooks.mdx b/content/payments/billpay/pre-built-screens/webhooks.mdx index 62fd515b..febac044 100644 --- a/content/payments/billpay/pre-built-screens/webhooks.mdx +++ b/content/payments/billpay/pre-built-screens/webhooks.mdx @@ -672,7 +672,7 @@ Below are the parameter tables and sample payloads for the listed events. Note t "refId": "CMA0I65RCU2I32C3L0H0KNYQYAG40021831", "error": { "code": "insufficient-balance", - "message": "Insufficient balance in the bank account. Please ensure sufficient funds are available before retrying.", + "message": "The account does not have enough funds to initiate this payment", "type": "FUND_TRANSFER" } }`} @@ -826,7 +826,7 @@ Below are the parameter tables and sample payloads for the listed events. Note t error Object Error details for failure of bill payment - [{"code": "insufficient-balance", "message": "66578Insufficient balance in the bank account. Please ensure sufficient funds are available before retrying.01290", "type": "FUND_TRANSFER"] + [{"code": "insufficient-balance", "message": "66578The account does not have enough funds to initiate this payment01290", "type": "FUND_TRANSFER"] From fe57879a665cccedff8bbdf0bcab0e5476b9bc47 Mon Sep 17 00:00:00 2001 From: bibaswan1 Date: Wed, 15 Oct 2025 16:30:22 +0530 Subject: [PATCH 06/12] change error message --- content/payments/billpay/pre-built-screens/webhooks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/payments/billpay/pre-built-screens/webhooks.mdx b/content/payments/billpay/pre-built-screens/webhooks.mdx index febac044..62fd515b 100644 --- a/content/payments/billpay/pre-built-screens/webhooks.mdx +++ b/content/payments/billpay/pre-built-screens/webhooks.mdx @@ -672,7 +672,7 @@ Below are the parameter tables and sample payloads for the listed events. Note t "refId": "CMA0I65RCU2I32C3L0H0KNYQYAG40021831", "error": { "code": "insufficient-balance", - "message": "The account does not have enough funds to initiate this payment", + "message": "Insufficient balance in the bank account. Please ensure sufficient funds are available before retrying.", "type": "FUND_TRANSFER" } }`} @@ -826,7 +826,7 @@ Below are the parameter tables and sample payloads for the listed events. Note t error Object Error details for failure of bill payment - [{"code": "insufficient-balance", "message": "66578The account does not have enough funds to initiate this payment01290", "type": "FUND_TRANSFER"] + [{"code": "insufficient-balance", "message": "66578Insufficient balance in the bank account. Please ensure sufficient funds are available before retrying.01290", "type": "FUND_TRANSFER"] From 74d293569739107ad73d9e6c4a1423fa84fd8327 Mon Sep 17 00:00:00 2001 From: riyasuntwal Date: Fri, 24 Oct 2025 12:35:11 +0530 Subject: [PATCH 07/12] feat(AG-2455):remove-fip-selector-sson-callout --- content/data/account-aggregator/consent-object.mdx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/content/data/account-aggregator/consent-object.mdx b/content/data/account-aggregator/consent-object.mdx index e04cef0d..b3e3a0e1 100644 --- a/content/data/account-aggregator/consent-object.mdx +++ b/content/data/account-aggregator/consent-object.mdx @@ -230,10 +230,6 @@ The `context` parameter accepts key-value pairs to customize the consent flow. B ## FIP Selector Screen - - This feature is coming soon and will be available in future releases. - - ### Overview The FIP Selector Screen is a feature that helps improve AA journey success rates by intelligently routing users to the best performing Account Aggregator (AA) - FIP pair. From 9b8652fea56a487eccaf91acc6affc06d20f7103 Mon Sep 17 00:00:00 2001 From: adit_shriyans Date: Thu, 6 Nov 2025 14:50:34 +0530 Subject: [PATCH 08/12] add BAV_REVERSE_PENNY_DROP_PII_PURGED status in RPD Docs --- .../data/bav/reverse-penny-drop.json | 4 +- .../reverse-penny-drop/api-integration.mdx | 45 +++++++++++++++++-- 2 files changed, 44 insertions(+), 5 deletions(-) diff --git a/api-references/data/bav/reverse-penny-drop.json b/api-references/data/bav/reverse-penny-drop.json index 044698c9..7e292e2d 100644 --- a/api-references/data/bav/reverse-penny-drop.json +++ b/api-references/data/bav/reverse-penny-drop.json @@ -472,7 +472,7 @@ "status": { "type": "string", "description": "Status of the request", - "enum": ["BAV_REVERSE_PENNY_DROP_CREATED", "BAV_REVERSE_PENNY_DROP_EXPIRED", "BAV_REVERSE_PENNY_DROP_PAYMENT_SUCCESSFUL", "BAV_REVERSE_PENNY_DROP_PAYMENT_FAILED", "BAV_REVERSE_PENNY_DROP_ERROR", "BAV_REVERSE_PENNY_DROP_FAILED"] + "enum": ["BAV_REVERSE_PENNY_DROP_CREATED", "BAV_REVERSE_PENNY_DROP_EXPIRED", "BAV_REVERSE_PENNY_DROP_PAYMENT_SUCCESSFUL", "BAV_REVERSE_PENNY_DROP_PAYMENT_FAILED", "BAV_REVERSE_PENNY_DROP_ERROR", "BAV_REVERSE_PENNY_DROP_FAILED", "BAV_REVERSE_PENNY_DROP_PII_PURGED"] }, "traceId": { "type": "string", @@ -627,7 +627,7 @@ "status": { "type": "string", "description": "Status of the request", - "enum": ["BAV_REVERSE_PENNY_DROP_CREATED", "BAV_REVERSE_PENNY_DROP_EXPIRED", "BAV_REVERSE_PENNY_DROP_PAYMENT_SUCCESSFUL", "BAV_REVERSE_PENNY_DROP_PAYMENT_FAILED", "BAV_REVERSE_PENNY_DROP_ERROR", "BAV_REVERSE_PENNY_DROP_FAILED"] + "enum": ["BAV_REVERSE_PENNY_DROP_CREATED", "BAV_REVERSE_PENNY_DROP_EXPIRED", "BAV_REVERSE_PENNY_DROP_PAYMENT_SUCCESSFUL", "BAV_REVERSE_PENNY_DROP_PAYMENT_FAILED", "BAV_REVERSE_PENNY_DROP_ERROR", "BAV_REVERSE_PENNY_DROP_FAILED", "BAV_REVERSE_PENNY_DROP_PII_PURGED"] }, "traceId": { "type": "string", diff --git a/content/data/bav/reverse-penny-drop/api-integration.mdx b/content/data/bav/reverse-penny-drop/api-integration.mdx index 1b0199f7..a3d7bf2e 100644 --- a/content/data/bav/reverse-penny-drop/api-integration.mdx +++ b/content/data/bav/reverse-penny-drop/api-integration.mdx @@ -96,6 +96,7 @@ If successful, you will get a JSON response. Two of the fields in the response w - `BAV_REVERSE_PENNY_DROP_FAILED`, something went wrong. A payment should not be attempted with this request id. - `BAV_REVERSE_PENNY_DROP_EXPIRED`, upon expiry of payment link for customer. No payments can be done with expired links. The expiry is triggered as per the specified `validUpto` field or within 24 hours, whichever comes first. - `BAV_REVERSE_PENNY_DROP_PAYMENT_SUCCESSFUL`, when your user has successfully paid, and Setu’s banking partner has sent a credit alert with bank account details. +- `BAV_REVERSE_PENNY_DROP_PII_PURGED`, Indicates a successful transaction where all PII has been purged. Purge occurs automatically post successful webhook delivery or in batch within 1–2 days. - `BAV_REVERSE_PENNY_DROP_PAYMENT_FAILED`, when an issue occurs during payment by your user or at Setu’s banking partner’s end. The payment, if made, will be auto-refunded. @@ -660,8 +661,8 @@ This is an optional API. This API lets you know the bank verification status.
Response
{`{ - "status": "BAV_REVERSE_PENNY_DROP_PAYMENT_SUCCESSFUL", // or, BAV_REVERSE_PENNY_DROP_CREATED, BAV_REVERSE_PENNY_DROP_EXPIRED, BAV_REVERSE_PENNY_DROP_PAYMENT_FAILED - "data": { // null if status is BAV_REVERSE_PENNY_DROP_PAYMENT_SUCCESSFUL and data is not purged + "status": "BAV_REVERSE_PENNY_DROP_PAYMENT_SUCCESSFUL", // or, BAV_REVERSE_PENNY_DROP_CREATED, BAV_REVERSE_PENNY_DROP_EXPIRED, BAV_REVERSE_PENNY_DROP_PII_PURGED, BAV_REVERSE_PENNY_DROP_PAYMENT_FAILED + "data": { // null if status is BAV_REVERSE_PENNY_DROP_PII_PURGED and data is purged "accountType": "BANK_ACCOUNT", "bankAccountType": "SAVINGS" // Optional, can be null "bankAccountIfsc": "SBIN0000539", @@ -705,6 +706,44 @@ This is an optional API. This API lets you know the bank verification status. }, { key: "2", + label: "200", + content: ( + <> + <> +

+ Success Bank + verification status and bank details (if + available). +

+
+
Request
+ + {`GET /api/verify/ban/reverse/:requestId`} + +
+
Response
+ + {`{ + "status": "BAV_REVERSE_PENNY_DROP_PII_PURGED", + "data": null, + "id": "1b740e7a-5a81-4b88-ad43-110a08935286", + "shortUrl": "https://sandbox.bills.pe/wh9kk4mwuktg", + "upiBillId": "1114053970646533628", + "upiLink": "upi://pay?pa=bauvatest@kaypay&pn=BauvaTest&am=1.00&tr=1114053970646533628&tn=Account%20Verification&cu=INR&mode=04", + "validUpto": "2023-03-13T13:20:52.277688" + "traceId": "1-640f228a-4dded97e470971343adae3da", + "additionalData": { + "key1": "value1" + "key2": "value2" + }, +}`} + + + + ), + }, + { + key: "3", label: "404", content: ( <> @@ -732,7 +771,7 @@ This is an optional API. This API lets you know the bank verification status. ), }, { - key: "3", + key: "4", label: "500", content: ( <> From 8690336576b53b0e75740b4227fbfda3cd549d88 Mon Sep 17 00:00:00 2001 From: adit_shriyans Date: Fri, 14 Nov 2025 16:39:34 +0530 Subject: [PATCH 09/12] add example for webhook response when status is PII_PURGED --- .../data/bav/reverse-penny-drop.json | 34 ++++++++++------ .../reverse-penny-drop/api-integration.mdx | 39 +++++++++++++++++++ 2 files changed, 61 insertions(+), 12 deletions(-) diff --git a/api-references/data/bav/reverse-penny-drop.json b/api-references/data/bav/reverse-penny-drop.json index 7e292e2d..9d8feea6 100644 --- a/api-references/data/bav/reverse-penny-drop.json +++ b/api-references/data/bav/reverse-penny-drop.json @@ -314,19 +314,29 @@ "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Success13" - }, - { - "example": { - "$ref": "#/components/schemas/rdp_success_response01" - } - } - ] + "$ref": "#/components/schemas/Success13" }, - "example": { - "$ref": "#/components/schemas/rdp_success_response01" + "examples": { + "Success": { + "summary": "Successful Payment", + "value": { + "$ref": "#/components/schemas/rdp_success_response01" + } + }, + "Purged": { + "summary": "PII Purged", + "value": { + "additionalData": null, + "data": null, + "id": "1af36b4e-681e-48a2-a15c-3b92da00e4c4", + "shortUrl": "https://sandbox.bills.pe/vnl056cniwrk", + "status": "BAV_REVERSE_PENNY_DROP_PII_PURGED", + "traceId": "1-6348f366-55c47bbe132d78441bbe4623", + "upiBillId": "1005100812449350916", + "upiLink": "upi://pay?pa=bauvatest@kaypay&pn=BauvaTest&am=1.00&tr=1005100812449350916&tn=Account%20Verification&cu=INR&mode=04", + "validUpto": "2022-10-14T05:30:23.683631" + } + } } } } diff --git a/content/data/bav/reverse-penny-drop/api-integration.mdx b/content/data/bav/reverse-penny-drop/api-integration.mdx index a3d7bf2e..a3cb40d0 100644 --- a/content/data/bav/reverse-penny-drop/api-integration.mdx +++ b/content/data/bav/reverse-penny-drop/api-integration.mdx @@ -501,6 +501,45 @@ _The value can be `SAVINGS`, `CURRENT`, `NRO`, `NRE`_ + + Example 3 + + + +
+ + In case of PII purged + +
+ {` +{ + "data": { + "rpd": { + "success": true, + "id": "1af36b4e-681e-48a2-a15c-3b92da00e4c4", + "upiBillId": "1005100812449350916", + "data": null, + "additionalData": { + "key1": value1, + "key2": value2 + }, + "receiptId": "RPD_REC_12345", + "transactionId": "RPD_TXN_67890", + "status": "BAV_REVERSE_PENNY_DROP_PII_PURGED" + } + }, + "event": "RPD_VERIFICATION_UPDATE", + "status": "BAV_REVERSE_PENNY_DROP_PII_PURGED", + "traceId": "1-6348f366-55c47bbe132d78441bbe4623", + "productInstanceId": "prod_inst_123", + "timeStamp": "2023-10-27T10:00:00+05:30" +} + `} + + +
+
+ ##### 2. RPD_DEBIT_ATTEMPT_FAILED Webhook This webhook is sent when the end user tries to make a payments but the debit fails due to some reason. From b16253162f7e4f0d86b5450a5be83189391ec6b0 Mon Sep 17 00:00:00 2001 From: adit_shriyans Date: Fri, 14 Nov 2025 16:57:29 +0530 Subject: [PATCH 10/12] add example for webhook response when status is PII_PURGED --- api-references/data/bav/reverse-penny-drop.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/api-references/data/bav/reverse-penny-drop.json b/api-references/data/bav/reverse-penny-drop.json index 9d8feea6..7cc63f28 100644 --- a/api-references/data/bav/reverse-penny-drop.json +++ b/api-references/data/bav/reverse-penny-drop.json @@ -326,9 +326,12 @@ "Purged": { "summary": "PII Purged", "value": { - "additionalData": null, + "additionalData": { + "key1": "value1", + "key2": "value2" + }, "data": null, - "id": "1af36b4e-681e-48a2-a15c-3b92da00e4c4", + "id": "1af36b4e-681e-48a2-a15c-3b92da00e4c3", "shortUrl": "https://sandbox.bills.pe/vnl056cniwrk", "status": "BAV_REVERSE_PENNY_DROP_PII_PURGED", "traceId": "1-6348f366-55c47bbe132d78441bbe4623", @@ -624,7 +627,8 @@ "$ref": "#/components/schemas/AdditionalData" }, "data": { - "$ref": "#/components/schemas/Data3" + "$ref": "#/components/schemas/Data3", + "nullable": true }, "id": { "type": "string", From c18362620d909f228e178cfbe79600b9bfbe8b1e Mon Sep 17 00:00:00 2001 From: sowmith-setu Date: Mon, 24 Nov 2025 15:55:42 +0530 Subject: [PATCH 11/12] Add Credit adjustment to bill payment webhook --- .../billpay/api-integration/webhooks.mdx | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/content/payments/billpay/api-integration/webhooks.mdx b/content/payments/billpay/api-integration/webhooks.mdx index 002eadc0..ec49d9e2 100644 --- a/content/payments/billpay/api-integration/webhooks.mdx +++ b/content/payments/billpay/api-integration/webhooks.mdx @@ -189,6 +189,31 @@ URL : To be provided by partner`}
+ +
+ + + Bill payment sample request (Credit Adjustment) + + + + {`{ + "event": "CREDIT_ADJUSTMENT", + "data": { + "refId": "HENSVVR4QOS7X1UGPY7JGUV444P10102202", + "status": "CREDIT ADJUSTMENT", + "transactionId": "AX01122999900001", + "paymentRefId": "N2001121212344", + "amountPaid": 10000, + "note": "Biller initiated refund. Refund to the end user.", + "traceId": "C3SFG0O6N88R6UI7EQ", + "timeStamp": "2024-03-19T12:30:45Z" + } +}`} + +
+
+
### Dispute webhook @@ -755,4 +780,4 @@ URL : To be provided by partner (Skip Payment Callback URL)`} - \ No newline at end of file + From e56f23d68f3834df87899f2f53669863384d382a Mon Sep 17 00:00:00 2001 From: sowmith-setu Date: Wed, 26 Nov 2025 14:54:41 +0530 Subject: [PATCH 12/12] Update webhooks.mdx --- .../billpay/api-integration/webhooks.mdx | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/content/payments/billpay/api-integration/webhooks.mdx b/content/payments/billpay/api-integration/webhooks.mdx index ec49d9e2..939e32e9 100644 --- a/content/payments/billpay/api-integration/webhooks.mdx +++ b/content/payments/billpay/api-integration/webhooks.mdx @@ -198,16 +198,19 @@ URL : To be provided by partner`} {`{ - "event": "CREDIT_ADJUSTMENT", + "event": "BILL_PAY", "data": { - "refId": "HENSVVR4QOS7X1UGPY7JGUV444P10102202", - "status": "CREDIT ADJUSTMENT", - "transactionId": "AX01122999900001", - "paymentRefId": "N2001121212344", - "amountPaid": 10000, - "note": "Biller initiated refund. Refund to the end user.", - "traceId": "C3SFG0O6N88R6UI7EQ", - "timeStamp": "2024-03-19T12:30:45Z" + "refId": "D4FBHNBFTPVUIF7U2L30zNfa44153241214", + "status": "Credit_Adjustment", + "billerRefId": "AB123456", + "transactionId": "AS015324121535B9bN8t", + "paymentDetails": { + "mode": "Internet Banking/Debit Card/Credit Card/Cash/UPI/Wallet/Prepaid Card/AEPS/Account Transfer/Bharat QR/USSD", + "paymentRefId": "VBPO2511779235981744230279", + "amount": 87150, + "timestamp": "2025-11-20T12:15:36.000+05:30" + }, + "billerId": "INDI00000NATT5" } }`}