diff --git a/README.md b/README.md
index bb266201..d8b5b4a7 100644
--- a/README.md
+++ b/README.md
@@ -42,7 +42,7 @@ All images and assets for the documentation are stored in the `strapi-assets` bu
1. **Bucket Name**: `strapi-assets`
2. **Folder Structure**: Follow the same folder structure as the content layer in `/content`
-3. **URL Format**: `https://storage.googleapis.com/strapi-assets/latest/{path-to-asset}`
+3. **URL Format**: `https://docs-assets.setu.co/latest/{path-to-asset}`
### Example Asset Upload
@@ -50,7 +50,7 @@ If you have an image for the Account Aggregator consent object flow diagram:
- **Content path**: `/content/data/account-aggregator/consent-object.mdx`
- **Asset path**: `/data/account-aggregator/consent-object-flow.png`
-- **Final URL**: `https://storage.googleapis.com/strapi-assets/latest/data/account-aggregator/consent-object-flow.png`
+- **Final URL**: `https://docs-assets.setu.co/latest/data/account-aggregator/consent-object-flow.png`
### Using Assets in Content
@@ -58,7 +58,7 @@ Reference assets in your MDX files using the `MainImage` component:
```mdx
```
diff --git a/api-playground/json/data/bav/bundled-bav/CreateBundledBAV.json b/api-playground/json/data/bav/bundled-bav/CreateBundledBAV.json
new file mode 100644
index 00000000..76cf4e00
--- /dev/null
+++ b/api-playground/json/data/bav/bundled-bav/CreateBundledBAV.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "header": [
+ {
+ "x-client-id": "test-client-id"
+ },
+ {
+ "x-client-secret": "test-client-secret"
+ },
+ {
+ "x-product-instance-id": "test-product-instance-id"
+ }
+ ]
+ },
+ "body": {
+ "mobileNumber": "9876543210"
+ }
+}
diff --git a/api-playground/json/data/bav/bundled-bav/GetBundledBAVDetails.json b/api-playground/json/data/bav/bundled-bav/GetBundledBAVDetails.json
new file mode 100644
index 00000000..dc04e3ab
--- /dev/null
+++ b/api-playground/json/data/bav/bundled-bav/GetBundledBAVDetails.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "path": [
+ {
+ "requestId": "test-request-id"
+ }
+ ],
+ "header": [
+ {
+ "x-client-id": "test-client-id"
+ },
+ {
+ "x-client-secret": "test-client-secret"
+ },
+ {
+ "x-product-instance-id": "test-product-instance-id"
+ }
+ ]
+ }
+}
diff --git a/api-references/data/account-aggregator.json b/api-references/data/account-aggregator.json
index 26905300..6818c503 100644
--- a/api-references/data/account-aggregator.json
+++ b/api-references/data/account-aggregator.json
@@ -752,12 +752,12 @@
}
]
},
- "/v2/sessions/refresh/{session_id}": {
+ "/v2/sessions/refresh/{consent_id}": {
"get": {
"parameters": [
{
"in": "path",
- "name": "session_id",
+ "name": "consent_id",
"required": true,
"description": "The unique identifier of the session to be refreshed",
"schema": {
@@ -799,7 +799,7 @@
}
},
"summary": "Refresh Data Pull",
- "description": "This API refreshes an existing FI data session using the session ID. Optionally, the session can be restarted if the `restart` query parameter is provided.",
+ "description": "This API refreshes an existing FI data session using the consent ID. Optionally, the session can be restarted if the `restart` query parameter is provided.",
"tags": [
"FI data fetch V2 APIs"
]
@@ -808,7 +808,7 @@
"parameters": [
{
"in": "path",
- "name": "session_id",
+ "name": "consent_id",
"required": true,
"description": "The unique identifier of the session to be refreshed",
"schema": {
@@ -856,7 +856,7 @@
}
},
"summary": "Data fetch for custom range",
- "description": "This API refreshes an existing FI data session using the session ID and allows specifying a custom data range for the session.",
+ "description": "This API refreshes an existing FI data session using the consent ID and allows specifying a custom data range for the session.",
"tags": [
"FI data fetch V2 APIs"
]
diff --git a/api-references/data/bav/bundled-bav.json b/api-references/data/bav/bundled-bav.json
new file mode 100644
index 00000000..00ad4229
--- /dev/null
+++ b/api-references/data/bav/bundled-bav.json
@@ -0,0 +1,458 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Data Gateway - Bundled Bank Account Verification",
+ "description": "**Bundled Bank Account Verification:**\nVerify a customer's bank account using multiple BAV modes via a single bundled flow.",
+ "contact": {},
+ "version": "1.0"
+ },
+ "servers": [
+ {
+ "url": "https://dg-sandbox.setu.co",
+ "description": "Sandbox"
+ },
+ {
+ "url": "https://dg.setu.co",
+ "description": "Production"
+ }
+ ],
+ "paths": {
+ "/api/bundled-bav": {
+ "post": {
+ "tags": ["Bundled BAV"],
+ "summary": "Create Bundled BAV request",
+ "operationId": "CreateBundledBAV",
+ "parameters": [
+ {
+ "name": "x-client-id",
+ "in": "header",
+ "description": "",
+ "required": true,
+ "style": "simple",
+ "schema": {
+ "type": "string",
+ "example": "test-client-id"
+ }
+ },
+ {
+ "name": "x-client-secret",
+ "in": "header",
+ "description": "",
+ "required": true,
+ "style": "simple",
+ "schema": {
+ "type": "string",
+ "example": "test-client-secret"
+ }
+ },
+ {
+ "name": "x-product-instance-id",
+ "in": "header",
+ "description": "",
+ "required": true,
+ "style": "simple",
+ "schema": {
+ "type": "string",
+ "example": "test-product-instance-id"
+ }
+ }
+ ],
+ "requestBody": {
+ "description": "Mobile number to verify",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BundledBAVCreateRequestBody"
+ },
+ "example": {
+ "mobileNumber": "9876543210"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "headers": {},
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BundledBAVCreateResponse"
+ },
+ "example": {
+ "requestId": "81f4d2dd-6d32-48b0-8060-4976ea7acffc",
+ "url": "https://dg.setu.co/bundled-bav?payload=ENCRYPTED_PAYLOAD",
+ "success": true,
+ "message": "Bundled BAV request created",
+ "traceId": "1-695ce461-2fb20b79433b798254230406"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "headers": {},
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BundledBAVErrorResponse"
+ },
+ "example": {
+ "success": false,
+ "message": "Bad request",
+ "traceId": "1-693a76aa-5080d58c3a3389f55d3ad019"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "headers": {},
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BundledBAVErrorResponse"
+ },
+ "example": {
+ "success": false,
+ "message": "Failed to create request",
+ "traceId": "1-693a76aa-5080d58c3a3389f55d3ad019"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "security": []
+ }
+ },
+ "/api/bundled-bav/{requestId}": {
+ "get": {
+ "tags": ["Bundled BAV"],
+ "summary": "Get Bundled BAV request status",
+ "operationId": "GetBundledBAVDetails",
+ "parameters": [
+ {
+ "name": "requestId",
+ "in": "path",
+ "description": "requestId of the Bundled BAV request",
+ "required": true,
+ "style": "simple",
+ "schema": {
+ "type": "string",
+ "example": "81f4d2dd-6d32-48b0-8060-4976ea7acffc"
+ }
+ },
+ {
+ "name": "x-client-id",
+ "in": "header",
+ "description": "Client id of your product, provided by Setu",
+ "required": true,
+ "style": "simple",
+ "schema": {
+ "type": "string",
+ "example": "test-client-id"
+ }
+ },
+ {
+ "name": "x-client-secret",
+ "in": "header",
+ "description": "Client secret of your product, provided by Setu",
+ "required": true,
+ "style": "simple",
+ "schema": {
+ "type": "string",
+ "example": "test-client-secret"
+ }
+ },
+ {
+ "name": "x-product-instance-id",
+ "in": "header",
+ "description": "Instance id of your product, provided by Setu",
+ "required": true,
+ "style": "simple",
+ "schema": {
+ "type": "string",
+ "example": "test-product-instance-id"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "headers": {},
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BundledBAVGetResponseCommon"
+ },
+ "example": {
+ "requestId": "81f4d2dd-6d32-48b0-8060-4976ea7acffc",
+ "data": {
+ "accountHolderName": "John Doe",
+ "bankAccountIfsc": "ICIC0005573",
+ "bankAccountNumber": "1234567890",
+ "bankName": "ICICI Bank"
+ },
+ "success": true,
+ "message": "",
+ "status": "BAV_SUCCESSFUL",
+ "traceId": "1-693a76aa-5080d58c3a3389f55d3ad019"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "headers": {},
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BundledBAVErrorResponse"
+ },
+ "example": {
+ "success": false,
+ "message": "Request not found",
+ "traceId": "71514389-efc2-4d2a-9b76-3afa8cd2f043"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "headers": {},
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BundledBAVErrorResponse"
+ },
+ "example": {
+ "success": false,
+ "message": "Failed to get request details",
+ "traceId": "0f805317-1ccf-4ed6-ad25-c457633ed590"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "security": []
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "BundledBAVCreateRequestBody": {
+ "title": "BundledBAVCreateRequestBody",
+ "type": "object",
+ "required": ["mobileNumber"],
+ "properties": {
+ "mobileNumber": {
+ "type": "string",
+ "description": "Mobile number to verify (10 digits)",
+ "example": "9876543210"
+ }
+ }
+ },
+ "BundledBAVCreateResponse": {
+ "title": "BundledBAVCreateResponse",
+ "type": "object",
+ "required": [
+ "requestId",
+ "url",
+ "success",
+ "message",
+ "traceId"
+ ],
+ "properties": {
+ "requestId": {
+ "type": "string",
+ "description": "Bundled BAV request ID (UUID)"
+ },
+ "url": {
+ "type": "string",
+ "description": "URL to redirect user to for completing account verification"
+ },
+ "success": {
+ "type": "boolean",
+ "description": "Whether the request was successful"
+ },
+ "message": {
+ "type": "string",
+ "description": "Response message from the API"
+ },
+ "traceId": {
+ "type": "string",
+ "description": "Trace id for the request"
+ }
+ },
+ "example": {
+ "requestId": "81f4d2dd-6d32-48b0-8060-4976ea7acffc",
+ "url": "https://dg.setu.co/bundled-bav?payload=ENCRYPTED_PAYLOAD",
+ "success": true,
+ "message": "Bundled BAV request created",
+ "traceId": "1-695ce461-2fb20b79433b798254230406"
+ }
+ },
+ "BundledBAVGetResponseCommon": {
+ "title": "BundledBAVGetResponseCommon",
+ "description": "Common response shape for GET bundled BAV status and webhook notification. Only these 4 common fields are documented.",
+ "type": "object",
+ "required": [
+ "requestId",
+ "data",
+ "success",
+ "message",
+ "status",
+ "traceId"
+ ],
+ "properties": {
+ "requestId": {
+ "type": "string",
+ "description": "Bundled BAV request ID (UUID)"
+ },
+ "data": {
+ "type": "object",
+ "description": "Verified bank account details",
+ "additionalProperties": true,
+ "example": {
+ "accountHolderName": "John Doe",
+ "bankAccountIfsc": "ICIC0005573",
+ "bankAccountNumber": "1234567890",
+ "bankName": "ICICI Bank"
+ }
+ },
+ "success": {
+ "type": "boolean",
+ "description": "Whether the operation was successful"
+ },
+ "message": {
+ "type": "string",
+ "description": "Human-readable message"
+ },
+ "status": {
+ "type": "string",
+ "enum": ["BAV_SUCCESSFUL", "BAV_FAILED", "BAV_PENDING"]
+ },
+ "traceId": {
+ "type": "string",
+ "description": "Trace id for the request"
+ }
+ },
+ "example": {
+ "requestId": "81f4d2dd-6d32-48b0-8060-4976ea7acffc",
+ "data": {
+ "accountHolderName": "John Doe",
+ "bankAccountIfsc": "ICIC0005573",
+ "bankAccountNumber": "1234567890",
+ "bankName": "ICICI Bank"
+ },
+ "success": true,
+ "message": "",
+ "status": "BAV_SUCCESSFUL",
+ "traceId": "1-693a76aa-5080d58c3a3389f55d3ad019"
+ }
+ },
+ "BundledBAVWebhookNotification": {
+ "title": "BundledBAVWebhookNotification",
+ "description": "Schema of the webhook notification that Setu sends to your configured webhook URL for bundled BAV.",
+ "type": "object",
+ "required": [
+ "requestId",
+ "data",
+ "bavMethod",
+ "success",
+ "message",
+ "timestamp"
+ ],
+ "properties": {
+ "requestId": {
+ "type": "string",
+ "description": "Bundled BAV request ID (UUID) for which verification completed"
+ },
+ "data": {
+ "type": "object",
+ "description": "Verified bank account details",
+ "additionalProperties": true,
+ "example": {
+ "accountHolderName": "John Doe",
+ "bankAccountIfsc": "ICIC0005573",
+ "bankAccountNumber": "1234567890",
+ "bankName": "ICICI Bank"
+ }
+ },
+ "bavMethod": {
+ "type": "string",
+ "enum": [
+ "MOBILE_TO_BANK",
+ "VPA_TO_BANK",
+ "PENNY_DROP",
+ "REVERSE_PENNY_DROP"
+ ],
+ "description": "Whether the bundled BAV verification was successful"
+ },
+ "success": {
+ "type": "boolean",
+ "description": "Whether the bundled BAV verification was successful"
+ },
+ "message": {
+ "type": "string",
+ "description": "Message describing the result"
+ },
+ "timestamp": {
+ "type": "string",
+ "description": "Timestamp of the bank account verification"
+ }
+ },
+ "example": {
+ "requestId": "81f4d2dd-6d32-48b0-8060-4976ea7acffc",
+ "data": {
+ "accountHolderName": "John Doe",
+ "bankAccountIfsc": "ICIC0005573",
+ "bankAccountNumber": "1234567890",
+ "bankName": "ICICI Bank"
+ },
+ "bavMethod": "MOBILE_TO_BANK",
+ "success": true,
+ "message": "Bank account verification successful using MOBILE_TO_BANK",
+ "timestamp": "2026-01-08T12:27:50.697274+00:00"
+ }
+ },
+ "BundledBAVErrorResponse": {
+ "title": "BundledBAVErrorResponse",
+ "type": "object",
+ "required": ["success", "message", "traceId"],
+ "properties": {
+ "success": {
+ "type": "boolean",
+ "description": "Always false for error responses"
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message"
+ },
+ "traceId": {
+ "type": "string",
+ "description": "Trace id for the request"
+ }
+ },
+ "example": {
+ "success": false,
+ "message": "Bad request",
+ "traceId": "1-693a76aa-5080d58c3a3389f55d3ad019"
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "bearer": []
+ }
+ ],
+ "tags": [
+ {
+ "name": "Bundled BAV"
+ }
+ ]
+}
diff --git a/api-references/data/bav/reverse-penny-drop.json b/api-references/data/bav/reverse-penny-drop.json
index 044698c9..7cc63f28 100644
--- a/api-references/data/bav/reverse-penny-drop.json
+++ b/api-references/data/bav/reverse-penny-drop.json
@@ -314,19 +314,32 @@
"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": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "data": null,
+ "id": "1af36b4e-681e-48a2-a15c-3b92da00e4c3",
+ "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"
+ }
+ }
}
}
}
@@ -472,7 +485,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",
@@ -614,7 +627,8 @@
"$ref": "#/components/schemas/AdditionalData"
},
"data": {
- "$ref": "#/components/schemas/Data3"
+ "$ref": "#/components/schemas/Data3",
+ "nullable": true
},
"id": {
"type": "string",
@@ -627,7 +641,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/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 662ded14..423fd304 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"
},
@@ -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,13 @@
"description": "BBPS Complaint status",
"example": "ASSIGNED",
"enum": [
- "ASSIGNED"
+ "ASSIGNED",
+ "RESOLVED",
+ "REJECTED",
+ "DEFAULT_RESOLVED",
+ "REFUNDED",
+ "PENDING_REFUND",
+ "FAILED"
]
},
"disputeId": {
@@ -5943,6 +5973,12 @@
],
"example": "DISPUTE"
},
+ "ticketTAT": {
+ "type": "string",
+ "format": "date",
+ "nullable": true,
+ "example": "2024-01-20"
+ },
"assignedTo": {
"type": "string",
"example": "ICICI BOU"
@@ -6215,6 +6251,12 @@
],
"example": "DISPUTE"
},
+ "ticketTAT": {
+ "type": "string",
+ "format": "date",
+ "nullable": true,
+ "example": "2024-01-20"
+ },
"assignedTo": {
"type": "string",
"example": "ICICI BOU"
@@ -6887,7 +6929,8 @@
"ASSIGNED_TO_OU",
"ESCALATED",
"RESOLVED",
- "UNRESOLVED"
+ "UNRESOLVED",
+ "FAILED"
]
}
}
@@ -7162,7 +7205,8 @@
"REJECTED",
"DEFAULT_RESOLVED",
"REFUNDED",
- "PENDING_REFUND"
+ "PENDING_REFUND",
+ "FAILED"
]
},
"ticketType": {
diff --git a/api-references/payments/billpay/mobile-prepaid-recharge.json b/api-references/payments/billpay/mobile-prepaid-recharge.json
index b4daab0d..aed0713e 100644
--- a/api-references/payments/billpay/mobile-prepaid-recharge.json
+++ b/api-references/payments/billpay/mobile-prepaid-recharge.json
@@ -1098,7 +1098,7 @@
"properties": {
"error": {
"type": [
- "string",
+ "object",
"null"
],
"example": null,
@@ -1147,8 +1147,8 @@
},
"status": {
"type": "string",
- "example": "Success",
- "description": "Status of the recharge transaction.\n\nPossible values:\n- `Success`\n- `Processing`\n- `Failure`"
+ "example": "Successful",
+ "description": "Status of the recharge transaction.\n\nPossible values:\n- `Successful`\n- `Processing`\n- `Failure`"
},
"operatorRefId": {
"type": "string",
@@ -1565,8 +1565,8 @@
},
"status": {
"type": "string",
- "example": "Success",
- "description": "Status of the recharge transaction.\n\nPossible values:\n- `Success`\n- `Processing`\n- `Failure`"
+ "example": "Successful",
+ "description": "Status of the recharge transaction.\n\nPossible values:\n- `Successful`\n- `Processing`\n- `Failure`"
},
"operatorRefId": {
"type": "string",
@@ -1732,15 +1732,106 @@
]
}
},
- "/wallet/balance": {
- "get": {
+ "/recharge/validate": {
+ "post": {
"tags": [
- "Wallet"
+ "Recharge"
+ ],
+ "summary": "API to validate a prepaid recharge request for a mobile number",
+ "consumes": [
+ "application/json"
],
- "summary": "API to fetch the balance of the wallet",
"produces": [
"application/json"
],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "customer",
+ "paymentDetails"
+ ],
+ "properties": {
+ "customer": {
+ "type": "object",
+ "required": [
+ "billParameters",
+ "mobile"
+ ],
+ "properties": {
+ "billParameters": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The display name of the parameter. Must be one of: 'Mobile Number', 'Operator', or 'Location'.",
+ "example": "Mobile Number"
+ },
+ "value": {
+ "type": "string",
+ "description": "The value for the parameter. For 'Mobile Number': 10-digit number. For 'Operator': lowercase operator name (e.g., 'jio', 'airtel', 'vi', 'bsnl', 'mtnl'). For 'Location': exact circle name."
+ }
+ }
+ },
+ "description": "Parameters for the recharge validation. This array should contain three objects with names: 'Mobile Number', 'Operator', and 'Location'."
+ },
+ "mobile": {
+ "type": "string",
+ "description": "The 10-digit mobile number of the user initiating the recharge. This may or may not be the same as the number being recharged."
+ }
+ },
+ "description": "Details needed for identifying the customer and the recharge validation"
+ },
+ "paymentDetails": {
+ "type": "object",
+ "required": [
+ "amount"
+ ],
+ "properties": {
+ "amount": {
+ "type": "number",
+ "description": "Recharge amount in paise (1/100 of a rupee). For example, 1100 paise = 11 INR.",
+ "example": 1100
+ }
+ },
+ "description": "Details of the payment for the recharge validation"
+ }
+ }
+ },
+ "example": {
+ "customer": {
+ "billParameters": [
+ {
+ "name": "Mobile Number",
+ "value": "7975766912"
+ },
+ {
+ "name": "Operator",
+ "value": "jio"
+ },
+ {
+ "name": "Location",
+ "value": "Himachal Pradesh"
+ }
+ ],
+ "mobile": "7566628882"
+ },
+ "paymentDetails": {
+ "amount": 1100
+ }
+ }
+ }
+ }
+ },
"responses": {
"200": {
"content": {
@@ -1756,115 +1847,398 @@
"success": {
"type": "boolean",
"example": true,
- "description": "Status of the API call"
+ "description": "Status of API call"
},
"data": {
"type": "object",
"properties": {
- "balance": {
- "type": "number",
- "example": 1500.75,
- "description": "Current wallet balance available"
+ "error": {
+ "$ref": "#/components/schemas/ValidationError",
+ "nullable": true,
+ "description": "Error details if any, otherwise null"
},
- "currency": {
+ "details": {
+ "type": "object",
+ "properties": {
+ "mobile_number": {
+ "type": "string",
+ "example": "7249649345",
+ "description": "Mobile number associated with the validation"
+ },
+ "provider": {
+ "type": "string",
+ "example": "Airtel",
+ "description": "Provider name(Airtel, Jio, Vi, BSNL, MTNL)"
+ },
+ "service_type": {
+ "type": "string",
+ "example": "M",
+ "description": "Represents the service type. Always set to `M` for Mobile recharge."
+ },
+ "is_special": {
+ "type": "boolean",
+ "example": false,
+ "description": "Indicates if this is a special service"
+ }
+ },
+ "description": "Additional details about the recharge validation"
+ },
+ "amount": {
+ "type": "integer",
+ "example": 2200,
+ "description": "Recharge amount in paise"
+ },
+ "ValidationRefNo": {
"type": "string",
- "example": "INR",
- "description": "Currency of the wallet balance"
+ "example": "LXMREN493393852",
+ "description": "Unique validation reference number for the transaction"
+ },
+ "status": {
+ "type": "string",
+ "example": "Successful",
+ "description": "Status of the recharge validation. Possible values: `Validation Successful`, `Validation Failed`"
}
},
- "description": "Details of the wallet balance"
+ "description": "Details of the recharge validation"
},
- "traceId": {
+ "trace_id": {
"type": "string",
- "example": "dMXpKMx4TBKsu8ro1559WeYZS21Og5",
- "description": "Identifier associated with this response for debug purposes"
+ "example": "0466a81f4d4a1c336dcbc",
+ "description": "Identifier associated with this response for debugging purposes"
+ }
+ }
+ },
+ "examples": {
+ "validation-success": {
+ "value": {
+ "data": {
+ "error": null,
+ "details": {
+ "mobile_number": "7249649345",
+ "provider": "Airtel",
+ "service_type": "M",
+ "is_special": false
+ },
+ "amount": 2200,
+ "ValidationRefNo": "LXMREN493393852",
+ "status": "Validation Successful"
+ },
+ "trace_id": "0466a81f4d4a1c336dcbc",
+ "success": true
+ }
+ },
+ "invalid-amount": {
+ "value": {
+ "data": {
+ "error": {
+ "code": "2",
+ "message": "Invalid Amount.",
+ "failureReason": "Invalid Amount"
+ },
+ "details": {
+ "mobile_number": "7249649345",
+ "provider": "Airtel",
+ "service_type": "M",
+ "is_special": false
+ },
+ "amount": 150,
+ "ValidationRefNo": "LVSYAHFY389555848",
+ "status": "Validation Failed"
+ },
+ "trace_id": "d4kll8d2vl64uj1778m0",
+ "success": true
+ }
+ },
+ "amount-zero-failure": {
+ "value": {
+ "data": {
+ "error": {
+ "code": "4",
+ "message": "Amount Less Or Equalto Zero",
+ "failureReason": "Amount Less Or Equalto Zero"
+ },
+ "details": {
+ "mobile_number": "7249649345",
+ "provider": "Airtel",
+ "service_type": "M",
+ "is_special": false
+ },
+ "amount": 0,
+ "ValidationRefNo": "LVSYTNLY389512894",
+ "status": "Validation Failed"
+ },
+ "trace_id": "d4klbe52vl649l2047sg",
+ "success": true
+ }
+ },
+ "operator-internal-processing-error": {
+ "value": {
+ "data": {
+ "error": {
+ "code": "2",
+ "message": "Operator Internal processing error",
+ "failureReason": "Operator Internal processing error"
+ },
+ "details": {
+ "mobile_number": "7249649345",
+ "provider": "Airtel",
+ "service_type": "M",
+ "is_special": false
+ },
+ "amount": 0,
+ "ValidationRefNo": "LVSYTNLY389516789",
+ "status": "Validation Failed"
+ },
+ "trace_id": "d4kll8d2vl64uj1778m0",
+ "success": true
+ }
+ },
+ "error-in-validation-api-call": {
+ "value": {
+ "data": {
+ "error": {
+ "code": "1",
+ "message": "Error in Validation API call",
+ "failureReason": "Error in Validation API call"
+ },
+ "details": {
+ "mobile_number": "7249649345",
+ "provider": "Airtel",
+ "service_type": "M",
+ "is_special": false
+ },
+ "amount": 0,
+ "ValidationRefNo": "LVSYTNLY389516789",
+ "status": "Validation Failed"
+ },
+ "trace_id": "d4kll8d2vl64uj1778m0",
+ "success": true
}
}
}
}
},
- "description": "Response containing the wallet balance details"
+ "description": "Ok"
},
- "422": {
- "description": "Unprocessable Entity",
+ "400": {
+ "description": "Bad Request - Missing Required Parameters",
"content": {
"application/json": {
"schema": {
"type": "object",
- "required": ["success", "error", "trace_id"],
"properties": {
- "success": { "type": "boolean", "example": false },
"error": {
"type": "object",
- "required": ["code", "message", "failureReason"],
"properties": {
- "code": { "type": "string", "example": "ERR009" },
- "message": { "type": "string", "example": "Invalid Product Instance ID: " },
- "failureReason": { "type": "string", "example": "invalid-instance-id" }
+ "code": {
+ "type": "string",
+ "example": "ERR011"
+ },
+ "failureReason": {
+ "type": "string",
+ "example": "input-params-missing"
+ },
+ "message": {
+ "type": "string",
+ "example": "Missing required parameters: ['Mobile Number', 'Operator', 'Location']"
+ }
}
},
- "trace_id": { "type": "string", "example": "d1m1kslcjsji7vn3b5vg" }
+ "success": {
+ "type": "boolean",
+ "example": false
+ },
+ "trace_id": {
+ "type": "string",
+ "example": "TRACE-1234567890"
+ }
}
},
"examples": {
- "invalid-instance-id": {
- "value": {
- "success": false,
- "error": {
- "code": "ERR009",
- "message": "Invalid Product Instance ID: b7e2c9a1-5d4f-4c8e-9f3a-2a1b6c7d8e9f",
- "failureReason": "invalid-instance-id"
- },
- "trace_id": "d1m1kslcjsji7vn3b5vg"
- }
- },
- "balance-api-unavailable-in-uat": {
+ "missing-params": {
"value": {
"success": false,
"error": {
- "code": "ERR012",
- "message": "Balance API is not available in UAT environment",
- "failureReason": "balance-api-unavailable-in-uat"
+ "code": "ERR011",
+ "message": "Missing required parameters: ['Mobile Number', 'Operator', 'Location']",
+ "failureReason": "input-params-missing"
},
- "trace_id": "d1m1j6kd7qs2b5gbln8g"
+ "trace_id": "TRACE-1234567890"
}
}
}
}
}
},
- "500": {
- "description": "Internal Server Error",
+ "422": {
+ "description": "Invalid Request Parameters",
"content": {
"application/json": {
"schema": {
"type": "object",
- "required": ["success", "error", "trace_id"],
"properties": {
- "success": { "type": "boolean", "example": false },
"error": {
"type": "object",
- "required": ["code", "message", "failureReason"],
"properties": {
- "code": { "type": "string", "example": "ERR100" },
- "message": { "type": "string", "example": "Internal Server Error" },
- "failureReason": { "type": "string", "example": "internal-server-error" }
+ "code": {
+ "type": "string",
+ "example": "ERR011"
+ },
+ "failureReason": {
+ "type": "string",
+ "example": "input-params-invalid"
+ },
+ "message": {
+ "type": "string",
+ "example": "Invalid operator name"
+ }
}
},
- "trace_id": { "type": "string", "example": "d1m1us4d7qs2b5gblne0" }
+ "success": {
+ "type": "boolean",
+ "example": false
+ },
+ "trace_id": {
+ "type": "string",
+ "example": "ac14888e-d56d-46e1-83cc-a408c87d32d0"
+ }
}
},
- "example": {
- "success": false,
- "error": {
- "code": "ERR100",
- "message": "Internal Server Error",
- "failureReason": "internal-server-error"
- },
- "trace_id": "d1m1us4d7qs2b5gblne0"
- }
- }
- }
+ "examples": {
+ "invalid-params": {
+ "value": {
+ "error": {
+ "code": "ERR011",
+ "failureReason": "input-params-invalid",
+ "message": "Invalid operator name"
+ },
+ "success": false,
+ "trace_id": "ac14888e-d56d-46e1-83cc-a408c87d32d0"
+ }
+ },
+ "invalid-payment-mode": {
+ "value": {
+ "error": {
+ "code": "ERR011",
+ "message": "Value error, allowed payment modes : ['Internet Banking', 'UPI', 'Debit Card', 'Credit Card', 'Wallet']: paymentDetails.mode",
+ "failureReason": "input-params-invalid"
+ },
+ "success": false,
+ "trace_id": "ac14888e-d56d-46e1-83cc-a408c87d32d0"
+ }
+ },
+ "invalid-instance-id": {
+ "value": {
+ "error": {
+ "code": "ERR009",
+ "message": "Invalid Product Instance ID: 91b09564-c250-4823-a262-7464c171974eaa",
+ "failureReason": "invalid-instance-id"
+ },
+ "success": false,
+ "trace_id": "8ed9fff1-19fb-4ce5-8072-22b02a314d1f"
+ }
+ }
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Upstream API Connectivity Error",
+ "headers": {
+ "content-length": {
+ "schema": {
+ "type": "string",
+ "example": "183"
+ }
+ },
+ "date": {
+ "schema": {
+ "type": "string",
+ "example": "Mon, 14 Oct 2024 04:22:39 GMT"
+ }
+ },
+ "server": {
+ "schema": {
+ "type": "string",
+ "example": "uvicorn"
+ }
+ },
+ "x-trace-id": {
+ "schema": {
+ "type": "string",
+ "example": "45c7e24c-68c2-46ab-84fc-fb2b7fe5b02b"
+ }
+ }
+ },
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": "ERR999"
+ },
+ "failureReason": {
+ "type": "string",
+ "example": "upstream-connectivity-error"
+ },
+ "message": {
+ "type": "string",
+ "example": "Upstream API Connectivity Error"
+ }
+ }
+ },
+ "success": {
+ "type": "boolean",
+ "example": false
+ },
+ "trace_id": {
+ "type": "string",
+ "example": "45c7e24c-68c2-46ab-84fc-fb2b7fe5b02b"
+ }
+ }
+ },
+ "examples": {
+ "upstream-connectivity-error": {
+ "value": {
+ "error": {
+ "code": "ERR999",
+ "failureReason": "upstream-connectivity-error",
+ "message": "Upstream API Connectivity Error"
+ },
+ "success": false,
+ "trace_id": "45c7e24c-68c2-46ab-84fc-fb2b7fe5b02b"
+ }
+ },
+ "duplicate-payment-ref-id": {
+ "value": {
+ "success": false,
+ "error": {
+ "code": "ERR005",
+ "message": "Duplicate Payment Reference ID : TEST6291DD4004750702202402",
+ "failureReason": "duplicate-payment-ref-id"
+ },
+ "trace_id": "3d7bfc34-0f80-43c2-b103-38633bb74f8b"
+ }
+ },
+ "invalid-instance-id": {
+ "value": {
+ "success": false,
+ "error": {
+ "code": "ERR009",
+ "message": "Invalid Product Instance ID: 91b09564-c250-4823-a262-7464c171974eaa",
+ "failureReason": "invalid-instance-id"
+ },
+ "trace_id": "8ed9fff1-19fb-4ce5-8072-22b02a314d1f"
+ }
+ }
+ }
+ }
+ }
}
},
"parameters": [
@@ -1883,79 +2257,98 @@
"type": "string",
"description": "Bearer token for authorization. Format: 'Bearer {token}' where {token} is access token recieved from token API.",
"example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "schema": {
+ "type": "object",
+ "required": [
+ "customer",
+ "paymentDetails"
+ ],
+ "properties": {
+ "customer": {
+ "type": "object",
+ "required": [
+ "billParameters",
+ "mobile"
+ ],
+ "properties": {
+ "billParameters": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "example": "Mobile Number",
+ "description": "The display name of the parameter."
+ },
+ "value": {
+ "type": "string",
+ "example": "7975766912",
+ "description": "The value of the customer mobile number or related info like Operator and Location."
+ }
+ }
+ },
+ "description": "Parameters for the recharge validation, including Mobile Number, Operator, and Location.",
+ "example": [
+ {
+ "name": "Mobile Number",
+ "value": "7975766912"
+ },
+ {
+ "name": "Operator",
+ "value": "jio"
+ },
+ {
+ "name": "Location",
+ "value": "Himachal Pradesh"
+ }
+ ]
+ },
+ "mobile": {
+ "type": "string",
+ "example": "7566628882",
+ "description": "The mobile number initiating the recharge"
+ }
+ },
+ "description": "Details needed for identifying the customer and the recharge validation"
+ },
+ "paymentDetails": {
+ "type": "object",
+ "required": [
+ "amount"
+ ],
+ "properties": {
+ "amount": {
+ "type": "number",
+ "example": 1100,
+ "description": "Recharge amount in paise (1/100 of a rupee). Must be a positive integer value representing the amount in paise."
+ }
+ },
+ "description": "Details of the payment for the recharge validation"
+ }
+ }
+ }
}
]
}
},
- "/transaction": {
+ "/wallet/balance": {
"get": {
"tags": [
- "Transaction"
+ "Wallet"
],
- "summary": "API to fetch transaction details",
+ "summary": "API to fetch the balance of the wallet",
"produces": [
"application/json"
],
- "parameters": [
- {
- "in": "query",
- "name": "limit",
- "required": false,
- "type": "integer",
- "example": 1,
- "description": "Maximum number of transactions to return per page. Default is 100."
- },
- {
- "in": "query",
- "name": "page_number",
- "required": false,
- "type": "integer",
- "example": 18,
- "description": "Page number for pagination. Starts from 1. Default is 1 if not specified."
- },
- {
- "in": "query",
- "name": "operator",
- "required": false,
- "type": "string",
- "example": "Jio",
- "description": "Filter transactions by operator name. Must be one of: 'Jio', 'Airtel', 'Vi', 'BSNL', or 'MTNL'."
- },
- {
- "in": "query",
- "name": "start_date",
- "required": false,
- "type": "string",
- "format": "date",
- "example": "2024-10-07",
- "description": "Start date for transaction history in YYYY-MM-DD format. Cannot be more than 90 days in the past."
- },
- {
- "in": "query",
- "name": "end_date",
- "required": false,
- "type": "string",
- "format": "date",
- "example": "2024-10-09",
- "description": "End date for transaction history in YYYY-MM-DD format. Cannot be in the future or before start_date."
- },
- {
- "in": "header",
- "name": "X-PRODUCT-INSTANCE-ID",
- "required": true,
- "type": "string",
- "description": "Unique identifier provided by Setu that represents your product instance.",
- "example": "b7e2c9a1-5d4f-4c8e-9f3a-2a1b6c7d8e9f"
- },
- {
- "in": "header",
- "name": "Authorization",
- "required": true,
- "type": "string",
- "description": "Bearer token for authorization. Format: 'Bearer {token}' where {token} is access token recieved from token API.",
- "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
- }
- ],
"responses": {
"200": {
"content": {
@@ -1974,44 +2367,20 @@
"description": "Status of the API call"
},
"data": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "transaction_id": {
- "type": "string",
- "example": "TXN123456789",
- "description": "Unique identifier for the transaction"
- },
- "mobile_number": {
- "type": "string",
- "example": "7066573353",
- "description": "Mobile number involved in the transaction"
- },
- "operator": {
- "type": "string",
- "example": "Jio",
- "description": "Operator name"
- },
- "amount": {
- "type": "number",
- "example": 2900,
- "description": "Transaction amount in paise"
- },
- "status": {
- "type": "string",
- "example": "Successful",
- "description": "Status of the transaction. Possible values: `Successful`, `Processing`, `Failure`, `Reversed`."
- },
- "timestamp": {
- "type": "string",
- "format": "date-time",
- "example": "2024-10-07T13:54:00+05:30",
- "description": "Timestamp of when the transaction occurred"
- }
+ "type": "object",
+ "properties": {
+ "balance": {
+ "type": "number",
+ "example": 1500.75,
+ "description": "Current wallet balance available"
+ },
+ "currency": {
+ "type": "string",
+ "example": "INR",
+ "description": "Currency of the wallet balance"
}
},
- "description": "List of transaction details"
+ "description": "Details of the wallet balance"
},
"traceId": {
"type": "string",
@@ -2022,35 +2391,52 @@
}
}
},
- "description": "Response containing the list of transactions"
+ "description": "Response containing the wallet balance details"
},
"422": {
- "description": "Invalid Request Parameters",
+ "description": "Unprocessable Entity",
"content": {
"application/json": {
"schema": {
"type": "object",
+ "required": ["success", "error", "trace_id"],
"properties": {
"success": { "type": "boolean", "example": false },
"error": {
"type": "object",
+ "required": ["code", "message", "failureReason"],
"properties": {
"code": { "type": "string", "example": "ERR009" },
- "message": { "type": "string", "example": "Invalid Product Instance ID: 71f05a38-7cb6-4907-b7cb-7521c28824d9" },
+ "message": { "type": "string", "example": "Invalid Product Instance ID: " },
"failureReason": { "type": "string", "example": "invalid-instance-id" }
}
},
- "trace_id": { "type": "string", "example": "d1m02ecd7qsdk10rlkn0" }
+ "trace_id": { "type": "string", "example": "d1m1kslcjsji7vn3b5vg" }
}
},
- "example": {
- "success": false,
- "error": {
- "code": "ERR009",
- "message": "Invalid Product Instance ID: 71f05a38-7cb6-4907-b7cb-7521c28824d9",
- "failureReason": "invalid-instance-id"
+ "examples": {
+ "invalid-instance-id": {
+ "value": {
+ "success": false,
+ "error": {
+ "code": "ERR009",
+ "message": "Invalid Product Instance ID: b7e2c9a1-5d4f-4c8e-9f3a-2a1b6c7d8e9f",
+ "failureReason": "invalid-instance-id"
+ },
+ "trace_id": "d1m1kslcjsji7vn3b5vg"
+ }
},
- "trace_id": "d1m02ecd7qsdk10rlkn0"
+ "balance-api-unavailable-in-uat": {
+ "value": {
+ "success": false,
+ "error": {
+ "code": "ERR012",
+ "message": "Balance API is not available in UAT environment",
+ "failureReason": "balance-api-unavailable-in-uat"
+ },
+ "trace_id": "d1m1j6kd7qs2b5gbln8g"
+ }
+ }
}
}
}
@@ -2061,17 +2447,19 @@
"application/json": {
"schema": {
"type": "object",
+ "required": ["success", "error", "trace_id"],
"properties": {
"success": { "type": "boolean", "example": false },
"error": {
"type": "object",
+ "required": ["code", "message", "failureReason"],
"properties": {
"code": { "type": "string", "example": "ERR100" },
"message": { "type": "string", "example": "Internal Server Error" },
"failureReason": { "type": "string", "example": "internal-server-error" }
}
},
- "trace_id": { "type": "string", "example": "d1m02ecd7qsdk10rlkn0" }
+ "trace_id": { "type": "string", "example": "d1m1us4d7qs2b5gblne0" }
}
},
"example": {
@@ -2081,17 +2469,61 @@
"message": "Internal Server Error",
"failureReason": "internal-server-error"
},
- "trace_id": "d1m02ecd7qsdk10rlkn0"
+ "trace_id": "d1m1us4d7qs2b5gblne0"
}
}
}
}
- }
+ },
+ "parameters": [
+ {
+ "in": "header",
+ "name": "X-PRODUCT-INSTANCE-ID",
+ "required": true,
+ "type": "string",
+ "description": "Unique identifier provided by Setu that represents your product instance.",
+ "example": "b7e2c9a1-5d4f-4c8e-9f3a-2a1b6c7d8e9f"
+ },
+ {
+ "in": "header",
+ "name": "Authorization",
+ "required": true,
+ "type": "string",
+ "description": "Bearer token for authorization. Format: 'Bearer {token}' where {token} is access token recieved from token API.",
+ "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
+ }
+ ]
}
}
},
"components": {
"schemas": {
+ "ValidationError": {
+ "type": "object",
+ "required": [
+ "code",
+ "message",
+ "failureReason"
+ ],
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": "1",
+ "description": "Validation error code"
+ },
+ "message": {
+ "type": "string",
+ "example": "Error in Validation API call Please try again",
+ "description": "Human-readable explanation of the error"
+ },
+ "failureReason": {
+ "type": "string",
+ "example": "Error in Validation API call Please try again",
+ "description": "Specific failure reason returned by the provider"
+ }
+ },
+ "description": "Error payload returned by the validation API"
+ },
"fetchTokenRequest": {
"type": "object",
"properties": {
diff --git a/api-references/payments/billpay_v1/api-integration.json b/api-references/payments/billpay_v1/api-integration.json
index 96c8ef70..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"
},
@@ -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": 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"
}
}
}
diff --git a/content/README.md b/content/README.md
index b56e045f..b289d67d 100644
--- a/content/README.md
+++ b/content/README.md
@@ -118,6 +118,68 @@ Create a similar `mdx` file inside `test-product-2` and we are done!
+# Hiding pages from the sidebar
+
+You can hide pages, products, or entire categories from the sidebar navigation while keeping them accessible via direct URL. This is useful for:
+
+- Deprecated pages that shouldn't be discoverable but need to remain accessible for existing links
+- Internal or partner-specific documentation
+- Draft content not yet ready for public visibility
+- Sample/template content
+
+Use the `visible_in_sidebar` property and set it to `false`.
+
+---
+
+### Hide a specific page
+
+In the MDX file's frontmatter, set `visible_in_sidebar: false`:
+
+```
+---
+sidebar_title: Hidden Page
+page_title: Hidden Page — Setu Docs
+order: 0
+visible_in_sidebar: false
+---
+```
+
+The page will not appear in the sidebar but can still be accessed via its direct URL.
+
+---
+
+### Hide an entire product
+
+In `endpoints.json`, set `visible_in_sidebar: false` on the product:
+
+```
+{
+ "name": "Hidden Product",
+ "path": "hidden-product",
+ "order": 0,
+ "visible_in_sidebar": false
+}
+```
+
+---
+
+### Hide an entire category
+
+In `endpoints.json`, set `visible_in_sidebar: false` on the category:
+
+```
+{
+ "name": "Hidden Category",
+ "path": "hidden-category",
+ "order": 4,
+ "visible_in_sidebar": false,
+ "children": [...]
+}
+```
+
+
+
+
# Using React components in MDX files
List of all components and their usage can be found by visiting https://docs.setu.co/sample-category/sample-product/sample-page
diff --git a/content/data/account-aggregator/api-integration.mdx b/content/data/account-aggregator/api-integration.mdx
index 15bc2aea..6841ffde 100644
--- a/content/data/account-aggregator/api-integration.mdx
+++ b/content/data/account-aggregator/api-integration.mdx
@@ -14,7 +14,7 @@ Setu’s AA APIs can be broken down into 3 broad flows—
- **Notifications flow**—To receive notifications from Setu for key events like approval/rejection of consent or be notified when FI data is ready to be fetched.
diff --git a/content/data/account-aggregator/api-integration/consent-flow.mdx b/content/data/account-aggregator/api-integration/consent-flow.mdx
index 34b2e8a7..ffb92697 100644
--- a/content/data/account-aggregator/api-integration/consent-flow.mdx
+++ b/content/data/account-aggregator/api-integration/consent-flow.mdx
@@ -407,7 +407,7 @@ In the Account Aggregator (AA) ecosystem in India, the multi consent feature all
-
+
##### Features
diff --git a/content/data/account-aggregator/api-integration/data-apis.mdx b/content/data/account-aggregator/api-integration/data-apis.mdx
index 9ef86f5c..d68da34d 100644
--- a/content/data/account-aggregator/api-integration/data-apis.mdx
+++ b/content/data/account-aggregator/api-integration/data-apis.mdx
@@ -12,7 +12,7 @@ Below is a summary of the APIs you need to use to fetch FI data. These APIs are
- **Create Data Session**—Call this API against an `APPROVED` consent. This initiates data preparation at user's linked FIP accounts. You will be notified by Setu once the data is ready to be fetched.
- **Fetch FI data**—Fetch decrypted FI data with data session id.
-
+
@@ -455,7 +455,7 @@ Auto-Fetch data feature aims to absorb this complexity from the FIUs. With Auto-
- For one time consents, Auto-Fetch executes only once, right after the consent is approved.
- For recurring consents, Auto-Fetch can fetch data periodically. Set up the frequency of Auto-Fetch data in your configuration on the Bridge.
-
+
Auto-Fetch can be set up on Bridge, under Step 1 of your product
diff --git a/content/data/account-aggregator/consent-object.mdx b/content/data/account-aggregator/consent-object.mdx
index e04cef0d..c39ebb27 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.
@@ -259,7 +255,7 @@ All of this enables better consent conversion across the funnel
### Flow diagram
diff --git a/content/data/account-aggregator/embed-setu-aa.mdx b/content/data/account-aggregator/embed-setu-aa.mdx
index 6e8c3e85..1fd387a2 100644
--- a/content/data/account-aggregator/embed-setu-aa.mdx
+++ b/content/data/account-aggregator/embed-setu-aa.mdx
@@ -68,7 +68,7 @@ The Account Aggregator ecosystem does not have a native method to truly auto dis
mobileSpan="12"
>
-
+
Setu managed lite auto discovery—Setu FIP is the
@@ -83,7 +83,7 @@ The Account Aggregator ecosystem does not have a native method to truly auto dis
mobileSpan="12"
>
-
+
Setu managed manual discovery—Setu FIP and{" "}
@@ -97,7 +97,7 @@ The Account Aggregator ecosystem does not have a native method to truly auto dis
mobileSpan="12"
>
-
+
FIU managed guided auto discovery—Setu FIP and{" "}
@@ -155,7 +155,7 @@ Please find the below integration steps to embed Setu’s consent manager screen
Redirect your customer to consent manager `url` received after Create Consent request. Once your customer has approved or rejected consent, this final screen in the consent manager will show a button that will redirect your customer to the `redirectUrl` provided by you in the Create consent API.
-
+
diff --git a/content/data/account-aggregator/multi-aa-gateway.mdx b/content/data/account-aggregator/multi-aa-gateway.mdx
index 04adbfde..9fb3013b 100644
--- a/content/data/account-aggregator/multi-aa-gateway.mdx
+++ b/content/data/account-aggregator/multi-aa-gateway.mdx
@@ -12,7 +12,7 @@ Setu’s multi-AA gateway is a powerful enhancement for Account Aggregator (AA)
This improves consent conversion, offers redundancy with multiple AA partners, and ensures higher performance across AA integrations.
diff --git a/content/data/account-aggregator/overview.mdx b/content/data/account-aggregator/overview.mdx
index 6c020eaa..61ce58e0 100644
--- a/content/data/account-aggregator/overview.mdx
+++ b/content/data/account-aggregator/overview.mdx
@@ -23,7 +23,7 @@ _Note_—Setu’s AA gateway has introduced a powerful enhancement in the form o
For example, let’s say a lender wants to check the bank statements of a user to check their loan eligibility. Here’s how the AA handles it—
diff --git a/content/data/account-aggregator/quickstart.mdx b/content/data/account-aggregator/quickstart.mdx
index af728ed6..bab4eb95 100644
--- a/content/data/account-aggregator/quickstart.mdx
+++ b/content/data/account-aggregator/quickstart.mdx
@@ -28,11 +28,11 @@ Try out our sample app built using Setu AA sandbox
+
- Create Account Aggreagator Data product
-
+
@@ -53,7 +53,7 @@ You can also enable developer specific features to reduce your integration effor
- Partial fetch
- Auto-Fetch data
-
+
@@ -80,7 +80,7 @@ You will be notified for two types of events—
You can read about notifications in detail here.
-
+
@@ -88,7 +88,7 @@ You can read about notifications in detail
diff --git a/content/data/account-aggregator/v1/api-integration.mdx b/content/data/account-aggregator/v1/api-integration.mdx
index 15bc2aea..6841ffde 100644
--- a/content/data/account-aggregator/v1/api-integration.mdx
+++ b/content/data/account-aggregator/v1/api-integration.mdx
@@ -14,7 +14,7 @@ Setu’s AA APIs can be broken down into 3 broad flows—
- **Notifications flow**—To receive notifications from Setu for key events like approval/rejection of consent or be notified when FI data is ready to be fetched.
diff --git a/content/data/account-aggregator/v1/api-integration/data-apis.mdx b/content/data/account-aggregator/v1/api-integration/data-apis.mdx
index 76c05121..78dd5e47 100644
--- a/content/data/account-aggregator/v1/api-integration/data-apis.mdx
+++ b/content/data/account-aggregator/v1/api-integration/data-apis.mdx
@@ -12,7 +12,7 @@ Below is a summary of the APIs you need to use to fetch FI data. These APIs are
- **Create Data Session**—Call this API against an `APPROVED` consent. This initiates data preparation at user's linked FIP accounts. You will be notified by Setu once the data is ready to be fetched.
- **Fetch FI data**—Fetch decrypted FI data with data session id.
-
+
diff --git a/content/data/account-aggregator/v1/embed-setu-aa.mdx b/content/data/account-aggregator/v1/embed-setu-aa.mdx
index d363a943..e5133036 100644
--- a/content/data/account-aggregator/v1/embed-setu-aa.mdx
+++ b/content/data/account-aggregator/v1/embed-setu-aa.mdx
@@ -30,7 +30,7 @@ Please find the below integration steps to embed Setu’s consent manager screen
Redirect your customer to consent manager `url` received after Create Consent request. Once your customer has approved or rejected consent, this final screen in the consent manager will show a button that will redirect your customer to the `redirectUrl` provided by you in the Create consent API.
-
+
### React Native
diff --git a/content/data/account-aggregator/v1/overview.mdx b/content/data/account-aggregator/v1/overview.mdx
index 6962492a..d70f8903 100644
--- a/content/data/account-aggregator/v1/overview.mdx
+++ b/content/data/account-aggregator/v1/overview.mdx
@@ -19,7 +19,7 @@ Account aggregators(AAs) are
diff --git a/content/data/account-aggregator/v1/postman.mdx b/content/data/account-aggregator/v1/postman.mdx
index 30240cb6..a2c1ecec 100644
--- a/content/data/account-aggregator/v1/postman.mdx
+++ b/content/data/account-aggregator/v1/postman.mdx
@@ -26,7 +26,7 @@ Postman collection comes wth default test credentials. Set the following variabl
- Set `client_secret` to the FIU app client secret received on Bridge.
- Set `mobile_number` to the user's mobile number that will be used for testing.
-
+
Remove any new lines at the end after pasting values, to avoid errors.
diff --git a/content/data/account-aggregator/v1/quickstart-v1.mdx b/content/data/account-aggregator/v1/quickstart-v1.mdx
index 6dba0f3a..95bd9cce 100644
--- a/content/data/account-aggregator/v1/quickstart-v1.mdx
+++ b/content/data/account-aggregator/v1/quickstart-v1.mdx
@@ -78,7 +78,7 @@ The following flowchart gives a quick snapshot of how the overall API flow works
-
+
diff --git a/content/data/account-aggregator/v1/quickstart.mdx b/content/data/account-aggregator/v1/quickstart.mdx
index d5fd9c93..67b49915 100644
--- a/content/data/account-aggregator/v1/quickstart.mdx
+++ b/content/data/account-aggregator/v1/quickstart.mdx
@@ -29,7 +29,7 @@ Register on The Bridge, if
You can read a bit about the FIU product on the profile page before clicking on the **Create an FIU** button.
@@ -40,7 +40,7 @@ You can read a bit about the FIU product on the profile page before clicking on
Enter a name for the FIU app. This is what the FIU will be registered as eventually, but you can always edit before going live.
@@ -52,7 +52,7 @@ Setu provides a set of prebuilt screens that your customer sees upon receiving t
You can theme these screens to match your brand—add your logo, primary and secondary colours, font colour and background colour—to provide a seamless UI transition for your customers.
-
+
@@ -79,7 +79,7 @@ You will be notified for two types of events—
You can read about notifications in detail here.
-
+
@@ -87,7 +87,7 @@ You can read about notifications in detail
diff --git a/content/data/account-aggregator/v1/request-signing.mdx b/content/data/account-aggregator/v1/request-signing.mdx
index 6ca3a651..5cbd9856 100644
--- a/content/data/account-aggregator/v1/request-signing.mdx
+++ b/content/data/account-aggregator/v1/request-signing.mdx
@@ -44,7 +44,7 @@ A public-key-private-key pair is required for the request signing.
In the Setu Bridge, you can generate these keys with just a simple click of a button and download the keys in CSV format.
-
+
Setu will share its public key during the creation of app (available in the "grab credentials" step). Your app code will use this key to verify requests from Setu.
diff --git a/content/data/bav/bundled-bav.mdx b/content/data/bav/bundled-bav.mdx
new file mode 100644
index 00000000..d1fa4870
--- /dev/null
+++ b/content/data/bav/bundled-bav.mdx
@@ -0,0 +1,6 @@
+---
+sidebar_title: Bundled BAV
+page_title: Bundled Bank Account Verification
+order: 2
+visible_in_sidebar: true
+---
diff --git a/content/data/bav/bundled-bav/api-integration.mdx b/content/data/bav/bundled-bav/api-integration.mdx
new file mode 100644
index 00000000..d0934f57
--- /dev/null
+++ b/content/data/bav/bundled-bav/api-integration.mdx
@@ -0,0 +1,205 @@
+---
+sidebar_title: API integration
+page_title: Bundled BAV API integration
+order: 2
+visible_in_sidebar: true
+---
+
+## API integration
+
+Integrating Bundled BAV into your application involves creating a verification request and handling the response flow.
+
+
+
+### Create a Bundled BAV request
+
+Call the API to generate a verification URL for your customer.
+
+
+
+
+
+ SUCCESS Bundled
+ BAV request created successfully.
+
+
+ Request
+
+ {`POST /api/bundled-bav
+{
+ "mobileNumber": "9876543210"
+}`}
+
+
+ Response
+
+ {`{
+ "requestId": "f4ec6a99-a9a9-4f23-8dea-1da1b285a156",
+ "url": "https://dg.setu.co/bundled-bav?payload=1234",
+ "success": true,
+ "message": "Bundled BAV request created",
+ "traceId": "1-1234567890"
+}`}
+
+
+ Note: Store the requestId from this
+ response. You will receive the same{" "}
+ requestId in the webhook
+ notification when verification is complete,
+ allowing you to match the webhook to the
+ original request.
+
+ >
+ ),
+ },
+ {
+ key: "2",
+ label: "400",
+ content: (
+ <>
+
+ BAD REQUEST{" "}
+ Invalid product configuration or missing
+ required parameters.
+
+
+ Request
+
+ {`POST /api/bundled-bav
+{
+ "mobileNumber": "9876543210"
+}`}
+
+
+ Response
+
+ {`{
+ "success": false,
+ "message": "Bad request - invalid product configuration",
+ "traceId": "1-1234567890"
+}`}
+
+ >
+ ),
+ },
+ {
+ key: "3",
+ label: "500",
+ content: (
+ <>
+
+
+ INTERNAL SERVER ERROR
+ {" "}
+ Failed to create request due to internal error.
+
+
+ Request
+
+ {`POST /api/bundled-bav
+{
+ "mobileNumber": "9876543210"
+}`}
+
+
+ Response
+
+ {`{
+ "success": false,
+ "message": "Failed to create request - internal error",
+ "traceId": "1-1234567890"
+}`}
+
+ >
+ ),
+ },
+ ]}
+ >
+
+
+
+
+
+### Open URL in webview
+
+Open the returned `url` in a webview within your application. The customer will see the Bundled BAV interface where they can choose their preferred verification method.
+
+
+ Make sure to handle the webview lifecycle properly to provide a smooth user
+ experience.
+
+
+
+
+### Handle redirect
+
+Once the customer completes the verification process, they will be redirected to the `redirectUrl` configured in your product settings.
+
+Set up an event listener in your app to detect this redirect and close the webview accordingly.
+
+**Example event listener pattern**
+
+
+ {`// Detect when the webview navigates to your redirect URL
+webview.onNavigationStateChange = (navState) => {
+ if (navState.url.startsWith(YOUR_REDIRECT_URL)) {
+ // Close the webview
+ closeWebview();
+ // Continue with your app flow
+ navigateToNextScreen();
+ }
+};`}
+
+
+
+
+### Webhook notification
+
+Once the verification is complete, Setu will send the bank account details to your configured webhook endpoint.
+
+
+ The webhook payload will contain the same requestId that you
+ received in the create request response. Use this to match the webhook
+ notification with the original verification request.
+
+
+
+
+**Webhook payload**
+
+
+ {`{
+ "requestId": "f4ec6a99-a9a9-4f23-8dea-1da1b285a156",
+ "data": {
+ "accountHolderName": "JOHN DOE",
+ "bankAccountNumber": "1234567890",
+ "bankAccountIfsc": "ICIC0005573",
+ "bankName": "ICICI BANK"
+ },
+ "bavMethod": "PENNY_DROP",
+ "success": true,
+ "message": "Bank account verification successful",
+ "timestamp": "2026-01-08T12:27:50.697274+00:00"
+}`}
+
+
+
+ Ensure your webhook endpoint is configured to accept POST requests and can
+ handle the payload structure above.
+
+
+
+
+### Best practices
+
+1. **Handle webhook retries** — Make your webhook endpoint idempotent as Setu may retry failed webhook deliveries
+2. **Store traceId** — Always store the `traceId` for debugging and support purposes
+3. **Handle timeouts** — Implement appropriate timeout handling for the webview
+
+
diff --git a/content/data/bav/bundled-bav/api-reference.mdx b/content/data/bav/bundled-bav/api-reference.mdx
new file mode 100644
index 00000000..57850417
--- /dev/null
+++ b/content/data/bav/bundled-bav/api-reference.mdx
@@ -0,0 +1,6 @@
+---
+sidebar_title: API reference
+page_title: Bundled BAV API reference
+order: 3
+visible_in_sidebar: true
+---
diff --git a/content/data/bav/bundled-bav/quickstart.mdx b/content/data/bav/bundled-bav/quickstart.mdx
new file mode 100644
index 00000000..3483c5c6
--- /dev/null
+++ b/content/data/bav/bundled-bav/quickstart.mdx
@@ -0,0 +1,104 @@
+---
+sidebar_title: Quickstart
+page_title: Quickstart for Bundled BAV
+order: 1
+visible_in_sidebar: true
+---
+
+## Bundled Bank Account Verification
+
+### What is Bundled BAV?
+
+Setu's Bundled Bank Account Verification flow allows you to verify your customers' bank accounts with one orchestrated flow that supports multiple BAV methods and returns a unified response.
+
+You can simply create a request with the customer's phone number, which generates a verification URL to start the BAV journey.
+
+
+
+### Which BAV methods are supported?
+
+1. Penny Drop
+2. Reverse Penny Drop
+3. Mobile to Bank Account
+4. UPI ID to Bank Account
+
+
+
+### How does it work?
+
+1. **Create a verification request** — Call the API with your customer's phone number to generate a verification URL
+2. **Open URL in webview** — Display the URL in a webview within your app
+3. **Customer completes verification** — The customer verifies their bank account using any of your enabled methods
+4. **Receive webhook notification** — Once verification is complete, bank account details are sent to your configured webhook endpoint
+5. **Close webview** — Set up an event listener to detect the redirect and close the webview
+
+
+
+### Step 1 — Get API credentials
+
+Contact Setu at onboarding@setu.co to get your API credentials and configure your product instance.
+
+
+
+### Step 2 — Configure product settings
+
+Work with Setu to configure the following for your product instance:
+
+- List of supported BAV methods
+- Webhook notification URL for receiving verification results
+- Redirect URL for post-verification navigation
+- Primary theme color (e.g., primary button background color)
+- Primary foreground color (e.g., primary button text color)
+- Logo URL (optional)
+
+
+
+### Step 3 — Test on sandbox
+
+Use the sandbox environment to test the Bundled BAV flow:
+
+**Sandbox base URL** — `https://dg-sandbox.setu.co`
+
+##### API integration
+
+Refer to the API integration guide for detailed implementation steps.
+
+
+
+### Next steps
+
+
+
+
+
+ API Integration
+
+
+ Learn how to integrate the Bundled BAV API into your
+ application.
+
+
+
+
+
+
+ API Reference
+
+ Complete API reference with request and response schemas.
+
+
+
+
+
diff --git a/content/data/bav/reverse-penny-drop/api-integration.mdx b/content/data/bav/reverse-penny-drop/api-integration.mdx
index 1b0199f7..0571fb75 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.
@@ -139,14 +140,14 @@ If successful, you will get a JSON response. Two of the fields in the response w
"shortUrl": "https://sandbox.bills.pe/wh9kk4mwuktg",
"status": "BAV_REVERSE_PENNY_DROP_CREATED",
"traceId": "1-640f227f-784ece1c005e4f9e653947ca",
- "upiBillId": "1114053970646533628",
- "upiLink": "upi://pay?pa=bauvatest@kaypay&pn=BauvaTest&am=1.00&tr=1114053970646533628&tn=Account%20Verification&cu=INR&mode=04",
+ "upiBillId": "a6577bb0ae4d9301cf47c1",
+ "upiLink": "upi://pay?pa=bauvatest@kaypay&pn=BauvaTest&am=1.00&tr=a6577bb0ae4d9301cf47c1&tn=Account%20Verification&cu=INR&mode=04",
"validUpto": "2023-03-13T13:20:52.277688"
} `}
Note: This 'id' is your 'requestId'. Please use
- this 'requestId' for rest the API reference.
+ this 'requestId' for rest of the API reference.
>
),
@@ -264,9 +265,8 @@ This API lets you test the end to end flow without an actual payment. This will
{`POST /api/verify/ban/reverse/mock_payment/:requestId
{
- "paymentStatus": "successful" // or 'expired'. Default = 'successful'
-}
-
+ "paymentStatus": "successful" // or 'expired' or 'failed'
+}
`}
@@ -382,7 +382,7 @@ Setu provides webhook authentication. For more details, refer to
-##### 1. RPD_VERIFICATION_UPDATE Webhook
+##### RPD_VERIFICATION_UPDATE Webhook
This webhook is sent when the end user makes a payments.
@@ -403,7 +403,7 @@ _`accountType` can be `BANK_ACCOUNT`, `PPI` or `UNKNOWN`_
_`bankAccountType` is an optional data field, you may not receive the value always. (Please contact with Setu team to know more about this feature.)_
-_The value can be `SAVINGS`, `CURRENT`, `NRO`, `NRE`_
+_The value can be `SAVINGS`, `CURRENT`, `VIRTUAL_ACCOUNT`, `OVERDRAFT`, `UOD`, `SOD`, `PPIWALLET`
###### Examples
@@ -425,7 +425,7 @@ _The value can be `SAVINGS`, `CURRENT`, `NRO`, `NRE`_
"rpd" : {
"success" : true,
"id" : "7097e53a-ba29-48a2-983d-878433b4f33e", // the RPD request id
- "upiBillId" : "907442106379798024",
+ "upiBillId" : "a6577bb0ae4d9301cf47c1",
"data" : {
"bankAccountName" : "Eve",
"bankAccountIfsc" : "SBIN0000001",
@@ -451,13 +451,17 @@ _The value can be `SAVINGS`, `CURRENT`, `NRO`, `NRE`_
"swift": "",
"upi": "true"
}
- }
+ },
"additionalData": { // if you have specified while creating RPD request
"key1" : "value1",
"key2" : "value2"
- }
+ },
+ "receiptId": "AXI75fc85a15ce6449491b79f8509c55a96",
+ "transactionId": "602185974626"
}
- }
+ },
+ "status": "BAV_REVERSE_PENNY_DROP_PAYMENT_SUCCESSFUL",
+ "productInstanceId": "abcdefgh-c1b5-4219-a64b-abcabc123456",
"traceId" : "7097e53a-baq9-4122-9d3d-8s8433b4f33e",
}
`}
@@ -470,6 +474,73 @@ _The value can be `SAVINGS`, `CURRENT`, `NRO`, `NRE`_
Example 2
+
+
+
+ In case of successful bank verification, with add-on schema configured
+
+
+ {`
+{
+ "event" : "RPD_VERIFICATION_UPDATE",
+ "timeStamp" : "2021-11-12T00:12:29+05:30",
+ "data" : {
+ "rpd" : {
+ "success" : true,
+ "id" : "7097e53a-ba29-48a2-983d-878433b4f33e", // the RPD request id
+ "upiBillId" : "a6577bb0ae4d9301cf47c1",
+ "data" : {
+ "bankAccountName" : "Eve",
+ "bankAccountIfsc" : "SBIN0000001",
+ "bankAccountNumber" : "48097036412",
+ "payerVpa" : "test@upi",
+ "accountType" : "BANK_ACCOUNT", // or UNKNOWN or PPI
+ "bankAccountType" : "SAVINGS", // Optional, can be null
+ "ifscCrossCheck" : true,
+ "ifscDetails" : {
+ "address": "EXPRESS TOWERS,GROUND FLOOR,NARIMAN POINT,MUMBAI 400021",
+ "branch": "Development Bank of Singapore IMPS",
+ "center": "MUMBAI",
+ "city": "MUMBAI",
+ "contact": "+912266388888",
+ "district": "MUMBAI",
+ "imps": "true",
+ "iso3166": "IN-MH",
+ "micr": "400641002",
+ "name": "Development Bank of Singapore",
+ "neft": "true",
+ "rtgs": "true",
+ "state": "MAHARASHTRA",
+ "swift": "",
+ "upi": "true"
+ }
+ },
+ "additionalData": { // if you have specified while creating RPD request
+ "key1" : "value1",
+ "key2" : "value2"
+ },
+ "receiptId": "AXI75fc85a15ce6449491b79f8509c55a96",
+ "transactionId": "602185974626",
+ "addOnFields": {
+ "psp_app": "PayApp"
+ }
+ }
+ },
+ "status": "BAV_REVERSE_PENNY_DROP_PAYMENT_SUCCESSFUL",
+ "traceId" : "7097e53a-baq9-4122-9d3d-8s8433b4f33e",
+ "productInstanceId": "abcdefgh-c1b5-4219-a64b-abcabc123456",
+}
+ `}
+
+
+
+
+
+
+
+ Example 3
+
+
@@ -485,7 +556,7 @@ _The value can be `SAVINGS`, `CURRENT`, `NRO`, `NRE`_
"rpd" : {
"success" : false,
"id" : "7097e53a-ba29-48a2-983d-878433b4f33e",
- "upiBillId" : "907442106379798024",
+ "upiBillId" : "a6577bb0ae4d9301cf47c1",
"data" : null,
"error" : {
"code" : "BAV_REVERSE_PENNY_DROP_EXPIRED", // or BAV_REVERSE_PENNY_DROP_FAILED
@@ -500,121 +571,43 @@ _The value can be `SAVINGS`, `CURRENT`, `NRO`, `NRE`_
-##### 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.
-
-
-
- statusCode of this event can be one of the following:
-
-
- | statusCode |
- statusDescription |
-
-
- | R01 |
- The customer's debit attempt failed. |
-
-
- | R02 |
- Payment authorization took too long. |
-
-
- | R03 |
- The customer's bank is taking too long to respond. |
-
-
- | R04 |
- The debit process took too long. |
-
-
- | R05 |
- Connection timed out during the credit request process. |
-
-
- | R06 |
- The transaction exceeds the risk threshold. |
-
-
- | R07 |
- The customer's bank is unavailable. |
-
-
- | R08 |
- This transaction isn't permitted for the beneficiary. |
-
-
- | R09 |
- Connection timed out during the debit request process. |
-
-
- | R12 |
- Beneficiary bank response time is too high. |
-
-
- | R13 |
- The total debit amount exceeded the set limit. |
-
-
- | R14 |
- Transaction details mismatch. |
-
-
- | R16 |
-
- The requested function is not supported for the beneficiary.
- |
-
-
- | R20 |
-
- Receiver/beneficiary is not available, causing a timeout.
- |
-
-
- | R22 |
- The debit acknowledgement was not received. |
-
-
- | R25 |
- Duplicate transaction request. |
-
-
- | R100 |
- Any other upstream server error. |
-
-
-
-
-
-###### Examples
-
- Example 1
+ Example 4
-
- In case of customer's debit attempt failed
-
-
- {`
+
+
+ In case of PII purged
+
+
+ {`
{
"data": {
"rpd": {
- "id": "178ce32b-bf43-4797-9423-027d3722df08",
- "additionalData": null, // customer's own data if they provided
- "statusCode": "R01",
- "statusDescription": "The customer's debit attempt failed."
+ "success": true,
+ "id": "1af36b4e-681e-48a2-a15c-3b92da00e4c4",
+ "upiBillId": "a6577bb0ae4d9301cf47c1",
+ "data": null,
+ "additionalData": {
+ "key1": value1,
+ "key2": value2
+ },
+ "receiptId": "RPD_REC_12345",
+ "transactionId": "RPD_TXN_67890",
+ "status": "BAV_REVERSE_PENNY_DROP_PII_PURGED"
}
},
- "event": "RPD_DEBIT_ATTEMPT_FAILED",
- "timeStamp": "2023-08-24T12:59:11.427233"
+ "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"
}
`}
-
-
+
+
+
@@ -660,8 +653,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",
@@ -688,9 +681,9 @@ This is an optional API. This API lets you know the bank verification status.
"payerVpa": "customer@vpa"
},
"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",
+ "shortUrl": "https://sandbox.bills.pe/a6577bb0ae4d9301cf47c1",
+ "upiBillId": "a6577bb0ae4d9301cf47c1",
+ "upiLink": "upi://pay?pa=bauvatest@kaypay&pn=BauvaTest&am=1.00&tr=a6577bb0ae4d9301cf47c1&tn=Account%20Verification&cu=INR&mode=04",
"validUpto": "2023-03-13T13:20:52.277688"
"traceId": "1-640f228a-4dded97e470971343adae3da",
"additionalData": {
@@ -705,6 +698,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/a6577bb0ae4d9301cf47c1",
+ "upiBillId": "a6577bb0ae4d9301cf47c1",
+ "upiLink": "upi://pay?pa=bauvatest@kaypay&pn=BauvaTest&am=1.00&tr=a6577bb0ae4d9301cf47c1&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 +763,7 @@ This is an optional API. This API lets you know the bank verification status.
),
},
{
- key: "3",
+ key: "4",
label: "500",
content: (
<>
diff --git a/content/data/digilocker/quickstart.mdx b/content/data/digilocker/quickstart.mdx
index 24660cb9..dcaf3622 100644
--- a/content/data/digilocker/quickstart.mdx
+++ b/content/data/digilocker/quickstart.mdx
@@ -52,7 +52,7 @@ Call this API to create a new DigiLocker request. Pass the `redirectUrl` in the
-
+
diff --git a/content/data/insights/overview.mdx b/content/data/insights/overview.mdx
index 29a748f8..cc01c6c0 100644
--- a/content/data/insights/overview.mdx
+++ b/content/data/insights/overview.mdx
@@ -35,7 +35,7 @@ With Setu Insights, you can analyse various financial statements like bank state
### How does it work?
diff --git a/content/data/insights/quickstart/postman.mdx b/content/data/insights/quickstart/postman.mdx
index 23f4a3db..2f78537a 100644
--- a/content/data/insights/quickstart/postman.mdx
+++ b/content/data/insights/quickstart/postman.mdx
@@ -26,7 +26,7 @@ Postman environment comes wth default test credentials, which are passed as head
- Set `clientSecret` to the FIU app client secret received from our support team. This variable is passed as the `x-client-secret` header.
- Set `productInstanceId` to the FIU product instance ID received from our support team. This variable is passed as the `x-product-instance-id` header.
-
+
Remove any new lines at the end after pasting values, to avoid errors.
diff --git a/content/data/insights/v1/overview.mdx b/content/data/insights/v1/overview.mdx
index 26491b6a..51e30ae8 100644
--- a/content/data/insights/v1/overview.mdx
+++ b/content/data/insights/v1/overview.mdx
@@ -38,7 +38,7 @@ With Setu Insights, you can analyse various financial statements like bank state
### How does it work?
diff --git a/content/data/insights/v1/quickstart/postman.mdx b/content/data/insights/v1/quickstart/postman.mdx
index 58d1eec0..2b93dc42 100644
--- a/content/data/insights/v1/quickstart/postman.mdx
+++ b/content/data/insights/v1/quickstart/postman.mdx
@@ -26,7 +26,7 @@ Postman environment comes wth default test credentials, which are passed as head
- Set `clientSecret` to the FIU app client secret received from our support team. This variable is passed as the `x-client-secret` header.
- Set `productInstanceId` to the FIU product instance ID received from our support team. This variable is passed as the `x-product-instance-id` header.
-
+
Remove any new lines at the end after pasting values, to avoid errors.
diff --git a/content/data/insights/v2/overview.mdx b/content/data/insights/v2/overview.mdx
index 26491b6a..51e30ae8 100644
--- a/content/data/insights/v2/overview.mdx
+++ b/content/data/insights/v2/overview.mdx
@@ -38,7 +38,7 @@ With Setu Insights, you can analyse various financial statements like bank state
### How does it work?
diff --git a/content/data/uli/quickstart.mdx b/content/data/uli/quickstart.mdx
index 3b95cbff..f2f8d31f 100644
--- a/content/data/uli/quickstart.mdx
+++ b/content/data/uli/quickstart.mdx
@@ -25,7 +25,7 @@ The URLs you would need for this API—
diff --git a/content/dev-tools/bridge/analytics-and-reports.mdx b/content/dev-tools/bridge/analytics-and-reports.mdx
index 22151cc2..299905a0 100644
--- a/content/dev-tools/bridge/analytics-and-reports.mdx
+++ b/content/dev-tools/bridge/analytics-and-reports.mdx
@@ -15,9 +15,9 @@ Analytics and reports are separate per product, since they function differently.
**Reports, with all columns included, can also be downloaded in CSV or Excel formats for a specified time range.** If the count of rows in the table is too large, you will get an option to mail it to yourself.
-
+
-
+
diff --git a/content/dev-tools/bridge/explore-and-configure-products.mdx b/content/dev-tools/bridge/explore-and-configure-products.mdx
index 94b0e41d..e878eda9 100644
--- a/content/dev-tools/bridge/explore-and-configure-products.mdx
+++ b/content/dev-tools/bridge/explore-and-configure-products.mdx
@@ -9,7 +9,7 @@ visible_in_sidebar: true
Use **Home or Product store** to see all the products that you can configure with Setu. Select any one, and start setting up your product integration.
-
+
##### 1. Create a child sub-org account
The first step is to set up a child sub-org account, which contains context about a product category and the organisation that can legally use this product. There are different types of legal entities allowed to use different product categories. For example, you will set up an FIU to use Account Aggregator, or set up a merchant to use UPI products.
@@ -23,7 +23,7 @@ While this is rarely needed, you can also create multiple child sub-org accounts
Consider creating another product instance for your chosen product before creating a new child sub-org account. This approach helps in easily reusing KYC and other common product details, and it results in a faster review process for the new instance to go live.
-
+
##### 2. Set up product instance
Depending on the product you choose, you need to fill in different details to start using the product. At times, our products also allow you to directly use the APIs for our products, by generating test credentials and using the “Product ID” in the `product-instance-id` header field.
@@ -36,12 +36,12 @@ Usually, the details you need to fill out for a product instance include the fol
- **KYC details** — Mandatory details as per government regulations, needed and reviewed by Setu only if you intend to go live with a product. These might include PAN, GST, certificates, and other relevant information.
-
+
##### 3. Submit all the details
Finally, check and verify all the details you have provided, and submit them. A Setu admin will verify all details and if everything looks good, approve your config. This typically takes 2-5 days and you can start transacting on production after approval.
-
+
UPI Setu
KYC
@@ -53,7 +53,7 @@ Finally, check and verify all the details you have provided, and submit them. A
##### 4. Edit configurations
You can change the configuration provided before you complete the final step of any configuration, which is reviewing the details you have provided. Once you click on the "submit to go live" button, you will not be able to change the details you have provided for the product. The details will first be reviewed by Setu. Once the review is complete, and if any changes are required, you will be able to edit the steps that remain or require changes.
-
+
1. Your organisation, either reused from sign-up or a relevant subsidiary, for which KYC will be done.
2. The product category you want to use.
Here are a few examples:
• **Account Aggregator FIUs (Financial Information Users):** In the AA ecosystem, entities using financial information, such as personal finance apps or loan providers.
• **UPI merchants:** In the UPI ecosystem, entities collecting payments through UPI.
• **BBPS BOU billers:** Entities collecting repeat payments for their services via BBPS-enabled apps.
• **BBPS COU agents:**Entities offering BBPS-enabled platforms to collect bill payments for BBPS billers. |
-| **Aggregator account (coming soon)** | This is a type of parent Bridge account, that is allowed to resell Setu products to its business customers. The Bridge allows additional features for an aggregator—like viewing combined reports and analytics for all their business customers, or managing their corresponding Parent Bridge accounts with a single login.
If you want to become an aggregator, please contact onboarding@setu.co for more details.|
+| **Aggregator account (coming soon)** | This is a type of parent Bridge account, that is allowed to resell Setu products to its business customers. The Bridge allows additional features for an aggregator—like viewing combined reports and analytics for all their business customers, or managing their corresponding Parent Bridge accounts with a single login.
If you want to become an aggregator, please contact [onboarding@setu.co](mailto:onboarding@setu.co) for more details.|
-
+
diff --git a/content/dev-tools/bridge/overview.mdx b/content/dev-tools/bridge/overview.mdx
index fec22167..4dce2648 100644
--- a/content/dev-tools/bridge/overview.mdx
+++ b/content/dev-tools/bridge/overview.mdx
@@ -9,7 +9,7 @@ visible_in_sidebar: true
Bridge is a free self-serve platform provided by Setu, where you can explore and use multiple products provided by Setu—fill in details to go live with products, manage user access to those products, and also check reports and analytics related to your configured products, on a single platform.
-
+
**Explore the platform and get started with Setu Bridge **
@@ -24,7 +24,7 @@ You can sign up on the Bridge in a few simple steps:
5. Provide your business name. This should belong to the business you’re setting up the Bridge account for. **Quick note:** You can use a different business name later when you configure the product (say, if you have a subsidiary or a different legal name).
6. Optionally, set up 2FA (two-factor authentication) for account login. Enable or disable 2FA, which asks for a password and an OTP sent to your registered e-mail ID whenever you login.
-
+
### Log in to Bridge
@@ -33,16 +33,16 @@ You can log in to the Bridge in a few simple steps:
2. Enter your password.
3. Enter OTP. **Note**, you need to provide an OTP only if you have enabled 2FA.
-
+
### Navigating Bridge
-
+
##### Side navigation items
Explore the different sections on the Bridge sidebar.
-
+
- The **Home page** is a central view for all products. This is where you can see details of your child accounts, pending integrations, and data on live integrations.
@@ -60,7 +60,7 @@ Explore the different sections on the Bridge sidebar.
##### Your Profile
-
+
Users
-
+
@@ -42,7 +42,7 @@ Check for users who can access the account, the roles assigned to each user, the
-
+
@@ -71,7 +71,7 @@ Check for users who can access the account, the roles assigned to each user, the
-
+
@@ -89,7 +89,7 @@ Check for users who can access the account, the roles assigned to each user, the
-
+
@@ -113,21 +113,21 @@ Live credentials work only for product instance IDs with “Live config
Also, don’t worry about “accidentally” using live credentials for an instance ID that is not yet live—you simply cannot use live credentials for the instance ID, before it acquires the “Live config” status.
-
+
##### Settings > Account preferences
Set two-factor-authentication for better security, so that every user who logs into your parent account has to additionally provide an OTP sent to their email, along with their password for Bridge.
-
+
##### Settings > Your profile
Your user profile contains account details—like e-mail, phone number—and access details to one or more Bridge accounts.
-
+
@@ -139,7 +139,7 @@ You can check all the details attached to your personal profile.
3. **Security preferences:** Enable or disable two-factor authentication (2FA) and change your password.
-
+
@@ -154,7 +154,7 @@ To switch between organisations you are part of, follow these steps:
3. **Select or search for another organisation:** Click on the organisation you want to switch to. In case you have access to more than 3 accounts, a search bar will be visible and you can search by typing in the name (at least 3 characters) or ID of the Bridge account. You can click the organisation and that account’s details will appear in Bridge.
-
+
+
@@ -21,7 +21,7 @@ You can check all the details attached to your personal profile.
2. **Organisation listing:** View the list of organisations where you are invited.
3. **Security preferences:** Enable or disable two-factor authentication (2FA) and change your password.
-
+
@@ -35,6 +35,6 @@ To switch between organisations you are part of, follow these steps:
2. **Check the list of organisations:** The currently active organisation is marked with a green tick. You can view the list of all other organisations.
3. **Select or search for another organisation:** Click on the organisation you want to switch to. In case you have access to more than 3 accounts, a search bar will be visible and you can search by typing in the name (at least 3 characters) or ID of the Bridge account. You can click the organisation and that account’s details will appear in Bridge.
-
+
\ No newline at end of file
diff --git a/content/dev-tools/bridge/v1/configure.mdx b/content/dev-tools/bridge/v1/configure.mdx
index f1d85626..b5e4adb2 100644
--- a/content/dev-tools/bridge/v1/configure.mdx
+++ b/content/dev-tools/bridge/v1/configure.mdx
@@ -26,7 +26,7 @@ On clicking a specific product card, you can get know more about what the produc
The following example shows the Collect BBPS product for which the supported configuration is called a “biller”, and so the button reads “Create biller”—
diff --git a/content/dev-tools/bridge/v1/org-settings.mdx b/content/dev-tools/bridge/v1/org-settings.mdx
index 1d7b2849..01048e9a 100644
--- a/content/dev-tools/bridge/v1/org-settings.mdx
+++ b/content/dev-tools/bridge/v1/org-settings.mdx
@@ -10,7 +10,7 @@ visible_in_sidebar: true
You can access your company-level settings by clicking on the “Org settings” on the left nav panel.
diff --git a/content/dev-tools/bridge/v1/org-settings/api-keys/jwt.mdx b/content/dev-tools/bridge/v1/org-settings/api-keys/jwt.mdx
index a2320088..1c3a8fa1 100644
--- a/content/dev-tools/bridge/v1/org-settings/api-keys/jwt.mdx
+++ b/content/dev-tools/bridge/v1/org-settings/api-keys/jwt.mdx
@@ -23,7 +23,7 @@ At Setu, JSON Web Token, or
@@ -35,7 +35,7 @@ Another way to view the JWT key assigned to a configuration is from within its p
Click on a product card from the “Configured products” page, and the click on the “⚙” settings icon on the right-hand side of the top section.
diff --git a/content/dev-tools/bridge/v1/org-settings/api-keys/oauth.mdx b/content/dev-tools/bridge/v1/org-settings/api-keys/oauth.mdx
index 152a8017..037ff1bc 100644
--- a/content/dev-tools/bridge/v1/org-settings/api-keys/oauth.mdx
+++ b/content/dev-tools/bridge/v1/org-settings/api-keys/oauth.mdx
@@ -30,7 +30,7 @@ Click on the “Org settings” icon on the left navbar. Here, if you are an Adm
You should be greeted by an empty page, nudging you to generate your first key. Click on the “Generate your first key” button. Now you should see a simple form like the one in the image below.
@@ -45,7 +45,7 @@ For example, a name like “Bangalore Schools—Setu BBPS” would indicate that
**Add products**—This is where you can select the individual product configurations that this key can access.
@@ -67,7 +67,7 @@ You can also enable or disable a key as required. API requests made with a key t
Select a key from the main page, and you should now be in the Edit key page. In the “Key details” section, click on the switch to toggle between the enabled and disabled states.
@@ -76,7 +76,7 @@ Be sure to hit the “Save changes” button on the top to commit the edits.
The list page also indicates which keys are active, and which aren’t.
@@ -89,7 +89,7 @@ In case a key is compromised at any point, you can regenerate the `clientID` and
Click on the key to go to the Edit key page, and scroll down to the Credentials section. Click on the “Regenerate key” button. You will be asked for confirmation twice, as key regeneration cannot be undone.
@@ -108,7 +108,7 @@ Just like regenerating a key, this process is irreversible, and Setu too cannot
Select a key from the list page, and in the Edit page at the top, click on the red “Delete key“ button. Confirm twice, and the key is deleted, and removed from the list page.
diff --git a/content/dev-tools/bridge/v1/org-settings/people.mdx b/content/dev-tools/bridge/v1/org-settings/people.mdx
index 8aa959fb..291f6aeb 100644
--- a/content/dev-tools/bridge/v1/org-settings/people.mdx
+++ b/content/dev-tools/bridge/v1/org-settings/people.mdx
@@ -74,7 +74,7 @@ Navigate to “Org settings” from the left nav panel. If you are an Admin for
Now, click on the “Invite new member” button on the top right. You should see the invite form as shown below.
diff --git a/content/dev-tools/bridge/v1/overview.mdx b/content/dev-tools/bridge/v1/overview.mdx
index b221aff3..0aaefe8b 100644
--- a/content/dev-tools/bridge/v1/overview.mdx
+++ b/content/dev-tools/bridge/v1/overview.mdx
@@ -17,7 +17,7 @@ The Bridge is a single web portal that lets you pick, configure and go live with
@@ -56,7 +56,7 @@ Here, in the production environment, partners can create as many fresh configura
Data is not shared between sandbox and production—so configurations exist independently on sandbox and production. You can switch between them easily by hovering over the coloured border on the top of each page. Sandbox is coloured orange, and production is coloured green.
diff --git a/content/dev-tools/bridge/v1/reports.mdx b/content/dev-tools/bridge/v1/reports.mdx
index 2d2d2049..88aca734 100644
--- a/content/dev-tools/bridge/v1/reports.mdx
+++ b/content/dev-tools/bridge/v1/reports.mdx
@@ -21,7 +21,7 @@ You can use the various filters available on the top to help narrow down and fin
@@ -30,7 +30,7 @@ Keep in mind that the reports data depends on the environment you are currently
Here’s how you can make the switch—
@@ -45,7 +45,7 @@ The records are listed below the filter section in the form of a large table. By
Click on a row—and an info panel open up on the right, which displays in-depth information about that transaction. Click on the cross at the top of this panel to close it again. You can also keep the panel open persistently—simply click on another record to update the details displayed in the info panel.
@@ -56,7 +56,7 @@ Click on a row—and an info panel open up on the right, which displays in-depth
You can change the default information displayed on this table to show more data. Click on the “Show / hide columns” option just above the table, and check the columns you want displayed, and uncheck the ones you do not. Close the info panel, and you should see the updated table with the new columns.
diff --git a/content/menuItems.json b/content/menuItems.json
index 83bd9a9e..983a5209 100644
--- a/content/menuItems.json
+++ b/content/menuItems.json
@@ -1 +1 @@
-{"home":[{"name":"Payments","path":"payments","order":0,"visible_in_sidebar":true,"api_reference":true,"children":[{"name":"BBPS BillCollect","path":"bbps","order":0,"visible_in_sidebar":true,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"BBPS API reference","path":"api-reference","order":9},{"name":"Axis BBPS","visible_in_sidebar":false,"page_title":"Axis BBPS API Approach Document","path":"axis","order":10},{"name":"Bill Structure","visible_in_sidebar":true,"page_title":"BBPS - Bill Structure","path":"bill-structure","order":5,"children":[{"name":"Special cases","visible_in_sidebar":true,"page_title":"BBPS - Bill Structure special cases","path":"special-cases","order":1}]},{"name":"Go live","visible_in_sidebar":true,"page_title":"BBPS - Go live","path":"go-live","order":3},{"name":"Notifications","visible_in_sidebar":true,"page_title":"BBPS - Notifications","path":"notifications","order":4},{"name":"Overview","visible_in_sidebar":true,"page_title":"BBPS - Overview","path":"overview","order":1},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BBPS - Quickstart","path":"quickstart","order":2,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"BBPS - API integration","path":"api-integration","order":2,"children":[{"name":"Fetch & Pay","visible_in_sidebar":true,"page_title":"API integration - Fetch & Pay","path":"fetch-pay","order":1},{"name":"Validate & Pay","visible_in_sidebar":true,"page_title":"BBPS - API integration","path":"validate-pay","order":2}]},{"name":"No-code CSV","visible_in_sidebar":true,"page_title":"BBPS - No-code CSV","path":"no-code-integration","order":1},{"name":"Share bills","visible_in_sidebar":false,"page_title":"BBPS - Share bills","path":"share-biils","order":1}]},{"name":"Reports API","visible_in_sidebar":true,"page_title":"BBPS - Reports API","path":"reports","order":6},{"name":"Additional resources","visible_in_sidebar":true,"page_title":"BBPS - Additional Resources","path":"resources","order":8,"children":[{"name":"Errors","visible_in_sidebar":true,"page_title":"BBPS error codes","path":"errors","order":4},{"name":"JWT authentication","visible_in_sidebar":true,"page_title":"UPI Deeplinks JWT authentication","path":"jwt","order":2},{"name":"OAuth 2.0","visible_in_sidebar":true,"page_title":"BBPS OAuth 2.0","path":"oauth","order":1},{"name":"Settlement object","visible_in_sidebar":true,"page_title":"UPI Deeplinks settlement object","path":"settlement-object","order":3}]}]},{"name":"BBPS BillPay","path":"billpay","order":1,"versions":["v1","v2"],"default_version":"v2","visible_in_sidebar":true,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"BBPS Billpay API integration","path":"api-integration","order":1,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"COU Direct Connectivity API reference","path":"api-reference","order":13},{"name":"List of APIs","visible_in_sidebar":true,"page_title":"BBPS COU - List of APIs","path":"apis","order":2},{"name":"Paying for options","visible_in_sidebar":true,"page_title":"Paying for alternative options","path":"bill-payment-options","order":7},{"name":"Passing CCF","visible_in_sidebar":true,"page_title":"Customer Convenience Fee (CCF) Integration Guide","path":"customer-convenience-fee","order":6},{"name":"Harmonization of TAT","visible_in_sidebar":true,"page_title":"Harmonization Of TAT (Disputes API)","path":"harmonization_of_tat","order":11},{"name":"Paying for multiple bills","visible_in_sidebar":true,"page_title":"Paying for multiple bills","path":"multi-bill-processing","order":8},{"name":"Objects","visible_in_sidebar":true,"page_title":"BBPS COU - Objects","path":"objects","order":14},{"name":"Paying Bills","visible_in_sidebar":true,"page_title":"BBPS Bill Payment Integration Guide","path":"paying_bills","order":4},{"name":"Paying for plans","visible_in_sidebar":true,"page_title":"Paying for plans","path":"plan-mdm-integration","order":9},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BBPS COU - API integration","path":"quickstart","order":1},{"name":"Passing Remitter Details","visible_in_sidebar":true,"page_title":"Passing Remitter Details","path":"remittance_flows_guide","order":5},{"name":"Integrating with UPMS","visible_in_sidebar":true,"page_title":"BBPS COU - Integrating with UPMS","path":"upms","order":12},{"name":"Migration Guide to v2","visible_in_sidebar":true,"page_title":"BBPS COU - Migration Guide to v2","path":"v2-migration","order":10},{"name":"Webhooks","visible_in_sidebar":true,"page_title":"BBPS COU - Webhooks","path":"webhooks","order":3}]},{"name":"API reference","visible_in_sidebar":false,"page_title":"BillPay API reference","path":"api-reference","order":5},{"name":"Prepaid Recharge","visible_in_sidebar":true,"page_title":"BBPS Billpay Prepaid Recharge APIs","path":"mobile-prepaid-recharge","order":3,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Mobile Prepaid Recharge API reference","path":"api-reference","order":2},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Mobile Prepaid Recharge quickstart","path":"quickstart","order":1}]},{"name":"Overview","visible_in_sidebar":true,"page_title":"BBPS Billpay Overview","path":"overview","order":0},{"name":"Pre-built screens","visible_in_sidebar":true,"page_title":"BBPS Billpay pre-built screens","path":"pre-built-screens","order":2,"children":[{"name":"API reference","visible_in_sidebar":false,"page_title":"BBPS Billpay API reference","path":"api-reference-wl","order":4},{"name":"API reference","visible_in_sidebar":true,"page_title":"BBPS Billpay API reference","path":"api-reference","order":5},{"name":"Custom payment","visible_in_sidebar":true,"page_title":"BBPS Billpay custom payment","path":"custom-payment","order":2,"children":[{"name":"Android","visible_in_sidebar":true,"page_title":"BBPS Billpay android integration for custom payment","path":"android","order":3},{"name":"Required APIs","visible_in_sidebar":true,"page_title":"BBPS Billpay APIs for custom payment","path":"apis","order":1},{"name":"Cross platform","visible_in_sidebar":true,"page_title":"BBPS Billpay cross-platform integration for custom payment","path":"cross-platform","order":3},{"name":"iOS","visible_in_sidebar":true,"page_title":"BBPS Billpay iOS integration for custom payment","path":"iOS","order":4},{"name":"Website","visible_in_sidebar":true,"page_title":"BBPS Billpay website integration for custom payment","path":"website","order":2}]},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BBPS Billpay Quickstart","path":"quickstart","order":1,"children":[{"name":"Android","visible_in_sidebar":true,"page_title":"BBPS Billpay Android integration","path":"android","order":2},{"name":"API","visible_in_sidebar":false,"page_title":"BBPS Billpay API","path":"api","order":2},{"name":"Cross platform","visible_in_sidebar":true,"page_title":"BBPS Billpay cross platform integration","path":"cross-platform","order":4},{"name":"iOS","visible_in_sidebar":true,"page_title":"BBPS Billpay iOS integration","path":"iOS","order":3},{"name":"Website","visible_in_sidebar":true,"page_title":"BBPS Billpay website","path":"website","order":1}]},{"name":"Remitter Details","visible_in_sidebar":true,"page_title":"Remitter Details For Bill Payments Integration Guide","path":"remitter-details","order":4},{"name":"Webhooks","visible_in_sidebar":true,"page_title":"BBPS Billpay webhooks","path":"webhooks","order":2}]},{"path":"v1","children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"BBPS Billpay API integration","path":"api-integration","order":1,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"COU Direct Connectivity API reference","path":"api-reference","order":5},{"name":"List of APIs","visible_in_sidebar":true,"page_title":"BBPS COU - List of APIs","path":"apis","order":2},{"name":"Deprecated APIs","visible_in_sidebar":false,"page_title":"BBPS COU - API integration (deprecated)","path":"deprecated","order":4,"children":[{"name":"Mock environment","visible_in_sidebar":false,"page_title":"BBPS Billpay Mock environment","path":"mock-environment","order":2},{"name":"Polling","visible_in_sidebar":false,"page_title":"BBPS Billpay polling","path":"polling","order":2}]},{"name":"Objects","visible_in_sidebar":true,"page_title":"BBPS COU - Objects","path":"objects","order":3},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BBPS COU - API integration","path":"quickstart","order":1},{"name":"Webhooks","visible_in_sidebar":true,"page_title":"BBPS COU - Webhooks","path":"webhooks","order":4}]},{"name":"API reference","visible_in_sidebar":false,"page_title":"BillPay API reference","path":"api-reference","order":5},{"name":"Overview","visible_in_sidebar":true,"page_title":"BBPS Billpay Overview","path":"overview","order":0},{"name":"Pre-built screens","visible_in_sidebar":true,"page_title":"BBPS Billpay pre-built screens","path":"pre-built-screens","order":2,"children":[{"name":"API reference","visible_in_sidebar":false,"page_title":"BBPS Billpay API reference","path":"api-reference-wl","order":4},{"name":"API reference","visible_in_sidebar":true,"page_title":"BBPS Billpay API reference","path":"api-reference","order":4},{"name":"Custom payment","visible_in_sidebar":true,"page_title":"BBPS Billpay custom payment","path":"custom-payment","order":2,"children":[{"name":"Android","visible_in_sidebar":true,"page_title":"BBPS Billpay android integration for custom payment","path":"android","order":3},{"name":"Required APIs","visible_in_sidebar":true,"page_title":"BBPS Billpay APIs for custom payment","path":"apis","order":1},{"name":"Cross platform","visible_in_sidebar":true,"page_title":"BBPS Billpay cross-platform integration for custom payment","path":"cross-platform","order":3},{"name":"iOS","visible_in_sidebar":true,"page_title":"BBPS Billpay iOS integration for custom payment","path":"iOS","order":4},{"name":"Website","visible_in_sidebar":true,"page_title":"BBPS Billpay website integration for custom payment","path":"website","order":2}]},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BBPS Billpay Quickstart","path":"quickstart","order":1,"children":[{"name":"Android","visible_in_sidebar":true,"page_title":"BBPS Billpay Android integration","path":"android","order":2},{"name":"API","visible_in_sidebar":true,"page_title":"BBPS Billpay API","path":"api","order":2},{"name":"Cross platform","visible_in_sidebar":true,"page_title":"BBPS Billpay cross platform integration","path":"cross-platform","order":4},{"name":"iOS","visible_in_sidebar":true,"page_title":"BBPS Billpay iOS integration","path":"iOS","order":3},{"name":"Website","visible_in_sidebar":true,"page_title":"BBPS Billpay website","path":"website","order":1}]},{"name":"Webhooks","visible_in_sidebar":true,"page_title":"BBPS Billpay webhooks","path":"webhooks","order":2}]}]}]},{"name":"WhatsApp Collect","path":"whatsapp-collect","order":3,"visible_in_sidebar":true,"children":[{"name":"API Integration","visible_in_sidebar":true,"page_title":"WhatsApp Collect API Integration","path":"api-integration","order":3},{"name":"API reference","visible_in_sidebar":true,"page_title":"WhatsApp Collect API reference","path":"api-reference","order":5},{"name":"Error codes","visible_in_sidebar":true,"page_title":"WhatsApp Collect error codes","path":"errors","order":4},{"name":"Collection journey","visible_in_sidebar":true,"page_title":"WhatsApp Collect Journey","path":"journey","order":1},{"name":"Overview","visible_in_sidebar":true,"page_title":"WhatsApp Collect Overview","path":"overview","order":0},{"name":"Collection reminders","visible_in_sidebar":true,"page_title":"WhatsApp Collect reminders","path":"reminders","order":2}]},{"name":"UPI DeepLinks","path":"upi-deeplinks","order":4,"visible_in_sidebar":true,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"UPI Deeplinks API reference","path":"api-reference","order":8},{"name":"Notifications","visible_in_sidebar":true,"page_title":"UPI Deeplinks Notifications","path":"notifications","order":6},{"name":"Overview","visible_in_sidebar":true,"page_title":"UPI Deeplinks Overview","path":"overview","order":0},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"UPI Deeplinks quickstart","path":"quickstart","order":1,"children":[{"name":"Go Live","visible_in_sidebar":true,"page_title":"UPI Deeplinks go live","path":"go-live","order":1}]},{"name":"Refunds","visible_in_sidebar":true,"page_title":"UPI Deeplinks Refunds","path":"refunds","order":4},{"name":"Reports API","visible_in_sidebar":true,"page_title":"UPI Deeplinks Reports API","path":"reports","order":5},{"name":"Additional resources","visible_in_sidebar":true,"page_title":"UPI Deeplinks additonal resources","path":"resources","order":6,"children":[{"name":"JWT authentication","visible_in_sidebar":true,"page_title":"UPI Deeplinks JWT authentication","path":"jwt","order":2},{"name":"OAuth 2.0","visible_in_sidebar":true,"page_title":"UPI Deeplinks OAuth 2.0","path":"oauth","order":1},{"name":"Settlement object","visible_in_sidebar":true,"page_title":"UPI Deeplinks settlement object","path":"settlement-object","order":3}]},{"name":"SDKs","visible_in_sidebar":true,"page_title":"UPI Deeplinks SDKs","path":"sdks","order":3},{"name":"Third party verification","visible_in_sidebar":true,"page_title":"UPI Deeplinks third party verification","path":"third-party-verification","order":3}]},{"name":"UPI Setu","path":"umap","order":7,"visible_in_sidebar":true,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"UPI Setu - API integration","path":"api-integration","order":2,"children":[{"name":"Aggregators","visible_in_sidebar":true,"page_title":"UPI Setu - API integration for aggregators","path":"aggregators","order":1},{"name":"Merchants","visible_in_sidebar":true,"page_title":"UPI Setu - API integration for merchants","path":"merchants","order":2}]},{"name":"API reference","visible_in_sidebar":true,"page_title":"UPI Setu - API reference","path":"api-reference","order":8},{"name":"UPI mandates","visible_in_sidebar":true,"page_title":"UPI mandates","path":"mandates","order":4,"children":[{"name":"Mandate operations","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Mandate operations","path":"generic","order":5,"children":[{"name":"Pause","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Pause","path":"pause","order":3},{"name":"Revoke","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Revoke","path":"revoke","order":2},{"name":"Unpause","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Unpause","path":"unpause","order":4},{"name":"Update","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Update","path":"update","order":1}]},{"name":"OneShot","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - OneShot","path":"one-shot","order":1,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Check payment status","path":"check-status","order":4},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Create One Time Mandate","path":"create","order":1},{"name":"Execute","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Execute One Time Mandate","path":"execute","order":3},{"name":"Pre Debit Notify","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Send One Time Mandate Pre Debit Notification","path":"pre-debit-notify","order":2}]},{"name":"Recur","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Recur","path":"recur","order":3,"children":[{"name":"Check payment status","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Check payment status","path":"check-status","order":4},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Create recurring mandate","path":"create","order":1},{"name":"Execute","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Execute mandate","path":"execute","order":3},{"name":"Pre Debit Notify","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Send Recurring Mandate Pre Debit Notification","path":"pre-debit-notify","order":2}]},{"name":"Reserve","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Reserve","path":"reserve","order":2,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Check payment status","path":"check-status","order":4},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Create Reserve Mandate","path":"create","order":1},{"name":"Execute","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Execute Reserve Mandate","path":"execute","order":3}]},{"name":"ReservePlus","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - ReservePlus","path":"reserve-plus","order":4,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Check payment status","path":"check-status","order":3},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Create single block multi-debit","path":"create","order":1},{"name":"Execute","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Execute single block multi-debit","path":"execute","order":2}]}]},{"name":"Merchant on-boarding","visible_in_sidebar":true,"page_title":"UPI Setu - Merchant onboarding","path":"merchant-onboarding","order":2,"children":[{"name":"Check VPA availability","visible_in_sidebar":true,"page_title":"UPI Setu - Merchant on-boarding - Check VPA availability","path":"check-vpa-availability-api","order":2},{"name":"Setup a merchant","visible_in_sidebar":true,"page_title":"UPI Setu - Merchant on-boarding - Setup merchant","path":"create-merchant-api","order":1},{"name":"Registering VPA","visible_in_sidebar":true,"page_title":"UPI Setu - Merchant on-boarding - Registering a VPA","path":"create-vpa-api","order":3}]},{"name":"Notifications and alerts","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts","path":"notifications","order":7,"children":[{"name":"VPA verification","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Customer VPA verification","path":"customer-vpa-verification","order":6},{"name":"Mandates","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Mandates","path":"mandates","order":3,"children":[{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Creation of mandate","path":"create","order":1},{"name":"Execute","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Mandate execution","path":"execute","order":7},{"name":"Notify","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Mandate pre-debit notifications","path":"notify","order":6},{"name":"Pause","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Pausing mandate","path":"pause","order":4},{"name":"Revoke","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Revoking mandate","path":"revoke","order":3},{"name":"Unpause","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Unpausing mandate","path":"unpause","order":5},{"name":"Update","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Updating mandate","path":"update","order":2}]},{"name":"Payments","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Payments","path":"payments","order":2},{"name":"Refunds","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Refunds","path":"refunds","order":4},{"name":"Verify signature","visible_in_sidebar":true,"page_title":"UMAP - Events and notifications","path":"verify-signature","order":1}]},{"name":"Overview","visible_in_sidebar":true,"page_title":"UPI Setu - Overview","path":"overview","order":0},{"name":"UPI payments","visible_in_sidebar":true,"page_title":"UPI payments","path":"payments","order":3,"children":[{"name":"Collect","visible_in_sidebar":true,"page_title":"UPI payments - Collect","path":"collect","order":2,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu payments - Collect request - Check payment status","path":"check-status","order":3},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu payments - Create collect request","path":"create-collect-request","order":2},{"name":"Verify customer VPA","visible_in_sidebar":true,"page_title":"UPI Setu payments - Verify customer VPA","path":"verify-customer-vpa-api","order":1}]},{"name":"Flash","visible_in_sidebar":true,"page_title":"UPI payments - Flash","path":"flash","order":1,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu payments - Intent/QR - Check payment status","path":"check-status","order":2},{"name":"Dynamic QR","visible_in_sidebar":true,"page_title":"UPI Setu payments - Create Dynamic QR","path":"create-dqr","order":1},{"name":"Static QR","visible_in_sidebar":true,"page_title":"UPI Setu payments - Create Static QR","path":"create-sqr","order":1}]},{"name":"TPV","visible_in_sidebar":true,"page_title":"UPI payments - TPV","path":"tpv","order":3,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu - Payments - TPV - Check payment status","path":"check-status","order":2},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Payments - Create TPV API","path":"create-tpv","order":1},{"name":"Payments","visible_in_sidebar":true,"page_title":"UMAP - Notifications and alerts - Payments","path":"life-cycle","order":1}]}]},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"UPI Setu - Quickstart","path":"quickstart","order":1,"children":[{"name":"Aggregators","visible_in_sidebar":true,"page_title":"UPI Setu - Quickstart for aggregators","path":"aggregators","order":1},{"name":"Merchants","visible_in_sidebar":true,"page_title":"UPI Setu - Quickstart for merchants","path":"merchants","order":2}]},{"name":"Refunds and disputes","visible_in_sidebar":true,"page_title":"UPI Setu - Refunds and disputes","path":"refunds-disputes","order":6,"children":[{"name":"Check refund status","visible_in_sidebar":true,"page_title":"UPI Setu - Refunds and disputes - Check refund status API","path":"check-refund-status-api","order":2},{"name":"Create refund","visible_in_sidebar":true,"page_title":"UPI Setu - Refunds and disputes - Create refund API","path":"create-refund-api","order":1},{"name":"Fetch dispute","visible_in_sidebar":true,"page_title":"UPI Setu - Refunds and disputes - Fetch dispute API","path":"fetch-dispute-api","order":3}]},{"name":"Transaction Monitoring","visible_in_sidebar":false,"page_title":"UPI Setu - Transaction Monitoring","path":"transaction-monitoring","order":5,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu - Transaction monitoring - Check status API","path":"check-status-api","order":1},{"name":"Check status history","visible_in_sidebar":true,"page_title":"UPI Setu - Transaction monitoring - Check status sistory API","path":"check-status-history-api","order":2},{"name":"Fetch payment","visible_in_sidebar":true,"page_title":"UPI Setu - Transaction monitoring - Fetch payment API","path":"fetch-payment-api","order":3}]}]}]},{"name":"Data","path":"data","order":1,"visible_in_sidebar":true,"children":[{"name":"KYC","path":"kyc","order":0,"visible_in_sidebar":true,"children":[{"name":"Secure Data Add-On","visible_in_sidebar":true,"page_title":"Setu Encrypted APIs","path":"encryption","order":2},{"name":"Overview","visible_in_sidebar":true,"page_title":"Setu KYC Overview","path":"overview","order":1}]},{"name":"PAN verification","path":"pan","order":0,"visible_in_sidebar":false,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"PAN verification API reference","path":"api-reference","order":1},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"PAN verification quickstart","path":"quickstart","order":0}]},{"name":"Aadhaar eSign","path":"esign","order":2,"visible_in_sidebar":true,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Aadhaar eSign API reference","path":"api-reference","order":9},{"name":"Error codes","visible_in_sidebar":true,"page_title":"Aadhaar eSign error codes","path":"error-codes","order":8},{"name":"eStamp overview","visible_in_sidebar":true,"page_title":"eStamp overview","path":"estamp","order":2},{"name":"Flexible eSign guide","visible_in_sidebar":true,"page_title":"Integration guide with flexible signature coordinates","path":"flexi-esign","order":4},{"name":"eSign Name Match","visible_in_sidebar":true,"page_title":"Aadhaar eSign Name Match","path":"name-match","order":6},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Aadhaar eSign Notifications","path":"notifications","order":7},{"name":"Overview","visible_in_sidebar":true,"page_title":"Aadhaar eSign overview","path":"overview","order":1},{"name":"PDF templates","visible_in_sidebar":true,"page_title":"Integration guide with pdf templating API's","path":"pdf-templating","order":5},{"name":"Integration guide","visible_in_sidebar":true,"page_title":"Aadhaar eSign integration guide","path":"quickstart","order":3}]},{"name":"DigiLocker","path":"digilocker","order":3,"visible_in_sidebar":false,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Digilocker API reference","path":"api-reference","order":3},{"name":"Error codes","visible_in_sidebar":true,"page_title":"DigiLocker error codes","path":"error-codes","order":4},{"name":"Overview","visible_in_sidebar":true,"page_title":"Digilocker overview","path":"overview","order":0},{"name":"Pull Driving Licence","visible_in_sidebar":true,"page_title":"Digilocker Quickstart","path":"pulldrivinglicense","order":2},{"name":"Integration guide","visible_in_sidebar":true,"page_title":"Digilocker quickstart","path":"quickstart","order":1}]},{"name":"AA Gateway","path":"account-aggregator","order":4,"versions":["v1","v2"],"default_version":"v2","visible_in_sidebar":true,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"Account Aggregator API integration","path":"api-integration","order":3,"children":[{"name":"Account Availability","visible_in_sidebar":true,"page_title":"Account Aggregator Account Availability","path":"account-availability-apis","order":5},{"name":"Consent flow","visible_in_sidebar":true,"page_title":"Account Aggregator Consent flow","path":"consent-flow","order":1},{"name":"Data flow","visible_in_sidebar":true,"page_title":"Account Aggregator Data flow","path":"data-apis","order":2},{"name":"Active FIPs","visible_in_sidebar":true,"page_title":"Account Aggregator Active FIPs","path":"fip-apis","order":4},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Account Aggregator Notifications","path":"notifications","order":3}]},{"name":"API reference","visible_in_sidebar":true,"page_title":"Account Aggregator API reference","path":"api-reference","order":10},{"name":"Consent object","visible_in_sidebar":true,"page_title":"Account Aggregator consent object","path":"consent-object","order":4},{"name":"Embed Setu screens","visible_in_sidebar":true,"page_title":"Account Aggregator Embed Setu screens","path":"embed-setu-aa","order":7},{"name":"FI data types","visible_in_sidebar":true,"page_title":"Account Aggregator FI data types","path":"fi-data-types","order":5},{"name":"Licenses and go live","visible_in_sidebar":true,"page_title":"Account Aggregator license and go live process","path":"licenses-and-go-live","order":8,"children":[{"name":"Go live","visible_in_sidebar":true,"page_title":"FIU go live process","path":"go-live","order":2},{"name":"Licenses","visible_in_sidebar":true,"page_title":"Licenses required to participate in AA","path":"licenses","order":1},{"name":"Participants in AA","visible_in_sidebar":true,"page_title":"Participants in AA","path":"participants-in-aa","order":0}]},{"name":"Multi AA gateway","visible_in_sidebar":true,"page_title":"Account Aggregator multi-AA gateway","path":"multi-aa-gateway","order":2},{"name":"Overview","visible_in_sidebar":true,"page_title":"Account Aggregator overview","path":"overview","order":0},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Account Aggregator quickstart","path":"quickstart","order":1},{"path":"v1","children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"Account Aggregator API integration","path":"api-integration","order":3,"children":[{"name":"Consent flow","visible_in_sidebar":true,"page_title":"Account Aggregator Consent flow","path":"consent-flow","order":1},{"name":"Data flow","visible_in_sidebar":true,"page_title":"Account Aggregator Data flow","path":"data-apis","order":2},{"name":"Active FIPs","visible_in_sidebar":true,"page_title":"Account Aggregator Active FIPs","path":"fip-apis","order":4},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Account Aggregator Notifications","path":"notifications","order":3}]},{"name":"API reference","visible_in_sidebar":true,"page_title":"Account Aggregator API reference","path":"api-reference","order":10},{"name":"Consent object","visible_in_sidebar":true,"page_title":"Account Aggregator Consent object","path":"consent-object","order":4},{"name":"Embed Setu screens","visible_in_sidebar":true,"page_title":"Account Aggregator Embed Setu screens","path":"embed-setu-aa","order":7},{"name":"End-to-end encryption","visible_in_sidebar":false,"page_title":"Account Aggregator End-to-end encryption","path":"encryption","order":1},{"name":"FI data types","visible_in_sidebar":true,"page_title":"Account Aggregator FI data types","path":"fi-data-types","order":5},{"name":"Get started","visible_in_sidebar":false,"page_title":"Account Aggregator getting started","path":"get-started","order":0},{"name":"Licenses and go live","visible_in_sidebar":true,"page_title":"Account Aggregator license and go live process","path":"licenses-and-go-live","order":8,"children":[{"name":"Go live","visible_in_sidebar":true,"page_title":"FIU go live process","path":"go-live","order":2},{"name":"Licenses","visible_in_sidebar":true,"page_title":"Licenses required to participate in AA","path":"licenses","order":1},{"name":"Participants in AA","visible_in_sidebar":true,"page_title":"Participants in AA","path":"participants-in-aa","order":0}]},{"name":"Migration guide","visible_in_sidebar":true,"page_title":"Account Aggregator Migration Guide","path":"migration-guide","order":6,"children":[{"name":"Consent flow","visible_in_sidebar":true,"page_title":"Account Aggregator Consent flow","path":"consent-flow","order":1},{"name":"Data flow","visible_in_sidebar":true,"page_title":"Account Aggregator Data flow","path":"data-flow","order":2},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Account Aggregator Notifications","path":"notifications","order":3}]},{"name":"Overview","visible_in_sidebar":true,"page_title":"Account Aggregator overview","path":"overview","order":0},{"name":"Postman integration","visible_in_sidebar":true,"page_title":"Account Aggregator Postman integration","path":"postman","order":2},{"name":"Quickstart","visible_in_sidebar":false,"page_title":"Account Aggregator quickstart","path":"quickstart-v1","order":1},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Account Aggregator quickstart","path":"quickstart","order":1},{"name":"Request signing","visible_in_sidebar":false,"page_title":"Account Aggregator Request signing","path":"request-signing","order":1}]}]},{"name":"Bank account verification","path":"bav","order":5,"visible_in_sidebar":false,"children":[{"name":"Penny drop","visible_in_sidebar":true,"page_title":"BAV using penny drop","path":"penny-drop","order":1,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"BAV API integration","path":"api-integration","order":1,"children":[{"name":"Async API","visible_in_sidebar":true,"page_title":"BAV Async API integration","path":"async","order":2},{"path":"bav-codes"},{"name":"Sync API","visible_in_sidebar":true,"page_title":"BAV Sync API integration","path":"sync","order":1}]},{"name":"API reference","visible_in_sidebar":true,"page_title":"BAV API reference","path":"api-reference","order":3},{"name":"Notifications","visible_in_sidebar":true,"page_title":"BAV Async Penny drop Notifications","path":"notifications","order":2},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BAV quickstart","path":"quickstart","order":0}]},{"name":"Reverse Penny drop","visible_in_sidebar":true,"page_title":"BAV using reverse penny drop","path":"reverse-penny-drop","order":3,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"RPD API integration","path":"api-integration","order":2},{"name":"API reference","visible_in_sidebar":true,"page_title":"BAV RPD API reference","path":"api-reference","order":4},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Quickstart for reverse penny drop","path":"quickstart","order":1},{"name":"Webhook Auth","visible_in_sidebar":true,"page_title":"Webhook Authentication","path":"webhook-authentication","order":3}]}]},{"name":"Insights","path":"insights","order":5,"versions":["v1","v2","v3"],"default_version":"v3","visible_in_sidebar":true,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Setu Insights API reference","path":"api-reference","order":4},{"name":"Error codes","visible_in_sidebar":true,"page_title":"Setu Insights error codes","path":"error-code","order":5},{"name":"List of insights","visible_in_sidebar":true,"page_title":"All Setu insights","path":"insights","order":2},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Setu Insights notifications","path":"notifications","order":3},{"name":"Overview","visible_in_sidebar":true,"page_title":"Setu Insights overview","path":"overview","order":0},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Setu Insights quickstart","path":"quickstart","order":1,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"Setu Insights Postman integration","path":"api-integration","order":1},{"name":"Postman integration","visible_in_sidebar":true,"page_title":"Setu Insights Postman integration","path":"postman","order":0}]},{"path":"v1","children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Setu Insights API reference","path":"api-reference","order":4},{"name":"List of insights","visible_in_sidebar":true,"page_title":"All Setu insights","path":"insights","order":2},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Setu Insights notifications","path":"notifications","order":3},{"name":"Overview","visible_in_sidebar":true,"page_title":"Setu Insights overview","path":"overview","order":0},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Setu Insights quickstart","path":"quickstart","order":1,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"Setu Insights Postman integration","path":"api-integration","order":1},{"name":"Postman integration","visible_in_sidebar":true,"page_title":"Setu Insights Postman integration","path":"postman","order":0}]}]},{"path":"v2","children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Setu Insights API reference","path":"api-reference","order":4},{"name":"List of insights","visible_in_sidebar":true,"page_title":"All Setu insights","path":"insights","order":2},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Setu Insights notifications","path":"notifications","order":3},{"name":"Overview","visible_in_sidebar":true,"page_title":"Setu Insights overview","path":"overview","order":0},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Setu Insights quickstart","path":"quickstart","order":1}]}]},{"name":"ULI","path":"uli","order":6,"visible_in_sidebar":false,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"GSTIN verification API reference","path":"api-reference","order":2},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"GST Verification quickstart","path":"quickstart","order":1}]},{"name":"GST verification","path":"gst","order":6,"visible_in_sidebar":false,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"GSTIN verification API reference","path":"api-reference","order":2},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"GST Verification quickstart","path":"quickstart","order":1}]},{"name":"Match APIs","path":"match-apis","order":7,"visible_in_sidebar":false,"children":[{"name":"Name match","visible_in_sidebar":true,"page_title":"Name match APIs","path":"name-match","order":1,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Name Match API reference","path":"api-reference","order":4},{"name":"Examples","visible_in_sidebar":true,"page_title":"Name Match API response examples","path":"examples","order":3},{"name":"Overview","visible_in_sidebar":true,"page_title":"Name Match API overview","path":"overview","order":1},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Name Match API quickstart","path":"quickstart","order":2}]}]},{"name":"eKYC","path":"ekyc","order":8,"visible_in_sidebar":false,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"eKYC API reference","path":"api-reference","order":2},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"PAN verification quickstart","path":"quickstart","order":1}]}]},{"name":"Dev tools","path":"dev-tools","order":2,"visible_in_sidebar":true,"children":[{"name":"The Bridge","path":"bridge","order":0,"versions":["v1","v2"],"default_version":"v2","visible_in_sidebar":true,"children":[{"name":"Analytics and reports","visible_in_sidebar":true,"page_title":"Bridge analytics and reports","path":"analytics-and-reports","order":3},{"name":"Configure products","visible_in_sidebar":true,"page_title":"Bridge explore and configure products","path":"explore-and-configure-products","order":2},{"name":"Glossary","visible_in_sidebar":true,"page_title":"Bridge glossary","path":"glossary","order":1},{"name":"Overview","visible_in_sidebar":true,"page_title":"Bridge overview","path":"overview","order":0},{"name":"Settings","visible_in_sidebar":true,"page_title":"Bridge settings","path":"settings","order":4},{"name":"User profile","visible_in_sidebar":true,"page_title":"Bridge user profile","path":"user-profile","order":5},{"path":"v1","children":[{"name":"Bridge configuration","visible_in_sidebar":false,"page_title":"Bridge configuration","path":"configure","order":6},{"name":"Generate Token","visible_in_sidebar":false,"page_title":"Bridge generate token","path":"generate-token","order":4},{"name":"Org settings","visible_in_sidebar":true,"page_title":"Bridge org settings","path":"org-settings","order":3,"children":[{"name":"API keys","visible_in_sidebar":true,"page_title":"API keys","path":"api-keys","order":2,"children":[{"name":"JWT Auth","visible_in_sidebar":false,"page_title":"JWT Auth","path":"jwt-auth","order":3},{"name":"JWT","visible_in_sidebar":true,"page_title":"JWT","path":"jwt","order":1},{"name":"OAuth","visible_in_sidebar":true,"page_title":"OAuth","path":"oauth","order":2}]},{"name":"People","visible_in_sidebar":true,"page_title":"People","path":"people","order":1}]},{"name":"Overview","visible_in_sidebar":true,"page_title":"Bridge overview","path":"overview","order":0},{"name":"Reports","visible_in_sidebar":true,"page_title":"Bridge reports","path":"reports","order":1,"children":[{"name":"Types","visible_in_sidebar":false,"page_title":"Report types","path":"types","order":1}]},{"name":"Reports API","visible_in_sidebar":false,"page_title":"Reports API","path":"reports-api","order":5}]}]}]},{"name":"Sample Category","path":"sample-category","order":3,"visible_in_sidebar":false,"children":[{"name":"Sample Product","path":"sample-product","order":0,"visible_in_sidebar":false,"children":[{"name":"Sample Page","visible_in_sidebar":false,"page_title":"Docs sample page","path":"sample-page","order":0}]}]}]}
\ No newline at end of file
+{"home":[{"name":"Payments","path":"payments","order":0,"visible_in_sidebar":true,"api_reference":true,"children":[{"name":"BBPS BillCollect","path":"bbps","order":0,"visible_in_sidebar":true,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"BBPS API reference","path":"api-reference","order":9},{"name":"Axis BBPS","visible_in_sidebar":false,"page_title":"Axis BBPS API Approach Document","path":"axis","order":10},{"name":"Bill Structure","visible_in_sidebar":true,"page_title":"BBPS - Bill Structure","path":"bill-structure","order":5,"children":[{"name":"Special cases","visible_in_sidebar":true,"page_title":"BBPS - Bill Structure special cases","path":"special-cases","order":1}]},{"name":"Go live","visible_in_sidebar":true,"page_title":"BBPS - Go live","path":"go-live","order":3},{"name":"Notifications","visible_in_sidebar":true,"page_title":"BBPS - Notifications","path":"notifications","order":4},{"name":"Overview","visible_in_sidebar":true,"page_title":"BBPS - Overview","path":"overview","order":1},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BBPS - Quickstart","path":"quickstart","order":2,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"BBPS - API integration","path":"api-integration","order":2,"children":[{"name":"Fetch & Pay","visible_in_sidebar":true,"page_title":"API integration - Fetch & Pay","path":"fetch-pay","order":1},{"name":"Validate & Pay","visible_in_sidebar":true,"page_title":"BBPS - API integration","path":"validate-pay","order":2}]},{"name":"No-code CSV","visible_in_sidebar":true,"page_title":"BBPS - No-code CSV","path":"no-code-integration","order":1},{"name":"Share bills","visible_in_sidebar":false,"page_title":"BBPS - Share bills","path":"share-biils","order":1}]},{"name":"Reports API","visible_in_sidebar":true,"page_title":"BBPS - Reports API","path":"reports","order":6},{"name":"Additional resources","visible_in_sidebar":true,"page_title":"BBPS - Additional Resources","path":"resources","order":8,"children":[{"name":"Errors","visible_in_sidebar":true,"page_title":"BBPS error codes","path":"errors","order":4},{"name":"JWT authentication","visible_in_sidebar":true,"page_title":"UPI Deeplinks JWT authentication","path":"jwt","order":2},{"name":"OAuth 2.0","visible_in_sidebar":true,"page_title":"BBPS OAuth 2.0","path":"oauth","order":1},{"name":"Settlement object","visible_in_sidebar":true,"page_title":"UPI Deeplinks settlement object","path":"settlement-object","order":3}]}]},{"name":"BBPS BillPay","path":"billpay","order":1,"versions":["v1","v2"],"default_version":"v2","visible_in_sidebar":true,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"BBPS Billpay API integration","path":"api-integration","order":1,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"COU Direct Connectivity API reference","path":"api-reference","order":8},{"name":"List of APIs","visible_in_sidebar":true,"page_title":"BBPS COU - List of APIs","path":"apis","order":2},{"name":"Harmonization of TAT","visible_in_sidebar":true,"page_title":"Harmonization Of TAT (Disputes API)","path":"harmonization_of_tat","order":6},{"name":"Objects","visible_in_sidebar":true,"page_title":"BBPS COU - Objects","path":"objects","order":9},{"name":"Paying Bills","visible_in_sidebar":true,"page_title":"Paying Bills","path":"paying-bills","order":4,"children":[{"name":"Paying for options","visible_in_sidebar":true,"page_title":"Paying for alternative options","path":"bill-payment-options","order":4},{"name":"Passing CCF","visible_in_sidebar":true,"page_title":"Customer Convenience Fee (CCF) Integration Guide","path":"customer-convenience-fee","order":3},{"name":"Paying multiple bills","visible_in_sidebar":true,"page_title":"Paying for multiple bills","path":"multi-bill-processing","order":5},{"name":"Paying for plans","visible_in_sidebar":true,"page_title":"Paying for plans","path":"plan-mdm-integration","order":6},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BBPS Bill Payment Integration Guide","path":"quickstart","order":1},{"name":"Remitter Details","visible_in_sidebar":true,"page_title":"Passing Remitter Details","path":"remittance_flows_guide","order":2}]},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BBPS COU - API integration","path":"quickstart","order":1},{"name":"Integrating with UPMS","visible_in_sidebar":true,"page_title":"BBPS COU - Integrating with UPMS","path":"upms","order":7},{"name":"Migration Guide to v2","visible_in_sidebar":true,"page_title":"BBPS COU - Migration Guide to v2","path":"v2-migration","order":5},{"name":"Webhooks","visible_in_sidebar":true,"page_title":"BBPS COU - Webhooks","path":"webhooks","order":3}]},{"name":"API reference","visible_in_sidebar":false,"page_title":"BillPay API reference","path":"api-reference","order":5},{"name":"Prepaid Recharge","visible_in_sidebar":true,"page_title":"BBPS Billpay Prepaid Recharge APIs","path":"mobile-prepaid-recharge","order":3,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Mobile Prepaid Recharge API reference","path":"api-reference","order":2},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Mobile Prepaid Recharge quickstart","path":"quickstart","order":1},{"name":"Webhooks","visible_in_sidebar":true,"page_title":"Mobile Prepaid Recharge Webhooks","path":"webhooks","order":3}]},{"name":"Overview","visible_in_sidebar":true,"page_title":"BBPS Billpay Overview","path":"overview","order":0},{"name":"Pre-built screens","visible_in_sidebar":true,"page_title":"BBPS Billpay pre-built screens","path":"pre-built-screens","order":2,"children":[{"name":"API reference","visible_in_sidebar":false,"page_title":"BBPS Billpay API reference","path":"api-reference-wl","order":4},{"name":"API reference","visible_in_sidebar":true,"page_title":"BBPS Billpay API reference","path":"api-reference","order":5},{"name":"Custom payment","visible_in_sidebar":true,"page_title":"BBPS Billpay custom payment","path":"custom-payment","order":2,"children":[{"name":"Android","visible_in_sidebar":true,"page_title":"BBPS Billpay android integration for custom payment","path":"android","order":3},{"name":"Required APIs","visible_in_sidebar":true,"page_title":"BBPS Billpay APIs for custom payment","path":"apis","order":1},{"name":"Cross platform","visible_in_sidebar":true,"page_title":"BBPS Billpay cross-platform integration for custom payment","path":"cross-platform","order":3},{"name":"iOS","visible_in_sidebar":true,"page_title":"BBPS Billpay iOS integration for custom payment","path":"iOS","order":4},{"name":"Website","visible_in_sidebar":true,"page_title":"BBPS Billpay website integration for custom payment","path":"website","order":2}]},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BBPS Billpay Quickstart","path":"quickstart","order":1,"children":[{"name":"Android","visible_in_sidebar":true,"page_title":"BBPS Billpay Android integration","path":"android","order":2},{"name":"API","visible_in_sidebar":false,"page_title":"BBPS Billpay API","path":"api","order":2},{"name":"Cross platform","visible_in_sidebar":true,"page_title":"BBPS Billpay cross platform integration","path":"cross-platform","order":4},{"name":"iOS","visible_in_sidebar":true,"page_title":"BBPS Billpay iOS integration","path":"iOS","order":3},{"name":"Website","visible_in_sidebar":true,"page_title":"BBPS Billpay website","path":"website","order":1}]},{"name":"Remitter Details","visible_in_sidebar":true,"page_title":"Remitter Details For Bill Payments Integration Guide","path":"remitter-details","order":4},{"name":"Webhooks","visible_in_sidebar":true,"page_title":"BBPS Billpay webhooks","path":"webhooks","order":2}]},{"name":"MCP Server for Bill Payments","path":"mcp","order":6,"visible_in_sidebar":false,"children":[{"name":"Integration Guide","visible_in_sidebar":false,"page_title":"MCP Server for Bill Payments \u2013 Integration Guide","path":"integration-guide","order":1},{"name":"Tools and Prompts","visible_in_sidebar":false,"page_title":"MCP Server for Bill Payments - Tools and Prompts","path":"tools-and-prompts","order":2}]},{"path":"v1","children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"BBPS Billpay API integration","path":"api-integration","order":1,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"COU Direct Connectivity API reference","path":"api-reference","order":5},{"name":"List of APIs","visible_in_sidebar":true,"page_title":"BBPS COU - List of APIs","path":"apis","order":2},{"name":"Deprecated APIs","visible_in_sidebar":false,"page_title":"BBPS COU - API integration (deprecated)","path":"deprecated","order":4,"children":[{"name":"Mock environment","visible_in_sidebar":false,"page_title":"BBPS Billpay Mock environment","path":"mock-environment","order":2},{"name":"Polling","visible_in_sidebar":false,"page_title":"BBPS Billpay polling","path":"polling","order":2}]},{"name":"Objects","visible_in_sidebar":true,"page_title":"BBPS COU - Objects","path":"objects","order":3},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BBPS COU - API integration","path":"quickstart","order":1},{"name":"Webhooks","visible_in_sidebar":true,"page_title":"BBPS COU - Webhooks","path":"webhooks","order":4}]},{"name":"API reference","visible_in_sidebar":false,"page_title":"BillPay API reference","path":"api-reference","order":5},{"name":"Overview","visible_in_sidebar":true,"page_title":"BBPS Billpay Overview","path":"overview","order":0},{"name":"Pre-built screens","visible_in_sidebar":true,"page_title":"BBPS Billpay pre-built screens","path":"pre-built-screens","order":2,"children":[{"name":"API reference","visible_in_sidebar":false,"page_title":"BBPS Billpay API reference","path":"api-reference-wl","order":4},{"name":"API reference","visible_in_sidebar":true,"page_title":"BBPS Billpay API reference","path":"api-reference","order":4},{"name":"Custom payment","visible_in_sidebar":true,"page_title":"BBPS Billpay custom payment","path":"custom-payment","order":2,"children":[{"name":"Android","visible_in_sidebar":true,"page_title":"BBPS Billpay android integration for custom payment","path":"android","order":3},{"name":"Required APIs","visible_in_sidebar":true,"page_title":"BBPS Billpay APIs for custom payment","path":"apis","order":1},{"name":"Cross platform","visible_in_sidebar":true,"page_title":"BBPS Billpay cross-platform integration for custom payment","path":"cross-platform","order":3},{"name":"iOS","visible_in_sidebar":true,"page_title":"BBPS Billpay iOS integration for custom payment","path":"iOS","order":4},{"name":"Website","visible_in_sidebar":true,"page_title":"BBPS Billpay website integration for custom payment","path":"website","order":2}]},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BBPS Billpay Quickstart","path":"quickstart","order":1,"children":[{"name":"Android","visible_in_sidebar":true,"page_title":"BBPS Billpay Android integration","path":"android","order":2},{"name":"API","visible_in_sidebar":true,"page_title":"BBPS Billpay API","path":"api","order":2},{"name":"Cross platform","visible_in_sidebar":true,"page_title":"BBPS Billpay cross platform integration","path":"cross-platform","order":4},{"name":"iOS","visible_in_sidebar":true,"page_title":"BBPS Billpay iOS integration","path":"iOS","order":3},{"name":"Website","visible_in_sidebar":true,"page_title":"BBPS Billpay website","path":"website","order":1}]},{"name":"Webhooks","visible_in_sidebar":true,"page_title":"BBPS Billpay webhooks","path":"webhooks","order":2}]}]}]},{"name":"WhatsApp Collect","path":"whatsapp-collect","order":3,"visible_in_sidebar":true,"children":[{"name":"API Integration","visible_in_sidebar":true,"page_title":"WhatsApp Collect API Integration","path":"api-integration","order":3},{"name":"API reference","visible_in_sidebar":true,"page_title":"WhatsApp Collect API reference","path":"api-reference","order":5},{"name":"Error codes","visible_in_sidebar":true,"page_title":"WhatsApp Collect error codes","path":"errors","order":4},{"name":"Collection journey","visible_in_sidebar":true,"page_title":"WhatsApp Collect Journey","path":"journey","order":1},{"name":"Overview","visible_in_sidebar":true,"page_title":"WhatsApp Collect Overview","path":"overview","order":0},{"name":"Collection reminders","visible_in_sidebar":true,"page_title":"WhatsApp Collect reminders","path":"reminders","order":2}]},{"name":"UPI DeepLinks","path":"upi-deeplinks","order":4,"visible_in_sidebar":true,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"UPI Deeplinks API reference","path":"api-reference","order":8},{"name":"Notifications","visible_in_sidebar":true,"page_title":"UPI Deeplinks Notifications","path":"notifications","order":6},{"name":"Overview","visible_in_sidebar":true,"page_title":"UPI Deeplinks Overview","path":"overview","order":0},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"UPI Deeplinks quickstart","path":"quickstart","order":1,"children":[{"name":"Go Live","visible_in_sidebar":true,"page_title":"UPI Deeplinks go live","path":"go-live","order":1}]},{"name":"Refunds","visible_in_sidebar":true,"page_title":"UPI Deeplinks Refunds","path":"refunds","order":4},{"name":"Reports API","visible_in_sidebar":true,"page_title":"UPI Deeplinks Reports API","path":"reports","order":5},{"name":"Additional resources","visible_in_sidebar":true,"page_title":"UPI Deeplinks additonal resources","path":"resources","order":6,"children":[{"name":"JWT authentication","visible_in_sidebar":true,"page_title":"UPI Deeplinks JWT authentication","path":"jwt","order":2},{"name":"OAuth 2.0","visible_in_sidebar":true,"page_title":"UPI Deeplinks OAuth 2.0","path":"oauth","order":1},{"name":"Settlement object","visible_in_sidebar":true,"page_title":"UPI Deeplinks settlement object","path":"settlement-object","order":3}]},{"name":"SDKs","visible_in_sidebar":true,"page_title":"UPI Deeplinks SDKs","path":"sdks","order":3},{"name":"Third party verification","visible_in_sidebar":true,"page_title":"UPI Deeplinks third party verification","path":"third-party-verification","order":3}]},{"name":"UPI Setu","path":"umap","order":7,"visible_in_sidebar":true,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"UPI Setu - API integration","path":"api-integration","order":2,"children":[{"name":"Aggregators","visible_in_sidebar":true,"page_title":"UPI Setu - API integration for aggregators","path":"aggregators","order":1},{"name":"Merchants","visible_in_sidebar":true,"page_title":"UPI Setu - API integration for merchants","path":"merchants","order":2}]},{"name":"API reference","visible_in_sidebar":true,"page_title":"UPI Setu - API reference","path":"api-reference","order":8},{"name":"UPI mandates","visible_in_sidebar":true,"page_title":"UPI mandates","path":"mandates","order":4,"children":[{"name":"Mandate operations","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Mandate operations","path":"generic","order":5,"children":[{"name":"Pause","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Pause","path":"pause","order":3},{"name":"Revoke","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Revoke","path":"revoke","order":2},{"name":"Unpause","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Unpause","path":"unpause","order":4},{"name":"Update","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Update","path":"update","order":1}]},{"name":"OneShot","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - OneShot","path":"one-shot","order":1,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Check payment status","path":"check-status","order":4},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Create One Time Mandate","path":"create","order":1},{"name":"Execute","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Execute One Time Mandate","path":"execute","order":3},{"name":"Pre Debit Notify","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Send One Time Mandate Pre Debit Notification","path":"pre-debit-notify","order":2}]},{"name":"Recur","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Recur","path":"recur","order":3,"children":[{"name":"Check payment status","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Check payment status","path":"check-status","order":4},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Create recurring mandate","path":"create","order":1},{"name":"Execute","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Execute mandate","path":"execute","order":3},{"name":"Pre Debit Notify","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Send Recurring Mandate Pre Debit Notification","path":"pre-debit-notify","order":2}]},{"name":"Reserve","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Reserve","path":"reserve","order":2,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Check payment status","path":"check-status","order":4},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Create Reserve Mandate","path":"create","order":1},{"name":"Execute","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Execute Reserve Mandate","path":"execute","order":3}]},{"name":"ReservePlus","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - ReservePlus","path":"reserve-plus","order":4,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Check payment status","path":"check-status","order":3},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Create single block multi-debit","path":"create","order":1},{"name":"Execute","visible_in_sidebar":true,"page_title":"UPI Setu - Mandates - Execute single block multi-debit","path":"execute","order":2}]}]},{"name":"Merchant on-boarding","visible_in_sidebar":true,"page_title":"UPI Setu - Merchant onboarding","path":"merchant-onboarding","order":2,"children":[{"name":"Check VPA availability","visible_in_sidebar":true,"page_title":"UPI Setu - Merchant on-boarding - Check VPA availability","path":"check-vpa-availability-api","order":2},{"name":"Setup a merchant","visible_in_sidebar":true,"page_title":"UPI Setu - Merchant on-boarding - Setup merchant","path":"create-merchant-api","order":1},{"name":"Registering VPA","visible_in_sidebar":true,"page_title":"UPI Setu - Merchant on-boarding - Registering a VPA","path":"create-vpa-api","order":3}]},{"name":"Notifications and alerts","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts","path":"notifications","order":7,"children":[{"name":"VPA verification","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Customer VPA verification","path":"customer-vpa-verification","order":6},{"name":"Mandates","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Mandates","path":"mandates","order":3,"children":[{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Creation of mandate","path":"create","order":1},{"name":"Execute","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Mandate execution","path":"execute","order":7},{"name":"Notify","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Mandate pre-debit notifications","path":"notify","order":6},{"name":"Pause","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Pausing mandate","path":"pause","order":4},{"name":"Revoke","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Revoking mandate","path":"revoke","order":3},{"name":"Unpause","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Unpausing mandate","path":"unpause","order":5},{"name":"Update","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Updating mandate","path":"update","order":2}]},{"name":"Payments","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Payments","path":"payments","order":2},{"name":"Refunds","visible_in_sidebar":true,"page_title":"UPI Setu - Notifications and alerts - Refunds","path":"refunds","order":4},{"name":"Verify signature","visible_in_sidebar":true,"page_title":"UMAP - Events and notifications","path":"verify-signature","order":1}]},{"name":"Overview","visible_in_sidebar":true,"page_title":"UPI Setu - Overview","path":"overview","order":0},{"name":"UPI payments","visible_in_sidebar":true,"page_title":"UPI payments","path":"payments","order":3,"children":[{"name":"Collect","visible_in_sidebar":true,"page_title":"UPI payments - Collect","path":"collect","order":2,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu payments - Collect request - Check payment status","path":"check-status","order":3},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu payments - Create collect request","path":"create-collect-request","order":2},{"name":"Verify customer VPA","visible_in_sidebar":true,"page_title":"UPI Setu payments - Verify customer VPA","path":"verify-customer-vpa-api","order":1}]},{"name":"Flash","visible_in_sidebar":true,"page_title":"UPI payments - Flash","path":"flash","order":1,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu payments - Intent/QR - Check payment status","path":"check-status","order":2},{"name":"Dynamic QR","visible_in_sidebar":true,"page_title":"UPI Setu payments - Create Dynamic QR","path":"create-dqr","order":1},{"name":"Static QR","visible_in_sidebar":true,"page_title":"UPI Setu payments - Create Static QR","path":"create-sqr","order":1}]},{"name":"TPV","visible_in_sidebar":true,"page_title":"UPI payments - TPV","path":"tpv","order":3,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu - Payments - TPV - Check payment status","path":"check-status","order":2},{"name":"Create","visible_in_sidebar":true,"page_title":"UPI Setu - Payments - Create TPV API","path":"create-tpv","order":1},{"name":"Payments","visible_in_sidebar":true,"page_title":"UMAP - Notifications and alerts - Payments","path":"life-cycle","order":1}]}]},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"UPI Setu - Quickstart","path":"quickstart","order":1,"children":[{"name":"Aggregators","visible_in_sidebar":true,"page_title":"UPI Setu - Quickstart for aggregators","path":"aggregators","order":1},{"name":"Merchants","visible_in_sidebar":true,"page_title":"UPI Setu - Quickstart for merchants","path":"merchants","order":2}]},{"name":"Refunds and disputes","visible_in_sidebar":true,"page_title":"UPI Setu - Refunds and disputes","path":"refunds-disputes","order":6,"children":[{"name":"Check refund status","visible_in_sidebar":true,"page_title":"UPI Setu - Refunds and disputes - Check refund status API","path":"check-refund-status-api","order":2},{"name":"Create refund","visible_in_sidebar":true,"page_title":"UPI Setu - Refunds and disputes - Create refund API","path":"create-refund-api","order":1},{"name":"Fetch dispute","visible_in_sidebar":true,"page_title":"UPI Setu - Refunds and disputes - Fetch dispute API","path":"fetch-dispute-api","order":3}]},{"name":"Transaction Monitoring","visible_in_sidebar":false,"page_title":"UPI Setu - Transaction Monitoring","path":"transaction-monitoring","order":5,"children":[{"name":"Check status","visible_in_sidebar":true,"page_title":"UPI Setu - Transaction monitoring - Check status API","path":"check-status-api","order":1},{"name":"Check status history","visible_in_sidebar":true,"page_title":"UPI Setu - Transaction monitoring - Check status sistory API","path":"check-status-history-api","order":2},{"name":"Fetch payment","visible_in_sidebar":true,"page_title":"UPI Setu - Transaction monitoring - Fetch payment API","path":"fetch-payment-api","order":3}]}]}]},{"name":"Data","path":"data","order":1,"visible_in_sidebar":true,"children":[{"name":"KYC","path":"kyc","order":0,"visible_in_sidebar":true,"children":[{"name":"Secure Data Add-On","visible_in_sidebar":true,"page_title":"Setu Encrypted APIs","path":"encryption","order":2},{"name":"Overview","visible_in_sidebar":true,"page_title":"Setu KYC Overview","path":"overview","order":1}]},{"name":"PAN verification","path":"pan","order":0,"visible_in_sidebar":false,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"PAN verification API reference","path":"api-reference","order":1},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"PAN verification quickstart","path":"quickstart","order":0}]},{"name":"Aadhaar eSign","path":"esign","order":2,"visible_in_sidebar":true,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Aadhaar eSign API reference","path":"api-reference","order":9},{"name":"Error codes","visible_in_sidebar":true,"page_title":"Aadhaar eSign error codes","path":"error-codes","order":8},{"name":"eStamp overview","visible_in_sidebar":true,"page_title":"eStamp overview","path":"estamp","order":2},{"name":"Flexible eSign guide","visible_in_sidebar":true,"page_title":"Integration guide with flexible signature coordinates","path":"flexi-esign","order":4},{"name":"eSign Name Match","visible_in_sidebar":true,"page_title":"Aadhaar eSign Name Match","path":"name-match","order":6},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Aadhaar eSign Notifications","path":"notifications","order":7},{"name":"Overview","visible_in_sidebar":true,"page_title":"Aadhaar eSign overview","path":"overview","order":1},{"name":"PDF templates","visible_in_sidebar":true,"page_title":"Integration guide with pdf templating API's","path":"pdf-templating","order":5},{"name":"Integration guide","visible_in_sidebar":true,"page_title":"Aadhaar eSign integration guide","path":"quickstart","order":3}]},{"name":"DigiLocker","path":"digilocker","order":3,"visible_in_sidebar":false,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Digilocker API reference","path":"api-reference","order":3},{"name":"Error codes","visible_in_sidebar":true,"page_title":"DigiLocker error codes","path":"error-codes","order":4},{"name":"Overview","visible_in_sidebar":true,"page_title":"Digilocker overview","path":"overview","order":0},{"name":"Pull Driving Licence","visible_in_sidebar":true,"page_title":"Digilocker Quickstart","path":"pulldrivinglicense","order":2},{"name":"Integration guide","visible_in_sidebar":true,"page_title":"Digilocker quickstart","path":"quickstart","order":1}]},{"name":"AA Gateway","path":"account-aggregator","order":4,"versions":["v1","v2"],"default_version":"v2","visible_in_sidebar":true,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"Account Aggregator API integration","path":"api-integration","order":3,"children":[{"name":"Account Availability","visible_in_sidebar":true,"page_title":"Account Aggregator Account Availability","path":"account-availability-apis","order":5},{"name":"Consent flow","visible_in_sidebar":true,"page_title":"Account Aggregator Consent flow","path":"consent-flow","order":1},{"name":"Data flow","visible_in_sidebar":true,"page_title":"Account Aggregator Data flow","path":"data-apis","order":2},{"name":"Active FIPs","visible_in_sidebar":true,"page_title":"Account Aggregator Active FIPs","path":"fip-apis","order":4},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Account Aggregator Notifications","path":"notifications","order":3}]},{"name":"API reference","visible_in_sidebar":true,"page_title":"Account Aggregator API reference","path":"api-reference","order":10},{"name":"Consent object","visible_in_sidebar":true,"page_title":"Account Aggregator consent object","path":"consent-object","order":4},{"name":"Embed Setu screens","visible_in_sidebar":true,"page_title":"Account Aggregator Embed Setu screens","path":"embed-setu-aa","order":7},{"name":"FI data types","visible_in_sidebar":true,"page_title":"Account Aggregator FI data types","path":"fi-data-types","order":5},{"name":"Licenses and go live","visible_in_sidebar":true,"page_title":"Account Aggregator license and go live process","path":"licenses-and-go-live","order":8,"children":[{"name":"Go live","visible_in_sidebar":true,"page_title":"FIU go live process","path":"go-live","order":2},{"name":"Licenses","visible_in_sidebar":true,"page_title":"Licenses required to participate in AA","path":"licenses","order":1},{"name":"Participants in AA","visible_in_sidebar":true,"page_title":"Participants in AA","path":"participants-in-aa","order":0}]},{"name":"Multi AA gateway","visible_in_sidebar":true,"page_title":"Account Aggregator multi-AA gateway","path":"multi-aa-gateway","order":2},{"name":"Overview","visible_in_sidebar":true,"page_title":"Account Aggregator overview","path":"overview","order":0},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Account Aggregator quickstart","path":"quickstart","order":1},{"path":"v1","children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"Account Aggregator API integration","path":"api-integration","order":3,"children":[{"name":"Consent flow","visible_in_sidebar":true,"page_title":"Account Aggregator Consent flow","path":"consent-flow","order":1},{"name":"Data flow","visible_in_sidebar":true,"page_title":"Account Aggregator Data flow","path":"data-apis","order":2},{"name":"Active FIPs","visible_in_sidebar":true,"page_title":"Account Aggregator Active FIPs","path":"fip-apis","order":4},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Account Aggregator Notifications","path":"notifications","order":3}]},{"name":"API reference","visible_in_sidebar":true,"page_title":"Account Aggregator API reference","path":"api-reference","order":10},{"name":"Consent object","visible_in_sidebar":true,"page_title":"Account Aggregator Consent object","path":"consent-object","order":4},{"name":"Embed Setu screens","visible_in_sidebar":true,"page_title":"Account Aggregator Embed Setu screens","path":"embed-setu-aa","order":7},{"name":"End-to-end encryption","visible_in_sidebar":false,"page_title":"Account Aggregator End-to-end encryption","path":"encryption","order":1},{"name":"FI data types","visible_in_sidebar":true,"page_title":"Account Aggregator FI data types","path":"fi-data-types","order":5},{"name":"Get started","visible_in_sidebar":false,"page_title":"Account Aggregator getting started","path":"get-started","order":0},{"name":"Licenses and go live","visible_in_sidebar":true,"page_title":"Account Aggregator license and go live process","path":"licenses-and-go-live","order":8,"children":[{"name":"Go live","visible_in_sidebar":true,"page_title":"FIU go live process","path":"go-live","order":2},{"name":"Licenses","visible_in_sidebar":true,"page_title":"Licenses required to participate in AA","path":"licenses","order":1},{"name":"Participants in AA","visible_in_sidebar":true,"page_title":"Participants in AA","path":"participants-in-aa","order":0}]},{"name":"Migration guide","visible_in_sidebar":true,"page_title":"Account Aggregator Migration Guide","path":"migration-guide","order":6,"children":[{"name":"Consent flow","visible_in_sidebar":true,"page_title":"Account Aggregator Consent flow","path":"consent-flow","order":1},{"name":"Data flow","visible_in_sidebar":true,"page_title":"Account Aggregator Data flow","path":"data-flow","order":2},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Account Aggregator Notifications","path":"notifications","order":3}]},{"name":"Overview","visible_in_sidebar":true,"page_title":"Account Aggregator overview","path":"overview","order":0},{"name":"Postman integration","visible_in_sidebar":true,"page_title":"Account Aggregator Postman integration","path":"postman","order":2},{"name":"Quickstart","visible_in_sidebar":false,"page_title":"Account Aggregator quickstart","path":"quickstart-v1","order":1},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Account Aggregator quickstart","path":"quickstart","order":1},{"name":"Request signing","visible_in_sidebar":false,"page_title":"Account Aggregator Request signing","path":"request-signing","order":1}]}]},{"name":"Bank account verification","path":"bav","order":5,"visible_in_sidebar":false,"children":[{"name":"Penny drop","visible_in_sidebar":true,"page_title":"BAV using penny drop","path":"penny-drop","order":1,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"BAV API integration","path":"api-integration","order":1,"children":[{"name":"Async API","visible_in_sidebar":true,"page_title":"BAV Async API integration","path":"async","order":2},{"path":"bav-codes"},{"name":"Sync API","visible_in_sidebar":true,"page_title":"BAV Sync API integration","path":"sync","order":1}]},{"name":"API reference","visible_in_sidebar":true,"page_title":"BAV API reference","path":"api-reference","order":3},{"name":"Notifications","visible_in_sidebar":true,"page_title":"BAV Async Penny drop Notifications","path":"notifications","order":2},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"BAV quickstart","path":"quickstart","order":0}]},{"name":"Reverse Penny drop","visible_in_sidebar":true,"page_title":"BAV using reverse penny drop","path":"reverse-penny-drop","order":3,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"RPD API integration","path":"api-integration","order":2},{"name":"API reference","visible_in_sidebar":true,"page_title":"BAV RPD API reference","path":"api-reference","order":4},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Quickstart for reverse penny drop","path":"quickstart","order":1},{"name":"Webhook Auth","visible_in_sidebar":true,"page_title":"Webhook Authentication","path":"webhook-authentication","order":3}]},{"name":"Bundled BAV","visible_in_sidebar":true,"page_title":"Bundled Bank Account Verification","path":"bundled-bav","order":5,"children":[{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Quickstart for Bundled BAV","path":"quickstart","order":1},{"name":"API integration","visible_in_sidebar":true,"page_title":"Bundled BAV API integration","path":"api-integration","order":2},{"name":"API reference","visible_in_sidebar":true,"page_title":"Bundled BAV API reference","path":"api-reference","order":3}]}]},{"name":"Insights","path":"insights","order":5,"versions":["v1","v2","v3"],"default_version":"v3","visible_in_sidebar":true,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Setu Insights API reference","path":"api-reference","order":4},{"name":"Error codes","visible_in_sidebar":true,"page_title":"Setu Insights error codes","path":"error-code","order":5},{"name":"List of insights","visible_in_sidebar":true,"page_title":"All Setu insights","path":"insights","order":2},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Setu Insights notifications","path":"notifications","order":3},{"name":"Overview","visible_in_sidebar":true,"page_title":"Setu Insights overview","path":"overview","order":0},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Setu Insights quickstart","path":"quickstart","order":1,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"Setu Insights Postman integration","path":"api-integration","order":1},{"name":"Postman integration","visible_in_sidebar":true,"page_title":"Setu Insights Postman integration","path":"postman","order":0}]},{"path":"v1","children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Setu Insights API reference","path":"api-reference","order":4},{"name":"List of insights","visible_in_sidebar":true,"page_title":"All Setu insights","path":"insights","order":2},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Setu Insights notifications","path":"notifications","order":3},{"name":"Overview","visible_in_sidebar":true,"page_title":"Setu Insights overview","path":"overview","order":0},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Setu Insights quickstart","path":"quickstart","order":1,"children":[{"name":"API integration","visible_in_sidebar":true,"page_title":"Setu Insights Postman integration","path":"api-integration","order":1},{"name":"Postman integration","visible_in_sidebar":true,"page_title":"Setu Insights Postman integration","path":"postman","order":0}]}]},{"path":"v2","children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Setu Insights API reference","path":"api-reference","order":4},{"name":"List of insights","visible_in_sidebar":true,"page_title":"All Setu insights","path":"insights","order":2},{"name":"Notifications","visible_in_sidebar":true,"page_title":"Setu Insights notifications","path":"notifications","order":3},{"name":"Overview","visible_in_sidebar":true,"page_title":"Setu Insights overview","path":"overview","order":0},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Setu Insights quickstart","path":"quickstart","order":1}]}]},{"name":"ULI","path":"uli","order":6,"visible_in_sidebar":false,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"GSTIN verification API reference","path":"api-reference","order":2},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"GST Verification quickstart","path":"quickstart","order":1}]},{"name":"GST verification","path":"gst","order":6,"visible_in_sidebar":false,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"GSTIN verification API reference","path":"api-reference","order":2},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"GST Verification quickstart","path":"quickstart","order":1}]},{"name":"Match APIs","path":"match-apis","order":7,"visible_in_sidebar":false,"children":[{"name":"Name match","visible_in_sidebar":true,"page_title":"Name match APIs","path":"name-match","order":1,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"Name Match API reference","path":"api-reference","order":4},{"name":"Examples","visible_in_sidebar":true,"page_title":"Name Match API response examples","path":"examples","order":3},{"name":"Overview","visible_in_sidebar":true,"page_title":"Name Match API overview","path":"overview","order":1},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"Name Match API quickstart","path":"quickstart","order":2}]}]},{"name":"eKYC","path":"ekyc","order":8,"visible_in_sidebar":false,"children":[{"name":"API reference","visible_in_sidebar":true,"page_title":"eKYC API reference","path":"api-reference","order":2},{"name":"Quickstart","visible_in_sidebar":true,"page_title":"PAN verification quickstart","path":"quickstart","order":1}]}]},{"name":"Dev tools","path":"dev-tools","order":2,"visible_in_sidebar":true,"children":[{"name":"The Bridge","path":"bridge","order":0,"versions":["v1","v2"],"default_version":"v2","visible_in_sidebar":true,"children":[{"name":"Analytics and reports","visible_in_sidebar":true,"page_title":"Bridge analytics and reports","path":"analytics-and-reports","order":3},{"name":"Configure products","visible_in_sidebar":true,"page_title":"Bridge explore and configure products","path":"explore-and-configure-products","order":2},{"name":"Glossary","visible_in_sidebar":true,"page_title":"Bridge glossary","path":"glossary","order":1},{"name":"Overview","visible_in_sidebar":true,"page_title":"Bridge overview","path":"overview","order":0},{"name":"Settings","visible_in_sidebar":true,"page_title":"Bridge settings","path":"settings","order":4},{"name":"User profile","visible_in_sidebar":true,"page_title":"Bridge user profile","path":"user-profile","order":5},{"path":"v1","children":[{"name":"Bridge configuration","visible_in_sidebar":false,"page_title":"Bridge configuration","path":"configure","order":6},{"name":"Generate Token","visible_in_sidebar":false,"page_title":"Bridge generate token","path":"generate-token","order":4},{"name":"Org settings","visible_in_sidebar":true,"page_title":"Bridge org settings","path":"org-settings","order":3,"children":[{"name":"API keys","visible_in_sidebar":true,"page_title":"API keys","path":"api-keys","order":2,"children":[{"name":"JWT Auth","visible_in_sidebar":false,"page_title":"JWT Auth","path":"jwt-auth","order":3},{"name":"JWT","visible_in_sidebar":true,"page_title":"JWT","path":"jwt","order":1},{"name":"OAuth","visible_in_sidebar":true,"page_title":"OAuth","path":"oauth","order":2}]},{"name":"People","visible_in_sidebar":true,"page_title":"People","path":"people","order":1}]},{"name":"Overview","visible_in_sidebar":true,"page_title":"Bridge overview","path":"overview","order":0},{"name":"Reports","visible_in_sidebar":true,"page_title":"Bridge reports","path":"reports","order":1,"children":[{"name":"Types","visible_in_sidebar":false,"page_title":"Report types","path":"types","order":1}]},{"name":"Reports API","visible_in_sidebar":false,"page_title":"Reports API","path":"reports-api","order":5}]}]}]},{"name":"Sample Category","path":"sample-category","order":3,"visible_in_sidebar":false,"children":[{"name":"Sample Product","path":"sample-product","order":0,"visible_in_sidebar":false,"children":[{"name":"Sample Page","visible_in_sidebar":false,"page_title":"Docs sample page","path":"sample-page","order":0}]}]}]}
\ No newline at end of file
diff --git a/content/payments/bbps/go-live.mdx b/content/payments/bbps/go-live.mdx
index 34dfaf27..8ef308e6 100644
--- a/content/payments/bbps/go-live.mdx
+++ b/content/payments/bbps/go-live.mdx
@@ -18,7 +18,7 @@ In case you face an issue with any of the following steps, environments.
@@ -42,7 +42,7 @@ Head to the Products page, select one the required provider for Collect BBPS sec
Configuring a biller on Production is the exact same as on Sandbox. You can refer to the CSV or API integration quickstart for a detailed step-by-step guide.
@@ -55,7 +55,7 @@ This is what sets the Production apart from the Sandbox. Because Production hand
Click on the “KYC” tab to see the list of details you need to add.
diff --git a/content/payments/bbps/quickstart/api-integration.mdx b/content/payments/bbps/quickstart/api-integration.mdx
index 6587a933..4587555e 100644
--- a/content/payments/bbps/quickstart/api-integration.mdx
+++ b/content/payments/bbps/quickstart/api-integration.mdx
@@ -22,7 +22,7 @@ The primary entity on the BBPS network is called a “biller”. Go to the
@@ -55,7 +55,7 @@ And done! The biller has been created, and you can proceed to the biller dashboa
After the biller creation step, we should be on the biller profile. Here, you will see four tabs—**Dashboard**, which is an overview page, **Configuration** has all the integration details for this biller, **Transactions** where you can see test payments made to this biller, and **Copy to Production**, to copy the same config to Production later.
@@ -79,7 +79,7 @@ Begin by defining _at least_ one identifier. An app like PhonePe or GPay will as
@@ -94,7 +94,7 @@ Begin by defining _at least_ one identifier. An app like PhonePe or GPay will as
Once you enter these values, you can save it, and add another if you wish.
@@ -143,7 +143,7 @@ The `callbackURL` is for Setu to send notifications for `BILL_SETTLEMENT_STATUS`
@@ -158,7 +158,7 @@ If you require notifications along with every settlement event, then setup the `
Settlement accounts are where Setu will deposit money into after the customer has made the payment. Keep in mind that in Sandbox, these are mocked, and involve no money movement.
diff --git a/content/payments/bbps/quickstart/api-integration/fetch-pay.mdx b/content/payments/bbps/quickstart/api-integration/fetch-pay.mdx
index 8cfd02e4..05b2d208 100644
--- a/content/payments/bbps/quickstart/api-integration/fetch-pay.mdx
+++ b/content/payments/bbps/quickstart/api-integration/fetch-pay.mdx
@@ -20,7 +20,7 @@ BBPS calls Setu with customer identifier(s) details entered by a customer on a B
Setu calls the biller with the same details with the API to fetch bill ↗ for the customer, and then, shares it with BBPS.
@@ -183,7 +183,7 @@ Then, the biller can return a `400` response—
This is a multi-leg transaction between BBPS, Setu, and the biller system. As described in the diagram below, BBPS calls Setu, and Setu in turn calls the biller with fetchBillReceipt ↗
diff --git a/content/payments/bbps/quickstart/no-code-integration.mdx b/content/payments/bbps/quickstart/no-code-integration.mdx
index 703629f2..3e562f64 100644
--- a/content/payments/bbps/quickstart/no-code-integration.mdx
+++ b/content/payments/bbps/quickstart/no-code-integration.mdx
@@ -39,7 +39,7 @@ Start by signing up on The Bri
Head to the **Available products** page via the sidebar and click on one of the Collect BBPS cards under the **Payments** tab. Click on **Create a Biller** button. Make sure you select the **CSV upload** option while creating your biller.
@@ -62,7 +62,7 @@ Click the **Configuration** tab from the biller profile. Add biller details and
You can define up to 4 customer idenitifers.
@@ -79,7 +79,7 @@ You can define up to 4 customer idenitifers.
Now scroll down to the integration setup section. Here, you should see a sample CSV generated based on the customer identifiers you entered in the **Bill details** section. You may also edit the column names, should you wish to do so.
@@ -107,7 +107,7 @@ Upload progress will be shown on the right side panel. On the panel, you will al
Once the CSV upload is successful, you should be able to see the number of bills uploaded and saved in the system.
diff --git a/content/payments/bbps/resources/oauth.mdx b/content/payments/bbps/resources/oauth.mdx
index bf37f31e..5a23486d 100644
--- a/content/payments/bbps/resources/oauth.mdx
+++ b/content/payments/bbps/resources/oauth.mdx
@@ -136,7 +136,7 @@ On clicking “Generate new key”, you should see a simple form
**Add products**—Here's where you can select the product configurations that this key can access.
diff --git a/content/payments/billpay/api-integration/api-reference.mdx b/content/payments/billpay/api-integration/api-reference.mdx
index 575b37d7..584a9286 100644
--- a/content/payments/billpay/api-integration/api-reference.mdx
+++ b/content/payments/billpay/api-integration/api-reference.mdx
@@ -1,6 +1,6 @@
---
sidebar_title: API reference
page_title: COU Direct Connectivity API reference
-order: 13
+order: 8
visible_in_sidebar: true
---
diff --git a/content/payments/billpay/api-integration/harmonization_of_tat.mdx b/content/payments/billpay/api-integration/harmonization_of_tat.mdx
index 3ed7612f..64f3bb8c 100644
--- a/content/payments/billpay/api-integration/harmonization_of_tat.mdx
+++ b/content/payments/billpay/api-integration/harmonization_of_tat.mdx
@@ -1,7 +1,7 @@
---
sidebar_title: Harmonization of TAT
page_title: Harmonization Of TAT (Disputes API)
-order: 11
+order: 6
visible_in_sidebar: true
---
@@ -53,6 +53,7 @@ The `ComplaintStatus` enum has been updated with the following values:
| `DEFAULT_RESOLVED` | Dispute automatically resolved due to timeout or default process in favout of customer |
| `REFUNDED` | Refund successfully processed and completed |
| `PENDING_REFUND` | Refund approved and currently being processed |
+| `FAILED` | Dispute failed to be raised with NPCI due to technical or network errors |
#### New Response Fields
diff --git a/content/payments/billpay/api-integration/objects.mdx b/content/payments/billpay/api-integration/objects.mdx
index 260db69b..7177370a 100644
--- a/content/payments/billpay/api-integration/objects.mdx
+++ b/content/payments/billpay/api-integration/objects.mdx
@@ -1,7 +1,7 @@
---
sidebar_title: Objects
page_title: BBPS COU — Objects
-order: 14
+order: 9
visible_in_sidebar: true
---
@@ -183,6 +183,7 @@ The Payment Bill object contains information about a specific bill to be paid.
| `DEFAULT_RESOLVED` | If no action is taken by Biller/BBPOU then NPCI automatically resolves the dispute in favour of the customer. |
| `REFUNDED` | Refund successfully processed and completed in favour of the customer. |
| `PENDING_REFUND` | Refund approved and currently being processed. |
+| `FAILED` | Dispute failed to be raised with NPCI due to technical or network errors. |
## Bill Period
diff --git a/content/payments/billpay/api-integration/paying-bills.mdx b/content/payments/billpay/api-integration/paying-bills.mdx
new file mode 100644
index 00000000..3b8b7fa8
--- /dev/null
+++ b/content/payments/billpay/api-integration/paying-bills.mdx
@@ -0,0 +1,6 @@
+---
+sidebar_title: Paying Bills
+page_title: Paying Bills
+order: 4
+visible_in_sidebar: true
+---
diff --git a/content/payments/billpay/api-integration/bill-payment-options.mdx b/content/payments/billpay/api-integration/paying-bills/bill-payment-options.mdx
similarity index 97%
rename from content/payments/billpay/api-integration/bill-payment-options.mdx
rename to content/payments/billpay/api-integration/paying-bills/bill-payment-options.mdx
index 0fc8ee92..7a84d23d 100644
--- a/content/payments/billpay/api-integration/bill-payment-options.mdx
+++ b/content/payments/billpay/api-integration/paying-bills/bill-payment-options.mdx
@@ -1,7 +1,7 @@
---
sidebar_title: Paying for options
page_title: Paying for alternative options
-order: 7
+order: 4
visible_in_sidebar: true
---
@@ -182,7 +182,7 @@ Before sending your payment request, validate these requirements to avoid API re
If your biller charges CCF, compute it on the final payable amount (base or selected option amount) and include it only in `paymentDetails.custConvFee`. Never add CCF to the `paymentDetails.amount` field.
-📖 **Complete CCF implementation → Customer Convenience Fee Guide**
+📖 **Complete CCF implementation → Customer Convenience Fee Guide**
## 8. Complete Example: Smart Default in Action
@@ -216,7 +216,7 @@ Scenario: Today is 2024‑12‑31 10:00 IST. Your fetch returned a base amount o
## 10. Reference Links
-- **Master guide**: Flow 1 implementation details → Paying Bills
+- **Master guide**: Flow 1 implementation details → Paying Bills
- **API specifications**: Complete endpoint documentation → API Reference
- **Real‑time updates**: Payment status webhooks → Webhooks Integration
diff --git a/content/payments/billpay/api-integration/customer-convenience-fee.mdx b/content/payments/billpay/api-integration/paying-bills/customer-convenience-fee.mdx
similarity index 93%
rename from content/payments/billpay/api-integration/customer-convenience-fee.mdx
rename to content/payments/billpay/api-integration/paying-bills/customer-convenience-fee.mdx
index 36aa5e6f..2eb26fd6 100644
--- a/content/payments/billpay/api-integration/customer-convenience-fee.mdx
+++ b/content/payments/billpay/api-integration/paying-bills/customer-convenience-fee.mdx
@@ -1,7 +1,7 @@
---
sidebar_title: Passing CCF
page_title: Customer Convenience Fee (CCF) Integration Guide
-order: 6
+order: 3
visible_in_sidebar: true
---
@@ -139,7 +139,12 @@ Note: The values are for illustration purposes only.
### 5.1 Detection Logic
-First, identify billers that charge CCF by looking for specific entries in the `interchangeFee` array which have `feeCode: "CCF1"` and `feeDirection: "C2B"`.
+Look for `CCF1` + `C2B` entries in the `interchangeFee` array. Zero CCF has two forms, **check for both**:
+
+1. **Missing** - No `CCF1`/`C2B` entry at all → Zero CCF
+2. **Present but inactive** - Entry exists with `flatFee: 0` AND `percentFee: 0` → Zero CCF
+
+If either is true, you may omit `custConvFee` from your payment request. If a `CCF1`/`C2B` entry exists with any non-zero fee, calculate the CCF using the formula in section 5.2.
### 5.2 CCF Calculation Formula
@@ -246,8 +251,8 @@ When using payment options (alternative amounts), calculate CCF on the final sel
## 10. Reference Links
-- **Master guide**: Bill payment flows → Paying Bills
-- **Payment options**: CCF with alternative amounts → Bill Payment Options
+- **Master guide**: Bill payment flows → Paying Bills
+- **Payment options**: CCF with alternative amounts → Bill Payment Options
- **API specifications**: Complete endpoint documentation → API Reference
- **List Billers API**: Biller metadata and fee structure → List Billers
diff --git a/content/payments/billpay/api-integration/multi-bill-processing.mdx b/content/payments/billpay/api-integration/paying-bills/multi-bill-processing.mdx
similarity index 86%
rename from content/payments/billpay/api-integration/multi-bill-processing.mdx
rename to content/payments/billpay/api-integration/paying-bills/multi-bill-processing.mdx
index ab721736..d317d1e5 100644
--- a/content/payments/billpay/api-integration/multi-bill-processing.mdx
+++ b/content/payments/billpay/api-integration/paying-bills/multi-bill-processing.mdx
@@ -1,15 +1,15 @@
---
-sidebar_title: Paying for multiple bills
+sidebar_title: Paying multiple bills
page_title: Paying for multiple bills
-order: 8
+order: 5
visible_in_sidebar: true
---
# Multi-Bill Processing Integration Guide
-**This extends Flow 1 (Bill Fetch → Payment) from the master guide.** Only needed when billers return multiple bills in a single fetch (< 1% of billers).
+**This extends Flow 1 (Bill Fetch → Payment) from the master guide.** Only needed when billers return multiple bills in a single fetch (< 1% of billers).
-📖 **Start here first → Paying Bills Integration Guide**
+📖 **Start here first → Paying Bills Integration Guide**
## 1. When You Need This Guide
@@ -130,8 +130,8 @@ function renderBillSelection(fetchResponse) {
## 7. Reference Links
đź“– **Related Guides:**
-- Paying Bills Integration Guide — Master guide with Flow 1 implementation
-- Paying for alternative options — Handle payment options within bills
+- Paying Bills Integration Guide — Master guide with Flow 1 implementation
+- Paying for alternative options — Handle payment options within bills
- API Reference — Complete endpoint specifications
- Webhooks Integration — Real-time payment status updates
diff --git a/content/payments/billpay/api-integration/plan-mdm-integration.mdx b/content/payments/billpay/api-integration/paying-bills/plan-mdm-integration.mdx
similarity index 99%
rename from content/payments/billpay/api-integration/plan-mdm-integration.mdx
rename to content/payments/billpay/api-integration/paying-bills/plan-mdm-integration.mdx
index e0734a61..9a060fd5 100644
--- a/content/payments/billpay/api-integration/plan-mdm-integration.mdx
+++ b/content/payments/billpay/api-integration/paying-bills/plan-mdm-integration.mdx
@@ -1,7 +1,7 @@
---
sidebar_title: Paying for plans
page_title: Paying for plans
-order: 9
+order: 6
visible_in_sidebar: true
---
# When Users Need to Select Plans
@@ -10,7 +10,7 @@ visible_in_sidebar: true
Some services require your users to choose a plan before payment - like mobile recharge plans, DTH packages, or broadband subscriptions. This guide shows you how to handle these plan selection flows in your app.
-📖 **This extends Flow 2: Bill Validation → Payment from the master guide**
+📖 **This extends Flow 2: Bill Validation → Payment from the master guide**
**What this means for your users:**
- Instead of paying a bill amount, they choose from available plans
@@ -107,7 +107,7 @@ Check the biller metadata from Bill Validation flow
+→ Use standard Bill Validation flow
diff --git a/content/payments/billpay/api-integration/paying_bills.mdx b/content/payments/billpay/api-integration/paying-bills/quickstart.mdx
similarity index 92%
rename from content/payments/billpay/api-integration/paying_bills.mdx
rename to content/payments/billpay/api-integration/paying-bills/quickstart.mdx
index 51881343..9276db9a 100644
--- a/content/payments/billpay/api-integration/paying_bills.mdx
+++ b/content/payments/billpay/api-integration/paying-bills/quickstart.mdx
@@ -1,13 +1,13 @@
---
-sidebar_title: Paying Bills
+sidebar_title: Quickstart
page_title: BBPS Bill Payment Integration Guide
-order: 4
+order: 1
visible_in_sidebar: true
---
# Paying Bills
-**Scope**: This guide covers using Setu APIs to pay bills through the BBPS (Bharat Bill Payment System) network. For prepaid mobile recharge, refer to the separate prepaid recharge API documentation.
+**Scope**: This guide covers using Setu APIs to pay bills through the BBPS (Bharat Bill Payment System) network. For prepaid mobile recharge, refer to the separate prepaid recharge API documentation.
This guide works for both v1 and v2 APIs. Key differences:
@@ -93,7 +93,7 @@ The "remitter" is the person actually making the payment, which might be differe
Different payment methods require specific formatting—UPI needs a Virtual Payment Address, cards need numbers and authorization codes, bank transfers need IFSC and account numbers. The specialized guide covers all these NPCI-compatible formats and when to use each one.
-📖 **Complete NPCI formats and examples → Remitter Details Guide**
+📖 **Complete NPCI formats and examples → Remitter Details Guide**
### 2.3 When Billers Charge Additional Fees
@@ -101,7 +101,7 @@ Some billers charge a Customer Convenience Fee (CCF) on top of the bill amount
Most billers have zero CCF, but when it applies, you'll need to calculate the fee separately and include it in your payment request as `custConvFee`. The total amount debited from your user will be the bill amount plus the CCF.
-📖 **Complete CCF implementation → Customer Convenience Fee Guide**
+📖 **Complete CCF implementation → Customer Convenience Fee Guide**
These universal requirements form the foundation of every bill payment request, regardless of which flow you implement. Now you're ready to choose your specific flow based on the biller's `fetchApiType`—each flow builds on these universal requirements while adding its own steps for fetching bills, validating accounts, or processing direct payments.
@@ -197,7 +197,7 @@ After your fetch completes, check if your response includes a `paymentOptions` a
If you see `paymentOptions` in your fetch response, you'll need to handle amount selection and pass the user's choice in your payment request. The complete implementation guide walks through option detection, user interface patterns, time-based defaults for Early/Late payments, and request formatting.
-📖 **Complete implementation → Paying for alternative options**
+📖 **Complete implementation → Paying for alternative options**
### 3.3 When Billers Return Multiple Bills
@@ -205,7 +205,7 @@ Most billers return a single bill per fetch, but occasionally you'll encounter b
When this happens, you'll need to implement bill selection logic and modify your payment request to include the specific bills the user wants to pay. The specialized guide covers bill selection patterns, validation rules, and the enhanced request format needed for multi-bill payments.
-📖 **Complete multi-bill implementation → Multi-Bill Processing Guide**
+📖 **Complete multi-bill implementation → Multi-Bill Processing Guide**
## 4. The Bill Validation → Payment Flow
@@ -290,7 +290,7 @@ After your validation succeeds, some service providers—particularly mobile ope
Different billers follow different patterns: some expose their full plan catalog upfront, while others return personalized plan options after account validation. Your implementation will need to handle plan selection, user choice, and include the selected plan details in your payment request.
-📖 **Complete plan selection implementation → Paying for plans**
+📖 **Complete plan selection implementation → Paying for plans**
## 5. Direct Bill Payments
@@ -366,10 +366,10 @@ After initiating a payment across any flow, you'll receive responses that requir
đź“– **Essential References:**
- Complete API Documentation — Full endpoint specifications
-- Paying for alternative options — Handle multiple payment amounts
-- Plan MDM Integration — Plan-based biller patterns
-- Multi-Bill Processing Guide — Multiple bills handling
-- Remitter Details Guide — Payment format specifications
+- Paying for alternative options — Handle multiple payment amounts
+- Plan MDM Integration — Plan-based biller patterns
+- Multi-Bill Processing Guide — Multiple bills handling
+- Remitter Details Guide — Payment format specifications
- Webhooks Integration — Real-time status updates
diff --git a/content/payments/billpay/api-integration/remittance_flows_guide.mdx b/content/payments/billpay/api-integration/paying-bills/remittance_flows_guide.mdx
similarity index 98%
rename from content/payments/billpay/api-integration/remittance_flows_guide.mdx
rename to content/payments/billpay/api-integration/paying-bills/remittance_flows_guide.mdx
index 5cfce448..4c57925d 100644
--- a/content/payments/billpay/api-integration/remittance_flows_guide.mdx
+++ b/content/payments/billpay/api-integration/paying-bills/remittance_flows_guide.mdx
@@ -1,7 +1,7 @@
---
-sidebar_title: Passing Remitter Details
+sidebar_title: Remitter Details
page_title: Passing Remitter Details
-order: 5
+order: 2
visible_in_sidebar: true
---
diff --git a/content/payments/billpay/api-integration/quickstart.mdx b/content/payments/billpay/api-integration/quickstart.mdx
index 414fa36a..4959403f 100644
--- a/content/payments/billpay/api-integration/quickstart.mdx
+++ b/content/payments/billpay/api-integration/quickstart.mdx
@@ -130,7 +130,7 @@ This would include alerts on businesses that may be delisted from BBPS, or if a
### Step 3 — Start API integration
-Once you have received your API keys and agent ID for testing, you can start integrating with our APIs. Begin with the Paying Bills Integration Guide which covers the 3 core payment flows:
+Once you have received your API keys and agent ID for testing, you can start integrating with our APIs. Begin with the Paying Bills Integration Guide which covers the 3 core payment flows:
- **Bill Fetch → Payment** - For customers who want to see current bill amounts
- **Bill Validation → Payment** - For account verification before payment
diff --git a/content/payments/billpay/api-integration/upms.mdx b/content/payments/billpay/api-integration/upms.mdx
index 75250db3..97b2ff26 100644
--- a/content/payments/billpay/api-integration/upms.mdx
+++ b/content/payments/billpay/api-integration/upms.mdx
@@ -1,7 +1,7 @@
---
sidebar_title: Integrating with UPMS
page_title: BBPS COU — Integrating with UPMS
-order: 12
+order: 7
visible_in_sidebar: true
---
diff --git a/content/payments/billpay/api-integration/v2-migration.mdx b/content/payments/billpay/api-integration/v2-migration.mdx
index 3aaf592f..f2b96cac 100644
--- a/content/payments/billpay/api-integration/v2-migration.mdx
+++ b/content/payments/billpay/api-integration/v2-migration.mdx
@@ -1,7 +1,7 @@
---
sidebar_title: Migration Guide to v2
page_title: BBPS COU — Migration Guide to v2
-order: 10
+order: 5
visible_in_sidebar: true
---
diff --git a/content/payments/billpay/api-integration/webhooks.mdx b/content/payments/billpay/api-integration/webhooks.mdx
index 002eadc0..f5adbeb5 100644
--- a/content/payments/billpay/api-integration/webhooks.mdx
+++ b/content/payments/billpay/api-integration/webhooks.mdx
@@ -141,7 +141,7 @@ URL : To be provided by partner`}
"event": "BILL_PAY",
"data": {
"refId": "HENSVVR4QOS7X1UGPY7JGUV444P10102202",
- "status": "SUCCESS",
+ "status": "Success",
"billerRefId": "ABC1235",
"transactionId": "AX01122999900001",
"paymentDetails": {
@@ -169,7 +169,7 @@ URL : To be provided by partner`}
"event": "BILL_PAY",
"data": {
"refId": "HENSVVR4QOS7X1UGPY7JGUV444P10102202",
- "status": "FAILURE",
+ "status": "Failure",
"billerRefId": "ABC1235",
"transactionId": "AX01122999900001",
"failureReason": {
@@ -189,6 +189,34 @@ URL : To be provided by partner`}
+
+
+
+
+ Bill payment sample request (Credit Adjustment)
+
+
+
+ {`{
+ "event": "BILL_PAY",
+ "data": {
+ "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"
+ }
+}`}
+
+
+
+
### Dispute webhook
@@ -211,7 +239,7 @@ URL : To be provided by partner`}
"data": {
"refId": "JPMRPBOGGDTP1EFRZVXVESQVQIS10461642",
"disputeId": "OP0121046567755",
- "status": "ASSIGNED/RESOLVED/REJECTED/DEFAULT_RESOLVED/REFUNDED/PENDING_REFUND",
+ "status": "ASSIGNED/RESOLVED/REJECTED/DEFAULT_RESOLVED/REFUNDED/PENDING_REFUND/FAILED",
"assignedTo": "AX39",
"remarks": "Resolved in favour of customer"
}
@@ -755,4 +783,4 @@ URL : To be provided by partner (Skip Payment Callback URL)`}
-
\ No newline at end of file
+
diff --git a/content/payments/billpay/mcp/integration-guide.mdx b/content/payments/billpay/mcp/integration-guide.mdx
new file mode 100644
index 00000000..82f9a9f7
--- /dev/null
+++ b/content/payments/billpay/mcp/integration-guide.mdx
@@ -0,0 +1,100 @@
+---
+sidebar_title: Integration Guide
+page_title: MCP Server for Bill Payments - Integration Guide
+order: 1
+visible_in_sidebar: false
+---
+
+## Agentic Bill Payments - MCP Server - Integration guide
+
+Currently live on ChatGPT and Claude, as other LLM providers don't allow for custom connectors. All bill payments require a phone number/OTP to fetch bills.
+
+### ChatGPT
+
+Ensure you have a ChatGPT Plus or a higher upgrade account.
+
+1. **Enable Developer Mode**
+
+ - Browse over to Settings under the Profile section.
+ - Under Apps and Connectors, scroll down to Advance Settings and expand.
+ - On expanding it, you will see an option to enable Developer Mode.
+ - Once enabled, you will observe an orange highlight on your chat inputs.
+
+2. **Add the MCP**
+
+ - Once the Developer mode is enabled, go to Apps and Connectors.
+ - Click on Create at the top right.
+ - Add a name for the Setu MCP — say, Setu Bill Payments MCP.
+ - In the URL field, add https://billpay-mcp.setu.co/mcp.
+ - Under Authentication, select OAuth; check the consent box, and confirm.
+
+3. **Verify your phone number with an OTP**
+
+ - On confirming, you will be taken to a page to enter your phone number and OTP. All bill payments require a phone number to fetch bills.
+
+4. **Start Chatting!**
+
+ - You can also instruct GPT to only use the Setu Bill Payments MCP on the chat window, by clicking on the plus icon and adding the MCP to your chat.
+ - It is not mandatory to do so, but could help in some scenarios.
+
+
+**You are ready!**
+
+**_With this you are ready to now fetch your bills, pay your bills, analyse your payment history, ask your LLM agent to analyse your bills, and more._**
+
+### Claude
+
+Ensure you have at least a Claude Pro account, and installed a Claude Desktop.
+
+1. **Install Claude Desktop**
+
+ - Follow the steps on Download Claude to download the relevant desktop version for your system.
+ - Install the application by clicking continue and complete the installation successfully.
+
+2. **Adding the MCP**
+
+ - Open Claude Desktop, and under Profile, go to Settings, and click on Connectors.
+ - Click on “Custom Connector”.
+ - Enter the MCP name - Setu Bill Payments MCP, and the MCP URL https://billpay-mcp.setu.co/mcp.
+
+3. **Start Chatting!**
+
+ - You can also instruct Claude to only use the Setu Bill Payments MCP on the chat window, by clicking on the plus icon and adding the MCP to your chat.
+ - It is not mandatory to do so, but could help in some scenarios.
+
+
+**You are ready!**
+
+### Perplexity
+
+1. Install Perplexity for Mac.
+2. Go to settings on bottom left .
+3. Click connectors
+4. Follow Perplexity instruction to download and install additional package
+5. click on Add Connector
+6. Go to Advanced and paste the following:
+
+{`
+{
+ "args" : [
+ "mcp-remote",
+ "https://billpay-mcp.setu.co/mcp"
+ ],
+ "command" : "npx",
+ "env" : {
+ },
+ "useBuiltInNode" : true
+}
+`}
+
+7. On saving, you will be taken to a page to enter your phone number and OTP. All bill payments require a phone number to fetch bills.
+
+You are ready!
+
+Claude / ChatGPT and other GUI clients will always implement that OAuth redirect to remote auth service implementations so Client ID or Secret is not to be used there.
+
+### Using the MCP
+
+ℹ️ To use any “tool”, a service of the MCP, the LLM client (ChatGPT or Claude) will ask you permission to allow to access that tool of the MCP. Please select “Always Allow” for a seamless experience. Currently, all LLM clients ask this permission for the first time each tool is used.
+
+You can refer our document on the [tools enabled on the MCP server](./tools-and-prompts) and the [prompts](./tools-and-prompts#sample-prompts) you can use to use them.
\ No newline at end of file
diff --git a/content/payments/billpay/mcp/tools-and-prompts.mdx b/content/payments/billpay/mcp/tools-and-prompts.mdx
new file mode 100644
index 00000000..0aa8a08f
--- /dev/null
+++ b/content/payments/billpay/mcp/tools-and-prompts.mdx
@@ -0,0 +1,78 @@
+---
+sidebar_title: Tools and Prompts
+page_title: MCP Server for Bill Payments - Tools and Prompts
+order: 2
+visible_in_sidebar: false
+---
+
+## Agentic Bill Payments MCP Server
+
+The Agentic Bill Payments MCP exposes a set of tools that let an AI agent help you discover bills, fetch amounts, pay bills, and track transactions using natural language. Check out our integration guide on how to integrate this seamlessly.
+
+You don't need to know which tool exists. Just ask naturally. If you're building or testing agents, the mapping below shows how prompts translate to tools.
+
+## Tools
+
+| Tool name | Tool Description | Tool specific prompt |
+|-----------|------------------|---------------------|
+| List Billers | Shows which billers are supported. | "Is my electricity provider supported?" |
+| List Categories | Shows the types of bills you can pay. | "What kinds of bills can I pay here?" |
+| Get Saved Bills | Shows the bills you've already paid for once. | "Do I have any pending bills?" |
+| Fetch Bill | Fetches the latest amount due for a bill. | "How much is my Credit Card bill?" |
+| Pay Bill | Initiates payment for a bill after confirmation. | "I want to recharge my FASTag account with Rs.500." |
+| Check Payment Status | Checks whether a payment attempt was successful. | "Did my last payment go through?" |
+| Get Transaction Receipt | Provides a receipt for a completed payment. | "Show me the receipt for my last payment." |
+| List Payment History | Shows your past bill payments. | "Show all my bill payments from last 3 months." |
+
+## Sample Prompts
+
+You can use these prompts directly, and the Agent will know which tool to invoke. For the first time, you might have to allow the Agent to call the tool. These prompts automatically trigger multiple actions behind the scenes.
+
+### Bill Payments
+
+Use these to fetch bills, make payments, and track transaction status quickly and securely.
+
+**Examples:**
+
+- "Can I pay my electricity bill/broadband bill here?"
+- "What kinds of bills can I pay here?"
+- "Do I have any bills due?"
+- "Pay my electricity bill."
+- "I live in Chennai. I want to pay my electricity bill"
+- "Did I pay my Credit Card bill this month? Share payment details"
+
+You can also upload the image of your physical bill or screenshots of your bills from your payments app and watch the Agent fetch your outstanding bills!
+
+### Analysis and Insights
+
+Use these to understand why your bills look the way they do, and generate customised insights for you.
+
+**Examples:**
+
+- "Show me all the bills I usually pay."
+- "Why was my electricity bill higher this summer?"
+- "Summarise my bill payments from last month."
+- "Show a breakdown of my bill spends by category."
+- "Which bills do I spend the most on?"
+
+### Proactive & Preventive Prompts
+
+Use these to stay ahead of bills before they become urgent.
+
+**Examples:**
+
+- "Do I have any bills due in the next 7 days?"
+- "Which bills usually come up around this time of the month?"
+
+### Planning & Control Prompts
+
+Use these to plan and budget.
+
+**Examples:**
+
+- "How much should I budget for bills every month?"
+- "Which of my bills are fixed and which vary?"
+
+
+đź“„ Read more about how we came up with this MCP server here!
+
\ No newline at end of file
diff --git a/content/payments/billpay/mobile-prepaid-recharge/webhooks.mdx b/content/payments/billpay/mobile-prepaid-recharge/webhooks.mdx
new file mode 100644
index 00000000..ecea2dc4
--- /dev/null
+++ b/content/payments/billpay/mobile-prepaid-recharge/webhooks.mdx
@@ -0,0 +1,341 @@
+---
+sidebar_title: Webhooks
+page_title: Mobile Prepaid Recharge Webhooks
+order: 3
+visible_in_sidebar: true
+---
+
+## Webhooks/Notifications
+
+This document describes the webhooks that are sent **to your configured webhook URL** when various events occur in the recharge system.
+
+
+ This feature is opt-in and is configured only when a partner requests for it to be enabled. These webhooks enable real-time notifications for recharge transactions, wallet events, and status updates.
+
+
+
+
+
+
+### Pre-requisites
+You need to do the following to configure a Setu provided webhook—
+
+- Share the webhook URL. A URL that can accept `JSON` data over `POST`.
+- Take steps to handle the notification
+
+### Configuration
+
+To configure webhooks, share your webhook URL with Setu via email to support@setu.co.
+
+
+
+
+## Webhook Endpoints
+
+The system appends specific routes to your base `webhook_url` based on the event type:
+
+### 1. Payment Status Webhook
+
+**Endpoint**: `{webhook_url}/payment/status`
+
+**Description**: Sent when a recharge transaction status is updated (successful, failed, or processing).
+
+**Request Body**:
+
+{`{
+ "transactionRefId": "string",
+ "trace_id": "string",
+ "operatorRefId": "string",
+ "status": "Successful | Processing | Failure",
+ "amount": "string",
+ "mobile_number": "string",
+ "provider": "string",
+ "failureReason": "string (optional, only present for failures)",
+ "timestamp": "ISO 8601 datetime string"
+}`}
+
+**Field Descriptions**:
+
+| Field | Type | Description | Mandatory? |
+|-------|------|-------------|------------|
+| `transactionRefId` | string | Transaction reference ID from the original recharge request | Yes |
+| `trace_id` | string | System reference number (internal trace ID) | Yes |
+| `operatorRefId` | string | Operator transaction ID (if available) | No |
+| `status` | string | Transaction status - one of: `"Successful"`, `"Processing"`, `"Failure"` | Yes |
+| `amount` | string | Recharge amount (in rupees) | Yes |
+| `mobile_number` | string | Mobile number that was recharged | Yes |
+| `provider` | string | Service provider name | Yes |
+| `failureReason` | string | Reason for failure (only present when status is "Failure") | No |
+| `timestamp` | string | ISO 8601 formatted timestamp of the event | Yes |
+
+
+
+
+
+ Payment status webhook example (Success)
+
+
+
+ {`{
+ "transactionRefId": "TXN123456789",
+ "trace_id": "SYS-ABC-123",
+ "operatorRefId": "OP-987654321",
+ "status": "Successful",
+ "amount": "99.00",
+ "mobile_number": "9876543210",
+ "provider": "Airtel",
+ "timestamp": "2025-11-13T10:30:00Z"
+}`}
+
+
+
+
+
+
+
+
+ Payment status webhook example (Failure)
+
+
+
+ {`{
+ "transactionRefId": "TXN123456790",
+ "trace_id": "SYS-ABC-124",
+ "status": "Failure",
+ "amount": "99.00",
+ "mobile_number": "9876543210",
+ "provider": "Airtel",
+ "failureReason": "Insufficient balance",
+ "timestamp": "2025-11-13T10:31:00Z"
+}`}
+
+
+
+
+
+
+### 2. Payment Reversal Webhook
+
+**Endpoint**: `{webhook_url}/payment/reversal`
+
+**Description**: Sent when a recharge transaction is reversed by the operator.
+
+**Request Body**:
+
+{`{
+ "transactionRefId": "string",
+ "trace_id": "string",
+ "operatorRefId": "string (optional)",
+ "status": "REVERSED",
+ "amount": "string",
+ "mobile_number": "string",
+ "provider": "string",
+ "failureReason": "string (optional)",
+ "timestamp": "ISO 8601 datetime string"
+}`}
+
+**Field Descriptions**:
+
+- Same fields as Payment Status Webhook, but `status` will always be `"REVERSED"`
+- `failureReason`: May contain reason for reversal if provided by operator
+
+| Field | Type | Description | Mandatory? |
+|-------|------|-------------|------------|
+| `transactionRefId` | string | Transaction reference ID from the original recharge request | Yes |
+| `trace_id` | string | System reference number (internal trace ID) | Yes |
+| `operatorRefId` | string | Operator transaction ID (if available) | No |
+| `status` | string | Transaction status - `"REVERSED"` | Yes |
+| `amount` | string | Recharge amount (in rupees) | Yes |
+| `mobile_number` | string | Mobile number that was recharged | Yes |
+| `provider` | string | Service provider name | Yes |
+| `failureReason` | string | Reason for reversal (if provided by operator) | No |
+| `timestamp` | string | ISO 8601 formatted timestamp of the event | Yes |
+
+
+
+
+
+ Payment reversal webhook example
+
+
+
+ {`{
+ "transactionRefId": "TXN123456789",
+ "trace_id": "SYS-ABC-123",
+ "operatorRefId": "OP-987654321",
+ "status": "REVERSED",
+ "amount": "99.00",
+ "mobile_number": "9876543210",
+ "provider": "Airtel",
+ "failureReason": "Transaction reversed by operator",
+ "timestamp": "2025-11-13T10:35:00Z"
+}`}
+
+
+
+
+
+
+### 3. Wallet Low Balance Webhook
+
+**Endpoint**: `{webhook_url}/wallet/low_balance`
+
+**Description**: Sent when the wallet balance falls below the configured threshold or when a low balance alert is received from the vendor.
+
+**Request Body**:
+
+{`{
+ "event": "wallet.low_balance",
+ "balance": "string",
+ "message": "string",
+ "timestamp": "ISO 8601 datetime string",
+ "traceId": "string"
+}`}
+
+**Field Descriptions**:
+
+| Field | Type | Description | Mandatory? |
+|-------|------|-------------|------------|
+| `event` | string | Always `"wallet.low_balance"` for this webhook type | Yes |
+| `balance` | string | Current wallet balance amount (in rupees) | Yes |
+| `message` | string | Alert message (typically "Low balance Alert") | Yes |
+| `timestamp` | string | ISO 8601 formatted timestamp (UTC) | Yes |
+| `traceId` | string | Unique trace ID for this notification | Yes |
+
+
+
+
+
+ Wallet low balance webhook example
+
+
+
+ {`{
+ "event": "wallet.low_balance",
+ "balance": "2450.00",
+ "message": "Low balance Alert",
+ "timestamp": "2025-11-13T09:15:00Z",
+ "traceId": "low-balance-webhook-demo-instance-a1b2c3d4"
+}`}
+
+
+
+
+
+
+### 4. Wallet Topup Webhook
+
+**Endpoint**: `{webhook_url}/wallet/top_up`
+
+**Description**: Sent when a wallet top-up is detected or when a top-up notification is received from the vendor.
+
+**Request Body**:
+
+{`{
+ "event": "wallet.credit",
+ "amount": "string",
+ "referenceNumber": "string",
+ "creditedFrom": "string",
+ "transactionDate": "ISO 8601 datetime string",
+ "message": "string",
+ "traceId": "string",
+ "currentBalance": "string"
+}`}
+
+**Field Descriptions**:
+
+| Field | Type | Description | Mandatory? |
+|-------|------|-------------|------------|
+| `event` | string | Always `"wallet.credit"` for this webhook type | Yes |
+| `amount` | string | Top-up amount credited to wallet (in rupees) | Yes |
+| `referenceNumber` | string | User reference number for the top-up transaction (may be empty string) | No |
+| `creditedFrom` | string | Source of the credit (e.g., "Bank Transfer", may be empty string) | No |
+| `transactionDate` | string | ISO 8601 formatted timestamp of the transaction | Yes |
+| `message` | string | Transaction message (defaults to "Credit Successful" if not provided) | No |
+| `traceId` | string | Unique trace ID for this notification | Yes |
+| `currentBalance` | string | Current wallet balance after the top-up (in rupees) | Yes |
+
+
+
+
+
+ Wallet topup webhook example
+
+
+
+ {`{
+ "event": "wallet.credit",
+ "amount": "5000.00",
+ "referenceNumber": "TXN-9090",
+ "creditedFrom": "Bank Transfer",
+ "transactionDate": "2025-11-13T09:45:00Z",
+ "message": "Wallet topped up successfully",
+ "traceId": "topup-webhook-demo-instance-e5f6g7h8",
+ "currentBalance": "12450.00"
+}`}
+
+
+
+
+
+
+## Webhook Response
+
+Your webhook endpoint should respond with:
+
+- **HTTP Status Code**: `200-299` for successful receipt
+- **Response Body**: Any valid JSON (will be logged but not processed)
+
+**Example Response**:
+
+{`{
+ "received": true,
+ "message": "Webhook processed successfully"
+}`}
+
+If your endpoint returns a non-2xx status code or times out, the system will automatically retry according to the retry policy for that webhook type (see [Retry Mechanism](#retry-mechanism) section).
+
+
+ Ensure your webhook endpoint is idempotent and can handle duplicate notifications, as retries may result in the same notification being sent multiple times.
+
+
+
+
+### Retry Mechanism
+
+The system implements automatic retry mechanisms for webhook delivery with different policies based on webhook type:
+
+#### Payment Webhooks (Transaction Status & Reversal)
+
+- **Maximum Retries**: 5 attempts
+- **Initial Retry Interval**: 2 seconds
+- **Maximum Retry Interval**: 2 minutes
+- **Backoff Strategy**: Exponential backoff with coefficient of 2.0
+- **Retry Triggers**:
+ - Non-2xx HTTP status codes
+ - Network timeouts
+ - Connection errors
+
+#### Wallet Webhooks (Low Balance & Topup)
+
+- **Maximum Retries**: 3 attempts
+- **Initial Retry Interval**: 5 seconds
+- **Maximum Retry Interval**: 1 minute
+- **Backoff Strategy**: Exponential backoff with coefficient of 2.0
+- **Retry Triggers**:
+ - Non-2xx HTTP status codes
+ - Network timeouts
+ - Connection errors
+
+**Retry Timeline Example (Payment Webhooks)**:
+
+- Attempt 1: Immediate
+- Attempt 2: After 2 seconds
+- Attempt 3: After 4 seconds (2 Ă— 2)
+- Attempt 4: After 8 seconds (4 Ă— 2)
+- Attempt 5: After 16 seconds (8 Ă— 2)
+- Attempt 6: After 32 seconds (16 Ă— 2, capped at 2 minutes max)
+
+After all retries are exhausted, the webhook status is marked as "FAILED" in the system.
+
+
diff --git a/content/payments/billpay/pre-built-screens/custom-payment.mdx b/content/payments/billpay/pre-built-screens/custom-payment.mdx
index 50a50a12..5503c034 100644
--- a/content/payments/billpay/pre-built-screens/custom-payment.mdx
+++ b/content/payments/billpay/pre-built-screens/custom-payment.mdx
@@ -26,7 +26,7 @@ Setu’s pre-built screens solution supports UPI payments by default. However, y
diff --git a/content/payments/billpay/pre-built-screens/custom-payment/website.mdx b/content/payments/billpay/pre-built-screens/custom-payment/website.mdx
index c2b76d5f..abd01f91 100644
--- a/content/payments/billpay/pre-built-screens/custom-payment/website.mdx
+++ b/content/payments/billpay/pre-built-screens/custom-payment/website.mdx
@@ -28,7 +28,7 @@ The following steps describe a typical payment scenario—
6. You redirect the user back to the post payment URL, depending on success or failure of payment.
diff --git a/content/payments/billpay/pre-built-screens/webhooks.mdx b/content/payments/billpay/pre-built-screens/webhooks.mdx
index 3418eb9c..ae7ca0c9 100644
--- a/content/payments/billpay/pre-built-screens/webhooks.mdx
+++ b/content/payments/billpay/pre-built-screens/webhooks.mdx
@@ -285,12 +285,11 @@ Below are the parameter tables and sample payloads for the listed events. Note t
{`{
"mobileNumber": "9481773053",
"status": "FETCH_FAILURE",
- "billId": "",
"billerId": "MAHI00000NATIC",
"billerName": "Mahindra Rural Housing Finance Ltd",
"billerCategory": "Loan-Repayment",
"sessionId": "1272707270496486911",
- "customerId": "cust@1234" // if available
+ "customerId": "cust@1234", // if available
"event": "bill_fetch_failure",
"refId": "CMA0I65RCU2I32C3L0H0KNYQYAG40021831",
"fetchErrorCode": "ERR001",
@@ -323,18 +322,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
FETCH_FAILURE
-
- | billId |
- String |
-
- Unique identifier for the bill. It is generated by the
- biller. Also called as billNumber. Not applicable where
- there is no bill.
- |
-
- 69a1fbc0-b5d1-4cbf-ac6d-c4244e3e7e0c
- |
-
| billerId |
String |
@@ -663,13 +650,16 @@ Below are the parameter tables and sample payloads for the listed events. Note t
"billerName": "Mahindra Rural Housing Finance Ltd",
"billerCategory": "Loan-Repayment",
"sessionId": "1272707270496486911",
- "customerId": "cust@1234" // if available
+ "customerId": "cust@1234", // if available
"orderId": "Q00ABCDEFGHZOQ",
- "billAmount": "105.0",
- "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"
+ }
}`}
@@ -774,22 +764,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
Q00ABCDEFGHZOQ
-
- | billAmount |
- String (Number) |
- Amount of the bill in rupees (INR) |
-
- 101.55
- |
-
-
- | dueDate |
- String (Date) |
- Due date of the bill. Format is YYYY-MM-DD. |
-
- 2023-05-02
- |
-
| amountPaid |
String (Number) |
@@ -817,6 +791,12 @@ Below are the parameter tables and sample payloads for the listed events. Note t
CMA0I65RCU2I32C3L0H0KNYQYAG40021831
+
+ | 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"] |
+
@@ -833,19 +813,14 @@ Below are the parameter tables and sample payloads for the listed events. Note t
{`{
- "txnId": null,
"mobileNumber": "9481773053",
"status": "COLLECTION_FAILURE",
- "billId": "dfeeaf14-e43a-4196-90d0-41089e979ad5",
"billerId": "MAHI00000NATIC",
"billerName": "Mahindra Rural Housing Finance Ltd",
"billerCategory": "Loan-Repayment",
- "billAmount": "105.0",
- "dueDate": "2021-05-23", // if available
"sessionId": "1272707270496486911",
- "customerId": "cust@1234" // if available
+ "customerId": "cust@1234", // if available
"amountPaid": 601.0,
- "amount": null,
"event": "bill_collection_failure",
"refId": "CMA0I65RCU2I32C3L0H0KNYQYAG40021831"
}`}
@@ -857,18 +832,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
Description |
Example |
-
- | txnId |
- |
-
- Unique identifier for the transaction generated by COU. Not
- generated here because Setu does not post the bill-payment
- request to BBPS.
- |
-
- null
- |
-
| mobileNumber |
String (Number) |
@@ -885,18 +848,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
COLLECTION_FAILURE
-
- | billId |
- String |
-
- Unique identifier for the bill. It is generated by the
- biller. Also called as billNumber. Not applicable where
- there is no bill.
- |
-
- dfeeaf14-e43a-4196-90d0-41089e979ad5
- |
-
| billerId |
String |
@@ -927,22 +878,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
Loan-Repayment
-
- | billAmount |
- String (Number) |
- Amount of the bill in rupees (INR) |
-
- 101.55
- |
-
-
- | dueDate |
- String (Date) |
- Due date of the bill. Format is YYYY-MM-DD. |
-
- 2023-05-02
- |
-
| sessionId |
String |
@@ -954,7 +889,7 @@ Below are the parameter tables and sample payloads for the listed events. Note t
| customerId |
String |
- Unique identifier for the customerId used for this session |
+ Unique identifier for the customerId used for this session (if available) |
cust@1234
|
@@ -971,14 +906,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
601.75
-
- | amount |
- |
- |
-
- null
- |
-
| event |
String |
@@ -1016,14 +943,11 @@ Below are the parameter tables and sample payloads for the listed events. Note t
"txnId": "AXO101557980",
"mobileNumber": "9481773053",
"status": "PAYMENT_REFUNDED",
- "billId": "dfeeaf14-e43a-4196-90d0-41089e979ad5",
"billerId": "MAHI00000NATIC",
"billerName": "Mahindra Rural Housing Finance Ltd",
"billerCategory": "Loan-Repayment",
"sessionId": "1272707270496486911",
- "customerId": "cust@1234" // if available
- "billAmount": "105.0",
- "dueDate": "2021-05-23", // if available
+ "customerId": "cust@1234", // if available
"orderId": "H001234566666",
"amountPaid": "601.00",
"event": "bill_payment_refunded",
@@ -1061,17 +985,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
PAYMENT_REFUNDED
-
- | billId |
- String |
-
- Unique identifier for the bill. It is generated by the
- biller. Also called as billNumber
- |
-
- dfeeaf14-e43a-4196-90d0-41089e979ad5
- |
-
| billerId |
String |
@@ -1113,27 +1026,11 @@ Below are the parameter tables and sample payloads for the listed events. Note t
| customerId |
String |
- Unique identifier for the customerId used for this session |
+ Unique identifier for the customerId used for this session (if available) |
cust@1234
|
-
- | billAmount |
- String (Number) |
- Amount of the bill in rupees (INR) |
-
- 601.75
- |
-
-
- | dueDate |
- String (Date) |
- Due date of the bill. Format is YYYY-MM-DD. |
-
- 2023-05-02
- |
-
| orderId |
String |
diff --git a/content/payments/billpay/v1/api-integration/deprecated/polling.mdx b/content/payments/billpay/v1/api-integration/deprecated/polling.mdx
index a536c278..14b08283 100644
--- a/content/payments/billpay/v1/api-integration/deprecated/polling.mdx
+++ b/content/payments/billpay/v1/api-integration/deprecated/polling.mdx
@@ -39,7 +39,7 @@ These APIs are mandatory to consume, and asynchronous and dependent on each othe
-
+
diff --git a/content/payments/billpay/v1/pre-built-screens/custom-payment.mdx b/content/payments/billpay/v1/pre-built-screens/custom-payment.mdx
index 50a50a12..5503c034 100644
--- a/content/payments/billpay/v1/pre-built-screens/custom-payment.mdx
+++ b/content/payments/billpay/v1/pre-built-screens/custom-payment.mdx
@@ -26,7 +26,7 @@ Setu’s pre-built screens solution supports UPI payments by default. However, y
diff --git a/content/payments/billpay/v1/pre-built-screens/custom-payment/website.mdx b/content/payments/billpay/v1/pre-built-screens/custom-payment/website.mdx
index c2b76d5f..abd01f91 100644
--- a/content/payments/billpay/v1/pre-built-screens/custom-payment/website.mdx
+++ b/content/payments/billpay/v1/pre-built-screens/custom-payment/website.mdx
@@ -28,7 +28,7 @@ The following steps describe a typical payment scenario—
6. You redirect the user back to the post payment URL, depending on success or failure of payment.
diff --git a/content/payments/billpay/v1/pre-built-screens/webhooks.mdx b/content/payments/billpay/v1/pre-built-screens/webhooks.mdx
index 3fe83353..a0ce5cc8 100644
--- a/content/payments/billpay/v1/pre-built-screens/webhooks.mdx
+++ b/content/payments/billpay/v1/pre-built-screens/webhooks.mdx
@@ -255,12 +255,11 @@ Below are the parameter tables and sample payloads for the listed events. Note t
{`{
"mobileNumber": "9481773053",
"status": "FETCH_FAILURE",
- "billId": "",
"billerId": "MAHI00000NATIC",
"billerName": "Mahindra Rural Housing Finance Ltd",
"billerCategory": "Loan-Repayment",
"sessionId": "1272707270496486911",
- "customerId": "cust@1234" // if available
+ "customerId": "cust@1234", // if available
"event": "bill_fetch_failure",
"refId": "CMA0I65RCU2I32C3L0H0KNYQYAG40021831",
"fetchErrorCode": "ERR001",
@@ -293,17 +292,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
FETCH_FAILURE
-
- | billId |
- String |
-
- Unique identifier for the bill. It is generated by the biller. Also
- called as billNumber. Not applicable where there is no bill.
- |
-
- 69a1fbc0-b5d1-4cbf-ac6d-c4244e3e7e0c
- |
-
| billerId |
String |
@@ -598,10 +586,8 @@ Below are the parameter tables and sample payloads for the listed events. Note t
"billerName": "Mahindra Rural Housing Finance Ltd",
"billerCategory": "Loan-Repayment",
"sessionId": "1272707270496486911",
- "customerId": "cust@1234" // if available
+ "customerId": "cust@1234", // if available
"orderId": "Q00ABCDEFGHZOQ",
- "billAmount": "105.0",
- "dueDate": "2021-05-23", // if available
"amountPaid": "601.00",
"event": "bill_payment_failure",
"refId": "CMA0I65RCU2I32C3L0H0KNYQYAG40021831"
@@ -703,22 +689,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
Q00ABCDEFGHZOQ
-
- | billAmount |
- String (Number) |
- Amount of the bill in rupees (INR) |
-
- 101.55
- |
-
-
- | dueDate |
- String (Date) |
- Due date of the bill. Format is YYYY-MM-DD. |
-
- 2023-05-02
- |
-
| amountPaid |
String (Number) |
@@ -762,19 +732,14 @@ Below are the parameter tables and sample payloads for the listed events. Note t
{`{
- "txnId": null,
"mobileNumber": "9481773053",
"status": "COLLECTION_FAILURE",
- "billId": "dfeeaf14-e43a-4196-90d0-41089e979ad5",
"billerId": "MAHI00000NATIC",
"billerName": "Mahindra Rural Housing Finance Ltd",
"billerCategory": "Loan-Repayment",
- "billAmount": "105.0",
- "dueDate": "2021-05-23", // if available
"sessionId": "1272707270496486911",
- "customerId": "cust@1234" // if available
+ "customerId": "cust@1234", // if available
"amountPaid": 601.0,
- "amount": null,
"event": "bill_collection_failure",
"refId": "CMA0I65RCU2I32C3L0H0KNYQYAG40021831"
}`}
@@ -786,17 +751,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
Description |
Example |
-
- | txnId |
- |
-
- Unique identifier for the transaction generated by COU. Not generated
- here because Setu does not post the bill-payment request to BBPS.
- |
-
- null
- |
-
| mobileNumber |
String (Number) |
@@ -813,17 +767,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
COLLECTION_FAILURE
-
- | billId |
- String |
-
- Unique identifier for the bill. It is generated by the biller. Also
- called as billNumber. Not applicable where there is no bill.
- |
-
- dfeeaf14-e43a-4196-90d0-41089e979ad5
- |
-
| billerId |
String |
@@ -851,22 +794,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
Loan-Repayment
-
- | billAmount |
- String (Number) |
- Amount of the bill in rupees (INR) |
-
- 101.55
- |
-
-
- | dueDate |
- String (Date) |
- Due date of the bill. Format is YYYY-MM-DD. |
-
- 2023-05-02
- |
-
| sessionId |
String |
@@ -878,7 +805,7 @@ Below are the parameter tables and sample payloads for the listed events. Note t
| customerId |
String |
- Unique identifier for the customerId used for this session |
+ Unique identifier for the customerId used for this session (if available) |
cust@1234
|
@@ -895,14 +822,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
601.75
-
- | amount |
- |
- |
-
- null
- |
-
| event |
String |
@@ -939,14 +858,11 @@ Below are the parameter tables and sample payloads for the listed events. Note t
"txnId": "AXO101557980",
"mobileNumber": "9481773053",
"status": "PAYMENT_REFUNDED",
- "billId": "dfeeaf14-e43a-4196-90d0-41089e979ad5",
"billerId": "MAHI00000NATIC",
"billerName": "Mahindra Rural Housing Finance Ltd",
"billerCategory": "Loan-Repayment",
"sessionId": "1272707270496486911",
- "customerId": "cust@1234" // if available
- "billAmount": "105.0",
- "dueDate": "2021-05-23", // if available
+ "customerId": "cust@1234", // if available
"orderId": "H001234566666",
"amountPaid": "601.00",
"event": "bill_payment_refunded",
@@ -984,17 +900,6 @@ Below are the parameter tables and sample payloads for the listed events. Note t
PAYMENT_REFUNDED
-
- | billId |
- String |
-
- Unique identifier for the bill. It is generated by the biller. Also
- called as billNumber
- |
-
- dfeeaf14-e43a-4196-90d0-41089e979ad5
- |
-
| billerId |
String |
@@ -1033,27 +938,11 @@ Below are the parameter tables and sample payloads for the listed events. Note t
| customerId |
String |
- Unique identifier for the customerId used for this session |
+ Unique identifier for the customerId used for this session (if available) |
cust@1234
|
-
- | billAmount |
- String (Number) |
- Amount of the bill in rupees (INR) |
-
- 601.75
- |
-
-
- | dueDate |
- String (Date) |
- Due date of the bill. Format is YYYY-MM-DD. |
-
- 2023-05-02
- |
-
| orderId |
String |
diff --git a/content/payments/umap/mandates.mdx b/content/payments/umap/mandates.mdx
index 181ad8fa..e41abc1a 100644
--- a/content/payments/umap/mandates.mdx
+++ b/content/payments/umap/mandates.mdx
@@ -24,7 +24,7 @@ Choose one or more of our products under the UPI Setu mandates stack to—
### Key features
diff --git a/content/payments/umap/mandates/generic/pause.mdx b/content/payments/umap/mandates/generic/pause.mdx
index d8bc15f3..fe4984fc 100644
--- a/content/payments/umap/mandates/generic/pause.mdx
+++ b/content/payments/umap/mandates/generic/pause.mdx
@@ -45,7 +45,7 @@ Read more about
The notifications are depicted in the below diagram—
diff --git a/content/payments/umap/mandates/generic/revoke.mdx b/content/payments/umap/mandates/generic/revoke.mdx
index ba5cbe40..8f9dec14 100644
--- a/content/payments/umap/mandates/generic/revoke.mdx
+++ b/content/payments/umap/mandates/generic/revoke.mdx
@@ -31,7 +31,7 @@ The process for revoking a mandate initiated from the
customer's UPI app is described in the below diagram
@@ -88,7 +88,7 @@ The process for revoking a mandate by the merchant is
described in the below diagram
The merchant or aggregator will have to call the
diff --git a/content/payments/umap/mandates/generic/unpause.mdx b/content/payments/umap/mandates/generic/unpause.mdx
index 335e0ef2..bd5bb4b7 100644
--- a/content/payments/umap/mandates/generic/unpause.mdx
+++ b/content/payments/umap/mandates/generic/unpause.mdx
@@ -47,7 +47,7 @@ Only the end customer has the option of unpausing a paused UPI mandate from thei
The notifications are depicted in the below diagram
diff --git a/content/payments/umap/mandates/generic/update.mdx b/content/payments/umap/mandates/generic/update.mdx
index d619d2de..cb0703c4 100644
--- a/content/payments/umap/mandates/generic/update.mdx
+++ b/content/payments/umap/mandates/generic/update.mdx
@@ -36,7 +36,7 @@ There are only two updates possible on a UPI mandate
The process for updating an intent based mandate is described in the
below diagram
The merchant will have to call the{" "}
@@ -174,7 +174,7 @@ There are only two updates possible on a UPI mandate
The process for updating a collect based mandate is described in the
below diagram
The merchant will have to call the{" "}
diff --git a/content/payments/umap/mandates/one-shot/create.mdx b/content/payments/umap/mandates/one-shot/create.mdx
index 4405eee4..ffcc57aa 100644
--- a/content/payments/umap/mandates/one-shot/create.mdx
+++ b/content/payments/umap/mandates/one-shot/create.mdx
@@ -20,7 +20,7 @@ There are two ways to create a one time mandate—**Intent based** and **Collect
The process for mandate creation is described in the below diagram:
@@ -254,7 +254,7 @@ There are two ways to create a one time mandate—**Intent based** and **Collect
The process for mandate creation is described in the below diagram:
diff --git a/content/payments/umap/mandates/one-shot/pre-debit-notify.mdx b/content/payments/umap/mandates/one-shot/pre-debit-notify.mdx
index dac33682..b7bb503b 100644
--- a/content/payments/umap/mandates/one-shot/pre-debit-notify.mdx
+++ b/content/payments/umap/mandates/one-shot/pre-debit-notify.mdx
@@ -28,7 +28,7 @@ Once the mandate is **LIVE** the merchant needs to send a pre debit notification
The process for mandate pre debit notification is described in the below diagram:
diff --git a/content/payments/umap/mandates/recur/create.mdx b/content/payments/umap/mandates/recur/create.mdx
index 34633c95..0c920723 100644
--- a/content/payments/umap/mandates/recur/create.mdx
+++ b/content/payments/umap/mandates/recur/create.mdx
@@ -20,7 +20,7 @@ There are 2 ways to create a recurring mandate: **Intent based**, **Collect base
The process for mandate creation is described in the below diagram:
@@ -228,7 +228,7 @@ There are 2 ways to create a recurring mandate: **Intent based**, **Collect base
1-7 |
|
@@ -238,7 +238,7 @@ There are 2 ways to create a recurring mandate: **Intent based**, **Collect base
1-16 |
|
@@ -251,7 +251,7 @@ There are 2 ways to create a recurring mandate: **Intent based**, **Collect base
1-31 |
|
@@ -374,7 +374,7 @@ There are 2 ways to create a recurring mandate: **Intent based**, **Collect base
The process for mandate creation is described in the below diagram:
@@ -578,7 +578,7 @@ There are 2 ways to create a recurring mandate: **Intent based**, **Collect base
1-7 |
|
@@ -588,7 +588,7 @@ There are 2 ways to create a recurring mandate: **Intent based**, **Collect base
1-16 |
|
@@ -601,7 +601,7 @@ There are 2 ways to create a recurring mandate: **Intent based**, **Collect base
1-31 |
|
diff --git a/content/payments/umap/mandates/recur/pre-debit-notify.mdx b/content/payments/umap/mandates/recur/pre-debit-notify.mdx
index cb045cb8..ffc9abc6 100644
--- a/content/payments/umap/mandates/recur/pre-debit-notify.mdx
+++ b/content/payments/umap/mandates/recur/pre-debit-notify.mdx
@@ -27,7 +27,7 @@ Once the mandate is **LIVE** the merchant needs to send a pre debit notification
The process for mandate pre debit notification is described in the below diagram:
diff --git a/content/payments/umap/mandates/reserve-plus/create.mdx b/content/payments/umap/mandates/reserve-plus/create.mdx
index c446a1f8..f0c06464 100644
--- a/content/payments/umap/mandates/reserve-plus/create.mdx
+++ b/content/payments/umap/mandates/reserve-plus/create.mdx
@@ -243,7 +243,7 @@ visible_in_sidebar: true
The process for mandate creation is described in the below diagram
diff --git a/content/payments/umap/mandates/reserve.mdx b/content/payments/umap/mandates/reserve.mdx
index b61de5c1..1365c9a8 100644
--- a/content/payments/umap/mandates/reserve.mdx
+++ b/content/payments/umap/mandates/reserve.mdx
@@ -29,7 +29,7 @@ MCC 6211 - Capital Markets & Securities Brokers merchants can block upto ₹5 la
diff --git a/content/payments/umap/mandates/reserve/create.mdx b/content/payments/umap/mandates/reserve/create.mdx
index f47a7cbd..c3b42e98 100644
--- a/content/payments/umap/mandates/reserve/create.mdx
+++ b/content/payments/umap/mandates/reserve/create.mdx
@@ -20,7 +20,7 @@ There are two ways to create a Reserve mandate—**Intent based** and **Collect
The process for mandate creation is described in the below diagram:
@@ -254,7 +254,7 @@ There are two ways to create a Reserve mandate—**Intent based** and **Collect
The process for mandate creation is described in the below diagram:
diff --git a/content/payments/umap/notifications/mandates.mdx b/content/payments/umap/notifications/mandates.mdx
index ac904370..805f6e6c 100644
--- a/content/payments/umap/notifications/mandates.mdx
+++ b/content/payments/umap/notifications/mandates.mdx
@@ -23,7 +23,7 @@ Below is a list mandate statuses that are uniform across all types of mandates.
Here is the expected life-cycle of a mandate—
diff --git a/content/payments/umap/notifications/mandates/create.mdx b/content/payments/umap/notifications/mandates/create.mdx
index 5e58c35d..b3194df4 100644
--- a/content/payments/umap/notifications/mandates/create.mdx
+++ b/content/payments/umap/notifications/mandates/create.mdx
@@ -10,7 +10,7 @@ visible_in_sidebar: true
The first step to start utilising mandates is to create a mandate. Here is a quick view of how the status moves from `mandate.initiated` to `mandate.live` or `mandate.rejected`—
diff --git a/content/payments/umap/notifications/mandates/pause.mdx b/content/payments/umap/notifications/mandates/pause.mdx
index c6592eb4..f90830ae 100644
--- a/content/payments/umap/notifications/mandates/pause.mdx
+++ b/content/payments/umap/notifications/mandates/pause.mdx
@@ -19,7 +19,7 @@ visible_in_sidebar: true
These are the available webhooks for merchants, when their customers attempt to pause their mandate (which can be a temporary action). Here is a quick view of how the status moves from `mandate.live` to `mandate.paused`—
diff --git a/content/payments/umap/notifications/mandates/revoke.mdx b/content/payments/umap/notifications/mandates/revoke.mdx
index b5993620..14084c75 100644
--- a/content/payments/umap/notifications/mandates/revoke.mdx
+++ b/content/payments/umap/notifications/mandates/revoke.mdx
@@ -19,7 +19,7 @@ visible_in_sidebar: true
These are the available webhooks for merchants, when revoking of mandate is done by either the customer or in rarer cases, the merchant. Here is a quick view of how the status moves from `mandate.live` to `mandate.revoked`—
diff --git a/content/payments/umap/notifications/mandates/unpause.mdx b/content/payments/umap/notifications/mandates/unpause.mdx
index 5080211f..9a3160fc 100644
--- a/content/payments/umap/notifications/mandates/unpause.mdx
+++ b/content/payments/umap/notifications/mandates/unpause.mdx
@@ -19,7 +19,7 @@ visible_in_sidebar: true
These are the available webhooks for merchants, when their customer unpauses their mandate. Here is a quick view of how the status moves from `mandate.paused` to `mandate.unpaused`—
diff --git a/content/payments/umap/notifications/mandates/update.mdx b/content/payments/umap/notifications/mandates/update.mdx
index ee7209b1..06615293 100644
--- a/content/payments/umap/notifications/mandates/update.mdx
+++ b/content/payments/umap/notifications/mandates/update.mdx
@@ -19,7 +19,7 @@ visible_in_sidebar: true
Here is a quick view of how the status moves from `mandate.live` to `mandate.updated`—
diff --git a/content/payments/umap/notifications/payments.mdx b/content/payments/umap/notifications/payments.mdx
index 31eaf6f6..812a36f6 100644
--- a/content/payments/umap/notifications/payments.mdx
+++ b/content/payments/umap/notifications/payments.mdx
@@ -12,7 +12,7 @@ Most of the products on our platform end up creating a payment event when a cust
Any UPI Setu product relies on creating and presenting payment request to a customer. Setu's UPI Setu stack provides consistent and transparent payment statuses for a merchant, to be able to track the life-cycle of a payment request. These statuses are shown in the diagram below.
diff --git a/content/payments/umap/notifications/refunds.mdx b/content/payments/umap/notifications/refunds.mdx
index d8674489..a32ca95b 100644
--- a/content/payments/umap/notifications/refunds.mdx
+++ b/content/payments/umap/notifications/refunds.mdx
@@ -36,7 +36,7 @@ The statuses are consistent across all UPI Setu products—
Here is the life-cycle for refund statuses—
diff --git a/content/payments/umap/overview.mdx b/content/payments/umap/overview.mdx
index c1f378fe..2ef733ec 100644
--- a/content/payments/umap/overview.mdx
+++ b/content/payments/umap/overview.mdx
@@ -16,7 +16,7 @@ UPI Setu connects directly with NPCI, absorbing both acquirer and beneficiary ba
_Unified Payments Interface (UPI) is a digital payment system developed by NPCI that enables customers to pay for goods and services real-time, across any UPI app with different payment methods—like savings accounts or credit cards—from the convenience of their phone._
diff --git a/content/payments/umap/payments.mdx b/content/payments/umap/payments.mdx
index d90d6ea9..1f0931f5 100644
--- a/content/payments/umap/payments.mdx
+++ b/content/payments/umap/payments.mdx
@@ -34,7 +34,7 @@ UPI Setu relies on a few features that persist across various products offered u
UPI Setu has consistent and transparent payment statuses across all transaction flows.
diff --git a/content/payments/umap/payments/collect.mdx b/content/payments/umap/payments/collect.mdx
index b3327892..09f790bb 100644
--- a/content/payments/umap/payments/collect.mdx
+++ b/content/payments/umap/payments/collect.mdx
@@ -62,7 +62,7 @@ After the customer responds to the collect request, transaction details can be f
## Collect flow interactions
diff --git a/content/payments/umap/payments/flash.mdx b/content/payments/umap/payments/flash.mdx
index 6d615b51..5f0daefb 100644
--- a/content/payments/umap/payments/flash.mdx
+++ b/content/payments/umap/payments/flash.mdx
@@ -62,7 +62,7 @@ Following the initiation of the transaction, the system retrieves the payment de
## Payment flow interactions
diff --git a/content/payments/umap/payments/tpv.mdx b/content/payments/umap/payments/tpv.mdx
index c2803889..3363bcff 100644
--- a/content/payments/umap/payments/tpv.mdx
+++ b/content/payments/umap/payments/tpv.mdx
@@ -47,7 +47,7 @@ Based on the outcome of the validation check, the UPI Setu system decides whethe
### TPV Process Flow
diff --git a/content/payments/umap/refunds-disputes.mdx b/content/payments/umap/refunds-disputes.mdx
index 7c65d296..3cc300d4 100644
--- a/content/payments/umap/refunds-disputes.mdx
+++ b/content/payments/umap/refunds-disputes.mdx
@@ -23,7 +23,7 @@ UPI Setu empowers merchants with direct API access to issue refunds and contest
### Refund process overview
@@ -55,7 +55,7 @@ In addition to notifications, merchants can also use the
diff --git a/content/payments/upi-deeplinks/quickstart.mdx b/content/payments/upi-deeplinks/quickstart.mdx
index 2c6c8b1c..da517ba6 100644
--- a/content/payments/upi-deeplinks/quickstart.mdx
+++ b/content/payments/upi-deeplinks/quickstart.mdx
@@ -32,7 +32,7 @@ Also, listed below are some other details you need to get started. If you do fac
These will be applicable to all APIs you call, unless specified otherwise—
- `X-Setu-Product-Instance-ID`—this is a unique identifier for your merchant configuration set up on the Bridge. Look for the “Merchant ID” on the top left, inside your merchant configuration.
- 
+ 
- `authorization`—Bearer <**insert_token_here**>. Generate this token using OAuth or JWT.
- `Content-Type`—will be `application/json`. This will not be present in the header for Check link status API.
diff --git a/content/payments/upi-deeplinks/resources/oauth.mdx b/content/payments/upi-deeplinks/resources/oauth.mdx
index 8f2f4626..13bccff6 100644
--- a/content/payments/upi-deeplinks/resources/oauth.mdx
+++ b/content/payments/upi-deeplinks/resources/oauth.mdx
@@ -53,7 +53,7 @@ On clicking “Generate new key”, you should see a simple form
**Add products**—Here's where you can select the product configurations that this key can access.
diff --git a/content/payments/whatsapp-collect/journey.mdx b/content/payments/whatsapp-collect/journey.mdx
index 50e9be1b..9a4dd8d3 100644
--- a/content/payments/whatsapp-collect/journey.mdx
+++ b/content/payments/whatsapp-collect/journey.mdx
@@ -34,7 +34,7 @@ These QR codes can be used in your physical branches and can be part of the prin
Below is a QR code created by Setu using the previously shared sample WhatsApp Deeplink. Scan and try out the flow—
diff --git a/content/redirects.json b/content/redirects.json
index 09d180de..6d1f2318 100644
--- a/content/redirects.json
+++ b/content/redirects.json
@@ -21,6 +21,8 @@
"/payments/billpay-apis": "/payments/billpay-apis/overview",
"/payments/billpay/api-integration": "/payments/billpay/api-integration/quickstart",
"/payments/billpay/v1/api-integration": "/payments/billpay/v1/api-integration/quickstart",
+ "/payments/billpay/api-integration/paying-bills": "/payments/billpay/api-integration/paying-bills/quickstart",
+ "/payments/billpay/v1/api-integration/paying-bills": "/payments/billpay/v1/api-integration/paying-bills/quickstart",
"/payments/billpay/quickstart": "/payments/billpay/overview",
"/payments/billpay/pre-built-screens": "/payments/billpay/pre-built-screens/quickstart",
"/payments/billpay/mobile-prepaid-recharge": "/payments/billpay/mobile-prepaid-recharge/quickstart",
@@ -72,6 +74,7 @@
"/data/bav/api-integration": "/data/bav/penny-drop/api-integration",
"/data/bav/api-integration/sync": "/data/bav/penny-drop/api-integration/sync",
"/data/bav/api-integration/async": "/data/bav/penny-drop/api-integration/async",
+ "/data/bav/bundled-bav": "/data/bav/bundled-bav/quickstart",
"/data/pan": "/data/pan/quickstart",
"/data/esign": "/data/esign/overview",
"/data/digilocker": "/data/digilocker/overview",
@@ -124,5 +127,6 @@
"/biller-quickstart": "/payments/bbps/quickstart",
"/sample-category/sample-product": "/sample-category/sample-product/sample-page",
"/docs-components": "/sample-category/sample-product/sample-page",
- "/setu-bot": "/"
+ "/setu-bot": "/",
+ "/payments/billpay/mcp": "/payments/billpay/mcp/integration-guide"
}
diff --git a/content/sample-category/sample-product/sample-page.mdx b/content/sample-category/sample-product/sample-page.mdx
index f1676bf1..5b2d4cf8 100644
--- a/content/sample-category/sample-product/sample-page.mdx
+++ b/content/sample-category/sample-product/sample-page.mdx
@@ -10,14 +10,14 @@ visible_in_sidebar: false
#### Full width image
#### Normal image