diff --git a/api-references/payments/billpay/api-integration.json b/api-references/payments/billpay/api-integration.json index 435c0545..f23e2b70 100644 --- a/api-references/payments/billpay/api-integration.json +++ b/api-references/payments/billpay/api-integration.json @@ -36,13 +36,11 @@ "properties": { "clientID": { "type": "string", - "description": "clientID from the API key pair", - "example": "exampleClientID" + "description": "clientID from the API key pair" }, "secret": { "type": "string", - "description": "secret from the API key pair", - "example": "exampleSecret" + "description": "secret from the API key pair" } }, "description": "Fetch Token API payload" @@ -115,8 +113,7 @@ }, "token": { "type": "string", - "description": "Token to be used in subsequent requests", - "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + "description": "Token to be used in subsequent requests" } } }, @@ -154,10 +151,6 @@ ], "type": "object", "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, "error": { "required": [ "code", @@ -167,17 +160,21 @@ "properties": { "code": { "type": "string", - "example": "error-code-if-any" + "example": "validation-error" }, "message": { "type": "string", - "example": "error-message-if-any" + "example": "Input is invalid" } } }, "success": { "type": "boolean", "example": false + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" } } } @@ -190,8 +187,9 @@ }, "/api/v2/bbps/bills/fetch/request": { "post": { - "tags": ["Fetch"], - "operationId": "FetchRequest", + "tags": [ + "Fetch" + ], "description": "Bill fetch request API", "parameters": [ { @@ -205,10 +203,14 @@ }, { "name": "Authorization", - "type": "string", - "description": "OAuth token. Required for authorization.", "in": "header", - "required": true + "required": true, + "schema": { + "type": "string", + "pattern": "^Bearer [a-zA-Z0-9\\-\\._~\\+\\/]+=*$" + }, + "description": "Bearer token for authentication. Format: `Bearer `", + "example": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." } ], "requestBody": { @@ -223,6 +225,31 @@ ], "type": "object", "properties": { + "remitter": { + "type": "object", + "properties": { + "email": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "name": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "pan": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "aadhaar": { + "maxLength": 50, + "minLength": 1, + "type": "string" + } + } + }, "agent": { "required": [ "channel", @@ -230,33 +257,32 @@ ], "type": "object", "properties": { - "app": { + "mac": { "type": "string", - "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", - "example": "SmartPay" + "description": "Mandatory if channel is `INT`, `INTB`. Not required for others.", + "format": "mac", + "example": "48-4D-7E-CB-DB-6F" }, - "channel": { + "postalCode": { + "pattern": "^[1-9][0-9]{5}$", "type": "string", - "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", - "example": "INT", - "enum": [ - "INT", - "INTB", - "MOB", - "BNKBRNCH", - "BSC", - "AGT", - "KIOSK", - "ATM", - "MOBB", - "POS", - "MPOS" - ] + "description": "Mandatory if channel is `AGT`, `BSC` and `BNKBRNCH`. Not required for others. This has to match the data submitted to NPCI for this agent ID\n", + "example": "600001" }, - "imei": { + "terminalId": { + "type": "string", + "description": "Mandatory if channel is `ATM`, `AGT`, `KIOSK` and `BSC` . Not required for others. This has to match the data submitted to NPCI for this agent ID\n", + "example": "6000011234" + }, + "app": { "type": "string", "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", - "example": "123456789012345" + "example": "SmartPay" + }, + "geocode": { + "type": "string", + "description": "Mandatory if channel is `AGT`, `BSC` and `BNKBRNCH`. Not required for others. This has to match the data submitted to NPCI for this agent ID\n", + "example": "19.0139,72.8254" }, "ip": { "type": "string", @@ -264,12 +290,6 @@ "format": "ipv4", "example": "124.170.23.24" }, - "mac": { - "type": "string", - "description": "Mandatory if channel is `INT`, `INTB`. Not required for others.", - "format": "mac", - "example": "48-4D-7E-CB-DB-6F" - }, "mobile": { "maxLength": 22, "minLength": 6, @@ -286,21 +306,38 @@ "Android" ] }, - "postalCode": { - "pattern": "^[1-9][0-9]{5}$", + "channel": { "type": "string", - "description": "Mandatory if channel is `AGT`, `BSC` and `BNKBRNCH`. Not required for others. This has to match the data submitted to NPCI for this agent ID\n", - "example": "600001" + "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", + "example": "INT", + "enum": [ + "INT", + "INTB", + "MOB", + "BNKBRNCH", + "BSC", + "AGT", + "KIOSK", + "ATM", + "MOBB", + "POS", + "MPOS" + ] }, - "geocode": { + "id": { "type": "string", - "description": "Mandatory if channel is `AGT`, `BSC` and `BNKBRNCH`. Not required for others. This has to match the data submitted to NPCI for this agent ID\n", - "example": "19.0139,72.8254" + "description": "The ID of the agent initiating the BBPS transaction.", + "example": "AX01AI06512391457204" }, - "terminalId": { + "ifsc": { "type": "string", - "description": "Mandatory if channel is `ATM`, `AGT`, `KIOSK` and `BSC` . Not required for others. This has to match the data submitted to NPCI for this agent ID\n", - "example": "6000011234" + "description": "Mandatory if channel is `BNKBRNCH`. Not required for others. This has to match the data submitted to NPCI for this agent ID\n", + "example": "ICIC0000152" + }, + "imei": { + "type": "string", + "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", + "example": "123456789012345" } } }, @@ -318,31 +355,6 @@ }, "x-go-gen-location": "models", "x-go-name": "BillerDetails" - }, - "remitter": { - "type": "object", - "properties": { - "aadhaar": { - "maxLength": 50, - "minLength": 1, - "type": "string" - }, - "email": { - "maxLength": 50, - "minLength": 1, - "type": "string" - }, - "name": { - "maxLength": 50, - "minLength": 1, - "type": "string" - }, - "pan": { - "maxLength": 50, - "minLength": 1, - "type": "string" - } - } } }, "x-omitempty": true @@ -361,17 +373,16 @@ ], "type": "object", "properties": { - "customerId": { - "type": "string", - "description": "Customer Identifier", - "example": "4881317598" - }, "mobile": { "maxLength": 22, "minLength": 6, "pattern": "^\\d{6,22}$", "type": "string", "description": "Mobile number with 6 to 22 digits are valid." + }, + "customerId": { + "type": "string", + "description": "Customer Identifier" } } }, @@ -391,15 +402,15 @@ ], "type": "object", "properties": { - "name": { - "type": "string", - "description": "The display name of the parameter. This has to match what is sent in fields.", - "example": "Loan Number" - }, "value": { "type": "string", "description": "The value of the customer parameter", "example": "1895159" + }, + "name": { + "type": "string", + "description": "The display name of the parameter. This has to match what is sent in fields.", + "example": "Loan Number" } } } @@ -495,7 +506,7 @@ }, "responses": { "200": { - "description": "OK", + "description": "Success - Normal bill fetch response", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -556,82 +567,9 @@ ], "type": "object", "properties": { - "duplicate": { - "required": [ - "code", - "message" - ], - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" - }, - "message": { - "type": "string" - }, - "refId": { - "type": "string", - "description": "The generated Reference ID for the request." - } - } - }, "refId": { "type": "string", "description": "The generated Reference ID for the request." - }, - "upmsRegistration": { - "type": "object", - "properties": { - "duplicate": { - "required": [ - "code", - "message" - ], - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "refId": { - "type": "string", - "description": "The generated Reference ID for the request." - } - } - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "invalid-mandate" - }, - "message": { - "type": "string", - "example": "The mandate configuration is invalid" - } - }, - "description": "Present only when acknowledgement status for the registration is FAILED" - }, - "refId": { - "type": "string", - "description": "The reference ID for the UPMS registration", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - }, - "status": { - "type": "string", - "description": "Status of the registration request processing by our system", - "example": "PENDING", - "enum": [ - "PENDING", - "FAILED" - ] - } - }, - "description": "Present only when upmsRegistration was requested" } } }, @@ -650,229 +588,125 @@ } } }, - "400": { - "description": "Bad request", - "content": { - "application/json": { + "200-duplicate-mandate": { + "description": "Success - Bill fetch response with duplicate mandate", + "headers": { + "X-Frame-Options": { + "description": "X Frame options", "schema": { - "required": [ - "error", - "success", - "traceId" - ], - "type": "object", - "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "error": { - "required": [ - "code", - "message" - ], - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" - }, - "message": { - "type": "string", - "example": "error-message-if-any" - } - } - }, - "success": { - "type": "boolean", - "example": false - } - } + "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" } } - } - }, - "500": { - "description": "Bad request", + }, "content": { "application/json": { "schema": { "required": [ - "error", + "data", "success", "traceId" ], "type": "object", "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "error": { + "data": { "required": [ - "code", - "message" + "refId" ], "type": "object", "properties": { - "code": { + "refId": { "type": "string", - "example": "error-code-if-any" + "description": "The generated Reference ID for the request." }, - "message": { - "type": "string", - "example": "error-message-if-any" + "upmsRegistration": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Mandate registration failed due to duplicate mandate", + "example": "FAILED", + "enum": [ + "FAILED" + ] + }, + "duplicate": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "duplicate-ref-id" + }, + "message": { + "type": "string" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + } + } + } + }, + "description": "Present only when upmsRegistration was requested" } } }, "success": { "type": "boolean", - "example": false - } - } - } - } - } - } - }, - "security": [ - { - "Production": [ - "bbps:partner" - ] - }, - { - "Sandbox": [ - "bbps:partner" - ] - }, - { - "QA": [ - "bbps:partner" - ] - } - ], - "x-codegen-request-body-name": "CouAgentBillFetchRequest" - } - }, - "/api/v2/bbps/bills/fetch/response": { - "post": { - "tags": ["Fetch"], - "operationId": "FetchResponse", - "description": "Bill fetch response API", - "parameters": [ - { - "name": "X-PARTNER-ID", - "in": "header", - "description": "Partner ID", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "Authorization", - "type": "string", - "description": "OAuth token. Required for authorization.", - "in": "header", - "required": true - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "required": [ - "refId" - ], - "type": "object", - "properties": { - "refId": { - "type": "string", - "description": "The generated BBPS Reference ID for the request.", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - } - }, - "x-go-name": "RefIdBasedRequest", - "x-omitempty": true - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "required": ["error", "success", "traceId"], - "type": "object", - "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "error": { - "required": ["code", "message"], - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" - }, - "message": { - "type": "string", - "example": "error-message-if-any" - } - } + "description": "Boolean value indicating the status of the request", + "example": true }, - "success": { - "type": "boolean", - "example": false - } - } - } - } - } - }, - "500": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "required": ["error", "success", "traceId"], - "type": "object", - "properties": { "traceId": { "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "error": { - "required": ["code", "message"], - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" - }, - "message": { - "type": "string", - "example": "error-message-if-any" - } - } - }, - "success": { - "type": "boolean", - "example": false + "description": "The traceId generated for the request", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10461713" } } } } } }, - "200": { - "description": "OK", + "200-failed-mandate": { + "description": "Success - Bill fetch response with failed mandate", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -920,824 +754,327 @@ "content": { "application/json": { "schema": { - "allOf": [ - { + "required": [ + "data", + "success", + "traceId" + ], + "type": "object", + "properties": { + "data": { "required": [ - "success", - "traceId" + "refId" ], "type": "object", "properties": { - "success": { - "type": "boolean", - "example": true - }, - "traceId": { + "refId": { "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - } - } - }, - { - "required": [ - "data" - ], - "type": "object", - "properties": { - "data": { - "required": [ - "refId", - "status" - ], + "description": "The generated Reference ID for the request." + }, + "upmsRegistration": { "type": "object", "properties": { - "billerRefId": { - "type": "string", - "example": "7f16a032e514" - }, - "billerResponseType": { - "type": "string", - "nullable": true, - "example": "SINGLE", - "enum": [ - "SINGLE", - "LIST", - "SELECTIVE" - ], - "x-nullable": true, - "x-omitempty": false - }, - "billerSelectionType": { - "type": "string", - "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", - "nullable": true, - "example": "SINGLE", - "enum": [ - "SINGLE", - "MULTIPLE", - "ALL" - ], - "x-nullable": true, - "x-omitempty": false - }, - "bills": { - "type": "array", - "description": "Multiple bills in case of response from B2B biller", - "items": { - "required": [ - "billDate", - "billNumber", - "billPeriod", - "customerName", - "dueDate" - ], - "type": "object", - "properties": { - "amount": { - "type": "integer", - "nullable": true, - "x-omitempty": true - }, - "amountMultiple": { - "type": "integer", - "description": "Bill payment amount should be multiple of this value in paise", - "nullable": true, - "x-omitempty": true - }, - "billDate": { - "type": "string", - "format": "date", - "example": "2021-01-02" - }, - "billNumber": { - "type": "string", - "example": "1232332" - }, - "billPeriod": { - "type": "string", - "example": "ONETIME|DAILY|WEEKLY|BIMONTHLY|MONTHLY|QUARTERLY|HALFYEARLY|YEARLY|ASPRESENTED" - }, - "customerName": { - "type": "string", - "example": "Manoj Chekuri" - }, - "dueDate": { - "type": "string", - "format": "date", - "example": "2021-09-24" - }, - "maxAmount": { - "type": "integer", - "description": "Maximum amount that can be paid for this bill in paise", - "nullable": true, - "x-omitempty": true - }, - "minAmount": { - "type": "integer", - "description": "Minimum amount that can be paid for this bill in paise", - "nullable": true, - "x-omitempty": true - }, - "paymentOptions": { - "type": "array", - "nullable": true, - "items": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "amount": { - "type": "integer", - "description": "The amount that can be paid for this option in paise.", - "nullable": true, - "x-omitempty": true - }, - "amountMultiple": { - "type": "integer", - "description": "The payment amount should be a multiple of this value in paise.", - "nullable": true, - "x-omitempty": true - }, - "maxAmount": { - "type": "integer", - "description": "The maximum amount that can be paid for this option in paise.", - "nullable": true, - "x-omitempty": true - }, - "minAmount": { - "type": "integer", - "description": "The minimum amount that can be paid for this option in paise.", - "nullable": true, - "x-omitempty": true - }, - "name": { - "type": "string", - "description": "The display name of the option.", - "example": "2 Months EMI Amount" - } - } - }, - "x-omitempty": true - }, - "label": { - "type": "string", - "nullable": true, - "example": "Advance EMI", - "x-omitempty": true - } - }, - "x-go-name": "BillData" - }, - "x-omitempty": true - }, - "exactness": { + "status": { "type": "string", - "example": "Exact", + "description": "Mandate registration has failed", + "example": "FAILED", "enum": [ - "Exact", - "Exact and above", - "Exact and below", - "Any", - "RANGE" + "FAILED" ] }, - "failureReason": { - "required": [ - "code", - "message" - ], + "error": { "type": "object", "properties": { - "message": { - "type": "string", - "example": "error-message-if-any" - }, - "type": { + "code": { "type": "string", - "enum": ["FUND_TRANSFER", "BBPS", "APP"] + "example": "invalid-mandate" }, - "code": { + "message": { "type": "string", - "example": "error-code-if-any" + "example": "The mandate configuration is invalid" } - } - }, - "refId": { - "type": "string", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - }, - "status": { - "type": "string", - "example": "Success", - "enum": [ - "Processing", - "Success", - "Failure", - "Credit_Adjustment" - ] - }, - "upmsRegistrationRefId": { - "type": "string", - "nullable": true, - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202", - "x-omitempty": true + }, + "description": "Present only when acknowledgement status for the registration is FAILED" } - } + }, + "description": "Present only when upmsRegistration was requested" } } + }, + "success": { + "type": "boolean", + "description": "Boolean value indicating the status of the request", + "example": true + }, + "traceId": { + "type": "string", + "description": "The traceId generated for the request", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10461713" } - ], - "x-go-name": "CouAgentBillFetchResponseV2" + } } } } - } - }, - "security": [ - { - "Production": [ - "bbps:partner" - ] - }, - { - "Sandbox": [ - "bbps:partner" - ] - }, - { - "QA": [ - "bbps:partner" - ] - } - ], - "x-codegen-request-body-name": "CouAgentAsyncRequest" - } - }, - "/api/v2/bbps/bills/payment/request": { - "post": { - "tags": ["Pay"], - "operationId": "PaymentRequest", - "description": "Bill payment request API", - "parameters": [ - { - "name": "X-PARTNER-ID", - "in": "header", - "description": "Partner ID", - "required": true, - "schema": { - "type": "integer" - } }, - { - "name": "Authorization", - "type": "string", - "description": "OAuth token. Required for authorization.", - "in": "header", - "required": true - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "required": [ - "paymentDetails" - ], - "type": "object", - "properties": { - "agent": { - "required": [ - "channel", - "id" - ], - "type": "object", - "properties": { - "app": { - "type": "string", - "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", - "example": "SmartPay" - }, - "channel": { - "type": "string", - "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", - "example": "INT", - "enum": [ - "INT", - "INTB", - "MOB", - "BNKBRNCH", - "BSC", - "AGT", - "KIOSK", - "ATM", - "MOBB", - "POS", - "MPOS" - ] - }, - "geocode": { - "type": "string", - "description": "Mandatory if channel is `AGT`, `BSC` and `BNKBRNCH`. Not required for others. This has to match the data submitted to NPCI for this agent ID\n", - "example": "19.0139,72.8254" - }, - "id": { - "type": "string", - "description": "The ID of the agent initiating the BBPS transaction.", - "example": "AX01AI06512391457204" - }, - "ifsc": { - "type": "string", - "description": "Mandatory if channel is `BNKBRNCH`. Not required for others. This has to match the data submitted to NPCI for this agent ID\n", - "example": "ICIC0000152" - }, - "imei": { - "type": "string", - "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", - "example": "123456789012345" - }, - "ip": { - "type": "string", - "description": "Mandatory if channel is `INT`, `INTB`. Not required for others.", - "format": "ipv4", - "example": "124.170.23.24" - }, - "mac": { - "type": "string", - "description": "Mandatory if channel is `INT`, `INTB`. Not required for others.", - "format": "mac", - "example": "48-4D-7E-CB-DB-6F" - }, - "mobile": { - "maxLength": 22, - "minLength": 6, - "pattern": "^\\d{6,22}$", - "type": "string", - "description": "Mobile number with 6 to 22 digits are valid." - }, - "os": { - "type": "string", - "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", - "example": "iOS", - "enum": [ - "iOS", - "Android" - ] - }, - "postalCode": { - "pattern": "^[1-9][0-9]{5}$", - "type": "string", - "description": "Mandatory if channel is `AGT`, `BSC` and `BNKBRNCH`. Not required for others. This has to match the data submitted to NPCI for this agent ID\n", - "example": "600001" - }, - "terminalId": { - "type": "string", - "description": "Mandatory if channel is `ATM`, `AGT`, `KIOSK` and `BSC` . Not required for others. This has to match the data submitted to NPCI for this agent ID\n", - "example": "6000011234" - } - } - }, - "biller": { - "required": [ - "id" - ], - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The biller ID on BBPS", - "example": "MAHI00000NATIC" - } + "200-pending-mandate": { + "description": "Success - Bill fetch response with processing mandate", + "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": [ + "data", + "success", + "traceId" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "refId" + ], + "type": "object", + "properties": { + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." }, - "x-go-gen-location": "models", - "x-go-name": "BillerDetails" - }, - "bills": { - "uniqueItems": true, - "type": "array", - "nullable": true, - "example": "Selection on bills in case of list billers", - "items": { - "required": [ - "amount", - "billNumber" - ], + "upmsRegistration": { "type": "object", "properties": { - "amount": { - "minimum": 1, - "type": "integer", - "description": "Amount in Paise" + "status": { + "type": "string", + "description": "Mandate registration is being processed", + "example": "PENDING", + "enum": [ + "PENDING" + ] }, - "billNumber": { + "refId": { "type": "string", - "example": "B1234567" + "description": "The reference ID for the UPMS registration", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" } }, - "x-omitempty": true + "description": "Present only when upmsRegistration was requested" + } + } + }, + "success": { + "type": "boolean", + "description": "Boolean value indicating the status of the request", + "example": true + }, + "traceId": { + "type": "string", + "description": "The traceId generated for the request", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10461713" + } + } + } + } + } + }, + "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" }, - "x-omitempty": true - }, - "paymentDetails": { - "required": [ - "amount", - "mode", - "paymentRefId", - "timestamp" - ], - "type": "object", - "properties": { - "COUcustConvFee": { - "type": "integer", - "nullable": true - }, - "Id": { - "type": "string", - "description": "Pass here the ID of the selected payment plan in payment request. If a plan was selected in payment request, its Id will be a part of the paymentDetails block in payment response.", - "example": "1" - }, - "accountInfo": { - "maxLength": 50, - "minLength": 1, - "type": "string" - }, - "amount": { - "minimum": 1, - "type": "integer", - "description": "Amount in Paise" - }, - "currency": { - "type": "integer", - "nullable": true - }, - "custConvFee": { - "type": "integer", - "nullable": true - }, - "mode": { - "type": "string", - "example": "Internet Banking", - "enum": [ - "Internet Banking", - "Debit Card", - "Credit Card", - "Prepaid Card", - "IMPS", - "Cash", - "UPI", - "Wallet", - "NEFT", - "AEPS", - "Account Transfer", - "Bharat QR", - "USSD" - ] - }, - "paymentRefId": { - "maxLength": 35, - "minLength": 6, - "type": "string", - "example": "BD019181220291" - }, - "selectedPaymentOptions": { - "type": "array", - "description": "List of selected payment options", - "nullable": true, - "items": { - "required": [ - "amount", - "name" - ], - "type": "object", - "properties": { - "amount": { - "minimum": 1, - "type": "integer", - "description": "The amount to be paid for the selected payment option." - }, - "name": { - "type": "string", - "description": "The name of the payment option as returned in bill fetch response.", - "example": "Early Payment Amount" - } - } - }, - "x-nullable": true, - "x-omitempty": true - }, - "timestamp": { - "type": "string", - "format": "date-time", - "example": "2020-12-12T13:12:00+05:30" - } - }, - "x-go-gen-location": "models", - "x-go-name": "BillerDetails" - }, - "refId": { - "type": "string", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - }, - "remitter": { - "type": "object", - "properties": { - "aadhaar": { - "maxLength": 50, - "minLength": 1, - "type": "string" - }, - "email": { - "maxLength": 50, - "minLength": 1, - "type": "string" - }, - "name": { - "maxLength": 50, - "minLength": 1, - "type": "string" - }, - "pan": { - "maxLength": 50, - "minLength": 1, - "type": "string" - } + "message": { + "type": "string", + "example": "Input is invalid" } } }, - "x-omitempty": true - }, - { - "type": "object", - "properties": { - "customer": { - "allOf": [ - { - "required": [ - "mobile" - ], - "type": "object", - "properties": { - "customerId": { - "type": "string", - "description": "Customer Identifier", - "example": "4881317598" - }, - "mobile": { - "maxLength": 22, - "minLength": 6, - "pattern": "^\\d{6,22}$", - "type": "string", - "description": "Mobile number with 6 to 22 digits are valid." - } - } - }, - { - "required": [ - "customerParams" - ], - "type": "object", - "properties": { - "customerParams": { - "type": "array", - "description": "The bill params for fetching the bill", - "items": { - "required": [ - "name", - "value" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The display name of the parameter. This has to match what is sent in fields.", - "example": "John Doe" - }, - "value": { - "type": "string", - "description": "The value of the customer parameter", - "example": "1895159" - } - } - } - } - } - } - ] - } + "success": { + "type": "boolean", + "example": false + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" } } - ], - "x-go-name": "CouAgentBillPaymentRequestV2" + } } } }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "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" - } - } - }, + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { "required": [ - "data", + "error", "success", "traceId" ], "type": "object", "properties": { - "data": { + "error": { "required": [ - "refId" + "code", + "message" ], "type": "object", "properties": { - "duplicate": { - "required": [ - "code", - "message" - ], - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" - }, - "message": { - "type": "string", - "example": "error-message-if-any" - }, - "refId": { - "type": "string", - "description": "The generated BBPS Reference ID for the request.", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - } - } - }, - "refId": { + "code": { "type": "string", - "description": "The generated Reference ID for the request." + "example": "validation-error" }, - "upmsRegistration": { - "type": "object", - "properties": { - "duplicate": { - "required": [ - "code", - "message" - ], - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "refId": { - "type": "string", - "description": "The generated Reference ID for the request." - } - } - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "invalid-mandate" - }, - "message": { - "type": "string", - "example": "The mandate configuration is invalid" - } - }, - "description": "Present only when acknowledgement status for the registration is FAILED" - }, - "refId": { - "type": "string", - "description": "The reference ID for the UPMS registration", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - }, - "status": { - "type": "string", - "description": "Status of the registration request processing by our system", - "example": "PENDING", - "enum": [ - "PENDING", - "FAILED" - ] - } - }, - "description": "Present only when upmsRegistration was requested" + "message": { + "type": "string", + "example": "Input is invalid" } } }, "success": { "type": "boolean", - "description": "Boolean value indicating the status of the request", - "example": true + "example": false }, "traceId": { "type": "string", - "description": "The traceId generated for the request", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10461713" + "example": "C3SFG0O6N88R6UI7EQ" } } } } } + } + }, + "security": [ + { + "Production": [ + "bbps:partner" + ] }, - "400": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "required": [ - "error", - "success", - "traceId" - ], - "type": "object", - "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "error": { - "required": [ - "code", - "message" - ], - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" - }, - "message": { - "type": "string", - "example": "error-message-if-any" - } - } - }, - "success": { - "type": "boolean", - "example": false - } + { + "Sandbox": [ + "bbps:partner" + ] + }, + { + "QA": [ + "bbps:partner" + ] + } + ], + "x-codegen-request-body-name": "CouAgentBillFetchRequest" + } + }, + "/api/v2/bbps/bills/fetch/response": { + "post": { + "tags": [ + "Fetch" + ], + "description": "Bill fetch response API", + "parameters": [ + { + "name": "X-PARTNER-ID", + "in": "header", + "description": "Partner ID", + "required": true, + "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" + ], + "type": "object", + "properties": { + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." } - } + }, + "x-go-name": "RefIdBasedRequest", + "x-omitempty": true } } }, - "409": { - "description": "OK", + "required": true + }, + "responses": { + "200": { + "description": "Success - Standard successful fetch for a single bill biller", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -1785,226 +1122,407 @@ "content": { "application/json": { "schema": { - "required": [ - "data", - "success", - "traceId" - ], - "type": "object", - "properties": { - "data": { + "allOf": [ + { "required": [ - "refId" + "success", + "traceId" ], "type": "object", "properties": { - "duplicate": { + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + } + } + }, + { + "required": [ + "data" + ], + "type": "object", + "properties": { + "data": { "required": [ - "code", - "message" + "refId", + "status" ], "type": "object", "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" - }, - "message": { - "type": "string", - "example": "error-message-if-any" - }, - "refId": { + "billerSelectionType": { "type": "string", - "description": "The generated BBPS Reference ID for the request.", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - } - } - }, - "refId": { - "type": "string", - "description": "The generated Reference ID for the request." - }, - "upmsRegistration": { - "type": "object", - "properties": { - "duplicate": { - "required": [ - "code", - "message" + "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "MULTIPLE", + "ALL" ], - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "refId": { - "type": "string", - "description": "The generated Reference ID for the request." - } - } + "x-omitempty": false, + "x-nullable": true }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "invalid-mandate" + "bills": { + "type": "array", + "description": "Multiple bills in case of response from B2B biller", + "items": { + "required": [ + "billDate", + "billNumber", + "billPeriod", + "customerName", + "dueDate" + ], + "type": "object", + "properties": { + "amount": { + "type": "integer", + "nullable": true, + "x-omitempty": true + }, + "billNumber": { + "type": "string", + "example": "1232332" + }, + "billPeriod": { + "type": "string", + "example": "ONETIME|DAILY|WEEKLY|BIMONTHLY|MONTHLY|QUARTERLY|HALFYEARLY|YEARLY|ASPRESENTED" + }, + "dueDate": { + "type": "string", + "format": "date", + "example": "2021-09-24" + }, + "label": { + "type": "string", + "nullable": true, + "example": "Advance EMI", + "x-omitempty": true + }, + "minAmount": { + "type": "integer", + "description": "Minimum amount that can be paid for this bill in paise", + "nullable": true, + "x-omitempty": true + }, + "paymentOptions": { + "type": "array", + "nullable": true, + "items": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "maxAmount": { + "type": "integer", + "description": "The maximum amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "minAmount": { + "type": "integer", + "description": "The minimum amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "name": { + "type": "string", + "description": "The display name of the option.", + "example": "2 Months EMI Amount" + }, + "amount": { + "type": "integer", + "description": "The amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "amountMultiple": { + "type": "integer", + "description": "The payment amount should be a multiple of this value in paise.", + "nullable": true, + "x-omitempty": true + } + }, + "x-go-name": "PaymentOption" + }, + "x-omitempty": true + }, + "amountMultiple": { + "type": "integer", + "description": "Bill payment amount should be multiple of this value in paise", + "nullable": true, + "x-omitempty": true + }, + "billDate": { + "type": "string", + "format": "date", + "example": "2021-01-02" + }, + "customerName": { + "type": "string", + "example": "Manoj Chekuri" + }, + "maxAmount": { + "type": "integer", + "description": "Maximum amount that can be paid for this bill in paise", + "nullable": true, + "x-omitempty": true + } }, - "message": { - "type": "string", - "example": "The mandate configuration is invalid" - } + "x-go-name": "BillData" }, - "description": "Present only when acknowledgement status for the registration is FAILED" + "x-omitempty": true }, "refId": { "type": "string", - "description": "The reference ID for the UPMS registration", "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" }, + "billerResponseType": { + "type": "string", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], + "x-nullable": true, + "x-omitempty": false + }, + "exactness": { + "type": "string", + "example": "Exact", + "enum": [ + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" + ] + }, "status": { "type": "string", - "description": "Status of the registration request processing by our system", - "example": "PENDING", + "example": "Success", "enum": [ - "PENDING", - "FAILED" + "Processing", + "Success", + "Failure", + "Credit_Adjustment" ] + }, + "additionalInfo": { + "type": "array", + "description": "This tag captures the additional information provided by the Biller as part of response for a successful transaction.", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Line item 1" + }, + "value": { + "type": "string", + "example": "Value 1" + } + } + }, + "x-go-name": "BillAdditionalInfo", + "x-omitempty": false + }, + "billerRefId": { + "type": "string", + "example": "7f16a032e514" } - }, - "description": "Present only when upmsRegistration was requested" + } } } - }, - "success": { - "type": "boolean", - "description": "Boolean value indicating the status of the request", - "example": true - }, - "traceId": { - "type": "string", - "description": "The traceId generated for the request", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10461713" } - } + ], + "x-go-name": "CouAgentBillFetchResponseV2" } } } }, - "500": { - "description": "Bad request", + "200-failed-fetch": { + "description": "Success - Bill fetch failed due to customer not found or biller error", + "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" - ], - "type": "object", - "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "error": { + "allOf": [ + { "required": [ - "code", - "message" + "success", + "traceId" ], "type": "object", "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" + "success": { + "type": "boolean", + "example": true }, - "message": { + "traceId": { "type": "string", - "example": "error-message-if-any" + "example": "C3SFG0O6N88R6UI7EQ" } } }, - "success": { - "type": "boolean", - "example": false + { + "required": [ + "data" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "refId", + "status" + ], + "type": "object", + "properties": { + "billerSelectionType": { + "type": "string", + "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "MULTIPLE", + "ALL" + ], + "x-omitempty": false, + "x-nullable": true + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + }, + "billerResponseType": { + "type": "string", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], + "x-nullable": true, + "x-omitempty": false + }, + "exactness": { + "type": "string", + "example": "Exact", + "enum": [ + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" + ] + }, + "failureReason": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "FUND_TRANSFER", + "BBPS", + "APP" + ] + }, + "code": { + "type": "string", + "example": "ERR004" + }, + "message": { + "type": "string", + "example": "customer not found" + } + } + }, + "status": { + "type": "string", + "example": "Success", + "enum": [ + "Processing", + "Success", + "Failure", + "Credit_Adjustment" + ] + }, + "billerRefId": { + "type": "string", + "example": "7f16a032e514" + } + } + } + } } - } + ], + "x-go-name": "CouAgentBillFetchResponseV2" } } } - } - }, - "security": [ - { - "Production": [ - "bbps:partner" - ] - }, - { - "Sandbox": [ - "bbps:partner" - ] - }, - { - "QA": [ - "bbps:partner" - ] - } - ], - "x-codegen-request-body-name": "CouAgentBillPaymentRequestV2" - } - }, - "/api/v2/bbps/bills/payment/response": { - "post": { - "tags": ["Pay"], - "operationId": "PaymentResponse", - "description": "Bill payment response API", - "parameters": [ - { - "name": "X-PARTNER-ID", - "in": "header", - "description": "Partner ID", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "Authorization", - "type": "string", - "description": "OAuth token. Required for authorization.", - "in": "header", - "required": true - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "required": [ - "refId" - ], - "type": "object", - "properties": { - "refId": { - "type": "string", - "description": "The generated BBPS Reference ID for the request.", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - } - }, - "x-go-name": "RefIdBasedRequest", - "x-omitempty": true - } - } }, - "required": true - }, - "responses": { - "200": { - "description": "OK", + "200-flexible-amount-bill": { + "description": "Success - Bill with payment options and amount ranges", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -2052,458 +1570,241 @@ "content": { "application/json": { "schema": { - "required": [ - "data", - "success", - "traceId" - ], - "type": "object", - "properties": { - "data": { + "allOf": [ + { "required": [ - "refId", - "status" + "success", + "traceId" ], "type": "object", "properties": { - "additionalInfo": { - "type": "array", - "description": "This tag captures the additional information provided by the Biller as part of response for a successful transaction.", - "items": { - "required": [ - "name", - "value" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Line item 1" - }, - "value": { - "type": "string", - "example": "Value 1" - } - } - }, - "x-go-name": "BillAdditionalInfo", - "x-omitempty": false - }, - "billerId": { - "type": "string", - "description": "The biller ID on BBPS", - "example": "MAHI00000NATIC" + "success": { + "type": "boolean", + "example": true }, - "billerRefId": { + "traceId": { "type": "string", - "example": "ZA6291A177" - }, - "bills": { - "uniqueItems": true, - "type": "array", - "nullable": true, - "example": "The bills paid in case of list billers", - "items": { - "required": [ - "amount", - "billNumber" - ], - "type": "object", - "properties": { - "amount": { - "minimum": 1, - "type": "integer", - "description": "Amount in Paise" - }, - "billNumber": { - "type": "string", - "example": "B1234567" - } - }, - "x-omitempty": true - }, - "x-omitempty": true - }, - "failureReason": { + "example": "C3SFG0O6N88R6UI7EQ" + } + } + }, + { + "required": [ + "data" + ], + "type": "object", + "properties": { + "data": { "required": [ - "code", - "message" + "refId", + "status" ], "type": "object", "properties": { - "code": { - "type": "string", - "example": "ERR004" - }, - "message": { - "type": "string", - "example": "customer not found" - }, - "type": { + "billerSelectionType": { "type": "string", + "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", + "nullable": true, + "example": "SINGLE", "enum": [ - "FUND_TRANSFER", - "BBPS", - "APP" - ] - } - } - }, - "lastPaidDate": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2020-12-12T13:12:00+05:30" - }, - "paymentDetails": { - "required": ["amount", "mode", "paymentRefId", "timestamp"], - "type": "object", - "properties": { - "COUcustConvFee": { - "type": "integer", - "nullable": true + "SINGLE", + "MULTIPLE", + "ALL" + ], + "x-omitempty": false, + "x-nullable": true }, - "Id": { - "type": "string", - "description": "Pass here the ID of the selected payment plan in payment request. If a plan was selected in payment request, its Id will be a part of the paymentDetails block in payment response.", - "example": "1" + "bills": { + "type": "array", + "description": "Multiple bills in case of response from B2B biller", + "items": { + "required": [ + "billDate", + "billNumber", + "billPeriod", + "customerName", + "dueDate" + ], + "type": "object", + "properties": { + "amount": { + "type": "integer", + "nullable": true, + "x-omitempty": true + }, + "billNumber": { + "type": "string", + "example": "1232332" + }, + "billPeriod": { + "type": "string", + "example": "ONETIME|DAILY|WEEKLY|BIMONTHLY|MONTHLY|QUARTERLY|HALFYEARLY|YEARLY|ASPRESENTED" + }, + "dueDate": { + "type": "string", + "format": "date", + "example": "2021-09-24" + }, + "label": { + "type": "string", + "nullable": true, + "example": "Advance EMI", + "x-omitempty": true + }, + "minAmount": { + "type": "integer", + "description": "Minimum amount that can be paid for this bill in paise", + "nullable": true, + "x-omitempty": true + }, + "paymentOptions": { + "type": "array", + "nullable": true, + "items": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "maxAmount": { + "type": "integer", + "description": "The maximum amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "minAmount": { + "type": "integer", + "description": "The minimum amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "name": { + "type": "string", + "description": "The display name of the option.", + "example": "2 Months EMI Amount" + }, + "amount": { + "type": "integer", + "description": "The amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "amountMultiple": { + "type": "integer", + "description": "The payment amount should be a multiple of this value in paise.", + "nullable": true, + "x-omitempty": true + } + }, + "x-go-name": "PaymentOption" + }, + "x-omitempty": true + }, + "amountMultiple": { + "type": "integer", + "description": "Bill payment amount should be multiple of this value in paise", + "nullable": true, + "x-omitempty": true + }, + "billDate": { + "type": "string", + "format": "date", + "example": "2021-01-02" + }, + "customerName": { + "type": "string", + "example": "Manoj Chekuri" + }, + "maxAmount": { + "type": "integer", + "description": "Maximum amount that can be paid for this bill in paise", + "nullable": true, + "x-omitempty": true + } + }, + "x-go-name": "BillData" + }, + "x-omitempty": true }, - "accountInfo": { - "maxLength": 50, - "minLength": 1, + "refId": { "type": "string", - "example": "some-info" - }, - "amount": { - "minimum": 1, - "type": "integer", - "description": "Amount in Paise" - }, - "currency": { - "type": "integer", - "nullable": true + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" }, - "custConvFee": { - "type": "integer", - "nullable": true + "billerResponseType": { + "type": "string", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], + "x-nullable": true, + "x-omitempty": false }, - "mode": { + "exactness": { "type": "string", - "example": "Internet Banking", + "example": "Exact", "enum": [ - "Internet Banking", - "Debit Card", - "Credit Card", - "Prepaid Card", - "IMPS", - "Cash", - "UPI", - "Wallet", - "NEFT", - "AEPS", - "Account Transfer", - "Bharat QR", - "USSD" + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" ] }, - "paymentRefId": { - "maxLength": 35, - "minLength": 6, + "status": { "type": "string", - "example": "BD019181220291" + "example": "Success", + "enum": [ + "Processing", + "Success", + "Failure", + "Credit_Adjustment" + ] }, - "selectedPaymentOptions": { + "additionalInfo": { "type": "array", - "description": "List of selected payment options", - "nullable": true, + "description": "This tag captures the additional information provided by the Biller as part of response for a successful transaction.", "items": { "required": [ - "amount", - "name" + "name", + "value" ], "type": "object", "properties": { - "amount": { - "minimum": 1, - "type": "integer", - "description": "The amount to be paid for the selected payment option." - }, "name": { "type": "string", - "description": "The name of the payment option as returned in bill fetch response.", - "example": "Early Payment Amount" + "example": "Line item 1" + }, + "value": { + "type": "string", + "example": "Value 1" } } }, - "x-nullable": true, - "x-omitempty": true + "x-go-name": "BillAdditionalInfo", + "x-omitempty": false }, - "timestamp": { + "billerRefId": { "type": "string", - "format": "date-time", - "example": "2020-12-12T13:12:00+05:30" + "example": "7f16a032e514" } } - }, - "refId": { - "type": "string", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - }, - "status": { - "type": "string", - "example": "Success", - "enum": [ - "Processing", - "Success", - "Failure", - "Credit_Adjustment" - ] - }, - "transactionId": { - "type": "string", - "example": "AX30910192192192192" } } - }, - "success": { - "type": "boolean", - "example": true - }, - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" } - }, - "x-omitempty": true, - "x-go-name": "CouAgentBillPaymentResponse" + ], + "x-go-name": "CouAgentBillFetchResponseV2" } } } }, - "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" - } - } - } - } - } - } - }, - "security": [ - { - "Production": [ - "bbps:partner" - ] - }, - { - "Sandbox": [ - "bbps:partner" - ] - }, - { - "QA": [ - "bbps:partner" - ] - } - ], - "x-codegen-request-body-name": "CouAgentAsyncRequest" - } - }, - "/api/v2/bbps/bills/complaint/request": { - "post": { - "tags": ["Dispute"], - "operationId": "DisputeRequest", - "description": "Raise dispute request API", - "parameters": [ - { - "name": "X-PARTNER-ID", - "in": "header", - "description": "The Partner ID provided by Setu.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "Authorization", - "type": "string", - "description": "OAuth token. Required for authorization.", - "in": "header", - "required": true - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "required": [ - "description", - "disputeType" - ], - "type": "object", - "properties": { - "description": { - "type": "string", - "example": "Test Transaction Based Complaint" - }, - "disputeType": { - "type": "string", - "description": "The type of NPCI dispute", - "enum": [ - "account-not-updated", - "double-payment", - "paid-to-wrong-account", - "others", - "amount-deducted-biller-credited-no-transaction-id", - "amount-deducted-biller-not-credited-no-transaction-id", - "amount-deducted-multiple-times", - "service-not-received", - "service-disconnected", - "late-payment-surcharge", - "wrong-amount", - "payment-info-delay" - ] - } - } - }, - { - "required": [ - "transactionId" - ], - "type": "object", - "properties": { - "transactionId": { - "type": "string", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - } - } - } - ], - "x-go-name": "CouAgentDisputeRequestV2" - } - } - }, - "required": true - }, - "responses": { - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "required": ["error", "success", "traceId"], - "type": "object", - "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "error": { - "required": ["code", "message"], - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" - }, - "message": { - "type": "string", - "example": "error-message-if-any" - } - } - }, - "success": { - "type": "boolean", - "example": false - } - } - } - } - } - }, - "200": { - "description": "OK", - "headers": { - "X-Frame-Options": { - "description": "X Frame options", + "200-multiple-bills-list": { + "description": "Success - Biller returns multiple bills with selection type", + "headers": { + "X-Frame-Options": { + "description": "X Frame options", "schema": { "type": "string" } @@ -2548,227 +1849,241 @@ "content": { "application/json": { "schema": { - "required": [ - "data", - "success", - "traceId" - ], - "type": "object", - "properties": { - "data": { + "allOf": [ + { "required": [ - "refId" + "success", + "traceId" ], "type": "object", "properties": { - "duplicate": { + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + } + } + }, + { + "required": [ + "data" + ], + "type": "object", + "properties": { + "data": { "required": [ - "code", - "message" + "refId", + "status" ], "type": "object", "properties": { - "code": { + "billerSelectionType": { "type": "string", - "example": "error-code-if-any" + "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "MULTIPLE", + "ALL" + ], + "x-omitempty": false, + "x-nullable": true }, - "message": { - "type": "string" - }, - "refId": { - "type": "string", - "description": "The generated Reference ID for the request." - } - } - }, - "refId": { - "type": "string", - "description": "The generated Reference ID for the request." - }, - "upmsRegistration": { - "type": "object", - "properties": { - "duplicate": { - "required": [ - "code", - "message" - ], - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "refId": { - "type": "string", - "description": "The generated Reference ID for the request." - } - } - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "invalid-mandate" + "bills": { + "type": "array", + "description": "Multiple bills in case of response from B2B biller", + "items": { + "required": [ + "billDate", + "billNumber", + "billPeriod", + "customerName", + "dueDate" + ], + "type": "object", + "properties": { + "amount": { + "type": "integer", + "nullable": true, + "x-omitempty": true + }, + "billNumber": { + "type": "string", + "example": "1232332" + }, + "billPeriod": { + "type": "string", + "example": "ONETIME|DAILY|WEEKLY|BIMONTHLY|MONTHLY|QUARTERLY|HALFYEARLY|YEARLY|ASPRESENTED" + }, + "dueDate": { + "type": "string", + "format": "date", + "example": "2021-09-24" + }, + "label": { + "type": "string", + "nullable": true, + "example": "Advance EMI", + "x-omitempty": true + }, + "minAmount": { + "type": "integer", + "description": "Minimum amount that can be paid for this bill in paise", + "nullable": true, + "x-omitempty": true + }, + "paymentOptions": { + "type": "array", + "nullable": true, + "items": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "maxAmount": { + "type": "integer", + "description": "The maximum amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "minAmount": { + "type": "integer", + "description": "The minimum amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "name": { + "type": "string", + "description": "The display name of the option.", + "example": "2 Months EMI Amount" + }, + "amount": { + "type": "integer", + "description": "The amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "amountMultiple": { + "type": "integer", + "description": "The payment amount should be a multiple of this value in paise.", + "nullable": true, + "x-omitempty": true + } + }, + "x-go-name": "PaymentOption" + }, + "x-omitempty": true + }, + "amountMultiple": { + "type": "integer", + "description": "Bill payment amount should be multiple of this value in paise", + "nullable": true, + "x-omitempty": true + }, + "billDate": { + "type": "string", + "format": "date", + "example": "2021-01-02" + }, + "customerName": { + "type": "string", + "example": "Manoj Chekuri" + }, + "maxAmount": { + "type": "integer", + "description": "Maximum amount that can be paid for this bill in paise", + "nullable": true, + "x-omitempty": true + } }, - "message": { - "type": "string", - "example": "The mandate configuration is invalid" - } + "x-go-name": "BillData" }, - "description": "Present only when acknowledgement status for the registration is FAILED" + "x-omitempty": true }, "refId": { "type": "string", - "description": "The reference ID for the UPMS registration", "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" }, + "billerResponseType": { + "type": "string", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], + "x-nullable": true, + "x-omitempty": false + }, + "exactness": { + "type": "string", + "example": "Exact", + "enum": [ + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" + ] + }, "status": { "type": "string", - "description": "Status of the registration request processing by our system", - "example": "PENDING", + "example": "Success", "enum": [ - "PENDING", - "FAILED" + "Processing", + "Success", + "Failure", + "Credit_Adjustment" ] + }, + "additionalInfo": { + "type": "array", + "description": "This tag captures the additional information provided by the Biller as part of response for a successful transaction.", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Line item 1" + }, + "value": { + "type": "string", + "example": "Value 1" + } + } + }, + "x-go-name": "BillAdditionalInfo", + "x-omitempty": false + }, + "billerRefId": { + "type": "string", + "example": "7f16a032e514" } - }, - "description": "Present only when upmsRegistration was requested" + } } } - }, - "success": { - "type": "boolean", - "description": "Boolean value indicating the status of the request", - "example": true - }, - "traceId": { - "type": "string", - "description": "The traceId generated for the request", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10461713" } - } + ], + "x-go-name": "CouAgentBillFetchResponseV2" } } } }, - "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": "error-code-if-any" - }, - "message": { - "type": "string", - "example": "error-message-if-any" - } - } - }, - "success": { - "type": "boolean", - "example": false - }, - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - } - } - } - } - } - } - }, - "security": [ - { - "Production": [ - "bbps:partner" - ] - }, - { - "Sandbox": [ - "bbps:partner" - ] - }, - { - "QA": [ - "bbps:partner" - ] - } - ], - "x-codegen-request-body-name": "CouAgentDisputeRequest" - } - }, - "/api/v2/bbps/bills/complaint/response": { - "post": { - "tags": ["Dispute"], - "operationId": "DisputeResponse", - "description": "Raise dispute response API", - "parameters": [ - { - "name": "X-PARTNER-ID", - "in": "header", - "description": "The Partner ID provided by Setu.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "Authorization", - "type": "string", - "description": "OAuth token. Required for authorization.", - "in": "header", - "required": true - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "required": [ - "refId" - ], - "type": "object", - "properties": { - "refId": { - "type": "string", - "description": "The generated BBPS Reference ID for the request.", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - } - }, - "x-go-name": "RefIdBasedRequest", - "x-omitempty": true - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "headers": { - "X-Frame-Options": { - "description": "X Frame options", + "200-prepaid-with-plans": { + "description": "Success - Biller returns plan information for prepaid recharge", + "headers": { + "X-Frame-Options": { + "description": "X Frame options", "schema": { "type": "string" } @@ -2813,385 +2128,293 @@ "content": { "application/json": { "schema": { - "required": [ - "success", - "traceId" - ], - "type": "object", - "properties": { - "data": { - "required": ["assignedTo", "disputeId", "refId", "remarks", "status"], - "type": "object", - "properties": { - "assignedTo": { - "type": "string", - "example": "ICICI BOU" - }, - "disposition": { - "type": "string", - "enum": [ - "D11", - "D12", - "D13", - "D21", - "D22", - "D23", - "D31", - "D32" - ] - }, - "disputeId": { - "type": "string", - "example": "OP0121046567755" - }, - "refId": { - "type": "string", - "description": "The generated BBPS Reference ID for the request.", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - }, - "remarks": { - "type": "string", - "example": "Resolved in favour of Biller" - }, - "responseReason": { - "type": "string", - "example": "Ticket already IN-PROGRESS" - }, - "status": { - "type": "string", - "description": "BBPS Complaint status", - "example": "ASSIGNED", - "enum": [ - "ASSIGNED", - "REJECTED", - "RESOLVED", - "DEFAULT_RESOLVED", - "REFUNDED", - "PENDING_REFUND" - ] - }, - "ticketTAT": { - "type": "string", - "format": "date", - "nullable": true - }, - "ticketType": { - "type": "string", - "enum": [ - "DISPUTE", - "COMPLAINT" - ] - } - }, - "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": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "error": { + "allOf": [ + { "required": [ - "code", - "message" + "success", + "traceId" ], "type": "object", "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" + "success": { + "type": "boolean", + "example": true }, - "message": { + "traceId": { "type": "string", - "example": "error-message-if-any" + "example": "C3SFG0O6N88R6UI7EQ" } } }, - "success": { - "type": "boolean", - "example": false - } - } - } - } - } - }, - "500": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "required": [ - "error", - "success", - "traceId" - ], - "type": "object", - "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "error": { + { "required": [ - "code", - "message" + "data" ], "type": "object", "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" - }, - "message": { - "type": "string", - "example": "error-message-if-any" - } - } - }, - "success": { - "type": "boolean", - "example": false - } - } - } - } - } - } - }, - "security": [ - { - "Production": [ - "bbps:partner" - ] - }, - { - "Sandbox": [ - "bbps:partner" - ] - }, - { - "QA": [ - "bbps:partner" - ] - } - ], - "x-codegen-request-body-name": "CouAgentAsyncRequest" - } - }, - "/api/v2/bbps/billers": { - "get": { - "tags": [ - "List" - ], - "description": "Returns the list of billers.", - "parameters": [ - { - "name": "X-PARTNER-ID", - "in": "header", - "description": "The Partner ID provided by Setu.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "Authorization", - "type": "string", - "description": "OAuth token. Required for authorization.", - "in": "header", - "required": true - }, - { - "name": "categoryName", - "in": "query", - "description": "Biller category. The query parameter follows a multi instance format. Usage: categoryName=category1&categoryName=category2", - "style": "form", - "explode": true, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "ids", - "in": "query", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" + "data": { + "required": [ + "refId", + "status" + ], + "type": "object", + "properties": { + "billerSelectionType": { + "type": "string", + "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "MULTIPLE", + "ALL" + ], + "x-omitempty": false, + "x-nullable": true + }, + "bills": { + "type": "array", + "description": "Multiple bills in case of response from B2B biller", + "items": { + "required": [ + "billDate", + "billNumber", + "billPeriod", + "customerName", + "dueDate" + ], + "type": "object", + "properties": { + "amount": { + "type": "integer", + "nullable": true, + "x-omitempty": true + }, + "billNumber": { + "type": "string", + "example": "1232332" + }, + "billPeriod": { + "type": "string", + "example": "ONETIME|DAILY|WEEKLY|BIMONTHLY|MONTHLY|QUARTERLY|HALFYEARLY|YEARLY|ASPRESENTED" + }, + "dueDate": { + "type": "string", + "format": "date", + "example": "2021-09-24" + }, + "label": { + "type": "string", + "nullable": true, + "example": "Advance EMI", + "x-omitempty": true + }, + "minAmount": { + "type": "integer", + "description": "Minimum amount that can be paid for this bill in paise", + "nullable": true, + "x-omitempty": true + }, + "paymentOptions": { + "type": "array", + "nullable": true, + "items": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "maxAmount": { + "type": "integer", + "description": "The maximum amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "minAmount": { + "type": "integer", + "description": "The minimum amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "name": { + "type": "string", + "description": "The display name of the option.", + "example": "2 Months EMI Amount" + }, + "amount": { + "type": "integer", + "description": "The amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true + }, + "amountMultiple": { + "type": "integer", + "description": "The payment amount should be a multiple of this value in paise.", + "nullable": true, + "x-omitempty": true + } + }, + "x-go-name": "PaymentOption" + }, + "x-omitempty": true + }, + "amountMultiple": { + "type": "integer", + "description": "Bill payment amount should be multiple of this value in paise", + "nullable": true, + "x-omitempty": true + }, + "billDate": { + "type": "string", + "format": "date", + "example": "2021-01-02" + }, + "customerName": { + "type": "string", + "example": "Manoj Chekuri" + }, + "maxAmount": { + "type": "integer", + "description": "Maximum amount that can be paid for this bill in paise", + "nullable": true, + "x-omitempty": true + } + }, + "x-go-name": "BillData" + }, + "x-omitempty": true + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + }, + "billerPlanResponse": { + "type": "object", + "properties": { + "planInfo": { + "type": "array", + "description": "Array of plan information as defined in BBPS schema", + "items": { + "required": [ + "details", + "type" + ], + "type": "object", + "properties": { + "details": { + "type": "array", + "description": "Array of plan details", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the plan parameter", + "example": "Plan_ID" + }, + "value": { + "type": "string", + "description": "Value of the plan parameter", + "example": "599" + } + } + } + }, + "type": { + "type": "string", + "description": "Type of the plan as defined in BBPS schema", + "enum": [ + "NEW", + "EXISTING", + "RECOMMENDED", + "CURATED", + "ACTIVATED" + ] + } + } + } + } + }, + "description": "Plan details returned by the biller during validation (used for prepaid recharge)", + "nullable": true, + "x-omitempty": true + }, + "billerResponseType": { + "type": "string", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], + "x-nullable": true, + "x-omitempty": false + }, + "exactness": { + "type": "string", + "example": "Exact", + "enum": [ + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" + ] + }, + "status": { + "type": "string", + "example": "Success", + "enum": [ + "Processing", + "Success", + "Failure", + "Credit_Adjustment" + ] + }, + "additionalInfo": { + "type": "array", + "description": "This tag captures the additional information provided by the Biller as part of response for a successful transaction.", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Line item 1" + }, + "value": { + "type": "string", + "example": "Value 1" + } + } + }, + "x-go-name": "BillAdditionalInfo", + "x-omitempty": false + }, + "billerRefId": { + "type": "string", + "example": "7f16a032e514" + } + } + } + } + } + ], + "x-go-name": "CouAgentBillFetchResponseV2" + } } } }, - { - "name": "limit", - "in": "query", - "description": "Limit", - "schema": { - "maximum": 250.0, - "minimum": 1.0, - "type": "integer" - } - }, - { - "name": "after", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "search", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "pincode", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "city", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "state", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "country", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "coverage", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "tags", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "paymentChannel", - "in": "query", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "INT", - "INTB", - "MOB", - "BNKBRNCH", - "BSC", - "AGT", - "KIOSK", - "ATM", - "MOBB", - "POS", - "MPOS" - ] - } - } - }, - { - "name": "paymentMode", - "in": "query", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "Internet Banking", - "Debit Card", - "Credit Card", - "Prepaid Card", - "IMPS", - "Cash", - "UPI", - "Wallet", - "NEFT", - "AEPS", - "Account Transfer", - "Bharat QR", - "USSD" - ] - } - } - }, - { - "name": "updatedSince", - "in": "query", - "description": "Used to fetch billers updated since the given date-time in IST", - "schema": { - "type": "string", - "format": "date-time" - } - }, - { - "name": "upmsEnabled", - "in": "query", - "description": "Filter billers by UPMS enabled status", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "List of billers", + "200-processing-status": { + "description": "Success - Fetch request is still being processed", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -3239,514 +2462,382 @@ "content": { "application/json": { "schema": { - "required": [ - "success", - "traceId" - ], - "type": "object", - "properties": { - "data": { + "allOf": [ + { "required": [ - "billers" + "success", + "traceId" ], "type": "object", "properties": { - "billers": { - "type": "array", - "items": { - "required": [ - "categoryName", - "customerParams", - "exactness", - "fetchApiType", - "id", - "name", - "payWithoutFetchAllowed", - "paymentChannels", - "paymentModes", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "bbpsUpdateTimestamp": { - "type": "string", - "description": "Last updated date-time of the Biller accurate to the nearest day.", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": true - }, - "billerAdditionalInfo": { - "type": "array", - "items": { - "required": [ - "dataType", - "optional", - "paramName" - ], - "type": "object", - "properties": { - "dataType": { - "type": "string", - "example": "ALPHANUMERIC", - "enum": [ - "ALPHANUMERIC", - "NUMERIC" - ] - }, - "optional": { - "type": "boolean", - "example": false - }, - "paramName": { - "type": "string", - "example": "Package Duration" - } - } - } - }, - "billerAdditionalInfoPayment": { - "type": "array", - "items": { - "required": [ - "dataType", - "optional", - "paramName" - ], - "type": "object", - "properties": { - "dataType": { - "type": "string", - "example": "ALPHANUMERIC", - "enum": [ - "ALPHANUMERIC", - "NUMERIC" - ] - }, - "optional": { - "type": "boolean", - "example": false - }, - "paramName": { - "type": "string", - "example": "Package Duration" - } - } - } - }, - "categoryName": { - "type": "string", - "description": "Biller Category", - "example": "loan-repayment" - }, - "city": { - "type": "string", - "example": "Hyderabad" - }, - "country": { - "type": "string", - "example": "IND" - }, - "coverage": { - "type": "string", - "example": "IND-TEL-Hyderabad" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "customerParams": { - "type": "array", - "items": { - "required": [ - "dataType", - "maxLength", - "minLength", - "optional", - "paramName", - "regex", - "values", - "visibility" - ], - "type": "object", - "properties": { - "dataType": { - "type": "string", - "example": "ALPHANUMERIC" - }, - "maxLength": { - "type": "integer" - }, - "minLength": { - "type": "integer" - }, - "optional": { - "type": "boolean", - "example": false - }, - "paramName": { - "type": "string", - "example": "Loan Account Number" - }, - "regex": { - "type": "string", - "example": "^[a-zA-Z0-9]{7,15}" - }, - "values": { - "type": "string", - "example": "CHOICE1,CHOICE2,CHOICE3" - }, - "visibility": { - "type": "boolean", - "example": true - } - } - } - }, - "customerParamsGroups": { - "type": "array", - "items": { - "type": "array", - "items": { + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + } + } + }, + { + "required": [ + "data" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "refId", + "status" + ], + "type": "object", + "properties": { + "billerSelectionType": { + "type": "string", + "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "MULTIPLE", + "ALL" + ], + "x-omitempty": false, + "x-nullable": true + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + }, + "billerResponseType": { + "type": "string", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], + "x-nullable": true, + "x-omitempty": false + }, + "exactness": { + "type": "string", + "example": "Exact", + "enum": [ + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" + ] + }, + "status": { + "type": "string", + "example": "Success", + "enum": [ + "Processing", + "Success", + "Failure", + "Credit_Adjustment" + ] + }, + "billerRefId": { + "type": "string", + "example": "7f16a032e514" + } + } + } + } + } + ], + "x-go-name": "CouAgentBillFetchResponseV2" + } + } + } + }, + "200-upms-registration": { + "description": "Success - Bill fetch with mandate registration", + "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": { + "allOf": [ + { + "required": [ + "success", + "traceId" + ], + "type": "object", + "properties": { + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + } + } + }, + { + "required": [ + "data" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "refId", + "status" + ], + "type": "object", + "properties": { + "billerSelectionType": { + "type": "string", + "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "MULTIPLE", + "ALL" + ], + "x-omitempty": false, + "x-nullable": true + }, + "bills": { + "type": "array", + "description": "Multiple bills in case of response from B2B biller", + "items": { + "required": [ + "billDate", + "billNumber", + "billPeriod", + "customerName", + "dueDate" + ], + "type": "object", + "properties": { + "amount": { + "type": "integer", + "nullable": true, + "x-omitempty": true + }, + "billNumber": { "type": "string", - "example": "Param 1" - } - } - }, - "enforcesSameDayFetchPay": { - "type": "boolean", - "example": true, - "x-omitempty": false - }, - "exactness": { - "type": "string", - "example": "Exact", - "enum": [ - "Exact", - "Exact and above", - "Exact and below", - "Any", - "RANGE" - ] - }, - "fetchApiType": { - "type": "string", - "enum": [ - "BILL_FETCH", - "BILL_VALIDATE", - "BILL_DIRECT" - ] - }, - "id": { - "type": "string", - "description": "Identifier of the biller in BBPS.", - "example": "ADIT00000NAT0T" - }, - "interchangeFee": { - "type": "array", - "items": { - "type": "object", - "properties": { - "feeCode": { - "type": "string", - "example": "CCF1" - }, - "feeDesc": { - "type": "string", - "example": "Customer Convenience Fee" - }, - "feeDirection": { - "type": "string", - "example": "C2B" - }, - "interchangeFeeDetails": { + "example": "1232332" + }, + "billPeriod": { + "type": "string", + "example": "ONETIME|DAILY|WEEKLY|BIMONTHLY|MONTHLY|QUARTERLY|HALFYEARLY|YEARLY|ASPRESENTED" + }, + "dueDate": { + "type": "string", + "format": "date", + "example": "2021-09-24" + }, + "label": { + "type": "string", + "nullable": true, + "example": "Advance EMI", + "x-omitempty": true + }, + "minAmount": { + "type": "integer", + "description": "Minimum amount that can be paid for this bill in paise", + "nullable": true, + "x-omitempty": true + }, + "paymentOptions": { + "type": "array", + "nullable": true, + "items": { "required": [ - "effctvFrom", - "effctvTo", - "flatFee", - "percentFee", - "tranAmtRangeMax", - "tranAmtRangeMin" + "name" ], "type": "object", "properties": { - "effctvFrom": { - "type": "string", - "example": "2024-01-01" - }, - "effctvTo": { - "type": "string", - "example": "2024-12-31" + "maxAmount": { + "type": "integer", + "description": "The maximum amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true }, - "flatFee": { - "type": "number", - "format": "decimal", - "example": 0.0 + "minAmount": { + "type": "integer", + "description": "The minimum amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true }, - "percentFee": { - "type": "number", - "format": "decimal", - "example": 1.0 + "name": { + "type": "string", + "description": "The display name of the option.", + "example": "2 Months EMI Amount" }, - "tranAmtRangeMax": { + "amount": { "type": "integer", - "format": "int64" + "description": "The amount that can be paid for this option in paise.", + "nullable": true, + "x-omitempty": true }, - "tranAmtRangeMin": { + "amountMultiple": { "type": "integer", - "format": "int64" + "description": "The payment amount should be a multiple of this value in paise.", + "nullable": true, + "x-omitempty": true } - } - } - } - } - }, - "logo": { - "type": "string", - "example": "logo" - }, - "modifiedAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "name": { - "type": "string", - "description": "Name of the biller.", - "example": "Umbrella Corporation" - }, - "payWithoutFetchAllowed": { - "type": "boolean", - "description": "Flag indicating if the Biller accepts adhoc payment", - "example": true - }, - "paymentChannels": { - "type": "array", - "items": { - "required": [ - "maxLimit", - "minLimit", - "paymentChannel", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "maxLimit": { - "type": "integer" - }, - "minLimit": { - "type": "integer" - }, - "paymentChannel": { - "type": "string", - "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", - "example": "INT", - "enum": [ - "INT", - "INTB", - "MOB", - "BNKBRNCH", - "BSC", - "AGT", - "KIOSK", - "ATM", - "MOBB", - "POS", - "MPOS" - ] - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - } - } - } - }, - "paymentModes": { - "type": "array", - "items": { - "required": [ - "maxLimit", - "minLimit", - "paymentMode", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "maxLimit": { - "type": "integer" - }, - "minLimit": { - "type": "integer" - }, - "paymentMode": { - "type": "string", - "example": "Internet Banking", - "enum": [ - "Internet Banking", - "Debit Card", - "Credit Card", - "Prepaid Card", - "IMPS", - "Cash", - "UPI", - "Wallet", - "NEFT", - "AEPS", - "Account Transfer", - "Bharat QR", - "USSD" - ] + }, + "x-go-name": "PaymentOption" }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - } + "x-omitempty": true + }, + "amountMultiple": { + "type": "integer", + "description": "Bill payment amount should be multiple of this value in paise", + "nullable": true, + "x-omitempty": true + }, + "billDate": { + "type": "string", + "format": "date", + "example": "2021-01-02" + }, + "customerName": { + "type": "string", + "example": "Manoj Chekuri" + }, + "maxAmount": { + "type": "integer", + "description": "Maximum amount that can be paid for this bill in paise", + "nullable": true, + "x-omitempty": true } - } + }, + "x-go-name": "BillData" }, - "planRequirement": { - "type": "string", - "description": "Indicates if plan selection is required for bill payments", - "example": "MANDATORY", - "enum": [ - "MANDATORY", - "OPTIONAL", - "CONDITIONAL" - ], - "x-omitempty": true - }, - "responseType": { - "type": "string", - "nullable": true, - "example": "SINGLE", - "enum": [ - "SINGLE", - "LIST", - "SELECTIVE" - ], - "x-nullable": true, - "x-omitempty": false - }, - "selectionType": { - "type": "string", - "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", - "nullable": true, - "example": "SINGLE", - "enum": [ - "SINGLE", - "MULTIPLE", - "ALL" + "x-omitempty": true + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + }, + "billerResponseType": { + "type": "string", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], + "x-nullable": true, + "x-omitempty": false + }, + "exactness": { + "type": "string", + "example": "Exact", + "enum": [ + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" + ] + }, + "status": { + "type": "string", + "example": "Success", + "enum": [ + "Processing", + "Success", + "Failure", + "Credit_Adjustment" + ] + }, + "upmsRegistrationRefId": { + "type": "string", + "nullable": true, + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202", + "x-omitempty": true + }, + "additionalInfo": { + "type": "array", + "description": "This tag captures the additional information provided by the Biller as part of response for a successful transaction.", + "items": { + "required": [ + "name", + "value" ], - "x-nullable": true, - "x-omitempty": false - }, - "state": { - "type": "string", - "example": "TEL" - }, - "subCategoryName": { - "type": "string", - "example": "DAIRY" - }, - "supportsPendingStatus": { - "type": "boolean", - "description": "Flag indicating whether pending status is applicable for the biller or not", - "example": false - }, - "tags": { - "type": "string", - "example": "tags" - }, - "upmsBillerParams": { - "type": "array", - "description": "UPMS-specific biller parameters", - "items": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "UPMS parameter name", - "example": "mandateType" - }, - "value": { - "type": "string", - "description": "UPMS parameter value", - "example": "DEBIT", - "x-omitempty": true - } + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Line item 1" + }, + "value": { + "type": "string", + "example": "Value 1" } - }, - "x-omitempty": true - }, - "upmsBillerType": { - "type": "string", - "description": "Type of UPMS biller", - "nullable": true, - "example": "MULTIPLE", - "x-omitempty": true - }, - "upmsEnabled": { - "type": "boolean", - "description": "Indicates if UPMS is enabled for this biller", - "nullable": true, - "example": true, - "x-omitempty": true + } }, - "upmsRegistrationOverridingRule": { - "type": "string", - "description": "Rule specifying how to handle UPMS registration conflicts", - "nullable": true, - "example": "NEWEST", - "x-omitempty": true - } + "x-go-name": "BillAdditionalInfo", + "x-omitempty": false }, - "x-go-name": "CouBillerDetails" + "billerRefId": { + "type": "string", + "example": "7f16a032e514" + } } - }, - "nextPage": { - "type": "string", - "example": "/api/bbps/billers?search=Aditya&CategoryCode=Loan+Repayment&CategoryCode=Insurance&after=ABCC00000PTNNS" - }, - "total": { - "type": "integer" - } - } - }, - "error": { - "required": [ - "code", - "message" - ], - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "error-code-if-any" - }, - "message": { - "type": "string", - "example": "error-message-if-any" } } - }, - "success": { - "type": "boolean", - "example": true - }, - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" } - } + ], + "x-go-name": "CouAgentBillFetchResponseV2" } } } @@ -3763,10 +2854,6 @@ ], "type": "object", "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, "error": { "required": [ "code", @@ -3776,17 +2863,21 @@ "properties": { "code": { "type": "string", - "example": "error-code-if-any" + "example": "validation-error" }, "message": { "type": "string", - "example": "error-message-if-any" + "example": "Input is invalid" } } }, "success": { "type": "boolean", "example": false + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" } } } @@ -3794,7 +2885,7 @@ } }, "500": { - "description": "Bad request", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -3805,10 +2896,6 @@ ], "type": "object", "properties": { - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - }, "error": { "required": [ "code", @@ -3818,17 +2905,21 @@ "properties": { "code": { "type": "string", - "example": "error-code-if-any" + "example": "validation-error" }, "message": { "type": "string", - "example": "error-message-if-any" + "example": "Input is invalid" } } }, "success": { "type": "boolean", "example": false + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" } } } @@ -3852,367 +2943,377 @@ "bbps:partner" ] } - ] + ], + "x-codegen-request-body-name": "CouAgentAsyncRequest" } }, - "/api/v2/bbps/billers/plans": { - "get": { - "tags": ["List"], - "description": "Returns the list of plans for a given set of billers", - "operationId": "getBillerPlans", + "/api/v2/bbps/bills/payment/request": { + "post": { + "tags": [ + "Pay" + ], + "description": "Bill payment request API", "parameters": [ { "name": "X-PARTNER-ID", "in": "header", - "description": "The Partner ID provided by Setu.", + "description": "Partner ID", "required": true, "schema": { "type": "integer" } }, { - "name": "billerIds", - "in": "query", - "description": "Biller IDs", + "name": "Authorization", + "in": "header", "required": true, - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "limit", - "in": "query", - "description": "Number of plans to return per page", - "schema": { - "maximum": 1000.0, - "minimum": 1.0, - "type": "integer" - } - }, - { - "name": "after", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "updatedSince", - "in": "query", - "description": "Used to fetch plans updated since the given date-time in IST", "schema": { "type": "string", - "format": "date-time" - } + "pattern": "^Bearer [a-zA-Z0-9\\-\\._~\\+\\/]+=*$" + }, + "description": "Bearer token for authentication. Format: `Bearer `", + "example": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." } ], - "responses": { - "200": { - "description": "List of plans for the biller", - "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": ["plans"], - "type": "object", - "properties": { - "nextPage": { - "type": "string", - "example": "/api/bbps/billers/plans?biller_ids=BILLER_01&after=ABCC00000PTNNS" - }, - "plans": { - "type": "array", - "items": { - "required": [ - "Id", - "amountInRupees", - "categoryType", - "description", - "status" - ], - "type": "object", - "properties": { - "Id": { - "type": "string", - "description": "Plan ID", - "example": "1.0", - "x-order": 1.0 - }, - "additionalInfo": { - "minItems": 1, - "type": "array", - "description": "Plan Additional information details provided by the Biller.", - "example": [ - { - "paramName": "Mobile Number", - "paramValue": "Text" - } - ], - "items": { - "type": "object", - "properties": { - "paramName": { - "type": "string", - "example": "Plan Additional information parameter name." - }, - "paramValue": { - "type": "string", - "example": "Plan Additional information parameter value." - } - }, - "example": { - "paramName": "Mobile Number", - "paramValue": "Text" - }, - "x-go-name": "PlanAdditionalInfoItem" - }, - "x-omitempty": true - }, - "amountInRupees": { - "type": "string", - "example": "22.0", - "x-order": 2.0 - }, - "billerId": { - "type": "string", - "description": "Biller ID to which the plan belongs to", - "example": "1.0", - "x-order": 0.0 - }, - "categorySubType": { - "type": "object", - "properties": {}, - "description": "Plan sub category as defined by the Biller.", - "example": { - "subType": "1 Month" - }, - "x-omitempty": true, - "x-order": 4.0 - }, - "categoryType": { - "type": "string", - "description": "Plan category as defined by the Biller.", - "example": "VIP", - "x-order": 3.0 - }, - "description": { - "type": "string", - "description": "Plan description as defined by the Biller.", - "example": "Unlimited Live Sports" - }, - "effectiveFrom": { - "type": "string", - "description": "Effective from date of corresponding Plan.", - "format": "date", - "nullable": true, - "example": "2017-07-21", - "x-omitempty": false - }, - "effectiveTo": { - "type": "string", - "description": "Effective to date of corresponding Plan.", - "format": "date", - "nullable": true, - "example": "2020-08-21", - "x-omitempty": false - }, - "status": { - "type": "string", - "description": "Effective to date of corresponding Plan.", - "example": "ACTIVE", - "enum": ["ACTIVE", "DEACTIVATED"] - } + "requestBody": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "required": [ + "paymentDetails" + ], + "type": "object", + "properties": { + "bills": { + "uniqueItems": true, + "type": "array", + "nullable": true, + "example": "Selection on bills in case of list billers", + "items": { + "required": [ + "amount", + "billNumber" + ], + "type": "object", + "properties": { + "amount": { + "minimum": 1, + "type": "integer", + "description": "Amount in Paise" + }, + "billNumber": { + "type": "string", + "example": "B1234567" } - } - }, - "total": { - "type": "integer" - } - } - }, - "error": { - "required": ["code", "message"], - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "validation-error" - }, - "message": { - "type": "string", - "example": "Input is invalid" - } - } - }, - "success": { - "type": "boolean", - "example": true - }, - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - } - } - } - } - } - }, - "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" + }, + "x-omitempty": true }, - "message": { - "type": "string", - "example": "Input is invalid" + "x-omitempty": true + }, + "remitter": { + "type": "object", + "properties": { + "email": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "name": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "pan": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "aadhaar": { + "maxLength": 50, + "minLength": 1, + "type": "string" + } } - } - }, - "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" + }, + "agent": { + "required": [ + "channel", + "id" + ], + "type": "object", + "properties": { + "mac": { + "type": "string", + "description": "Mandatory if channel is `INT`, `INTB`. Not required for others.", + "format": "mac", + "example": "48-4D-7E-CB-DB-6F" + }, + "postalCode": { + "pattern": "^[1-9][0-9]{5}$", + "type": "string", + "description": "Mandatory if channel is `AGT`, `BSC` and `BNKBRNCH`. Not required for others. This has to match the data submitted to NPCI for this agent ID\n", + "example": "600001" + }, + "terminalId": { + "type": "string", + "description": "Mandatory if channel is `ATM`, `AGT`, `KIOSK` and `BSC` . Not required for others. This has to match the data submitted to NPCI for this agent ID\n", + "example": "6000011234" + }, + "app": { + "type": "string", + "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", + "example": "SmartPay" + }, + "geocode": { + "type": "string", + "description": "Mandatory if channel is `AGT`, `BSC` and `BNKBRNCH`. Not required for others. This has to match the data submitted to NPCI for this agent ID\n", + "example": "19.0139,72.8254" + }, + "ip": { + "type": "string", + "description": "Mandatory if channel is `INT`, `INTB`. Not required for others.", + "format": "ipv4", + "example": "124.170.23.24" + }, + "mobile": { + "maxLength": 22, + "minLength": 6, + "pattern": "^\\d{6,22}$", + "type": "string", + "description": "Mobile number with 6 to 22 digits are valid." + }, + "os": { + "type": "string", + "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", + "example": "iOS", + "enum": [ + "iOS", + "Android" + ] + }, + "channel": { + "type": "string", + "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", + "example": "INT", + "enum": [ + "INT", + "INTB", + "MOB", + "BNKBRNCH", + "BSC", + "AGT", + "KIOSK", + "ATM", + "MOBB", + "POS", + "MPOS" + ] + }, + "id": { + "type": "string", + "description": "The ID of the agent initiating the BBPS transaction.", + "example": "AX01AI06512391457204" + }, + "ifsc": { + "type": "string", + "description": "Mandatory if channel is `BNKBRNCH`. Not required for others. This has to match the data submitted to NPCI for this agent ID\n", + "example": "ICIC0000152" + }, + "imei": { + "type": "string", + "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", + "example": "123456789012345" + } + } + }, + "biller": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" + } }, - "message": { - "type": "string", - "example": "Input is invalid" + "x-go-gen-location": "models", + "x-go-name": "BillerDetails" + }, + "paymentDetails": { + "required": [ + "amount", + "mode", + "paymentRefId", + "timestamp" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Pass here the ID of the selected payment plan in payment request. If a plan was selected in payment request, its Id will be a part of the paymentDetails block in payment response.", + "example": "1" + }, + "accountInfo": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "amount": { + "minimum": 1, + "type": "integer", + "description": "Amount in Paise" + }, + "currency": { + "type": "integer", + "nullable": true + }, + "mode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "selectedPaymentOptions": { + "type": "array", + "description": "List of selected payment options", + "nullable": true, + "items": { + "required": [ + "amount", + "name" + ], + "type": "object", + "properties": { + "amount": { + "minimum": 1, + "type": "integer", + "description": "The amount to be paid for the selected payment option." + }, + "name": { + "type": "string", + "description": "The name of the payment option as returned in bill fetch response.", + "example": "Early Payment Amount" + } + } + }, + "x-nullable": true, + "x-omitempty": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" + }, + "COUcustConvFee": { + "type": "integer", + "nullable": true + }, + "custConvFee": { + "type": "integer", + "nullable": true + }, + "paymentRefId": { + "maxLength": 35, + "minLength": 6, + "type": "string", + "example": "BD019181220291" + } } + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" } }, - "success": { - "type": "boolean", - "example": false - }, - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - } - } - } - } - } - } - }, - "security": [ - { - "Production": ["bbps:partner"] - }, - { - "Sandbox": ["bbps:partner"] - }, - { - "QA": ["bbps:partner"] - } - ] - } - }, - "/api/v2/bbps/categories": { - "get": { - "tags": [ - "List" - ], - "description": "Returns the list of categories.", - "parameters": [ - { - "name": "X-PARTNER-ID", - "in": "header", - "description": "The Partner ID provided by Setu.", - "required": true, - "schema": { - "type": "integer" + "x-omitempty": true + }, + { + "type": "object", + "properties": { + "customer": { + "allOf": [ + { + "required": [ + "mobile" + ], + "type": "object", + "properties": { + "mobile": { + "maxLength": 22, + "minLength": 6, + "pattern": "^\\d{6,22}$", + "type": "string", + "description": "Mobile number with 6 to 22 digits are valid." + }, + "customerId": { + "type": "string", + "description": "Customer Identifier" + } + } + }, + { + "required": [ + "customerParams" + ], + "type": "object", + "properties": { + "customerParams": { + "type": "array", + "description": "The bill params for fetching the bill", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value of the customer parameter", + "example": "1895159" + }, + "name": { + "type": "string", + "description": "The display name of the parameter. This has to match what is sent in fields.", + "example": "Loan Number" + } + } + } + } + } + } + ] + } + } + } + ], + "x-go-name": "CouAgentBillPaymentRequestV2" + } } - } - ], + }, + "required": true + }, "responses": { "200": { - "description": "List of categories", + "description": "OK", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -4261,6 +3362,7 @@ "application/json": { "schema": { "required": [ + "data", "success", "traceId" ], @@ -4268,51 +3370,25 @@ "properties": { "data": { "required": [ - "categories" - ], - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "object", - "properties": { - "billerCount": { - "type": "integer" - }, - "name": { - "type": "string", - "example": "Loan Repayment" - } - } - } - } - } - }, - "error": { - "required": [ - "code", - "message" + "refId" ], "type": "object", "properties": { - "success": { - "type": "boolean", - "example": true - }, - "traceId": { + "refId": { "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" + "description": "The generated Reference ID for the request." } } }, "success": { "type": "boolean", + "description": "Boolean value indicating the status of the request", "example": true }, "traceId": { "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" + "description": "The traceId generated for the request", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10461713" } } } @@ -4361,8 +3437,111 @@ } } }, + "409": { + "description": "Duplicate request", + "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": [ + "data", + "success", + "traceId" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "refId" + ], + "type": "object", + "properties": { + "duplicate": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "duplicate-ref-id" + }, + "message": { + "type": "string" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + } + } + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + } + } + }, + "success": { + "type": "boolean", + "description": "Boolean value indicating the status of the request", + "example": true + }, + "traceId": { + "type": "string", + "description": "The traceId generated for the request", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10461713" + } + } + } + } + } + }, "500": { - "description": "Bad request", + "description": "Internal Server Error", "content": { "application/json": { "schema": { @@ -4420,170 +3599,62 @@ "bbps:partner" ] } - ] + ], + "x-codegen-request-body-name": "CouAgentBillPaymentRequestV2" } }, - "/api/v2/bbps/disputes": { - "get": { + "/api/v2/bbps/bills/payment/response": { + "post": { "tags": [ - "List" + "Pay" ], - "description": "Returns the list of disputes.", + "description": "Bill payment response API", "parameters": [ { "name": "X-PARTNER-ID", "in": "header", - "description": "The Partner ID provided by Setu.", + "description": "Partner ID", "required": true, "schema": { "type": "integer" } }, { - "name": "status", - "in": "query", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ASSIGNED", - "REJECTED", - "RESOLVED", - "DEFAULT_RESOLVED", - "REFUNDED", - "PENDING_REFUND" - ] - } - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit", + "name": "Authorization", + "in": "header", + "required": true, "schema": { - "maximum": 1000.0, - "minimum": 1.0, - "type": "integer" - } - }, - { - "name": "categories", - "in": "query", - "description": "Biller Category", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "months", - "in": "query", - "description": "Month ranges. A full-date notation as defined by 'RFC 3339, section 5.6' has to be provided but only month and year will be considered.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "date" - } - } - }, - { - "name": "after", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "mobile", - "in": "query", - "description": "Mobile number with 6 to 22 digits are valid.", - "schema": { - "maxLength": 22, - "minLength": 6, - "pattern": "^\\d{6,22}$", - "type": "string" - } - }, - { - "name": "customerId", - "in": "query", - "description": "Customer Identifier", - "schema": { - "type": "string" - } - }, - { - "name": "transactionIds", - "in": "query", - "description": "Transaction IDs", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "paymentRefIds", - "in": "query", - "description": "Partner provided transaction Ids", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "maxLength": 35, - "minLength": 6, - "type": "string" - } - } - }, - { - "name": "billerIds", - "in": "query", - "description": "The biller ID on BBPS", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" + "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" + ], + "type": "object", + "properties": { + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + } + }, + "x-go-name": "RefIdBasedRequest", + "x-omitempty": true } } }, - { - "name": "expand", - "in": "query", - "style": "form", - "explode": false, - "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "BILLER", - "TRANSACTION" - ] - } - } - } - ], + "required": true + }, "responses": { "200": { - "description": "List of disputes", + "description": "Success - Standard successful payment for a single bill", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -4631,1230 +3702,3345 @@ "content": { "application/json": { "schema": { - "allOf": [ - { + "required": [ + "data", + "success", + "traceId" + ], + "type": "object", + "properties": { + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + }, + "data": { "required": [ - "success", - "traceId" + "refId", + "status" ], "type": "object", "properties": { - "success": { - "type": "boolean", - "example": true + "lastPaidDate": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2020-12-12T13:12:00+05:30" }, - "traceId": { + "status": { "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - } - } - }, - { - "type": "object", - "properties": { - "data": { + "example": "Success", + "enum": [ + "Success" + ] + }, + "transactionId": { + "type": "string", + "example": "AX30910192192192192" + }, + "billerId": { + "type": "string", + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" + }, + "billerRefId": { + "type": "string", + "example": "ZA6291A177" + }, + "paymentDetails": { "required": [ - "disputes" + "amount", + "mode", + "paymentRefId", + "timestamp" ], "type": "object", "properties": { - "disputes": { + "Id": { + "type": "string", + "description": "Pass here the ID of the selected payment plan in payment request. If a plan was selected in payment request, its Id will be a part of the paymentDetails block in payment response.", + "example": "1" + }, + "accountInfo": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "amount": { + "minimum": 1, + "type": "integer", + "description": "Amount in Paise" + }, + "currency": { + "type": "integer", + "nullable": true + }, + "mode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "selectedPaymentOptions": { "type": "array", + "description": "List of selected payment options", + "nullable": true, "items": { - "allOf": [ - { - "type": "object", - "properties": { - "assigned": { - "type": "string", - "example": "ADIT00000NATRA" - }, - "biller": { - "required": [ - "categoryName", - "customerParams", - "exactness", - "fetchApiType", - "id", - "name", - "payWithoutFetchAllowed", - "paymentChannels", - "paymentModes", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "bbpsUpdateTimestamp": { - "type": "string", - "description": "Last updated date-time of the Biller accurate to the nearest day.", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": true - }, - "billerAdditionalInfo": { - "type": "array", - "items": { - "required": [ - "dataType", - "optional", - "paramName" - ], - "type": "object", - "properties": { - "dataType": { - "type": "string", - "example": "ALPHANUMERIC", - "enum": [ - "ALPHANUMERIC", - "NUMERIC" - ] - }, - "optional": { - "type": "boolean", - "example": false - }, - "paramName": { - "type": "string", - "example": "Package Duration" - } - } - } - }, - "billerAdditionalInfoPayment": { - "type": "array", - "items": { - "required": [ - "dataType", - "optional", - "paramName" - ], - "type": "object", - "properties": { - "dataType": { - "type": "string", - "example": "ALPHANUMERIC", - "enum": [ - "ALPHANUMERIC", - "NUMERIC" - ] - }, - "optional": { - "type": "boolean", - "example": false - }, - "paramName": { - "type": "string", - "example": "Package Duration" - } - } - } - }, - "categoryName": { - "type": "string", - "description": "Biller Category", - "example": "loan-repayment" - }, - "city": { - "type": "string", - "example": "Hyderabad" - }, - "country": { - "type": "string", - "example": "IND" - }, - "coverage": { - "type": "string", - "example": "IND-TEL-Hyderabad" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "customerParams": { - "type": "array", - "items": { - "required": [ - "dataType", - "maxLength", - "minLength", - "optional", - "paramName", - "regex", - "values", - "visibility" - ], - "type": "object", - "properties": { - "dataType": { - "type": "string", - "example": "ALPHANUMERIC" - }, - "maxLength": { - "type": "integer" - }, - "minLength": { - "type": "integer" - }, - "optional": { - "type": "boolean", - "example": false - }, - "paramName": { - "type": "string", - "example": "Loan Account Number" - }, - "regex": { - "type": "string", - "example": "^[a-zA-Z0-9]{7,15}" - }, - "values": { - "type": "string", - "example": "CHOICE1,CHOICE2,CHOICE3" - }, - "visibility": { - "type": "boolean", - "example": true - } - } - } - }, - "customerParamsGroups": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "string", - "example": "Param 1" - } - } - }, - "enforcesSameDayFetchPay": { - "type": "boolean", - "example": true, - "x-omitempty": false - }, - "exactness": { - "type": "string", - "example": "Exact", - "enum": [ - "Exact", - "Exact and above", - "Exact and below", - "Any", - "RANGE" - ] - }, - "fetchApiType": { - "type": "string", - "enum": [ - "BILL_FETCH", - "BILL_VALIDATE", - "BILL_DIRECT" - ] - }, - "id": { - "type": "string", - "description": "Identifier of the biller in BBPS.", - "example": "ADIT00000NAT0T" - }, - "interchangeFee": { - "type": "array", - "items": { - "type": "object", - "properties": { - "feeCode": { - "type": "string", - "example": "CCF1" - }, - "feeDesc": { - "type": "string", - "example": "Customer Convenience Fee" - }, - "feeDirection": { - "type": "string", - "example": "C2B" - }, - "interchangeFeeDetails": { - "required": [ - "effctvFrom", - "effctvTo", - "flatFee", - "percentFee", - "tranAmtRangeMax", - "tranAmtRangeMin" - ], - "type": "object", - "properties": { - "effctvFrom": { - "type": "string", - "example": "2024-01-01" - }, - "effctvTo": { - "type": "string", - "example": "2024-12-31" - }, - "flatFee": { - "type": "number", - "format": "decimal", - "example": 0.0 - }, - "percentFee": { - "type": "number", - "format": "decimal", - "example": 1.0 - }, - "tranAmtRangeMax": { - "type": "integer", - "format": "int64" - }, - "tranAmtRangeMin": { - "type": "integer", - "format": "int64" - } - } - } - } - } - }, - "logo": { - "type": "string", - "example": "logo" - }, - "modifiedAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "name": { - "type": "string", - "description": "Name of the biller.", - "example": "Umbrella Corporation" - }, - "payWithoutFetchAllowed": { - "type": "boolean", - "description": "Flag indicating if the Biller accepts adhoc payment", - "example": true - }, - "paymentChannels": { - "type": "array", - "items": { - "required": [ - "maxLimit", - "minLimit", - "paymentChannel", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "maxLimit": { - "type": "integer" - }, - "minLimit": { - "type": "integer" - }, - "paymentChannel": { - "type": "string", - "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", - "example": "INT", - "enum": [ - "INT", - "INTB", - "MOB", - "BNKBRNCH", - "BSC", - "AGT", - "KIOSK", - "ATM", - "MOBB", - "POS", - "MPOS" - ] - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - } - } - } - }, - "paymentModes": { - "type": "array", - "items": { - "required": [ - "maxLimit", - "minLimit", - "paymentMode", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "maxLimit": { - "type": "integer" - }, - "minLimit": { - "type": "integer" - }, - "paymentMode": { - "type": "string", - "example": "Internet Banking", - "enum": [ - "Internet Banking", - "Debit Card", - "Credit Card", - "Prepaid Card", - "IMPS", - "Cash", - "UPI", - "Wallet", - "NEFT", - "AEPS", - "Account Transfer", - "Bharat QR", - "USSD" - ] - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - } - } - } - }, - "pincode": { - "type": "string", - "example": "pincode" - }, - "planRequirement": { - "type": "string", - "description": "Indicates if plan selection is required for bill payments", - "example": "MANDATORY", - "enum": [ - "MANDATORY", - "OPTIONAL", - "CONDITIONAL" - ], - "x-omitempty": true - }, - "responseType": { - "type": "string", - "nullable": true, - "example": "SINGLE", - "enum": [ - "SINGLE", - "LIST", - "SELECTIVE" - ], - "x-nullable": true, - "x-omitempty": false - }, - "selectionType": { - "type": "string", - "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", - "nullable": true, - "example": "SINGLE", - "enum": [ - "SINGLE", - "MULTIPLE", - "ALL" - ], - "x-nullable": true, - "x-omitempty": false - }, - "state": { - "type": "string", - "example": "TEL" - }, - "subCategoryName": { - "type": "string", - "example": "DAIRY" - }, - "supportsPendingStatus": { - "type": "boolean", - "description": "Flag indicating whether pending status is applicable for the biller or not", - "example": false - }, - "tags": { - "type": "string", - "example": "tags" - }, - "upmsBillerParams": { - "type": "array", - "description": "UPMS-specific biller parameters", - "items": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "UPMS parameter name", - "example": "mandateType" - }, - "value": { - "type": "string", - "description": "UPMS parameter value", - "example": "DEBIT", - "x-omitempty": true - } - } - }, - "x-omitempty": true - }, - "upmsBillerType": { - "type": "string", - "description": "Type of UPMS biller", - "nullable": true, - "example": "MULTIPLE", - "x-omitempty": true - }, - "upmsEnabled": { - "type": "boolean", - "description": "Indicates if UPMS is enabled for this biller", - "nullable": true, - "example": true, - "x-omitempty": true - }, - "upmsRegistrationOverridingRule": { - "type": "string", - "description": "Rule specifying how to handle UPMS registration conflicts", - "nullable": true, - "example": "NEWEST", - "x-omitempty": true - } - }, - "x-go-name": "CouBillerDetails" - }, - "billerId": { - "type": "string", - "description": "The biller ID on BBPS", - "example": "MAHI00000NATIC" - }, - "complaintId": { - "type": "string", - "example": "Loan Repayment" - }, - "complaintStatus": { - "type": "string", - "description": "BBPS Complaint status", - "example": "ASSIGNED", - "enum": [ - "ASSIGNED", - "RESOLVED", - "REJECTED", - "DEFAULT_RESOLVED", - "REFUNDED", - "PENDING_REFUND" - ] - }, - "createdAt": { - "type": "string", - "description": "Dispute's creation timestamp", - "format": "date-time", - "example": "2020-12-12T13:12:00+05:30" - }, - "customerId": { - "type": "string", - "description": "Customer Identifier" - }, - "disposition": { - "type": "string", - "enum": [ - "D11", - "D12", - "D13", - "D21", - "D22", - "D23", - "D31", - "D32" - ] - }, - "lastModifiedAt": { - "type": "string", - "description": "Dispute's last modified timestamp", - "format": "date-time", - "example": "2020-12-12T13:12:00+05:30" - }, - "refId": { - "type": "string", - "description": "The generated Reference ID for the request." - }, - "remarks": { - "type": "string", - "example": "ADIT00000NATRA" - }, - "responseCode": { - "type": "string", - "example": "ADIT00000NATRA" - }, - "responseReason": { - "type": "string", - "example": "ADIT00000NATRA" - }, - "ticketTAT": { - "type": "string", - "format": "date", - "nullable": true - }, - "ticketType": { - "type": "string", - "enum": [ - "DISPUTE", - "COMPLAINT" - ] - }, - "transactionId": { - "type": "string", - "description": "Setu BillPay Transaction ID.", - "example": "AS01910192192192192" - } - } - }, - { - "type": "object", - "properties": { - "mobile": { - "maxLength": 22, - "minLength": 6, - "pattern": "^\\d{6,22}$", - "type": "string", - "description": "Mobile number with 6 to 22 digits are valid." - }, - "paymentRefID": { - "maxLength": 35, - "minLength": 6, - "type": "string", - "description": "Unique identifier provided by Partner for the payment request.", - "example": "BD019181220291" - }, - "transaction": { - "allOf": [ - { - "type": "object", - "properties": { - "amount": { - "type": "integer" - }, - "biller": { - "required": [ - "categoryName", - "customerParams", - "exactness", - "fetchApiType", - "id", - "name", - "payWithoutFetchAllowed", - "paymentChannels", - "paymentModes", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "bbpsUpdateTimestamp": { - "type": "string", - "description": "Last updated date-time of the Biller accurate to the nearest day.", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": true - }, - "billerAdditionalInfo": { - "type": "array", - "items": { - "required": [ - "dataType", - "optional", - "paramName" - ], - "type": "object", - "properties": { - "dataType": { - "type": "string", - "example": "ALPHANUMERIC", - "enum": [ - "ALPHANUMERIC", - "NUMERIC" - ] - }, - "optional": { - "type": "boolean", - "example": false - }, - "paramName": { - "type": "string", - "example": "Package Duration" - } - } - } - }, - "billerAdditionalInfoPayment": { - "type": "array", - "items": { - "required": [ - "dataType", - "optional", - "paramName" - ], - "type": "object", - "properties": { - "dataType": { - "type": "string", - "example": "ALPHANUMERIC", - "enum": [ - "ALPHANUMERIC", - "NUMERIC" - ] - }, - "optional": { - "type": "boolean", - "example": false - }, - "paramName": { - "type": "string", - "example": "Package Duration" - } - } - } - }, - "categoryName": { - "type": "string", - "description": "Biller Category", - "example": "loan-repayment" - }, - "city": { - "type": "string", - "example": "Hyderabad" - }, - "country": { - "type": "string", - "example": "IND" - }, - "coverage": { - "type": "string", - "example": "IND-TEL-Hyderabad" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "customerParams": { - "type": "array", - "items": { - "required": [ - "dataType", - "maxLength", - "minLength", - "optional", - "paramName", - "regex", - "values", - "visibility" - ], - "type": "object", - "properties": { - "dataType": { - "type": "string", - "example": "ALPHANUMERIC" - }, - "maxLength": { - "type": "integer" - }, - "minLength": { - "type": "integer" - }, - "optional": { - "type": "boolean", - "example": false - }, - "paramName": { - "type": "string", - "example": "Loan Account Number" - }, - "regex": { - "type": "string", - "example": "^[a-zA-Z0-9]{7,15}" - }, - "values": { - "type": "string", - "example": "CHOICE1,CHOICE2,CHOICE3" - }, - "visibility": { - "type": "boolean", - "example": true - } - } - } - }, - "customerParamsGroups": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "string", - "example": "Param 1" - } - } - }, - "enforcesSameDayFetchPay": { - "type": "boolean", - "example": true, - "x-omitempty": false - }, - "exactness": { - "type": "string", - "example": "Exact", - "enum": [ - "Exact", - "Exact and above", - "Exact and below", - "Any", - "RANGE" - ] - }, - "fetchApiType": { - "type": "string", - "enum": [ - "BILL_FETCH", - "BILL_VALIDATE", - "BILL_DIRECT" - ] - }, - "id": { - "type": "string", - "description": "Identifier of the biller in BBPS.", - "example": "ADIT00000NAT0T" - }, - "interchangeFee": { - "type": "array", - "items": { - "type": "object", - "properties": { - "feeCode": { - "type": "string", - "example": "CCF1" - }, - "feeDesc": { - "type": "string", - "example": "Customer Convenience Fee" - }, - "feeDirection": { - "type": "string", - "example": "C2B" - }, - "interchangeFeeDetails": { - "required": [ - "effctvFrom", - "effctvTo", - "flatFee", - "percentFee", - "tranAmtRangeMax", - "tranAmtRangeMin" - ], - "type": "object", - "properties": { - "effctvFrom": { - "type": "string", - "example": "2024-01-01" - }, - "effctvTo": { - "type": "string", - "example": "2024-12-31" - }, - "flatFee": { - "type": "number", - "format": "decimal", - "example": 0.0 - }, - "percentFee": { - "type": "number", - "format": "decimal", - "example": 1.0 - }, - "tranAmtRangeMax": { - "type": "integer", - "format": "int64" - }, - "tranAmtRangeMin": { - "type": "integer", - "format": "int64" - } - } - } - } - } - }, - "logo": { - "type": "string", - "example": "logo" - }, - "modifiedAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "name": { - "type": "string", - "description": "Name of the biller.", - "example": "Umbrella Corporation" - }, - "payWithoutFetchAllowed": { - "type": "boolean", - "description": "Flag indicating if the Biller accepts adhoc payment", - "example": true - }, - "paymentChannels": { - "type": "array", - "items": { - "required": [ - "maxLimit", - "minLimit", - "paymentChannel", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "maxLimit": { - "type": "integer" - }, - "minLimit": { - "type": "integer" - }, - "paymentChannel": { - "type": "string", - "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", - "example": "INT", - "enum": [ - "INT", - "INTB", - "MOB", - "BNKBRNCH", - "BSC", - "AGT", - "KIOSK", - "ATM", - "MOBB", - "POS", - "MPOS" - ] - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - } - } - } - }, - "paymentModes": { - "type": "array", - "items": { - "required": [ - "maxLimit", - "minLimit", - "paymentMode", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "maxLimit": { - "type": "integer" - }, - "minLimit": { - "type": "integer" - }, - "paymentMode": { - "type": "string", - "example": "Internet Banking", - "enum": [ - "Internet Banking", - "Debit Card", - "Credit Card", - "Prepaid Card", - "IMPS", - "Cash", - "UPI", - "Wallet", - "NEFT", - "AEPS", - "Account Transfer", - "Bharat QR", - "USSD" - ] - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - } - } - } - }, - "pincode": { - "type": "string", - "example": "pincode" - }, - "planRequirement": { - "type": "string", - "description": "Indicates if plan selection is required for bill payments", - "example": "MANDATORY", - "enum": [ - "MANDATORY", - "OPTIONAL", - "CONDITIONAL" - ], - "x-omitempty": true - }, - "responseType": { - "type": "string", - "nullable": true, - "example": "SINGLE", - "enum": [ - "SINGLE", - "LIST", - "SELECTIVE" - ], - "x-nullable": true, - "x-omitempty": false - }, - "selectionType": { - "type": "string", - "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", - "nullable": true, - "example": "SINGLE", - "enum": [ - "SINGLE", - "MULTIPLE", - "ALL" - ], - "x-nullable": true, - "x-omitempty": false - }, - "state": { - "type": "string", - "example": "TEL" - }, - "subCategoryName": { - "type": "string", - "example": "DAIRY" - }, - "supportsPendingStatus": { - "type": "boolean", - "description": "Flag indicating whether pending status is applicable for the biller or not", - "example": false - }, - "tags": { - "type": "string", - "example": "tags" - }, - "upmsBillerParams": { - "type": "array", - "description": "UPMS-specific biller parameters", - "items": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "UPMS parameter name", - "example": "mandateType" - }, - "value": { - "type": "string", - "description": "UPMS parameter value", - "example": "DEBIT", - "x-omitempty": true - } - } - }, - "x-omitempty": true - }, - "upmsBillerType": { - "type": "string", - "description": "Type of UPMS biller", - "nullable": true, - "example": "MULTIPLE", - "x-omitempty": true - }, - "upmsEnabled": { - "type": "boolean", - "description": "Indicates if UPMS is enabled for this biller", - "nullable": true, - "example": true, - "x-omitempty": true - }, - "upmsRegistrationOverridingRule": { - "type": "string", - "description": "Rule specifying how to handle UPMS registration conflicts", - "nullable": true, - "example": "NEWEST", - "x-omitempty": true - } - }, - "x-go-name": "CouBillerDetails" - }, - "billerId": { - "type": "string", - "description": "The biller ID on BBPS", - "example": "MAHI00000NATIC" - }, - "custConvFee": { - "type": "integer", - "description": "Customer convenience fee in paise" - }, - "customerId": { - "type": "string", - "description": "Customer Identifier" - }, - "customerParams": { - "type": "array", - "description": "The bill params for fetching the bill", - "items": { - "required": [ - "name", - "value" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The display name of the parameter. This has to match what is sent in fields.", - "example": "Loan Number" - }, - "value": { - "type": "string", - "description": "The value of the customer parameter", - "example": "1895159" - } - } - } - }, - "etherealTransaction": { - "required": [ - "amount", - "billRefId", - "refId", - "status", - "transactionId" - ], - "type": "object", - "properties": { - "amount": { - "type": "string", - "example": "100.00" - }, - "billRefId": { - "type": "string", - "description": "The BBPS Ref ID", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "refId": { - "type": "string", - "example": "COUWL910192192192192" - }, - "status": { - "type": "string", - "enum": [ - "INIT", - "SUCCESS", - "FAILURE", - "PENDING", - "UNKNOWN" - ] - }, - "transactionId": { - "type": "string", - "example": "Q910192192192192" - } - } - }, - "refId": { - "type": "string", - "description": "The generated Reference ID for the request." - }, - "refundStatus": { - "type": "string", - "enum": [ - "Required", - "Requested", - "Processed" - ] - }, - "status": { - "type": "string", - "example": "Success", - "enum": [ - "Processing", - "Success", - "Error", - "Credit_Adjustment" - ] - }, - "timestamp": { - "type": "string", - "description": "Timestamp provided by partner while making payment request.", - "format": "date-time", - "example": "2020-12-12T13:12:00+05:30" - }, - "transactionId": { - "type": "string", - "description": "Setu BillPay Transaction ID.", - "example": "AS01910192192192192" - } - } - }, - { - "type": "object", - "properties": { - "mobile": { - "maxLength": 22, - "minLength": 6, - "pattern": "^\\d{6,22}$", - "type": "string", - "description": "Mobile number with 6 to 22 digits are valid." - }, - "paymentRefId": { - "maxLength": 35, - "minLength": 6, - "type": "string", - "description": "Unique identifier provided by Partner for the payment request.", - "example": "BD019181220291" - } - } - } - ] - } - } + "required": [ + "amount", + "name" + ], + "type": "object", + "properties": { + "amount": { + "minimum": 1, + "type": "integer", + "description": "The amount to be paid for the selected payment option." + }, + "name": { + "type": "string", + "description": "The name of the payment option as returned in bill fetch response.", + "example": "Early Payment Amount" + } + } + }, + "x-nullable": true, + "x-omitempty": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" + }, + "paymentRefId": { + "maxLength": 35, + "minLength": 6, + "type": "string", + "example": "BD019181220291" + } + } + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + }, + "additionalInfo": { + "type": "array", + "description": "This tag captures the additional information provided by the Biller as part of response for a successful transaction.", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Line item 1" + }, + "value": { + "type": "string", + "example": "Value 1" + } + } + }, + "x-go-name": "BillAdditionalInfo", + "x-omitempty": false + } + } + } + }, + "x-omitempty": true, + "x-go-name": "CouAgentBillPaymentResponse" + } + } + } + }, + "200-failed-payment": { + "description": "Success - Payment failed due to insufficient funds", + "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": [ + "data", + "success", + "traceId" + ], + "type": "object", + "properties": { + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + }, + "data": { + "required": [ + "refId", + "status" + ], + "type": "object", + "properties": { + "failureReason": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "BBPS", + "APP", + "FUND_TRANSFER" + ], + "example": "FUND_TRANSFER" + }, + "code": { + "type": "string", + "example": "ERR001" + }, + "message": { + "type": "string", + "example": "Insufficient funds" + } + } + }, + "status": { + "type": "string", + "example": "Failure", + "enum": [ + "Failure" + ] + }, + "billerId": { + "type": "string", + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" + }, + "paymentDetails": { + "required": [ + "amount", + "mode", + "paymentRefId", + "timestamp" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Pass here the ID of the selected payment plan in payment request. If a plan was selected in payment request, its Id will be a part of the paymentDetails block in payment response.", + "example": "1" + }, + "accountInfo": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "amount": { + "minimum": 1, + "type": "integer", + "description": "Amount in Paise" + }, + "currency": { + "type": "integer", + "nullable": true + }, + "mode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "selectedPaymentOptions": { + "type": "array", + "description": "List of selected payment options", + "nullable": true, + "items": { + "required": [ + "amount", + "name" + ], + "type": "object", + "properties": { + "amount": { + "minimum": 1, + "type": "integer", + "description": "The amount to be paid for the selected payment option." + }, + "name": { + "type": "string", + "description": "The name of the payment option as returned in bill fetch response.", + "example": "Early Payment Amount" + } + } + }, + "x-nullable": true, + "x-omitempty": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" + }, + "paymentRefId": { + "maxLength": 35, + "minLength": 6, + "type": "string", + "example": "BD019181220291" + } + } + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + } + } + } + }, + "x-omitempty": true, + "x-go-name": "CouAgentBillPaymentResponse" + } + } + } + }, + "200-multiple-bills-payment": { + "description": "Success - Payment for multiple bills from LIST type biller", + "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": [ + "data", + "success", + "traceId" + ], + "type": "object", + "properties": { + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + }, + "data": { + "required": [ + "refId", + "status" + ], + "type": "object", + "properties": { + "lastPaidDate": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2020-12-12T13:12:00+05:30" + }, + "status": { + "type": "string", + "example": "Success", + "enum": [ + "Success" + ] + }, + "transactionId": { + "type": "string", + "example": "AX30910192192192192" + }, + "billerId": { + "type": "string", + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" + }, + "billerRefId": { + "type": "string", + "example": "ZA6291A177" + }, + "paymentDetails": { + "required": [ + "amount", + "mode", + "paymentRefId", + "timestamp" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Pass here the ID of the selected payment plan in payment request. If a plan was selected in payment request, its Id will be a part of the paymentDetails block in payment response.", + "example": "1" + }, + "accountInfo": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "amount": { + "minimum": 1, + "type": "integer", + "description": "Amount in Paise" + }, + "currency": { + "type": "integer", + "nullable": true + }, + "mode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "selectedPaymentOptions": { + "type": "array", + "description": "List of selected payment options", + "nullable": true, + "items": { + "required": [ + "amount", + "name" + ], + "type": "object", + "properties": { + "amount": { + "minimum": 1, + "type": "integer", + "description": "The amount to be paid for the selected payment option." + }, + "name": { + "type": "string", + "description": "The name of the payment option as returned in bill fetch response.", + "example": "Early Payment Amount" + } + } + }, + "x-nullable": true, + "x-omitempty": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" + }, + "paymentRefId": { + "maxLength": 35, + "minLength": 6, + "type": "string", + "example": "BD019181220291" + } + } + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + }, + "additionalInfo": { + "type": "array", + "description": "This tag captures the additional information provided by the Biller as part of response for a successful transaction.", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Line item 1" + }, + "value": { + "type": "string", + "example": "Value 1" + } + } + }, + "x-go-name": "BillAdditionalInfo", + "x-omitempty": false + }, + "bills": { + "uniqueItems": true, + "type": "array", + "nullable": true, + "example": "The bills paid in case of list billers", + "items": { + "required": [ + "amount", + "billNumber" + ], + "type": "object", + "properties": { + "amount": { + "minimum": 1, + "type": "integer", + "description": "Amount in Paise" + }, + "billNumber": { + "type": "string", + "example": "B1234567" + } + }, + "x-omitempty": true + }, + "x-omitempty": true + } + } + } + }, + "x-omitempty": true, + "x-go-name": "CouAgentBillPaymentResponse" + } + } + } + }, + "200-payment-with-ccf": { + "description": "Success - Payment with customer convenience fees applied", + "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": [ + "data", + "success", + "traceId" + ], + "type": "object", + "properties": { + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + }, + "data": { + "required": [ + "refId", + "status" + ], + "type": "object", + "properties": { + "lastPaidDate": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2020-12-12T13:12:00+05:30" + }, + "status": { + "type": "string", + "example": "Success", + "enum": [ + "Success" + ] + }, + "transactionId": { + "type": "string", + "example": "AX30910192192192192" + }, + "billerId": { + "type": "string", + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" + }, + "billerRefId": { + "type": "string", + "example": "ZA6291A177" + }, + "paymentDetails": { + "required": [ + "amount", + "mode", + "paymentRefId", + "timestamp" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Pass here the ID of the selected payment plan in payment request. If a plan was selected in payment request, its Id will be a part of the paymentDetails block in payment response.", + "example": "1" + }, + "accountInfo": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "amount": { + "minimum": 1, + "type": "integer", + "description": "Amount in Paise" + }, + "currency": { + "type": "integer", + "nullable": true + }, + "mode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "selectedPaymentOptions": { + "type": "array", + "description": "List of selected payment options", + "nullable": true, + "items": { + "required": [ + "amount", + "name" + ], + "type": "object", + "properties": { + "amount": { + "minimum": 1, + "type": "integer", + "description": "The amount to be paid for the selected payment option." + }, + "name": { + "type": "string", + "description": "The name of the payment option as returned in bill fetch response.", + "example": "Early Payment Amount" + } + } + }, + "x-nullable": true, + "x-omitempty": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" + }, + "COUcustConvFee": { + "type": "integer", + "nullable": true, + "example": 10 + }, + "custConvFee": { + "type": "integer", + "nullable": true, + "example": 59 + }, + "paymentRefId": { + "maxLength": 35, + "minLength": 6, + "type": "string", + "example": "BD019181220291" + } + } + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + }, + "additionalInfo": { + "type": "array", + "description": "This tag captures the additional information provided by the Biller as part of response for a successful transaction.", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Line item 1" + }, + "value": { + "type": "string", + "example": "Value 1" + } + } + }, + "x-go-name": "BillAdditionalInfo", + "x-omitempty": false + } + } + } + }, + "x-omitempty": true, + "x-go-name": "CouAgentBillPaymentResponse" + } + } + } + }, + "200-payment-with-selected-options": { + "description": "Success - Flexible payment with selected payment options", + "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": [ + "data", + "success", + "traceId" + ], + "type": "object", + "properties": { + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + }, + "data": { + "required": [ + "refId", + "status" + ], + "type": "object", + "properties": { + "lastPaidDate": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2020-12-12T13:12:00+05:30" + }, + "status": { + "type": "string", + "example": "Success", + "enum": [ + "Success" + ] + }, + "transactionId": { + "type": "string", + "example": "AX30910192192192192" + }, + "billerId": { + "type": "string", + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" + }, + "billerRefId": { + "type": "string", + "example": "ZA6291A177" + }, + "paymentDetails": { + "required": [ + "amount", + "mode", + "paymentRefId", + "timestamp" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Pass here the ID of the selected payment plan in payment request. If a plan was selected in payment request, its Id will be a part of the paymentDetails block in payment response.", + "example": "1" + }, + "accountInfo": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "amount": { + "minimum": 1, + "type": "integer", + "description": "Amount in Paise" + }, + "currency": { + "type": "integer", + "nullable": true + }, + "mode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "selectedPaymentOptions": { + "type": "array", + "description": "List of selected payment options", + "nullable": true, + "items": { + "required": [ + "amount", + "name" + ], + "type": "object", + "properties": { + "amount": { + "minimum": 1, + "type": "integer", + "description": "The amount to be paid for the selected payment option." + }, + "name": { + "type": "string", + "description": "The name of the payment option as returned in bill fetch response.", + "example": "Early Payment Amount" + } + } + }, + "x-nullable": true, + "x-omitempty": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" + }, + "paymentRefId": { + "maxLength": 35, + "minLength": 6, + "type": "string", + "example": "BD019181220291" + } + } + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + }, + "additionalInfo": { + "type": "array", + "description": "This tag captures the additional information provided by the Biller as part of response for a successful transaction.", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Line item 1" + }, + "value": { + "type": "string", + "example": "Value 1" + } + } + }, + "x-go-name": "BillAdditionalInfo", + "x-omitempty": false + } + } + } + }, + "x-omitempty": true, + "x-go-name": "CouAgentBillPaymentResponse" + } + } + } + }, + "200-prepaid-plan-payment": { + "description": "Success - Prepaid recharge payment with selected plan", + "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": [ + "data", + "success", + "traceId" + ], + "type": "object", + "properties": { + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + }, + "data": { + "required": [ + "refId", + "status" + ], + "type": "object", + "properties": { + "lastPaidDate": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2020-12-12T13:12:00+05:30" + }, + "status": { + "type": "string", + "example": "Success", + "enum": [ + "Success" + ] + }, + "transactionId": { + "type": "string", + "example": "AX30910192192192192" + }, + "billerId": { + "type": "string", + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" + }, + "billerRefId": { + "type": "string", + "example": "ZA6291A177" + }, + "paymentDetails": { + "required": [ + "amount", + "mode", + "paymentRefId", + "timestamp" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Pass here the ID of the selected payment plan in payment request. If a plan was selected in payment request, its Id will be a part of the paymentDetails block in payment response.", + "example": "599" + }, + "accountInfo": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "amount": { + "minimum": 1, + "type": "integer", + "description": "Amount in Paise" + }, + "currency": { + "type": "integer", + "nullable": true + }, + "mode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "selectedPaymentOptions": { + "type": "array", + "description": "List of selected payment options", + "nullable": true, + "items": { + "required": [ + "amount", + "name" + ], + "type": "object", + "properties": { + "amount": { + "minimum": 1, + "type": "integer", + "description": "The amount to be paid for the selected payment option." + }, + "name": { + "type": "string", + "description": "The name of the payment option as returned in bill fetch response.", + "example": "Early Payment Amount" + } + } + }, + "x-nullable": true, + "x-omitempty": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" + }, + "paymentRefId": { + "maxLength": 35, + "minLength": 6, + "type": "string", + "example": "BD019181220291" + } + } + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + }, + "additionalInfo": { + "type": "array", + "description": "This tag captures the additional information provided by the Biller as part of response for a successful transaction.", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Line item 1" + }, + "value": { + "type": "string", + "example": "Value 1" + } + } + }, + "x-go-name": "BillAdditionalInfo", + "x-omitempty": false + } + } + } + }, + "x-omitempty": true, + "x-go-name": "CouAgentBillPaymentResponse" + } + } + } + }, + "200-processing-payment": { + "description": "Success - Payment is still 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": [ + "data", + "success", + "traceId" + ], + "type": "object", + "properties": { + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + }, + "data": { + "required": [ + "refId", + "status" + ], + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "Processing", + "enum": [ + "Processing" + ] + }, + "billerId": { + "type": "string", + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" + }, + "paymentDetails": { + "required": [ + "amount", + "mode", + "paymentRefId", + "timestamp" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Pass here the ID of the selected payment plan in payment request. If a plan was selected in payment request, its Id will be a part of the paymentDetails block in payment response.", + "example": "1" + }, + "accountInfo": { + "maxLength": 50, + "minLength": 1, + "type": "string" + }, + "amount": { + "minimum": 1, + "type": "integer", + "description": "Amount in Paise" + }, + "currency": { + "type": "integer", + "nullable": true + }, + "mode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "selectedPaymentOptions": { + "type": "array", + "description": "List of selected payment options", + "nullable": true, + "items": { + "required": [ + "amount", + "name" + ], + "type": "object", + "properties": { + "amount": { + "minimum": 1, + "type": "integer", + "description": "The amount to be paid for the selected payment option." + }, + "name": { + "type": "string", + "description": "The name of the payment option as returned in bill fetch response.", + "example": "Early Payment Amount" } - ] - } + } + }, + "x-nullable": true, + "x-omitempty": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" + }, + "paymentRefId": { + "maxLength": 35, + "minLength": 6, + "type": "string", + "example": "BD019181220291" + } + } + }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + } + } + } + }, + "x-omitempty": true, + "x-go-name": "CouAgentBillPaymentResponse" + } + } + } + }, + "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" + } + } + } + } + } + } + }, + "security": [ + { + "Production": [ + "bbps:partner" + ] + }, + { + "Sandbox": [ + "bbps:partner" + ] + }, + { + "QA": [ + "bbps:partner" + ] + } + ], + "x-codegen-request-body-name": "CouAgentAsyncRequest" + } + }, + "/api/v2/bbps/bills/complaint/request": { + "post": { + "tags": [ + "Dispute" + ], + "description": "Raise dispute request API", + "parameters": [ + { + "name": "X-PARTNER-ID", + "in": "header", + "description": "The Partner ID provided by Setu.", + "required": true, + "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": { + "allOf": [ + { + "required": [ + "description", + "disputeType" + ], + "type": "object", + "properties": { + "description": { + "type": "string", + "example": "Test Transaction Based Complaint" + }, + "disputeType": { + "type": "string", + "description": "The type of NPCI dispute", + "enum": [ + "account-not-updated", + "double-payment", + "paid-to-wrong-account", + "others", + "amount-deducted-biller-credited-no-transaction-id", + "amount-deducted-biller-not-credited-no-transaction-id", + "amount-deducted-multiple-times", + "service-not-received", + "service-disconnected", + "late-payment-surcharge", + "wrong-amount", + "payment-info-delay" + ] + } + } + }, + { + "required": [ + "transactionId" + ], + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + } + } + } + ], + "x-go-name": "CouAgentDisputeRequestV2" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "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": [ + "data", + "success", + "traceId" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "refId" + ], + "type": "object", + "properties": { + "duplicate": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "duplicate-ref-id" }, - "nextPage": { + "message": { + "type": "string" + }, + "refId": { "type": "string", - "example": "/api/bbps/disputes?search=Aditya&CategoryCode=Loan+Repayment&CategoryCode=Insurance&after=ABCC00000PTNNS" + "description": "The generated Reference ID for the request." } } + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + }, + "upmsRegistration": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Status of the registration request processing by our system", + "example": "PENDING", + "enum": [ + "PENDING", + "FAILED" + ] + }, + "duplicate": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "duplicate-ref-id" + }, + "message": { + "type": "string" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + } + } + }, + "error": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "invalid-mandate" + }, + "message": { + "type": "string", + "example": "The mandate configuration is invalid" + } + }, + "description": "Present only when acknowledgement status for the registration is FAILED" + }, + "refId": { + "type": "string", + "description": "The reference ID for the UPMS registration", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + } + }, + "description": "Present only when upmsRegistration was requested" + } + } + }, + "success": { + "type": "boolean", + "description": "Boolean value indicating the status of the request", + "example": true + }, + "traceId": { + "type": "string", + "description": "The traceId generated for the request", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10461713" + } + } + } + } + } + }, + "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": "Internal server error", + "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" + } + } + } + } + } + } + }, + "security": [ + { + "Production": [ + "bbps:partner" + ] + }, + { + "Sandbox": [ + "bbps:partner" + ] + }, + { + "QA": [ + "bbps:partner" + ] + } + ], + "x-codegen-request-body-name": "CouAgentDisputeRequest" + } + }, + "/api/v2/bbps/bills/complaint/response": { + "post": { + "tags": [ + "Dispute" + ], + "description": "Raise dispute response API", + "parameters": [ + { + "name": "X-PARTNER-ID", + "in": "header", + "description": "The Partner ID provided by Setu.", + "required": true, + "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" + ], + "type": "object", + "properties": { + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + } + }, + "x-go-name": "RefIdBasedRequest", + "x-omitempty": true + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success - Dispute successfully created and initialized in the system", + "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": "Complaint has been registered successfully" + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" + ], + "example": "DISPUTE" + }, + "assignedTo": { + "type": "string", + "example": "SETU" + }, + "status": { + "type": "string", + "description": "BBPS Complaint status", + "example": "INITIALIZED", + "enum": [ + "INITIALIZED" + ] + }, + "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-assigned-to-bou": { + "description": "Success - Dispute assigned to Biller Operating Unit for investigation", + "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 assigned to Biller Operating Unit for investigation" + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" + ], + "example": "DISPUTE" + }, + "assignedTo": { + "type": "string", + "example": "ICICI BOU" + }, + "status": { + "type": "string", + "description": "BBPS Complaint status", + "example": "ASSIGNED_TO_BOU", + "enum": [ + "ASSIGNED_TO_BOU" + ] + }, + "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-assigned-to-cou": { + "description": "Success - Dispute assigned to Customer Operating Unit for processing", + "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 assigned to Customer Operating Unit for processing" + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" + ], + "example": "COMPLAINT" + }, + "assignedTo": { + "type": "string", + "example": "SETU COU" + }, + "status": { + "type": "string", + "description": "BBPS Complaint status", + "example": "ASSIGNED_TO_COU", + "enum": [ + "ASSIGNED_TO_COU" + ] + }, + "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-escalated": { + "description": "Success - Dispute escalated to higher authority for resolution", + "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 escalated to higher authority due to complexity" + }, + "responseReason": { + "type": "string", + "example": "Requires management intervention" + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" + ], + "example": "DISPUTE" + }, + "assignedTo": { + "type": "string", + "example": "NPCI Escalation Team" + }, + "status": { + "type": "string", + "description": "BBPS Complaint status", + "example": "ESCALATED", + "enum": [ + "ESCALATED" + ] + }, + "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 - Dispute resolved with successful refund to 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": "Refund processed successfully to customer account" + }, + "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 invalid claim or insufficient evidence", + "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" + }, + "responseReason": { + "type": "string", + "example": "Invalid complaint type or missing documentation" + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" + ], + "example": "COMPLAINT" + }, + "assignedTo": { + "type": "string", + "example": "SETU COU" + }, + "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-favor-biller": { + "description": "Success - Dispute resolved in biller favor, no refund applicable", + "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": "Resolved in favour of Biller" + }, + "responseReason": { + "type": "string", + "example": "Biller provided valid service proof" + }, + "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": "D23" + }, + "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-favor-customer": { + "description": "Success - Dispute resolved in customer favor with refund eligibility", + "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": "Resolved 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" + } + } + } + } + } + } + }, + "security": [ + { + "Production": [ + "bbps:partner" + ] + }, + { + "Sandbox": [ + "bbps:partner" + ] + }, + { + "QA": [ + "bbps:partner" + ] + } + ], + "x-codegen-request-body-name": "CouAgentAsyncRequest" + } + }, + "/api/v2/health": { + "get": { + "tags": [ + "Health" + ], + "description": "Health check", + "operationId": "getHealth", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "required": [ + "environment", + "server", + "version" + ], + "type": "object", + "properties": { + "environment": { + "type": "string", + "example": "PROD" + }, + "server": { + "type": "string", + "example": "mistborn" + }, + "version": { + "type": "string", + "example": "db42717a829da9d3061e4f409f3c0ee9935b72a5" + } + }, + "x-go-name": "HealthResponseParam", + "x-omitempty": true + } + } + } + } + } + } + }, + "/api/v2/upms/simulate/{upmsRegistrationRefId}/callbacks/bill": { + "post": { + "tags": [ + "UPMS" + ], + "description": "Simulate bill notification", + "operationId": "SimulateBillNotification", + "parameters": [ + { + "name": "X-PARTNER-ID", + "in": "header", + "description": "The Partner ID provided by Setu.", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "upmsRegistrationRefId", + "in": "path", + "description": "Reference ID of the UPMS registration", + "required": true, + "schema": { + "maxLength": 35, + "minLength": 35, + "type": "string" + } + }, + { + "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..." + } + ], + "responses": { + "200": { + "description": "Request accepted and queued for processing", + "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": { + "success": { + "type": "boolean", + "description": "Boolean value indicating the success of the request", + "example": true + }, + "traceId": { + "type": "string", + "description": "The traceId generated for the request", + "example": "CV4PE82LTNJE9O014OE0" + } + }, + "x-go-name": "SimulateCallbackResponse" + } + } + } + }, + "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" + } + } + } + } + } + }, + "403": { + "description": "Forbidden in current environment", + "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" } - ] + } } } } }, - "400": { - "description": "Bad request", + "404": { + "description": "Registration not found", "content": { "application/json": { "schema": { @@ -5896,7 +7082,7 @@ } }, "500": { - "description": "Bad request", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -5957,12 +7143,12 @@ ] } }, - "/api/v2/bbps/transactions": { + "/api/v2/bbps/disputes": { "get": { "tags": [ "List" ], - "description": "Returns the list of transactions.", + "description": "Returns the list of disputes.", "parameters": [ { "name": "X-PARTNER-ID", @@ -5973,64 +7159,96 @@ "type": "integer" } }, + { + "name": "status", + "in": "query", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "INITIALIZED", + "ASSIGNED", + "RE_ASSIGNED", + "ASSIGNED_TO_BOU", + "ASSIGNED_TO_COU", + "ASSIGNED_TO_OU", + "ESCALATED", + "RESOLVED", + "UNRESOLVED" + ] + } + } + }, { "name": "limit", "in": "query", + "description": "Limit", "schema": { + "maximum": 1000.0, + "minimum": 1.0, "type": "integer" } }, { - "name": "after", + "name": "categories", "in": "query", + "description": "Biller Category", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string" + } } }, { - "name": "startDate", + "name": "months", "in": "query", - "description": "start date of the timestamp provided by the partner while making the request.", - "required": true, + "description": "Month ranges. A full-date notation as defined by 'RFC 3339, section 5.6' has to be provided but only month and year will be considered.", + "style": "form", + "explode": false, "schema": { - "type": "string", - "format": "date" + "type": "array", + "items": { + "type": "string", + "format": "date" + } } }, { - "name": "endDate", + "name": "after", "in": "query", - "description": "end date of the timestamp provided by the partner while making the request.", - "required": true, "schema": { - "type": "string", - "format": "date" + "type": "string" } }, { - "name": "billerId", + "name": "mobile", "in": "query", - "description": "Transaction BillerId", + "description": "Mobile number with 6 to 22 digits are valid.", "schema": { + "maxLength": 22, + "minLength": 6, + "pattern": "^\\d{6,22}$", "type": "string" } }, { - "name": "ids", + "name": "customerId", "in": "query", - "style": "form", - "explode": false, + "description": "Customer Identifier", "schema": { - "type": "array", - "items": { - "type": "string" - } + "type": "string" } }, { - "name": "categories", + "name": "transactionIds", "in": "query", - "description": "Biller Category", + "description": "Transaction IDs", "style": "form", "explode": false, "schema": { @@ -6041,69 +7259,33 @@ } }, { - "name": "billerFetchApiType", - "in": "query", - "description": "Biller Fetch Api Type", - "schema": { - "type": "string", - "enum": [ - "BILL_FETCH", - "BILL_VALIDATE", - "BILL_DIRECT" - ] - } - }, - { - "name": "months", + "name": "paymentRefIds", "in": "query", - "description": "Month ranges. A full-date notation as defined by 'RFC 3339, section 5.6' has to be provided but only month and year will be considered.", + "description": "Partner provided transaction Ids", "style": "form", "explode": false, "schema": { "type": "array", "items": { - "type": "string", - "format": "date" + "maxLength": 35, + "minLength": 6, + "type": "string" } } }, { - "name": "status", + "name": "billerIds", "in": "query", - "description": "Transaction Status", + "description": "The biller ID on BBPS", "style": "form", "explode": false, "schema": { "type": "array", "items": { - "type": "string", - "enum": [ - "Processing", - "Success", - "Error" - ] + "type": "string" } } }, - { - "name": "mobile", - "in": "query", - "description": "Mobile number with 6 to 22 digits are valid.", - "schema": { - "maxLength": 22, - "minLength": 6, - "pattern": "^\\d{6,22}$", - "type": "string" - } - }, - { - "name": "customerId", - "in": "query", - "description": "Customer Identifier", - "schema": { - "type": "string" - } - }, { "name": "expand", "in": "query", @@ -6116,27 +7298,26 @@ "type": "string", "enum": [ "BILLER", - "ETHEREAL_TRANSACTION" + "TRANSACTION" ] } } }, { - "name": "refundStatus", - "in": "query", + "name": "Authorization", + "in": "header", + "required": true, "schema": { "type": "string", - "enum": [ - "Required", - "Requested", - "Processed" - ] - } + "pattern": "^Bearer [a-zA-Z0-9\\-\\._~\\+\\/]+=*$" + }, + "description": "Bearer token for authentication. Format: `Bearer `", + "example": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." } ], "responses": { "200": { - "description": "List of Txns", + "description": "List of disputes", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -6203,104 +7384,626 @@ } }, { - "required": [ - "data" - ], "type": "object", "properties": { "data": { - "allOf": [ - { - "type": "object", - "properties": { - "nextPage": { - "type": "string", - "example": "/api/bbps/transactions?search=Aditya&CategoryCode=Loan+Repayment&CategoryCode=Insurance&after=ABCC00000PTNNS" - } - } - }, - { - "type": "object", - "properties": { - "transactions": { - "type": "array", - "items": { - "allOf": [ - { + "required": [ + "disputes" + ], + "type": "object", + "properties": { + "disputes": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "remarks": { + "type": "string", + "example": "ADIT00000NATRA" + }, + "responseReason": { + "type": "string", + "example": "ADIT00000NATRA" + }, + "transactionId": { + "type": "string", + "description": "Setu BillPay Transaction ID.", + "example": "AS01910192192192192" + }, + "complaintId": { + "type": "string", + "example": "Loan Repayment" + }, + "createdAt": { + "type": "string", + "description": "Dispute's creation timestamp", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" + }, + "customerId": { + "type": "string", + "description": "Customer Identifier" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + }, + "billerId": { + "type": "string", + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" + }, + "complaintStatus": { + "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" + ] + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" + ] + }, + "assigned": { + "type": "string", + "example": "ADIT00000NATRA" + }, + "biller": { + "required": [ + "categoryName", + "customerParams", + "exactness", + "fetchApiType", + "id", + "name", + "payWithoutFetchAllowed", + "paymentChannels", + "paymentModes", + "supportsPendingStatus" + ], "type": "object", "properties": { - "amount": { - "type": "integer" + "upmsEnabled": { + "type": "boolean", + "description": "This field denotes whether a biller supports registering customers for automated bill presentments via UPMS", + "nullable": true, + "example": true, + "x-omitempty": true + }, + "customerParams": { + "type": "array", + "items": { + "required": [ + "dataType", + "maxLength", + "minLength", + "optional", + "paramName", + "regex", + "values", + "visibility" + ], + "type": "object", + "properties": { + "regex": { + "type": "string", + "example": "^[a-zA-Z0-9]{7,15}" + }, + "values": { + "type": "string", + "example": "CHOICE1,CHOICE2,CHOICE3" + }, + "visibility": { + "type": "boolean", + "example": true + }, + "dataType": { + "type": "string", + "example": "ALPHANUMERIC" + }, + "maxLength": { + "type": "integer" + }, + "minLength": { + "type": "integer" + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Loan Account Number" + } + } + } + }, + "paymentModes": { + "type": "array", + "items": { + "required": [ + "maxLimit", + "minLimit", + "paymentMode", + "supportsPendingStatus" + ], + "type": "object", + "properties": { + "maxLimit": { + "type": "integer" + }, + "minLimit": { + "type": "integer" + }, + "paymentMode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "supportsPendingStatus": { + "type": "boolean", + "example": false + } + } + } + }, + "responseType": { + "type": "string", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], + "x-nullable": true, + "x-omitempty": false + }, + "subCategoryName": { + "type": "string", + "example": "DAIRY" + }, + "tags": { + "type": "string", + "example": "tags" + }, + "valAddFlag": { + "type": "boolean", + "description": "Flag indicating if value added services are enabled for the biller.", + "example": true, + "x-omitempty": true + }, + "country": { + "type": "string", + "example": "IND" + }, + "id": { + "type": "string", + "description": "Identifier of the biller in BBPS.", + "example": "ADIT00000NAT0T" + }, + "interchangeFee": { + "type": "array", + "items": { + "type": "object", + "properties": { + "feeDesc": { + "type": "string", + "example": "Customer Convenience Fee" + }, + "feeDirection": { + "type": "string", + "example": "C2B" + }, + "interchangeFeeDetails": { + "required": [ + "effctvFrom", + "effctvTo", + "flatFee", + "percentFee", + "tranAmtRangeMax", + "tranAmtRangeMin" + ], + "type": "object", + "properties": { + "tranAmtRangeMax": { + "type": "integer", + "format": "int64" + }, + "tranAmtRangeMin": { + "type": "integer", + "format": "int64" + }, + "effctvFrom": { + "type": "string", + "example": "2024-01-01" + }, + "effctvTo": { + "type": "string", + "example": "2024-12-31" + }, + "flatFee": { + "type": "number", + "format": "decimal", + "example": 0.0 + }, + "percentFee": { + "type": "number", + "format": "decimal", + "example": 1.0 + } + } + }, + "feeCode": { + "type": "string", + "example": "CCF1" + } + } + } + }, + "pincode": { + "type": "string", + "example": "pincode" + }, + "billerAdditionalInfo": { + "type": "array", + "items": { + "required": [ + "dataType", + "optional", + "paramName" + ], + "type": "object", + "properties": { + "dataType": { + "type": "string", + "example": "ALPHANUMERIC", + "enum": [ + "ALPHANUMERIC", + "NUMERIC" + ] + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Package Duration" + } + } + } + }, + "city": { + "type": "string", + "example": "Hyderabad" + }, + "coverage": { + "type": "string", + "example": "IND-TEL-Hyderabad" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": false }, - "biller": { - "required": [ - "categoryName", - "customerParams", - "exactness", - "fetchApiType", - "id", - "name", - "payWithoutFetchAllowed", - "paymentChannels", - "paymentModes", - "supportsPendingStatus" + "modifiedAt": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": false + }, + "name": { + "type": "string", + "description": "Name of the biller.", + "example": "Umbrella Corporation" + }, + "selectionType": { + "type": "string", + "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "MULTIPLE", + "ALL" ], - "type": "object", - "properties": { - "bbpsUpdateTimestamp": { + "x-omitempty": false, + "x-nullable": true + }, + "categoryName": { + "type": "string", + "description": "Biller Category", + "example": "loan-repayment" + }, + "customerParamsGroups": { + "type": "array", + "items": { + "type": "array", + "items": { "type": "string", - "description": "Last updated date-time of the Biller accurate to the nearest day.", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": true - }, - "billerAdditionalInfo": { - "type": "array", - "items": { - "required": [ - "dataType", - "optional", - "paramName" - ], - "type": "object", - "properties": { - "dataType": { - "type": "string", - "example": "ALPHANUMERIC", - "enum": [ - "ALPHANUMERIC", - "NUMERIC" - ] - }, - "optional": { - "type": "boolean", - "example": false - }, - "paramName": { - "type": "string", - "example": "Package Duration" + "example": "Param 1" + } + } + }, + "exactness": { + "type": "string", + "example": "Exact", + "enum": [ + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" + ] + }, + "supportCallback": { + "type": "boolean", + "description": "Flag indicating if the biller supports callbacks.", + "example": true, + "x-omitempty": true + }, + "billerAdditionalInfoPayment": { + "type": "array", + "items": { + "required": [ + "dataType", + "optional", + "paramName" + ], + "type": "object", + "properties": { + "dataType": { + "type": "string", + "example": "ALPHANUMERIC", + "enum": [ + "ALPHANUMERIC", + "NUMERIC" + ] + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Package Duration" + } + } + } + }, + "paymentChannels": { + "type": "array", + "items": { + "required": [ + "maxLimit", + "minLimit", + "paymentChannel", + "supportsPendingStatus" + ], + "type": "object", + "properties": { + "maxLimit": { + "type": "integer" + }, + "minLimit": { + "type": "integer" + }, + "paymentChannel": { + "type": "string", + "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", + "example": "INT", + "enum": [ + "INT", + "INTB", + "MOB", + "BNKBRNCH", + "BSC", + "AGT", + "KIOSK", + "ATM", + "MOBB", + "POS", + "MPOS" + ] + }, + "supportsPendingStatus": { + "type": "boolean", + "example": false + } + } + } + }, + "planRequirement": { + "type": "string", + "description": "Indicates if plan selection is required for bill payments", + "example": "MANDATORY", + "enum": [ + "MANDATORY", + "OPTIONAL", + "CONDITIONAL" + ], + "x-omitempty": true + }, + "supportsPendingStatus": { + "type": "boolean", + "description": "Flag indicating whether pending status is applicable for the biller or not", + "example": false + }, + "pseudoBiller": { + "type": "boolean", + "description": "Flag indicating if the biller is a pseudo biller.", + "example": false, + "x-omitempty": true + }, + "valAddCustParams": { + "type": "array", + "description": "Customer parameters for value added services.", + "items": { + "type": "object", + "properties": { + "requestType": { + "type": "string", + "description": "Type of value added service request.", + "example": "GetCustomerId", + "enum": [ + "GetCustomerId", + "GenerateOTP", + "ValidateOTP", + "GetBankMarkup", + "FetchBestPrice" + ] + }, + "customerParams": { + "type": "array", + "items": { + "required": [ + "dataType", + "maxLength", + "minLength", + "optional", + "paramName", + "regex", + "values", + "visibility" + ], + "type": "object", + "properties": { + "regex": { + "type": "string", + "example": "^[a-zA-Z0-9]{7,15}" + }, + "values": { + "type": "string", + "example": "CHOICE1,CHOICE2,CHOICE3" + }, + "visibility": { + "type": "boolean", + "example": true + }, + "dataType": { + "type": "string", + "example": "ALPHANUMERIC" + }, + "maxLength": { + "type": "integer" + }, + "minLength": { + "type": "integer" + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Loan Account Number" + } } } } - }, - "billerAdditionalInfoPayment": { - "type": "array", - "items": { + } + }, + "x-omitempty": true + }, + "bbpsUpdateTimestamp": { + "type": "string", + "description": "Last updated date-time of the Biller accurate to the nearest day.", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": true + }, + "fetchApiType": { + "type": "string", + "enum": [ + "BILL_FETCH", + "BILL_VALIDATE", + "BILL_DIRECT", + "BILL_MANDATE" + ] + }, + "mandateRequirement": { + "type": "string", + "description": "Mandate requirement for the biller.", + "example": "MANDATORY", + "x-omitempty": true + }, + "upmsBillerParams": { + "type": "array", + "description": "The list of parameters that a biller requires to be passed in the `mandate.billerParams` while registering a new customer", + "items": { + "allOf": [ + { "required": [ "dataType", + "maxLength", + "minLength", "optional", - "paramName" + "paramName", + "regex", + "values", + "visibility" ], "type": "object", "properties": { - "dataType": { + "regex": { "type": "string", - "example": "ALPHANUMERIC", - "enum": [ - "ALPHANUMERIC", - "NUMERIC" - ] + "example": "^[a-zA-Z0-9]{7,15}" + }, + "values": { + "type": "string", + "example": "CHOICE1,CHOICE2,CHOICE3" + }, + "visibility": { + "type": "boolean", + "example": true + }, + "dataType": { + "type": "string", + "example": "ALPHANUMERIC" + }, + "maxLength": { + "type": "integer" + }, + "minLength": { + "type": "integer" }, "optional": { "type": "boolean", @@ -6308,540 +8011,2530 @@ }, "paramName": { "type": "string", - "example": "Package Duration" + "example": "Loan Account Number" + } + } + }, + { + "type": "object" + } + ] + }, + "x-omitempty": true + }, + "state": { + "type": "string", + "example": "TEL" + }, + "enforcesSameDayFetchPay": { + "type": "boolean", + "example": true, + "x-omitempty": false + }, + "logo": { + "type": "string", + "example": "logo" + }, + "payWithoutFetchAllowed": { + "type": "boolean", + "description": "Flag indicating if the Biller accepts adhoc payment", + "example": true + } + }, + "x-go-name": "CouBillerDetails" + }, + "lastModifiedAt": { + "type": "string", + "description": "Dispute's last modified timestamp", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" + }, + "responseCode": { + "type": "string", + "example": "ADIT00000NATRA" + }, + "ticketTAT": { + "type": "string", + "format": "date", + "nullable": true + }, + "disposition": { + "type": "string", + "enum": [ + "D11", + "D12", + "D13", + "D21", + "D22", + "D23", + "D31", + "D32" + ] + } + } + }, + { + "type": "object", + "properties": { + "mobile": { + "maxLength": 22, + "minLength": 6, + "pattern": "^\\d{6,22}$", + "type": "string", + "description": "Mobile number with 6 to 22 digits are valid." + }, + "paymentRefID": { + "maxLength": 35, + "minLength": 6, + "type": "string", + "description": "Unique identifier provided by Partner for the payment request.", + "example": "BD019181220291" + }, + "transaction": { + "allOf": [ + { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "Success", + "enum": [ + "Processing", + "Success", + "Error", + "Credit_Adjustment" + ] + }, + "biller": { + "required": [ + "categoryName", + "customerParams", + "exactness", + "fetchApiType", + "id", + "name", + "payWithoutFetchAllowed", + "paymentChannels", + "paymentModes", + "supportsPendingStatus" + ], + "type": "object", + "properties": { + "upmsEnabled": { + "type": "boolean", + "description": "This field denotes whether a biller supports registering customers for automated bill presentments via UPMS", + "nullable": true, + "example": true, + "x-omitempty": true + }, + "customerParams": { + "type": "array", + "items": { + "required": [ + "dataType", + "maxLength", + "minLength", + "optional", + "paramName", + "regex", + "values", + "visibility" + ], + "type": "object", + "properties": { + "regex": { + "type": "string", + "example": "^[a-zA-Z0-9]{7,15}" + }, + "values": { + "type": "string", + "example": "CHOICE1,CHOICE2,CHOICE3" + }, + "visibility": { + "type": "boolean", + "example": true + }, + "dataType": { + "type": "string", + "example": "ALPHANUMERIC" + }, + "maxLength": { + "type": "integer" + }, + "minLength": { + "type": "integer" + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Loan Account Number" + } + } + } + }, + "paymentModes": { + "type": "array", + "items": { + "required": [ + "maxLimit", + "minLimit", + "paymentMode", + "supportsPendingStatus" + ], + "type": "object", + "properties": { + "maxLimit": { + "type": "integer" + }, + "minLimit": { + "type": "integer" + }, + "paymentMode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "supportsPendingStatus": { + "type": "boolean", + "example": false + } + } + } + }, + "responseType": { + "type": "string", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], + "x-nullable": true, + "x-omitempty": false + }, + "subCategoryName": { + "type": "string", + "example": "DAIRY" + }, + "tags": { + "type": "string", + "example": "tags" + }, + "valAddFlag": { + "type": "boolean", + "description": "Flag indicating if value added services are enabled for the biller.", + "example": true, + "x-omitempty": true + }, + "country": { + "type": "string", + "example": "IND" + }, + "id": { + "type": "string", + "description": "Identifier of the biller in BBPS.", + "example": "ADIT00000NAT0T" + }, + "interchangeFee": { + "type": "array", + "items": { + "type": "object", + "properties": { + "feeDesc": { + "type": "string", + "example": "Customer Convenience Fee" + }, + "feeDirection": { + "type": "string", + "example": "C2B" + }, + "interchangeFeeDetails": { + "required": [ + "effctvFrom", + "effctvTo", + "flatFee", + "percentFee", + "tranAmtRangeMax", + "tranAmtRangeMin" + ], + "type": "object", + "properties": { + "tranAmtRangeMax": { + "type": "integer", + "format": "int64" + }, + "tranAmtRangeMin": { + "type": "integer", + "format": "int64" + }, + "effctvFrom": { + "type": "string", + "example": "2024-01-01" + }, + "effctvTo": { + "type": "string", + "example": "2024-12-31" + }, + "flatFee": { + "type": "number", + "format": "decimal", + "example": 0.0 + }, + "percentFee": { + "type": "number", + "format": "decimal", + "example": 1.0 + } + } + }, + "feeCode": { + "type": "string", + "example": "CCF1" + } + } } - } - } - }, - "categoryName": { - "type": "string", - "description": "Biller Category", - "example": "loan-repayment" - }, - "city": { - "type": "string", - "example": "Hyderabad" - }, - "country": { - "type": "string", - "example": "IND" - }, - "coverage": { - "type": "string", - "example": "IND-TEL-Hyderabad" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "customerParams": { - "type": "array", - "items": { - "required": [ - "dataType", - "maxLength", - "minLength", - "optional", - "paramName", - "regex", - "values", - "visibility" - ], - "type": "object", - "properties": { - "dataType": { - "type": "string", - "example": "ALPHANUMERIC" - }, - "maxLength": { - "type": "integer" - }, - "minLength": { - "type": "integer" - }, - "optional": { - "type": "boolean", - "example": false - }, - "paramName": { - "type": "string", - "example": "Loan Account Number" - }, - "regex": { - "type": "string", - "example": "^[a-zA-Z0-9]{7,15}" - }, - "values": { - "type": "string", - "example": "CHOICE1,CHOICE2,CHOICE3" - }, - "visibility": { - "type": "boolean", - "example": true + }, + "pincode": { + "type": "string", + "example": "pincode" + }, + "billerAdditionalInfo": { + "type": "array", + "items": { + "required": [ + "dataType", + "optional", + "paramName" + ], + "type": "object", + "properties": { + "dataType": { + "type": "string", + "example": "ALPHANUMERIC", + "enum": [ + "ALPHANUMERIC", + "NUMERIC" + ] + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Package Duration" + } + } } - } - } - }, - "customerParamsGroups": { - "type": "array", - "items": { - "type": "array", - "items": { + }, + "city": { "type": "string", - "example": "Param 1" - } - } - }, - "enforcesSameDayFetchPay": { - "type": "boolean", - "example": true, - "x-omitempty": false - }, - "exactness": { - "type": "string", - "example": "Exact", - "enum": [ - "Exact", - "Exact and above", - "Exact and below", - "Any", - "RANGE" - ] - }, - "fetchApiType": { - "type": "string", - "enum": [ - "BILL_FETCH", - "BILL_VALIDATE", - "BILL_DIRECT" - ] - }, - "id": { - "type": "string", - "description": "Identifier of the biller in BBPS.", - "example": "ADIT00000NAT0T" - }, - "interchangeFee": { - "type": "array", - "items": { - "type": "object", - "properties": { - "feeCode": { - "type": "string", - "example": "CCF1" - }, - "feeDesc": { - "type": "string", - "example": "Customer Convenience Fee" - }, - "feeDirection": { - "type": "string", - "example": "C2B" - }, - "interchangeFeeDetails": { + "example": "Hyderabad" + }, + "coverage": { + "type": "string", + "example": "IND-TEL-Hyderabad" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": false + }, + "modifiedAt": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": false + }, + "name": { + "type": "string", + "description": "Name of the biller.", + "example": "Umbrella Corporation" + }, + "selectionType": { + "type": "string", + "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "MULTIPLE", + "ALL" + ], + "x-omitempty": false, + "x-nullable": true + }, + "categoryName": { + "type": "string", + "description": "Biller Category", + "example": "loan-repayment" + }, + "customerParamsGroups": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string", + "example": "Param 1" + } + } + }, + "exactness": { + "type": "string", + "example": "Exact", + "enum": [ + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" + ] + }, + "supportCallback": { + "type": "boolean", + "description": "Flag indicating if the biller supports callbacks.", + "example": true, + "x-omitempty": true + }, + "billerAdditionalInfoPayment": { + "type": "array", + "items": { "required": [ - "effctvFrom", - "effctvTo", - "flatFee", - "percentFee", - "tranAmtRangeMax", - "tranAmtRangeMin" + "dataType", + "optional", + "paramName" ], "type": "object", "properties": { - "effctvFrom": { + "dataType": { "type": "string", - "example": "2024-01-01" + "example": "ALPHANUMERIC", + "enum": [ + "ALPHANUMERIC", + "NUMERIC" + ] }, - "effctvTo": { - "type": "string", - "example": "2024-12-31" + "optional": { + "type": "boolean", + "example": false }, - "flatFee": { - "type": "number", - "format": "decimal", - "example": 0.0 + "paramName": { + "type": "string", + "example": "Package Duration" + } + } + } + }, + "paymentChannels": { + "type": "array", + "items": { + "required": [ + "maxLimit", + "minLimit", + "paymentChannel", + "supportsPendingStatus" + ], + "type": "object", + "properties": { + "maxLimit": { + "type": "integer" }, - "percentFee": { - "type": "number", - "format": "decimal", - "example": 1.0 + "minLimit": { + "type": "integer" }, - "tranAmtRangeMax": { - "type": "integer", - "format": "int64" + "paymentChannel": { + "type": "string", + "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", + "example": "INT", + "enum": [ + "INT", + "INTB", + "MOB", + "BNKBRNCH", + "BSC", + "AGT", + "KIOSK", + "ATM", + "MOBB", + "POS", + "MPOS" + ] }, - "tranAmtRangeMin": { - "type": "integer", - "format": "int64" + "supportsPendingStatus": { + "type": "boolean", + "example": false } } } - } - } - }, - "logo": { - "type": "string", - "example": "logo" - }, - "modifiedAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "name": { - "type": "string", - "description": "Name of the biller.", - "example": "Umbrella Corporation" - }, - "payWithoutFetchAllowed": { - "type": "boolean", - "description": "Flag indicating if the Biller accepts adhoc payment", - "example": true - }, - "paymentChannels": { - "type": "array", - "items": { - "required": [ - "maxLimit", - "minLimit", - "paymentChannel", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "maxLimit": { - "type": "integer" - }, - "minLimit": { - "type": "integer" + }, + "planRequirement": { + "type": "string", + "description": "Indicates if plan selection is required for bill payments", + "example": "MANDATORY", + "enum": [ + "MANDATORY", + "OPTIONAL", + "CONDITIONAL" + ], + "x-omitempty": true + }, + "supportsPendingStatus": { + "type": "boolean", + "description": "Flag indicating whether pending status is applicable for the biller or not", + "example": false + }, + "pseudoBiller": { + "type": "boolean", + "description": "Flag indicating if the biller is a pseudo biller.", + "example": false, + "x-omitempty": true + }, + "valAddCustParams": { + "type": "array", + "description": "Customer parameters for value added services.", + "items": { + "type": "object", + "properties": { + "requestType": { + "type": "string", + "description": "Type of value added service request.", + "example": "GetCustomerId", + "enum": [ + "GetCustomerId", + "GenerateOTP", + "ValidateOTP", + "GetBankMarkup", + "FetchBestPrice" + ] + }, + "customerParams": { + "type": "array", + "items": { + "required": [ + "dataType", + "maxLength", + "minLength", + "optional", + "paramName", + "regex", + "values", + "visibility" + ], + "type": "object", + "properties": { + "regex": { + "type": "string", + "example": "^[a-zA-Z0-9]{7,15}" + }, + "values": { + "type": "string", + "example": "CHOICE1,CHOICE2,CHOICE3" + }, + "visibility": { + "type": "boolean", + "example": true + }, + "dataType": { + "type": "string", + "example": "ALPHANUMERIC" + }, + "maxLength": { + "type": "integer" + }, + "minLength": { + "type": "integer" + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Loan Account Number" + } + } + } + } + } }, - "paymentChannel": { - "type": "string", - "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", - "example": "INT", - "enum": [ - "INT", - "INTB", - "MOB", - "BNKBRNCH", - "BSC", - "AGT", - "KIOSK", - "ATM", - "MOBB", - "POS", - "MPOS" + "x-omitempty": true + }, + "bbpsUpdateTimestamp": { + "type": "string", + "description": "Last updated date-time of the Biller accurate to the nearest day.", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": true + }, + "fetchApiType": { + "type": "string", + "enum": [ + "BILL_FETCH", + "BILL_VALIDATE", + "BILL_DIRECT", + "BILL_MANDATE" + ] + }, + "mandateRequirement": { + "type": "string", + "description": "Mandate requirement for the biller.", + "example": "MANDATORY", + "x-omitempty": true + }, + "upmsBillerParams": { + "type": "array", + "description": "The list of parameters that a biller requires to be passed in the `mandate.billerParams` while registering a new customer", + "items": { + "allOf": [ + { + "required": [ + "dataType", + "maxLength", + "minLength", + "optional", + "paramName", + "regex", + "values", + "visibility" + ], + "type": "object", + "properties": { + "regex": { + "type": "string", + "example": "^[a-zA-Z0-9]{7,15}" + }, + "values": { + "type": "string", + "example": "CHOICE1,CHOICE2,CHOICE3" + }, + "visibility": { + "type": "boolean", + "example": true + }, + "dataType": { + "type": "string", + "example": "ALPHANUMERIC" + }, + "maxLength": { + "type": "integer" + }, + "minLength": { + "type": "integer" + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Loan Account Number" + } + } + }, + { + "type": "object" + } ] }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - } + "x-omitempty": true + }, + "state": { + "type": "string", + "example": "TEL" + }, + "enforcesSameDayFetchPay": { + "type": "boolean", + "example": true, + "x-omitempty": false + }, + "logo": { + "type": "string", + "example": "logo" + }, + "payWithoutFetchAllowed": { + "type": "boolean", + "description": "Flag indicating if the Biller accepts adhoc payment", + "example": true } - } + }, + "x-go-name": "CouBillerDetails" }, - "paymentModes": { + "customerParams": { "type": "array", + "description": "The bill params for fetching the bill", "items": { "required": [ - "maxLimit", - "minLimit", - "paymentMode", - "supportsPendingStatus" + "name", + "value" ], "type": "object", "properties": { - "maxLimit": { - "type": "integer" - }, - "minLimit": { - "type": "integer" - }, - "paymentMode": { + "value": { "type": "string", - "example": "Internet Banking", - "enum": [ - "Internet Banking", - "Debit Card", - "Credit Card", - "Prepaid Card", - "IMPS", - "Cash", - "UPI", - "Wallet", - "NEFT", - "AEPS", - "Account Transfer", - "Bharat QR", - "USSD" - ] + "description": "The value of the customer parameter", + "example": "1895159" }, - "supportsPendingStatus": { - "type": "boolean", - "example": false + "name": { + "type": "string", + "description": "The display name of the parameter. This has to match what is sent in fields.", + "example": "Loan Number" } } } }, - "pincode": { - "type": "string", - "example": "pincode" - }, - "planRequirement": { - "type": "string", - "description": "Indicates if plan selection is required for bill payments", - "example": "MANDATORY", - "enum": [ - "MANDATORY", - "OPTIONAL", - "CONDITIONAL" + "etherealTransaction": { + "required": [ + "amount", + "billRefId", + "refId", + "status", + "transactionId" ], - "x-omitempty": true + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "example": "Q910192192192192" + }, + "amount": { + "type": "string", + "example": "100.00" + }, + "billRefId": { + "type": "string", + "description": "The BBPS Ref ID", + "example": "C3SFG0O6N88R6UI7EQ" + }, + "refId": { + "type": "string", + "example": "COUWL910192192192192" + }, + "status": { + "type": "string", + "enum": [ + "INIT", + "SUCCESS", + "FAILURE", + "PENDING", + "UNKNOWN" + ] + } + } }, - "responseType": { + "timestamp": { "type": "string", - "nullable": true, - "example": "SINGLE", - "enum": [ - "SINGLE", - "LIST", - "SELECTIVE" - ], - "x-nullable": true, - "x-omitempty": false + "description": "Timestamp provided by partner while making payment request.", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" }, - "selectionType": { + "transactionId": { "type": "string", - "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", - "nullable": true, - "example": "SINGLE", - "enum": [ - "SINGLE", - "MULTIPLE", - "ALL" - ], - "x-nullable": true, - "x-omitempty": false + "description": "Setu BillPay Transaction ID.", + "example": "AS01910192192192192" }, - "state": { - "type": "string", - "example": "TEL" + "amount": { + "type": "integer" }, - "subCategoryName": { + "billerId": { "type": "string", - "example": "DAIRY" + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" }, - "supportsPendingStatus": { - "type": "boolean", - "description": "Flag indicating whether pending status is applicable for the biller or not", - "example": false + "custConvFee": { + "type": "integer", + "description": "Customer convenience fee in paise" }, - "tags": { + "customerId": { "type": "string", - "example": "tags" - }, - "upmsBillerParams": { - "type": "array", - "description": "UPMS-specific biller parameters", - "items": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "UPMS parameter name", - "example": "mandateType" - }, - "value": { - "type": "string", - "description": "UPMS parameter value", - "example": "DEBIT", - "x-omitempty": true - } - } - }, - "x-omitempty": true + "description": "Customer Identifier" }, - "upmsBillerType": { + "refId": { "type": "string", - "description": "Type of UPMS biller", - "nullable": true, - "example": "MULTIPLE", - "x-omitempty": true - }, - "upmsEnabled": { - "type": "boolean", - "description": "Indicates if UPMS is enabled for this biller", - "nullable": true, - "example": true, - "x-omitempty": true + "description": "The generated Reference ID for the request." }, - "upmsRegistrationOverridingRule": { + "refundStatus": { "type": "string", - "description": "Rule specifying how to handle UPMS registration conflicts", - "nullable": true, - "example": "NEWEST", - "x-omitempty": true - } - }, - "x-go-name": "CouBillerDetails" - }, - "billerId": { - "type": "string", - "description": "The biller ID on BBPS", - "example": "MAHI00000NATIC" - }, - "custConvFee": { - "type": "integer", - "description": "Customer convenience fee in paise" - }, - "customerId": { - "type": "string", - "description": "Customer Identifier" - }, - "customerParams": { - "type": "array", - "description": "The bill params for fetching the bill", - "items": { - "required": [ - "name", - "value" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The display name of the parameter. This has to match what is sent in fields.", - "example": "Loan Number" - }, - "value": { - "type": "string", - "description": "The value of the customer parameter", - "example": "1895159" - } + "enum": [ + "Required", + "Requested", + "Processed" + ] } } }, - "etherealTransaction": { - "required": [ - "amount", - "billRefId", - "refId", - "status", - "transactionId" - ], + { "type": "object", "properties": { - "amount": { - "type": "string", - "example": "100.00" - }, - "billRefId": { - "type": "string", - "description": "The BBPS Ref ID", - "example": "C3SFG0O6N88R6UI7EQ" - }, - "refId": { - "type": "string", - "example": "COUWL910192192192192" - }, - "status": { + "paymentRefId": { + "maxLength": 35, + "minLength": 6, "type": "string", - "enum": [ - "INIT", - "SUCCESS", - "FAILURE", - "PENDING", - "UNKNOWN" - ] + "description": "Unique identifier provided by Partner for the payment request.", + "example": "BD019181220291" }, - "transactionId": { + "mobile": { + "maxLength": 22, + "minLength": 6, + "pattern": "^\\d{6,22}$", "type": "string", - "example": "Q910192192192192" + "description": "Mobile number with 6 to 22 digits are valid." } } - }, - "refId": { + } + ] + } + } + } + ] + } + }, + "nextPage": { + "type": "string", + "example": "/api/bbps/disputes?search=Aditya&CategoryCode=Loan+Repayment&CategoryCode=Insurance&after=ABCC00000PTNNS" + } + } + } + } + } + ] + } + } + } + }, + "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" + } + } + } + } + } + } + }, + "security": [ + { + "Production": [ + "bbps:partner" + ] + }, + { + "Sandbox": [ + "bbps:partner" + ] + }, + { + "QA": [ + "bbps:partner" + ] + } + ] + } + }, + "/api/v2/bbps/billers": { + "get": { + "tags": [ + "List" + ], + "description": "Returns the list of billers.", + "parameters": [ + { + "name": "X-PARTNER-ID", + "in": "header", + "description": "The Partner ID provided by Setu.", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "categoryName", + "in": "query", + "description": "Biller category. The query parameter follows a multi instance format. Usage: categoryName=category1&categoryName=category2", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "ids", + "in": "query", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "limit", + "in": "query", + "description": "Limit", + "schema": { + "maximum": 250.0, + "minimum": 1.0, + "type": "integer" + } + }, + { + "name": "after", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "search", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "pincode", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "city", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "country", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "coverage", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "tags", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "paymentChannel", + "in": "query", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "INT", + "INTB", + "MOB", + "BNKBRNCH", + "BSC", + "AGT", + "KIOSK", + "ATM", + "MOBB", + "POS", + "MPOS" + ] + } + } + }, + { + "name": "paymentMode", + "in": "query", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD" + ] + } + } + }, + { + "name": "updatedSince", + "in": "query", + "description": "Used to fetch billers updated since the given date-time in IST", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "pseudoBiller", + "in": "query", + "description": "Filter billers based on whether they are pseudo billers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "upmsEnabled", + "in": "query", + "description": "This field notifies whether a biller supports registering customers for automated bill presentments via UPMS. UPMS Create Registration requests will only be accepted for billers with `upmsEnabled` set to `true`.", + "schema": { + "type": "boolean" + } + }, + { + "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..." + } + ], + "responses": { + "200": { + "description": "List of billers", + "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": [ + "billers" + ], + "type": "object", + "properties": { + "nextPage": { + "type": "string", + "example": "/api/bbps/billers?search=Aditya&CategoryCode=Loan+Repayment&CategoryCode=Insurance&after=ABCC00000PTNNS" + }, + "total": { + "type": "integer" + }, + "billers": { + "type": "array", + "items": { + "required": [ + "categoryName", + "customerParams", + "exactness", + "fetchApiType", + "id", + "name", + "payWithoutFetchAllowed", + "paymentChannels", + "paymentModes", + "supportsPendingStatus" + ], + "type": "object", + "properties": { + "upmsEnabled": { + "type": "boolean", + "description": "This field denotes whether a biller supports registering customers for automated bill presentments via UPMS", + "nullable": true, + "example": true, + "x-omitempty": true + }, + "customerParams": { + "type": "array", + "items": { + "required": [ + "dataType", + "maxLength", + "minLength", + "optional", + "paramName", + "regex", + "values", + "visibility" + ], + "type": "object", + "properties": { + "regex": { + "type": "string", + "example": "^[a-zA-Z0-9]{7,15}" + }, + "values": { + "type": "string", + "example": "CHOICE1,CHOICE2,CHOICE3" + }, + "visibility": { + "type": "boolean", + "example": true + }, + "dataType": { + "type": "string", + "example": "ALPHANUMERIC" + }, + "maxLength": { + "type": "integer" + }, + "minLength": { + "type": "integer" + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Loan Account Number" + } + } + } + }, + "paymentModes": { + "type": "array", + "items": { + "required": [ + "maxLimit", + "minLimit", + "paymentMode", + "supportsPendingStatus" + ], + "type": "object", + "properties": { + "maxLimit": { + "type": "integer" + }, + "minLimit": { + "type": "integer" + }, + "paymentMode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "supportsPendingStatus": { + "type": "boolean", + "example": false + } + } + } + }, + "responseType": { + "type": "string", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], + "x-nullable": true, + "x-omitempty": false + }, + "subCategoryName": { + "type": "string", + "example": "DAIRY" + }, + "tags": { + "type": "string", + "example": "tags" + }, + "valAddFlag": { + "type": "boolean", + "description": "Flag indicating if value added services are enabled for the biller.", + "example": true, + "x-omitempty": true + }, + "country": { + "type": "string", + "example": "IND" + }, + "id": { + "type": "string", + "description": "Identifier of the biller in BBPS.", + "example": "ADIT00000NAT0T" + }, + "interchangeFee": { + "type": "array", + "items": { + "type": "object", + "properties": { + "feeDesc": { + "type": "string", + "example": "Customer Convenience Fee" + }, + "feeDirection": { + "type": "string", + "example": "C2B" + }, + "interchangeFeeDetails": { + "required": [ + "effctvFrom", + "effctvTo", + "flatFee", + "percentFee", + "tranAmtRangeMax", + "tranAmtRangeMin" + ], + "type": "object", + "properties": { + "tranAmtRangeMax": { + "type": "integer", + "format": "int64" + }, + "tranAmtRangeMin": { + "type": "integer", + "format": "int64" + }, + "effctvFrom": { + "type": "string", + "example": "2024-01-01" + }, + "effctvTo": { + "type": "string", + "example": "2024-12-31" + }, + "flatFee": { + "type": "number", + "format": "decimal", + "example": 0.0 + }, + "percentFee": { + "type": "number", + "format": "decimal", + "example": 1.0 + } + } + }, + "feeCode": { + "type": "string", + "example": "CCF1" + } + } + } + }, + "pincode": { + "type": "string", + "example": "pincode" + }, + "billerAdditionalInfo": { + "type": "array", + "items": { + "required": [ + "dataType", + "optional", + "paramName" + ], + "type": "object", + "properties": { + "dataType": { + "type": "string", + "example": "ALPHANUMERIC", + "enum": [ + "ALPHANUMERIC", + "NUMERIC" + ] + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Package Duration" + } + } + } + }, + "city": { + "type": "string", + "example": "Hyderabad" + }, + "coverage": { + "type": "string", + "example": "IND-TEL-Hyderabad" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": false + }, + "modifiedAt": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": false + }, + "name": { + "type": "string", + "description": "Name of the biller.", + "example": "Umbrella Corporation" + }, + "selectionType": { + "type": "string", + "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "MULTIPLE", + "ALL" + ], + "x-omitempty": false, + "x-nullable": true + }, + "categoryName": { + "type": "string", + "description": "Biller Category", + "example": "loan-repayment" + }, + "customerParamsGroups": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string", + "example": "Param 1" + } + } + }, + "exactness": { + "type": "string", + "example": "Exact", + "enum": [ + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" + ] + }, + "supportCallback": { + "type": "boolean", + "description": "Flag indicating if the biller supports callbacks.", + "example": true, + "x-omitempty": true + }, + "billerAdditionalInfoPayment": { + "type": "array", + "items": { + "required": [ + "dataType", + "optional", + "paramName" + ], + "type": "object", + "properties": { + "dataType": { + "type": "string", + "example": "ALPHANUMERIC", + "enum": [ + "ALPHANUMERIC", + "NUMERIC" + ] + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Package Duration" + } + } + } + }, + "paymentChannels": { + "type": "array", + "items": { + "required": [ + "maxLimit", + "minLimit", + "paymentChannel", + "supportsPendingStatus" + ], + "type": "object", + "properties": { + "maxLimit": { + "type": "integer" + }, + "minLimit": { + "type": "integer" + }, + "paymentChannel": { + "type": "string", + "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", + "example": "INT", + "enum": [ + "INT", + "INTB", + "MOB", + "BNKBRNCH", + "BSC", + "AGT", + "KIOSK", + "ATM", + "MOBB", + "POS", + "MPOS" + ] + }, + "supportsPendingStatus": { + "type": "boolean", + "example": false + } + } + } + }, + "planRequirement": { + "type": "string", + "description": "Indicates if plan selection is required for bill payments", + "example": "MANDATORY", + "enum": [ + "MANDATORY", + "OPTIONAL", + "CONDITIONAL" + ], + "x-omitempty": true + }, + "supportsPendingStatus": { + "type": "boolean", + "description": "Flag indicating whether pending status is applicable for the biller or not", + "example": false + }, + "pseudoBiller": { + "type": "boolean", + "description": "Flag indicating if the biller is a pseudo biller.", + "example": false, + "x-omitempty": true + }, + "valAddCustParams": { + "type": "array", + "description": "Customer parameters for value added services.", + "items": { + "type": "object", + "properties": { + "requestType": { + "type": "string", + "description": "Type of value added service request.", + "example": "GetCustomerId", + "enum": [ + "GetCustomerId", + "GenerateOTP", + "ValidateOTP", + "GetBankMarkup", + "FetchBestPrice" + ] + }, + "customerParams": { + "type": "array", + "items": { + "required": [ + "dataType", + "maxLength", + "minLength", + "optional", + "paramName", + "regex", + "values", + "visibility" + ], + "type": "object", + "properties": { + "regex": { "type": "string", - "description": "The generated Reference ID for the request." + "example": "^[a-zA-Z0-9]{7,15}" }, - "refundStatus": { + "values": { "type": "string", - "enum": [ - "Required", - "Requested", - "Processed" - ] + "example": "CHOICE1,CHOICE2,CHOICE3" }, - "status": { - "type": "string", - "example": "Success", - "enum": [ - "Processing", - "Success", - "Error", - "Credit_Adjustment" - ] + "visibility": { + "type": "boolean", + "example": true }, - "timestamp": { + "dataType": { "type": "string", - "description": "Timestamp provided by partner while making payment request.", - "format": "date-time", - "example": "2020-12-12T13:12:00+05:30" + "example": "ALPHANUMERIC" }, - "transactionId": { - "type": "string", - "description": "Setu BillPay Transaction ID.", - "example": "AS01910192192192192" - } - } - }, - { - "type": "object", - "properties": { - "mobile": { - "maxLength": 22, - "minLength": 6, - "pattern": "^\\d{6,22}$", - "type": "string", - "description": "Mobile number with 6 to 22 digits are valid." + "maxLength": { + "type": "integer" }, - "paymentRefId": { - "maxLength": 35, - "minLength": 6, + "minLength": { + "type": "integer" + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { "type": "string", - "description": "Unique identifier provided by Partner for the payment request.", - "example": "BD019181220291" + "example": "Loan Account Number" } } } - ] + } + } + }, + "x-omitempty": true + }, + "bbpsUpdateTimestamp": { + "type": "string", + "description": "Last updated date-time of the Biller accurate to the nearest day.", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": true + }, + "fetchApiType": { + "type": "string", + "enum": [ + "BILL_FETCH", + "BILL_VALIDATE", + "BILL_DIRECT", + "BILL_MANDATE" + ] + }, + "mandateRequirement": { + "type": "string", + "description": "Mandate requirement for the biller.", + "example": "MANDATORY", + "x-omitempty": true + }, + "upmsBillerParams": { + "type": "array", + "description": "The list of parameters that a biller requires to be passed in the `mandate.billerParams` while registering a new customer", + "items": { + "allOf": [ + { + "required": [ + "dataType", + "maxLength", + "minLength", + "optional", + "paramName", + "regex", + "values", + "visibility" + ], + "type": "object", + "properties": { + "regex": { + "type": "string", + "example": "^[a-zA-Z0-9]{7,15}" + }, + "values": { + "type": "string", + "example": "CHOICE1,CHOICE2,CHOICE3" + }, + "visibility": { + "type": "boolean", + "example": true + }, + "dataType": { + "type": "string", + "example": "ALPHANUMERIC" + }, + "maxLength": { + "type": "integer" + }, + "minLength": { + "type": "integer" + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Loan Account Number" + } + } + }, + { + "type": "object" + } + ] + }, + "x-omitempty": true + }, + "state": { + "type": "string", + "example": "TEL" + }, + "enforcesSameDayFetchPay": { + "type": "boolean", + "example": true, + "x-omitempty": false + }, + "logo": { + "type": "string", + "example": "logo" + }, + "payWithoutFetchAllowed": { + "type": "boolean", + "description": "Flag indicating if the Biller accepts adhoc payment", + "example": true + } + }, + "x-go-name": "CouBillerDetails" + } + } + } + }, + "error": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "validation-error" + }, + "message": { + "type": "string", + "example": "Input is invalid" + } + } + }, + "success": { + "type": "boolean", + "example": true + }, + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + } + } + } + } + } + }, + "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" + } + } + } + } + } + } + }, + "security": [ + { + "Production": [ + "bbps:partner" + ] + }, + { + "Sandbox": [ + "bbps:partner" + ] + }, + { + "QA": [ + "bbps:partner" + ] + } + ] + } + }, + "/api/v2/upms/registrations/{upmsRegistrationRefID}": { + "get": { + "tags": [ + "UPMS" + ], + "description": "View registration", + "operationId": "ViewUPMSRegistration", + "parameters": [ + { + "name": "X-PARTNER-ID", + "in": "header", + "description": "The Partner ID provided by Setu.", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "upmsRegistrationRefID", + "in": "path", + "description": "The reference ID of the UPMS registration you want to view.", + "required": true, + "schema": { + "maxLength": 35, + "minLength": 35, + "type": "string" + } + }, + { + "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..." + } + ], + "responses": { + "200": { + "description": "OK", + "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": [ + "biller", + "createdAt", + "customer", + "mandate", + "refId", + "status" + ], + "type": "object", + "properties": { + "mandate": { + "type": "object", + "properties": { + "billPeriod": { + "type": "string", + "description": "Mandatory for Validation & Pay billers. Allowed values: DAILY, WEEKLY, BIMONTHLY, MONTHLY, QUARTERLY, HALFYEARLY, YEARLY\nOptional for Fetch & Pay billers. Allowed values: ASPRESENTED\n", + "nullable": true, + "example": "MONTHLY", + "x-omitempty": true + }, + "billerParams": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Captures the name of the biller parameter to be sent as part of UPMS registration.", + "example": "Low Balance Threshold" + }, + "value": { + "type": "string", + "description": "The value of the biller parameter to be sent as part of UPMS registration.", + "example": "500" + } + }, + "description": "Optional. Only some billers require this. Details of the biller parameter to be sent as part of UPMS registration." + }, + "x-omitempty": true + }, + "debitInfo": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "description": "The fixed or maximum amount set for auto-debit (value must be provided in paise).", + "example": 10000 + }, + "currency": { + "type": "integer", + "description": "The currency code. Use `356` for `INR`.", + "example": 356 + }, + "debitDate": { + "type": "string", + "description": "The preferred date format (`DD-MMM`) for attempting the auto-debit each cycle.", + "example": "10-Feb" + }, + "paymentMode": { + "type": "string", + "description": "The payment method intended for auto-debit, allowed values:\n - Internet Banking\n - Debit Card\n - Credit Card\n - Prepaid Card\n - IMPS\n - UPI\n - Wallet\n - NEFT\n - AEPS\n - Account Transfer\n - Bharat QR", + "example": "UPI" + }, + "type": { + "type": "string", + "description": "Specifies the debit rule. Can be `FIXED_AMOUNT` (pay the exact bill amount) or `MAX_AMOUNT` (pay up to this limit).", + "example": "FIXED_AMOUNT" + } + }, + "description": "Details for debit information (mandatory when registrationType is AUTO_PAY)" + }, + "registrationType": { + "type": "string", + "description": "The type of registration (AUTO_PAY or VIEW_N_PAY)", + "example": "AUTO_PAY" + }, + "toDate": { + "type": "string", + "description": "The UPMS registration is invalid after this date. Date format is YYYY-MM-DD", + "nullable": true, + "example": "2027-01-01", + "x-omitempty": true + } + } + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + }, + "status": { + "type": "string", + "description": "A UPMS registration progresses through various states. The status field captures the current state of the registration. The possible values are: - PENDING: Initial state after a registration request is accepted but before the registration is confirmed. - SUCCESS: Registration is active; bills will be presented via callbacks. - FAILED: Registration could not be completed (e.g., invalid details). - CANCELLED: Registration permanently cancelled by user or system. - DEACTIVATED: Registration has been deactivated.", + "enum": [ + "SUCCESS", + "FAILED", + "PENDING", + "CANCELLED", + "DEACTIVATED" + ] + }, + "updatedAt": { + "type": "string", + "description": "Timestamp when registration was last updated", + "format": "date-time", + "example": "2024-06-16T11:22:33+05:30" + }, + "biller": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" + } + }, + "x-go-gen-location": "models", + "x-go-name": "BillerDetails" + }, + "createdAt": { + "type": "string", + "description": "Timestamp when registration was created", + "format": "date-time", + "example": "2024-06-15T10:30:45+05:30" + }, + "customer": { + "required": [ + "customerParams", + "mobile" + ], + "type": "object", + "properties": { + "customerId": { + "type": "string", + "description": "Customer Identifier" + }, + "customerParams": { + "type": "array", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value of the customer parameter", + "example": "1895159" + }, + "name": { + "type": "string", + "description": "The display name of the parameter. This has to match what is sent in fields.", + "example": "Loan Number" } } } + }, + "mobile": { + "maxLength": 22, + "minLength": 6, + "pattern": "^\\d{6,22}$", + "type": "string", + "description": "Mobile number with 6 to 22 digits are valid." + }, + "name": { + "maxLength": 100, + "type": "string", + "description": "Customer name registered with the Biller.", + "example": "Manoj Chekuri" } - ] + } + } + } + }, + "success": { + "type": "boolean", + "description": "Boolean value indicating the status of the request", + "example": true + }, + "traceId": { + "type": "string", + "description": "The unique traceId generated for the request", + "example": "CV4PE82LTNJE9O014OE0" + } + } + } + } + } + }, + "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" + } + } + } + } + } + }, + "404": { + "description": "Registration not found", + "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" + } + } + } + } + } + } + }, + "security": [ + { + "Production": [ + "bbps:partner" + ] + }, + { + "Sandbox": [ + "bbps:partner" + ] + }, + { + "QA": [ + "bbps:partner" + ] + } + ] + }, + "delete": { + "tags": [ + "UPMS" + ], + "description": "Cancel registration", + "operationId": "CancelUPMSRegistration", + "parameters": [ + { + "name": "X-PARTNER-ID", + "in": "header", + "description": "The Partner ID provided by Setu.", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "upmsRegistrationRefID", + "in": "path", + "description": "The reference ID of the UPMS registration you want to cancel.", + "required": true, + "schema": { + "maxLength": 35, + "minLength": 35, + "type": "string" + } + }, + { + "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..." + } + ], + "responses": { + "200": { + "description": "Success response", + "headers": { + "X-Frame-Options": { + "schema": { + "type": "string" + } + }, + "Strict-Transport-Security": { + "schema": { + "type": "string" + } + }, + "Cache-Control": { + "schema": { + "type": "string" + } + }, + "X-Content-Type-Options": { + "schema": { + "type": "string" + } + }, + "Content-Security-Policy": { + "schema": { + "type": "string" + } + }, + "Pragma": { + "schema": { + "type": "string" + } + }, + "X-XSS-Protection": { + "schema": { + "type": "string" + } + } + }, + "content": { + "*/*": { + "schema": { + "required": [ + "success", + "traceId" + ], + "type": "object", + "properties": { + "traceId": { + "type": "string", + "description": "The traceId generated for the request.", + "example": "C3SFG0O6N88R6UI7EQ" + }, + "success": { + "type": "boolean", + "description": "Indicator to denote whether the request is successful.", + "example": true + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "*/*": { + "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" } + } + } + } + } + }, + "404": { + "description": "Registration not found or unauthorized access", + "content": { + "*/*": { + "schema": { + "required": [ + "error", + "success", + "traceId" ], - "x-go-name": "TransactionsResponse" + "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" + } + } } } } }, - "400": { - "description": "Bad request", + "409": { + "description": "Registration status invalid for cancellation", "content": { - "application/json": { + "*/*": { "schema": { "required": [ "error", @@ -6881,9 +10574,9 @@ } }, "500": { - "description": "Bad request", + "description": "Server error", "content": { - "application/json": { + "*/*": { "schema": { "required": [ "error", @@ -6940,331 +10633,234 @@ ] } ] - } - }, - "/api/v2/health": { - "get": { + }, + "patch": { "tags": [ - "Health" + "UPMS" ], - "description": "Health check", - "operationId": "getHealth", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "required": [ - "environment", - "server", - "version" - ], - "type": "object", - "properties": { - "environment": { - "type": "string", - "example": "PROD" - }, - "server": { - "type": "string", - "example": "mistborn" + "description": "Update registration", + "operationId": "UpdateUPMSRegistration", + "parameters": [ + { + "name": "X-PARTNER-ID", + "in": "header", + "description": "The Partner ID provided by Setu.", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "upmsRegistrationRefID", + "in": "path", + "description": "The reference ID of the UPMS registration you want to update.", + "required": true, + "schema": { + "maxLength": 35, + "minLength": 35, + "type": "string" + } + }, + { + "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": [ + "mandate" + ], + "type": "object", + "properties": { + "mandate": { + "type": "object", + "properties": { + "debitInfo": { + "type": "object", + "properties": { + "amount": { + "maximum": 999999999, + "minimum": 1, + "type": "integer", + "description": "The amount for FIXED_AMOUNT or maximum limit for MAX_AMOUNT.", + "nullable": true, + "x-omitempty": true + }, + "debitDate": { + "pattern": "^(0[1-9]|[12][0-9]|3[01])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)$", + "type": "string", + "description": "Preferred date for debit (DD-MMM format). Valid only for billers with fetchApiType=BILL_VALIDATE.", + "example": "02-Jan" + }, + "type": { + "type": "string", + "description": "Type of debit limit.", + "example": "FIXED_AMOUNT", + "enum": [ + "FIXED_AMOUNT", + "MAX_AMOUNT" + ] + } + }, + "description": "Debit details for AUTO_PAY mandate updates. Only include fields that need changing." + }, + "registrationType": { + "type": "string", + "description": "Type of registration (AUTO_PAY or VIEW_N_PAY).", + "enum": [ + "AUTO_PAY", + "VIEW_N_PAY" + ] + }, + "toDate": { + "type": "string", + "description": "The date until which the mandate is valid (YYYY-MM-DD). Must be a future date.", + "format": "date", + "example": "2027-01-01" + }, + "billPeriod": { + "type": "string", + "description": "Desired frequency for bill presentation/payment. Valid only for billers with fetchApiType=BILL_VALIDATE, except ASPRESENTED.", + "enum": [ + "DAILY", + "WEEKLY", + "BIMONTHLY", + "MONTHLY", + "QUARTERLY", + "HALFYEARLY", + "YEARLY", + "ASPRESENTED" + ] + } }, - "version": { - "type": "string", - "example": "db42717a829da9d3061e4f409f3c0ee9935b72a5" - } - }, - "x-go-name": "HealthResponseParam", - "x-omitempty": true - } + "description": "Details of the mandate to be updated. Only include fields that need changing." + } + }, + "x-go-name": "CouAgentUpdateUPMSRegistrationRequest", + "x-omitempty": true } } - } - } - } - }, - "/api/v2/upms/registrations/{upmsRegistrationRefID}": { - "get": { - "tags": [ - "UPMS" - ], - "description": "View registration", - "operationId": "ViewUPMSRegistration", - "parameters": [ - { - "name": "X-PARTNER-ID", - "in": "header", - "description": "The Partner ID provided by Setu.", - "required": true, - "schema": { - "type": "integer" - } }, - { - "name": "upmsRegistrationRefID", - "in": "path", - "description": "The reference ID of the UPMS registration you want to view.", - "required": true, - "schema": { - "maxLength": 35, - "minLength": 35, - "type": "string" - } - } - ], + "required": true + }, "responses": { "200": { - "description": "OK", + "description": "Update request acknowledged successfully.", "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": [ - "biller", - "createdAt", - "customer", - "mandate", - "refId", - "status" - ], - "type": "object", - "properties": { - "biller": { - "required": [ - "id" - ], - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The biller ID on BBPS", - "example": "MAHI00000NATIC" - } - }, - "x-go-gen-location": "models", - "x-go-name": "BillerDetails" - }, - "createdAt": { - "type": "string", - "description": "Timestamp when registration was created", - "format": "date-time", - "example": "2024-06-15T10:30:45+05:30" - }, - "customer": { - "required": [ - "customerParams", - "mobile" - ], - "type": "object", - "properties": { - "customerId": { - "type": "string", - "description": "Customer Identifier" - }, - "customerParams": { - "type": "array", - "items": { - "required": [ - "name", - "value" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The display name of the parameter. This has to match what is sent in fields.", - "example": "Loan Number" - }, - "value": { - "type": "string", - "description": "The value of the customer parameter", - "example": "1895159" - } - } - } - }, - "mobile": { - "maxLength": 22, - "minLength": 6, - "pattern": "^\\d{6,22}$", - "type": "string", - "description": "Mobile number with 6 to 22 digits are valid." - }, - "name": { - "maxLength": 100, - "type": "string", - "description": "Customer name registered with the Biller.", - "example": "Manoj Chekuri" - } - } - }, - "mandate": { - "type": "object", - "properties": { - "billPeriod": { - "type": "string", - "description": "Mandatory for Validation & Pay billers. Allowed values: DAILY, WEEKLY, BIMONTHLY, MONTHLY, QUARTERLY, HALFYEARLY, YEARLY\nOptional for Fetch & Pay billers. Allowed values: ASPRESENTED\n", - "nullable": true, - "example": "MONTHLY", - "x-omitempty": true - }, - "billerParams": { - "type": "array", - "nullable": true, - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Captures the name of the biller parameter to be sent as part of UPMS registration.", - "example": "Low Balance Threshold" - }, - "value": { - "type": "string", - "description": "The value of the biller parameter to be sent as part of UPMS registration.", - "example": "500" - } - }, - "description": "Optional. Only some billers require this. Details of the biller parameter to be sent as part of UPMS registration." - }, - "x-omitempty": true - }, - "debitInfo": { - "type": "object", - "properties": { - "amount": { - "type": "integer", - "description": "The fixed or maximum amount set for auto-debit (value must be provided in paise).", - "example": 10000 - }, - "currency": { - "type": "integer", - "description": "The currency code. Use `356` for `INR`.", - "example": 356 - }, - "debitDate": { - "type": "string", - "description": "The preferred date format (`DD-MMM`) for attempting the auto-debit each cycle.", - "example": "10-Feb" - }, - "paymentMode": { - "type": "string", - "description": "The payment method intended for auto-debit, allowed values:\n - Internet Banking\n - Debit Card\n - Credit Card\n - Prepaid Card\n - IMPS\n - UPI\n - Wallet\n - NEFT\n - AEPS\n - Account Transfer\n - Bharat QR", - "example": "UPI" - }, - "type": { - "type": "string", - "description": "Specifies the debit rule. Can be `FIXED_AMOUNT` (pay the exact bill amount) or `MAX_AMOUNT` (pay up to this limit).", - "example": "FIXED_AMOUNT" - } - }, - "description": "Details for debit information (mandatory when registrationType is AUTO_PAY)" - }, - "registrationType": { - "type": "string", - "description": "The type of registration (AUTO_PAY or VIEW_N_PAY)", - "example": "AUTO_PAY" - }, - "toDate": { - "type": "string", - "description": "The UPMS registration is invalid after this date. Date format is YYYY-MM-DD", - "nullable": true, - "example": "2027-01-01", - "x-omitempty": true - } - } - }, - "refId": { - "type": "string", - "description": "The generated Reference ID for the request." - }, - "status": { + "schema": { + "type": "string" + } + }, + "X-Content-Type-Options": { + "schema": { + "type": "string" + } + }, + "Content-Security-Policy": { + "schema": { + "type": "string" + } + }, + "Pragma": { + "schema": { + "type": "string" + } + }, + "X-XSS-Protection": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "required": [ + "success", + "traceId" + ], + "type": "object", + "properties": { + "traceId": { + "type": "string", + "description": "The traceId generated for the request.", + "example": "C3SFG0O6N88R6UI7EQ" + }, + "success": { + "type": "boolean", + "description": "Indicator to denote whether the request is successful.", + "example": true + } + } + } + } + } + }, + "400": { + "description": "Bad request (e.g., validation error)", + "content": { + "application/json": { + "schema": { + "required": [ + "error", + "success", + "traceId" + ], + "type": "object", + "properties": { + "error": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "code": { "type": "string", - "description": "A UPMS registration progresses through various states. The status field captures the current state of the registration. The possible values are: - PENDING: Initial state after a registration request is accepted but before the registration is confirmed. - SUCCESS: Registration is active; bills will be presented via callbacks. - FAILED: Registration could not be completed (e.g., invalid details). - CANCELLED: Registration permanently cancelled by user or system. - DEACTIVATED: Registration has been deactivated.", - "enum": [ - "SUCCESS", - "FAILED", - "PENDING", - "CANCELLED", - "DEACTIVATED" - ] + "example": "validation-error" }, - "updatedAt": { + "message": { "type": "string", - "description": "Timestamp when registration was last updated", - "format": "date-time", - "example": "2024-06-16T11:22:33+05:30" + "example": "Input is invalid" } } }, "success": { "type": "boolean", - "description": "Boolean value indicating the status of the request", - "example": true + "example": false }, "traceId": { "type": "string", - "description": "The unique traceId generated for the request", - "example": "CV4PE82LTNJE9O014OE0" + "example": "C3SFG0O6N88R6UI7EQ" } } } } } }, - "400": { - "description": "Bad request", + "404": { + "description": "Registration not found or unauthorized access", "content": { "application/json": { "schema": { @@ -7305,8 +10901,8 @@ } } }, - "404": { - "description": "Registration not found", + "409": { + "description": "Conflict (e.g., trying to update a cancelled registration)", "content": { "application/json": { "schema": { @@ -7348,7 +10944,7 @@ } }, "500": { - "description": "Bad request", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -7406,14 +11002,17 @@ "bbps:partner" ] } - ] - }, - "delete": { + ], + "x-codegen-request-body-name": "CouAgentUpdateUPMSRegistrationRequest" + } + }, + "/api/v2/bbps/billers/plans": { + "get": { "tags": [ - "UPMS" + "List" ], - "description": "Cancel registration", - "operationId": "CancelUPMSRegistration", + "description": "Returns the list of plans for a given set of billers", + "operationId": "getBillerPlans", "parameters": [ { "name": "X-PARTNER-ID", @@ -7425,135 +11024,236 @@ } }, { - "name": "upmsRegistrationRefID", - "in": "path", - "description": "The reference ID of the UPMS registration you want to cancel.", + "name": "billerIds", + "in": "query", + "description": "Biller IDs", "required": true, + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "limit", + "in": "query", + "description": "Number of plans to return per page", + "schema": { + "maximum": 4000.0, + "minimum": 1.0, + "type": "integer" + } + }, + { + "name": "after", + "in": "query", "schema": { - "maxLength": 35, - "minLength": 35, "type": "string" } + }, + { + "name": "updatedSince", + "in": "query", + "description": "Used to fetch plans updated since the given date-time in IST", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "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..." } ], "responses": { "200": { - "description": "Success response", + "description": "List of plans for the biller", "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": { - "*/*": { - "schema": { - "required": [ - "success", - "traceId" - ], - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Indicator to denote whether the request is successful.", - "example": true - }, - "traceId": { - "type": "string", - "description": "The traceId generated for the request.", - "example": "C3SFG0O6N88R6UI7EQ" - } - } - } - } - } - }, - "400": { - "description": "Bad request", - "content": { - "*/*": { + "application/json": { "schema": { "required": [ - "error", "success", "traceId" ], "type": "object", "properties": { - "error": { + "data": { "required": [ - "code", - "message" + "plans" ], "type": "object", "properties": { - "code": { + "nextPage": { "type": "string", - "example": "validation-error" + "example": "/api/bbps/billers/plans?biller_ids=BILLER_01&after=ABCC00000PTNNS" + }, + "plans": { + "type": "array", + "items": { + "required": [ + "Id", + "amountInRupees", + "categoryType", + "description", + "status" + ], + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Plan ID", + "example": "1.0", + "x-order": 1.0 + }, + "amountInRupees": { + "type": "string", + "example": "22.0", + "x-order": 2.0 + }, + "categorySubType": { + "type": "object", + "properties": {}, + "description": "Plan sub category as defined by the Biller.", + "example": { + "subType": "1 Month" + }, + "x-omitempty": true, + "x-order": 4.0 + }, + "additionalInfo": { + "minItems": 1, + "type": "array", + "description": "Plan Additional information details provided by the Biller.", + "example": [ + { + "paramName": "Mobile Number", + "paramValue": "Text" + } + ], + "items": { + "type": "object", + "properties": { + "paramName": { + "type": "string", + "example": "Plan Additional information parameter name." + }, + "paramValue": { + "type": "string", + "example": "Plan Additional information parameter value." + } + }, + "example": { + "paramName": "Mobile Number", + "paramValue": "Text" + }, + "x-go-name": "PlanAdditionalInfoItem" + }, + "x-omitempty": true + }, + "description": { + "type": "string", + "description": "Plan description as defined by the Biller.", + "example": "Unlimited Live Sports" + }, + "effectiveFrom": { + "type": "string", + "description": "Effective from date of corresponding Plan.", + "format": "date", + "nullable": true, + "example": "2017-07-21", + "x-omitempty": false + }, + "status": { + "type": "string", + "description": "Effective to date of corresponding Plan.", + "example": "ACTIVE", + "enum": [ + "ACTIVE", + "DEACTIVATED" + ] + }, + "billerId": { + "type": "string", + "description": "Biller ID to which the plan belongs to", + "example": "1.0", + "x-order": 0.0 + }, + "categoryType": { + "type": "string", + "description": "Plan category as defined by the Biller.", + "example": "VIP", + "x-order": 3.0 + }, + "effectiveTo": { + "type": "string", + "description": "Effective to date of corresponding Plan.", + "format": "date", + "nullable": true, + "example": "2020-08-21", + "x-omitempty": false + } + } + } }, - "message": { - "type": "string", - "example": "Input is invalid" + "total": { + "type": "integer" } } }, - "success": { - "type": "boolean", - "example": false - }, - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - } - } - } - } - } - }, - "404": { - "description": "Registration not found or unauthorized access", - "content": { - "*/*": { - "schema": { - "required": [ - "error", - "success", - "traceId" - ], - "type": "object", - "properties": { "error": { "required": [ "code", @@ -7573,7 +11273,7 @@ }, "success": { "type": "boolean", - "example": false + "example": true }, "traceId": { "type": "string", @@ -7584,10 +11284,10 @@ } } }, - "409": { - "description": "Registration status invalid for cancellation", + "400": { + "description": "Bad request", "content": { - "*/*": { + "application/json": { "schema": { "required": [ "error", @@ -7627,9 +11327,9 @@ } }, "500": { - "description": "Server error", + "description": "Bad request", "content": { - "*/*": { + "application/json": { "schema": { "required": [ "error", @@ -7686,150 +11386,239 @@ ] } ] - }, - "patch": { + } + }, + "/api/v2/bbps/transactions": { + "get": { "tags": [ - "UPMS" + "List" ], - "description": "Update registration", - "operationId": "UpdateUPMSRegistration", + "description": "Returns the list of transactions.", "parameters": [ { - "name": "X-PARTNER-ID", - "in": "header", - "description": "The Partner ID provided by Setu.", - "required": true, + "name": "X-PARTNER-ID", + "in": "header", + "description": "The Partner ID provided by Setu.", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "limit", + "in": "query", + "schema": { + "type": "integer" + } + }, + { + "name": "after", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "startDate", + "in": "query", + "description": "start date of the timestamp provided by the partner while making the request.", + "required": true, + "schema": { + "type": "string", + "format": "date" + } + }, + { + "name": "endDate", + "in": "query", + "description": "end date of the timestamp provided by the partner while making the request.", + "required": true, + "schema": { + "type": "string", + "format": "date" + } + }, + { + "name": "billerId", + "in": "query", + "description": "Transaction BillerId", + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "categories", + "in": "query", + "description": "Biller Category", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "billerFetchApiType", + "in": "query", + "description": "Biller Fetch Api Type", + "schema": { + "type": "string", + "enum": [ + "BILL_FETCH", + "BILL_VALIDATE", + "BILL_DIRECT", + "BILL_MANDATE" + ] + } + }, + { + "name": "months", + "in": "query", + "description": "Month ranges. A full-date notation as defined by 'RFC 3339, section 5.6' has to be provided but only month and year will be considered.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "date" + } + } + }, + { + "name": "status", + "in": "query", + "description": "Transaction Status", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Processing", + "Success", + "Error" + ] + } + } + }, + { + "name": "mobile", + "in": "query", + "description": "Mobile number with 6 to 22 digits are valid.", + "schema": { + "maxLength": 22, + "minLength": 6, + "pattern": "^\\d{6,22}$", + "type": "string" + } + }, + { + "name": "customerId", + "in": "query", + "description": "Customer Identifier", + "schema": { + "type": "string" + } + }, + { + "name": "expand", + "in": "query", + "style": "form", + "explode": false, + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "BILLER", + "ETHEREAL_TRANSACTION" + ] + } + } + }, + { + "name": "refundStatus", + "in": "query", "schema": { - "type": "integer" + "type": "string", + "enum": [ + "Required", + "Requested", + "Processed" + ] } }, { - "name": "upmsRegistrationRefID", - "in": "path", - "description": "The reference ID of the UPMS registration you want to update.", + "name": "Authorization", + "in": "header", "required": true, "schema": { - "maxLength": 35, - "minLength": 35, - "type": "string" - } + "type": "string", + "pattern": "^Bearer [a-zA-Z0-9\\-\\._~\\+\\/]+=*$" + }, + "description": "Bearer token for authentication. Format: `Bearer `", + "example": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "required": [ - "mandate" - ], - "type": "object", - "properties": { - "mandate": { - "type": "object", - "properties": { - "billPeriod": { - "type": "string", - "description": "Desired frequency for bill presentation/payment. Valid only for billers with fetchApiType=BILL_VALIDATE, except ASPRESENTED.", - "enum": [ - "DAILY", - "WEEKLY", - "BIMONTHLY", - "MONTHLY", - "QUARTERLY", - "HALFYEARLY", - "YEARLY", - "ASPRESENTED" - ] - }, - "debitInfo": { - "type": "object", - "properties": { - "amount": { - "maximum": 999999999, - "minimum": 1, - "type": "integer", - "description": "The amount for FIXED_AMOUNT or maximum limit for MAX_AMOUNT.", - "nullable": true, - "x-omitempty": true - }, - "debitDate": { - "pattern": "^(0[1-9]|[12][0-9]|3[01])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)$", - "type": "string", - "description": "Preferred date for debit (DD-MMM format). Valid only for billers with fetchApiType=BILL_VALIDATE.", - "example": "02-Jan" - }, - "type": { - "type": "string", - "description": "Type of debit limit.", - "example": "FIXED_AMOUNT", - "enum": [ - "FIXED_AMOUNT", - "MAX_AMOUNT" - ] - } - }, - "description": "Debit details for AUTO_PAY mandate updates. Only include fields that need changing." - }, - "registrationType": { - "type": "string", - "description": "Type of registration (AUTO_PAY or VIEW_N_PAY).", - "enum": [ - "AUTO_PAY", - "VIEW_N_PAY" - ] - }, - "toDate": { - "type": "string", - "description": "The date until which the mandate is valid (YYYY-MM-DD). Must be a future date.", - "format": "date", - "example": "2027-01-01" - } - }, - "description": "Details of the mandate to be updated. Only include fields that need changing." - } - }, - "x-go-name": "CouAgentUpdateUPMSRegistrationRequest", - "x-omitempty": true - } - } - }, - "required": true - }, "responses": { "200": { - "description": "Update request acknowledged successfully.", + "description": "List of Txns", "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" } @@ -7838,113 +11627,777 @@ "content": { "application/json": { "schema": { - "required": [ - "success", - "traceId" - ], - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Indicator to denote whether the request is successful.", - "example": true - }, - "traceId": { - "type": "string", - "description": "The traceId generated for the request.", - "example": "C3SFG0O6N88R6UI7EQ" - } - } - } - } - } - }, - "400": { - "description": "Bad request (e.g., validation error)", - "content": { - "application/json": { - "schema": { - "required": [ - "error", - "success", - "traceId" - ], - "type": "object", - "properties": { - "error": { + "allOf": [ + { "required": [ - "code", - "message" + "success", + "traceId" ], "type": "object", "properties": { - "code": { - "type": "string", - "example": "validation-error" + "success": { + "type": "boolean", + "example": true }, - "message": { + "traceId": { "type": "string", - "example": "Input is invalid" + "example": "C3SFG0O6N88R6UI7EQ" + } + } + }, + { + "required": [ + "data" + ], + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "type": "object", + "properties": { + "nextPage": { + "type": "string", + "example": "/api/bbps/transactions?search=Aditya&CategoryCode=Loan+Repayment&CategoryCode=Insurance&after=ABCC00000PTNNS" + } + } + }, + { + "type": "object", + "properties": { + "transactions": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "Success", + "enum": [ + "Processing", + "Success", + "Error", + "Credit_Adjustment" + ] + }, + "biller": { + "required": [ + "categoryName", + "customerParams", + "exactness", + "fetchApiType", + "id", + "name", + "payWithoutFetchAllowed", + "paymentChannels", + "paymentModes", + "supportsPendingStatus" + ], + "type": "object", + "properties": { + "upmsEnabled": { + "type": "boolean", + "description": "This field denotes whether a biller supports registering customers for automated bill presentments via UPMS", + "nullable": true, + "example": true, + "x-omitempty": true + }, + "customerParams": { + "type": "array", + "items": { + "required": [ + "dataType", + "maxLength", + "minLength", + "optional", + "paramName", + "regex", + "values", + "visibility" + ], + "type": "object", + "properties": { + "regex": { + "type": "string", + "example": "^[a-zA-Z0-9]{7,15}" + }, + "values": { + "type": "string", + "example": "CHOICE1,CHOICE2,CHOICE3" + }, + "visibility": { + "type": "boolean", + "example": true + }, + "dataType": { + "type": "string", + "example": "ALPHANUMERIC" + }, + "maxLength": { + "type": "integer" + }, + "minLength": { + "type": "integer" + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Loan Account Number" + } + } + } + }, + "paymentModes": { + "type": "array", + "items": { + "required": [ + "maxLimit", + "minLimit", + "paymentMode", + "supportsPendingStatus" + ], + "type": "object", + "properties": { + "maxLimit": { + "type": "integer" + }, + "minLimit": { + "type": "integer" + }, + "paymentMode": { + "type": "string", + "example": "Internet Banking", + "enum": [ + "Internet Banking", + "Debit Card", + "Credit Card", + "Prepaid Card", + "IMPS", + "Cash", + "UPI", + "Wallet", + "NEFT", + "AEPS", + "Account Transfer", + "Bharat QR", + "USSD", + "BHIM Aadhaar Pay" + ] + }, + "supportsPendingStatus": { + "type": "boolean", + "example": false + } + } + } + }, + "responseType": { + "type": "string", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], + "x-nullable": true, + "x-omitempty": false + }, + "subCategoryName": { + "type": "string", + "example": "DAIRY" + }, + "tags": { + "type": "string", + "example": "tags" + }, + "valAddFlag": { + "type": "boolean", + "description": "Flag indicating if value added services are enabled for the biller.", + "example": true, + "x-omitempty": true + }, + "country": { + "type": "string", + "example": "IND" + }, + "id": { + "type": "string", + "description": "Identifier of the biller in BBPS.", + "example": "ADIT00000NAT0T" + }, + "interchangeFee": { + "type": "array", + "items": { + "type": "object", + "properties": { + "feeDesc": { + "type": "string", + "example": "Customer Convenience Fee" + }, + "feeDirection": { + "type": "string", + "example": "C2B" + }, + "interchangeFeeDetails": { + "required": [ + "effctvFrom", + "effctvTo", + "flatFee", + "percentFee", + "tranAmtRangeMax", + "tranAmtRangeMin" + ], + "type": "object", + "properties": { + "tranAmtRangeMax": { + "type": "integer", + "format": "int64" + }, + "tranAmtRangeMin": { + "type": "integer", + "format": "int64" + }, + "effctvFrom": { + "type": "string", + "example": "2024-01-01" + }, + "effctvTo": { + "type": "string", + "example": "2024-12-31" + }, + "flatFee": { + "type": "number", + "format": "decimal", + "example": 0.0 + }, + "percentFee": { + "type": "number", + "format": "decimal", + "example": 1.0 + } + } + }, + "feeCode": { + "type": "string", + "example": "CCF1" + } + } + } + }, + "pincode": { + "type": "string", + "example": "pincode" + }, + "billerAdditionalInfo": { + "type": "array", + "items": { + "required": [ + "dataType", + "optional", + "paramName" + ], + "type": "object", + "properties": { + "dataType": { + "type": "string", + "example": "ALPHANUMERIC", + "enum": [ + "ALPHANUMERIC", + "NUMERIC" + ] + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Package Duration" + } + } + } + }, + "city": { + "type": "string", + "example": "Hyderabad" + }, + "coverage": { + "type": "string", + "example": "IND-TEL-Hyderabad" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": false + }, + "modifiedAt": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": false + }, + "name": { + "type": "string", + "description": "Name of the biller.", + "example": "Umbrella Corporation" + }, + "selectionType": { + "type": "string", + "description": "Defined only for billers with response type as LIST. SINGLE: User can pay only one of the bills in bill fetch response. MULTIPLE: User can pay any combination of bills in bill fetch response. ALL: User has to pay all the bills in bill fetch response.", + "nullable": true, + "example": "SINGLE", + "enum": [ + "SINGLE", + "MULTIPLE", + "ALL" + ], + "x-omitempty": false, + "x-nullable": true + }, + "categoryName": { + "type": "string", + "description": "Biller Category", + "example": "loan-repayment" + }, + "customerParamsGroups": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string", + "example": "Param 1" + } + } + }, + "exactness": { + "type": "string", + "example": "Exact", + "enum": [ + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" + ] + }, + "supportCallback": { + "type": "boolean", + "description": "Flag indicating if the biller supports callbacks.", + "example": true, + "x-omitempty": true + }, + "billerAdditionalInfoPayment": { + "type": "array", + "items": { + "required": [ + "dataType", + "optional", + "paramName" + ], + "type": "object", + "properties": { + "dataType": { + "type": "string", + "example": "ALPHANUMERIC", + "enum": [ + "ALPHANUMERIC", + "NUMERIC" + ] + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Package Duration" + } + } + } + }, + "paymentChannels": { + "type": "array", + "items": { + "required": [ + "maxLimit", + "minLimit", + "paymentChannel", + "supportsPendingStatus" + ], + "type": "object", + "properties": { + "maxLimit": { + "type": "integer" + }, + "minLimit": { + "type": "integer" + }, + "paymentChannel": { + "type": "string", + "description": "This is the initiating channel.\n1. `AGT`: Offline agent.\n2. `BNKBRNCH`: Bank branch.\n3. `BSC`: Business correspondent\n4. `MOB`: Mobile application\n5. `INT`: Internet portal\n6. `INTB`: Internet banking\n7. `MOBB`: Mobile banking\n8. `ATM`: ATM\n9. `KIOSK`: KIOSK\n", + "example": "INT", + "enum": [ + "INT", + "INTB", + "MOB", + "BNKBRNCH", + "BSC", + "AGT", + "KIOSK", + "ATM", + "MOBB", + "POS", + "MPOS" + ] + }, + "supportsPendingStatus": { + "type": "boolean", + "example": false + } + } + } + }, + "planRequirement": { + "type": "string", + "description": "Indicates if plan selection is required for bill payments", + "example": "MANDATORY", + "enum": [ + "MANDATORY", + "OPTIONAL", + "CONDITIONAL" + ], + "x-omitempty": true + }, + "supportsPendingStatus": { + "type": "boolean", + "description": "Flag indicating whether pending status is applicable for the biller or not", + "example": false + }, + "pseudoBiller": { + "type": "boolean", + "description": "Flag indicating if the biller is a pseudo biller.", + "example": false, + "x-omitempty": true + }, + "valAddCustParams": { + "type": "array", + "description": "Customer parameters for value added services.", + "items": { + "type": "object", + "properties": { + "requestType": { + "type": "string", + "description": "Type of value added service request.", + "example": "GetCustomerId", + "enum": [ + "GetCustomerId", + "GenerateOTP", + "ValidateOTP", + "GetBankMarkup", + "FetchBestPrice" + ] + }, + "customerParams": { + "type": "array", + "items": { + "required": [ + "dataType", + "maxLength", + "minLength", + "optional", + "paramName", + "regex", + "values", + "visibility" + ], + "type": "object", + "properties": { + "regex": { + "type": "string", + "example": "^[a-zA-Z0-9]{7,15}" + }, + "values": { + "type": "string", + "example": "CHOICE1,CHOICE2,CHOICE3" + }, + "visibility": { + "type": "boolean", + "example": true + }, + "dataType": { + "type": "string", + "example": "ALPHANUMERIC" + }, + "maxLength": { + "type": "integer" + }, + "minLength": { + "type": "integer" + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Loan Account Number" + } + } + } + } + } + }, + "x-omitempty": true + }, + "bbpsUpdateTimestamp": { + "type": "string", + "description": "Last updated date-time of the Biller accurate to the nearest day.", + "format": "date-time", + "nullable": true, + "example": "2021-11-12T13:37:04.572+05:30", + "x-omitempty": true + }, + "fetchApiType": { + "type": "string", + "enum": [ + "BILL_FETCH", + "BILL_VALIDATE", + "BILL_DIRECT", + "BILL_MANDATE" + ] + }, + "mandateRequirement": { + "type": "string", + "description": "Mandate requirement for the biller.", + "example": "MANDATORY", + "x-omitempty": true + }, + "upmsBillerParams": { + "type": "array", + "description": "The list of parameters that a biller requires to be passed in the `mandate.billerParams` while registering a new customer", + "items": { + "allOf": [ + { + "required": [ + "dataType", + "maxLength", + "minLength", + "optional", + "paramName", + "regex", + "values", + "visibility" + ], + "type": "object", + "properties": { + "regex": { + "type": "string", + "example": "^[a-zA-Z0-9]{7,15}" + }, + "values": { + "type": "string", + "example": "CHOICE1,CHOICE2,CHOICE3" + }, + "visibility": { + "type": "boolean", + "example": true + }, + "dataType": { + "type": "string", + "example": "ALPHANUMERIC" + }, + "maxLength": { + "type": "integer" + }, + "minLength": { + "type": "integer" + }, + "optional": { + "type": "boolean", + "example": false + }, + "paramName": { + "type": "string", + "example": "Loan Account Number" + } + } + }, + { + "type": "object" + } + ] + }, + "x-omitempty": true + }, + "state": { + "type": "string", + "example": "TEL" + }, + "enforcesSameDayFetchPay": { + "type": "boolean", + "example": true, + "x-omitempty": false + }, + "logo": { + "type": "string", + "example": "logo" + }, + "payWithoutFetchAllowed": { + "type": "boolean", + "description": "Flag indicating if the Biller accepts adhoc payment", + "example": true + } + }, + "x-go-name": "CouBillerDetails" + }, + "customerParams": { + "type": "array", + "description": "The bill params for fetching the bill", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value of the customer parameter", + "example": "1895159" + }, + "name": { + "type": "string", + "description": "The display name of the parameter. This has to match what is sent in fields.", + "example": "Loan Number" + } + } + } + }, + "etherealTransaction": { + "required": [ + "amount", + "billRefId", + "refId", + "status", + "transactionId" + ], + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "example": "Q910192192192192" + }, + "amount": { + "type": "string", + "example": "100.00" + }, + "billRefId": { + "type": "string", + "description": "The BBPS Ref ID", + "example": "C3SFG0O6N88R6UI7EQ" + }, + "refId": { + "type": "string", + "example": "COUWL910192192192192" + }, + "status": { + "type": "string", + "enum": [ + "INIT", + "SUCCESS", + "FAILURE", + "PENDING", + "UNKNOWN" + ] + } + } + }, + "timestamp": { + "type": "string", + "description": "Timestamp provided by partner while making payment request.", + "format": "date-time", + "example": "2020-12-12T13:12:00+05:30" + }, + "transactionId": { + "type": "string", + "description": "Setu BillPay Transaction ID.", + "example": "AS01910192192192192" + }, + "amount": { + "type": "integer" + }, + "billerId": { + "type": "string", + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" + }, + "custConvFee": { + "type": "integer", + "description": "Customer convenience fee in paise" + }, + "customerId": { + "type": "string", + "description": "Customer Identifier" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." + }, + "refundStatus": { + "type": "string", + "enum": [ + "Required", + "Requested", + "Processed" + ] + } + } + }, + { + "type": "object", + "properties": { + "paymentRefId": { + "maxLength": 35, + "minLength": 6, + "type": "string", + "description": "Unique identifier provided by Partner for the payment request.", + "example": "BD019181220291" + }, + "mobile": { + "maxLength": 22, + "minLength": 6, + "pattern": "^\\d{6,22}$", + "type": "string", + "description": "Mobile number with 6 to 22 digits are valid." + } + } + } + ] + } + } + } + } + ] } } - }, - "success": { - "type": "boolean", - "example": false - }, - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" } - } - } - } - } - }, - "404": { - "description": "Registration not found or unauthorized access", - "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" - } - } + "x-go-name": "TransactionsResponse" } } } }, - "409": { - "description": "Conflict (e.g., trying to update a cancelled registration)", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -7986,7 +12439,7 @@ } }, "500": { - "description": "Internal server error", + "description": "Bad request", "content": { "application/json": { "schema": { @@ -8044,8 +12497,7 @@ "bbps:partner" ] } - ], - "x-codegen-request-body-name": "CouAgentUpdateUPMSRegistrationRequest" + ] } }, "/api/v2/upms/simulate/{billRefId}/callbacks/skip-payment": { @@ -8075,6 +12527,17 @@ "minLength": 35, "type": "string" } + }, + { + "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..." } ], "responses": { @@ -8337,13 +12800,12 @@ ] } }, - "/api/v2/upms/simulate/{upmsRegistrationRefId}/callbacks/bill": { - "post": { + "/api/v2/bbps/categories": { + "get": { "tags": [ - "UPMS" + "List" ], - "description": "Simulate bill notification", - "operationId": "SimulateBillNotification", + "description": "Returns the list of categories.", "parameters": [ { "name": "X-PARTNER-ID", @@ -8355,20 +12817,20 @@ } }, { - "name": "upmsRegistrationRefId", - "in": "path", - "description": "Reference ID of the UPMS registration", + "name": "Authorization", + "in": "header", "required": true, "schema": { - "maxLength": 35, - "minLength": 35, - "type": "string" - } + "type": "string", + "pattern": "^Bearer [a-zA-Z0-9\\-\\._~\\+\\/]+=*$" + }, + "description": "Bearer token for authentication. Format: `Bearer `", + "example": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." } ], "responses": { "200": { - "description": "Request accepted and queued for processing", + "description": "List of categories", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -8421,34 +12883,6 @@ "traceId" ], "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Boolean value indicating the success of the request", - "example": true - }, - "traceId": { - "type": "string", - "description": "The traceId generated for the request", - "example": "CV4PE82LTNJE9O014OE0" - } - }, - "x-go-name": "SimulateCallbackResponse" - } - } - } - }, - "400": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "required": [ - "error", - "success", - "traceId" - ], - "type": "object", "properties": { "error": { "required": [ @@ -8469,61 +12903,42 @@ }, "success": { "type": "boolean", - "example": false + "example": true }, "traceId": { "type": "string", "example": "C3SFG0O6N88R6UI7EQ" - } - } - } - } - } - }, - "403": { - "description": "Forbidden in current environment", - "content": { - "application/json": { - "schema": { - "required": [ - "error", - "success", - "traceId" - ], - "type": "object", - "properties": { - "error": { + }, + "data": { "required": [ - "code", - "message" + "categories" ], "type": "object", "properties": { - "code": { - "type": "string", - "example": "validation-error" - }, - "message": { - "type": "string", - "example": "Input is invalid" + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "billerCount": { + "type": "integer" + }, + "name": { + "type": "string", + "example": "Loan Repayment" + } + } + } } } - }, - "success": { - "type": "boolean", - "example": false - }, - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" } } } } } }, - "404": { - "description": "Registration not found", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -8565,7 +12980,7 @@ } }, "500": { - "description": "Internal server error", + "description": "Bad request", "content": { "application/json": { "schema": { diff --git a/content/payments/billpay/api-integration/apis.mdx b/content/payments/billpay/api-integration/apis.mdx index 951eff36..52f22743 100644 --- a/content/payments/billpay/api-integration/apis.mdx +++ b/content/payments/billpay/api-integration/apis.mdx @@ -17,7 +17,7 @@ For this, the core `fetch`, `pay` and `dispute` APIs are asynchronous. Each API ### Fetch bill -The Fetch bill API with endpoint `/bbps/bills/fetch/request` is used to get bill details for a customer. You need to pass the details of the customer and also the business they want to fetch their bill from. +The Fetch bill API with endpoint `/bbps/bills/fetch/request` is used to get bill details for a customer. You need to pass the details of the customer and also the business they want to fetch their bill from. For e.g., if your customer wants to pay their phone bill for Vodafone Postpaid, you will need to provide— @@ -30,7 +30,7 @@ For e.g., if your customer wants to pay their phone bill for Vodafone Postpaid, -Optionally, you can also register the customer with this biller simultaneously to receive future bills as and when they are generated (See [UPMS Integration Guide](upms.mdx)). +Optionally, you can also register the customer with this biller simultaneously to receive future bills as and when they are generated (See [UPMS Integration Guide](payments/billpay/api-integration/upms)). If you include the `mandate` object in the request, a registration will be initiated for the customer with the biller. @@ -77,6 +77,7 @@ If you include the `mandate` object in the request, a registration will be initi "biller": { "id": "VODA00000MUM03" }, + // optional - include to register customer with biller using UPMS "mandate": { "registrationType": "VIEW_N_PAY", "billPeriod": "ASPRESENTED" @@ -270,20 +271,17 @@ In the response you either get the bill details, or "Processing" status if the b -
- -
### Pay bill -The Pay bill API is used to send details of a payment done by a user on your app/website to Setu. Setu uses this information to confirm payment with the biller. +The Pay bill API is used to send details of a payment done by a user on your app/website to Setu. Setu uses this information to confirm a payment with the biller.
### Raise dispute -The Raise Dispute API is used to Raise a compliant for a payment done by a user on your app/website to Setu. Setu uses this information and raises a compliant on the BBPS Platform. +The Raise Dispute API is used to Raise a compliant for a payment done by a user on your app/website to Setu. Setu uses this information and raises a compliant on the BBPS Platform.
@@ -295,7 +293,7 @@ For your convenience, Setu also provides actions to list data in bulk, that can
  • List categories @@ -304,7 +302,7 @@ For your convenience, Setu also provides actions to list data in bulk, that can
  • List billers @@ -313,7 +311,7 @@ For your convenience, Setu also provides actions to list data in bulk, that can
  • List plans @@ -322,47 +320,25 @@ For your convenience, Setu also provides actions to list data in bulk, that can
  • List disputes - —lists all the raised disputes using the Dispute API. -
  • -
  • - - List fetched Bills - - —lists all the fetched bills that were fetched using - Fetch API - . -
  • -
  • - - List paid bills - - —lists all the bill pay transactions paid using - Pay API - . + —lists all the raised disputes using the Dispute API.

  • -### Managing Customer Registrations +### Managing Customer Registrations via UPMS -These APIs allow you to manage the lifecycle of UPMS (Unified Presentment Management Service) registrations for your customers. Refer to the [UPMS Integration Guide](upms.mdx) for detailed flows and callback handling. +These APIs allow you to manage the lifecycle of UPMS (Unified Presentment Management Service) registrations for your customers. Refer to the [UPMS Integration Guide](/payments/billpay/api-integration/upms) for detailed flows and callback handling. #### Viewing Registration Details To retrieve the current status and details of a specific, existing UPMS registration. -**API Reference:** GET /api/v2/upms/registrations/{upmsRegistrationRefID} +**API Reference:** GET /api/v2/upms/registrations/{upmsRegistrationRefID}
    @@ -424,7 +400,7 @@ To retrieve the current status and details of a specific, existing UPMS registra To modify specific details of an existing, active UPMS registration. This is an asynchronous operation; the final result is delivered via the [Update UPMS Registration webhook](/content/payments/billpay/api-integration/webhooks.mdx#update-upms-registration-webhook). -**API Reference:** PATCH /api/v2/upms/registrations/{upmsRegistrationRefID} +**API Reference:** PATCH /api/v2/upms/registrations/{upmsRegistrationRefID}
    @@ -468,7 +444,7 @@ To modify specific details of an existing, active UPMS registration. This is an To permanently cancel an existing UPMS registration. This is an asynchronous operation; confirmation comes via the [Cancel UPMS Registration webhook](/content/payments/billpay/api-integration/webhooks.mdx#cancel-upms-registration-webhook). -**API Reference:** DELETE /api/v2/upms/registrations/{upmsRegistrationRefID} +**API Reference:** DELETE /api/v2/upms/registrations/{upmsRegistrationRefID}
    @@ -493,3 +469,5 @@ To permanently cancel an existing UPMS registration. This is an asynchronous ope The health check API tells you the health of the Setu BillPay server. Aside from the above, there are other APIs which are also vital for a complete customer payment experience. See the full API reference for more details. + + diff --git a/content/payments/billpay/api-integration/bbps-v1_1-features.mdx b/content/payments/billpay/api-integration/bbps-v1_1-features.mdx index 54e59a4b..8f527d74 100644 --- a/content/payments/billpay/api-integration/bbps-v1_1-features.mdx +++ b/content/payments/billpay/api-integration/bbps-v1_1-features.mdx @@ -1140,97 +1140,4 @@ Only one of the payment options specified in the fetch response can be selected:
    - -
    - - -## Getting details of paid bills - -The List Transactions API response now includes a new `bills` array element, providing detailed information about the bills involved in each transaction. - -### Response - -The `bills` array in the List Transactions API response contains objects with `billNumber` and `amount` for each bill involved in the transaction. - -### Examples - -#### LIST Transactions - -1. The `bills` array in the response matches the `bills` array from the payment request. -2. It includes bills paid in the transaction (as present in payment request), regardless of the selection type. - - -
    - - - Sample Response - - -{` -{ - "transactions": [ - { - // ... other transaction details ... - "bills": [ - { "billNumber": "BILL001", "amount": 100000 }, - { "billNumber": "BILL002", "amount": 150000 } - ] - } - ] -} -`} -
    -
    -
    - -### SINGLE Billers (Bill Present in Fetch Response) - -The `bills` array contains one object with the `billNumber` and `amount` of the bill paid. - - -
    - - - Sample Response - - -{` -{ - "transactions": [ - { - // ... other transaction details ... - "bills": [ - { "billNumber": "BILL001", "amount": 100000 } - ] - } - ] -} -`} -
    -
    -
    - -### SINGLE Billers (No Bill in Fetch Response) - -An empty `bills` array is returned. - - -
    - - - Sample Response - - -{` -{ - "transactions": [ - { - // ... other transaction details ... - "bills": [] - } - ] -} -`} -
    -
    -
    \ No newline at end of file + diff --git a/content/payments/billpay/api-integration/deprecated.mdx b/content/payments/billpay/api-integration/deprecated.mdx deleted file mode 100644 index 48db5021..00000000 --- a/content/payments/billpay/api-integration/deprecated.mdx +++ /dev/null @@ -1,164 +0,0 @@ ---- -sidebar_title: Deprecated APIs -page_title: BBPS COU — API integration (deprecated) -order: 4 -visible_in_sidebar: false ---- - -## API integration - - - This set of APIs has been deprecated. It is recommended to use{" "} - these APIs instead. - -
    - -Setu BillPay allows you to register as an agent on the BBPS network and enable BBPS bill payments on your app or website. All approvals are done by Setu, our bank partner and BBPS. - -This page covers how you can integrate with our APIs, develop corresponding screen flows and go live with BBPS payments. - -
    - -### How to integrate - -

    - Use provided{" "} - - API reference - {" "} - to start integration. Request for a detailed API run through from Setu team, - if needed. Contact us at{" "} - - Setu Support - - , should you need any help during integration. -

    - -A summary of the integration process— - -1. Get UAT credentials and start integration -2. Share screens for NPCI approval -3. Run and submit test cases -4. Submit details for agent ID creation -5. Get production credentials and go live - -Each of these steps are described in detail below. - - - Look at the{" "} - - polling mechanism - {" "} - that should be implemented to correctly retrieve API results. - - -
    - -#### Step 1 — Get UAT credentials and start integration - -UAT credentials are issued after Setu and the bank complete evaluation of your agent application. Using the UAT credentials you can access the Mock / UAT environments. - - - Use the mock and UAT environment to test your implementation end to end with - sample data.{" "} - - -##### Mock environment - -The mock environment is provided by Setu to mimic all error codes you would encounter in the live environment, so that you can get a consistent experience while doing development. Use the integration process outlined here. - -##### UAT environment - -The UAT environment is a fully integrated environment involving Setu, the bank, BBPS UAT & biller systems. - - - There is a small chance that the all components may not have uptime since it - is UAT. - - -
    - -#### Step 2 — Share screens for NPCI approval - -The screens you build as part of your app needs to conform to BBPS guidelines. You should submit a document with screenshots for the following screens— - -- **Category list screen**, on which all BBPS categories are listed. -- **Biller list screen**, on which all billers under a selected category are listed. -- **Customer input screen**, where a customer enters identifiers specific to a selected biller, before their bill can be fetched. -- **Payment confirmation screen**, on which the customer confirms bill amount and proceeds with payment. -- **Payment status screen**, when payment is being processed and is finally either successful or failed. -- **Confirmation SMS**, this is the text that is sent after a payment is successful or failed. -- **Bill receipt screen**, through which a customer can view and download receipt for a successful transaction. -- **Raise complaint screen**, where a customer can raise complaint. Complaints are raised against specific transaction IDs. -- **Complaint status screen**, where a customer can see the latest status associated with registered complaint. - - - You may use the BBPS logo and branding guidelines provided{" "} - - here - - .{" "} - - -
    - -

    - Here is a{" "} - - BBPS-compliant UX flow - {" "} - and a quick summary of BBPS guidelines to keep in mind—, -

    - -- The app / website UI must contain a button for “Pay bills” with the BBPS logo shown. -- BBPS logo must be present on top right corner of all screens used by customer during search of biller or bill and also for screens relating to payment of bill. -- BBPS assured logo must always be shown on the payment sucessful and payment receipt pages. The regular BBPS logo can be removed from these. - -
    - -#### Step 3 — Run and submit test cases - -Run test cases mentioned in this document and submit documented results using a copy of the provided file. The results will verified by Setu and the bank to generate production credentials. - - - Postman logs not considered valid. Share results only once screen - integration is complete.{" "} - - -
    - -#### Step 4 — Submit details for agent ID creation - -To operate on BBPS as an agent you need to create an agent ID. You need to submit details in a format specified by Setu, and you will get agent ID corresponding to one of the following agent categories— - -- Internet banking -- Internet application -- Mobile banking -- Mobile application -- Business correspondent -- Bank branch -- ATM -- Kiosk -- Offline agent - - - If you wish to support any offline collections, you will need to create - agent IDs for all your offline collection points. - - -
    - -#### Step 5 — Get Production credentials and go live - -You will receive production credentials once all the approvals and agreements are done. On receiving the production credentials, you can verify your integration and go live. - - diff --git a/content/payments/billpay/api-integration/deprecated/mock-environment.mdx b/content/payments/billpay/api-integration/deprecated/mock-environment.mdx deleted file mode 100644 index d42c79a5..00000000 --- a/content/payments/billpay/api-integration/deprecated/mock-environment.mdx +++ /dev/null @@ -1,535 +0,0 @@ ---- -sidebar_title: Mock environment -page_title: BBPS Billpay Mock environment -order: 2 -visible_in_sidebar: false ---- - -## BillPay APIs — Mock environment - -This set of APIs has been deprecated. It is recommended to use these APIs instead. -
    - -BillPay Sandbox API supports both Mock and UAT environments. - -UAT in BillPay’s context, refers to the entire API lifecycle where Setu connects to both Axis and NPCI’s UAT Servers. - -On the other hand, Mock is a simulated environment where Setu handles everything and is independent of both NPCI and Axis. Multiple mock APIs are defined so that you can integrate predictably. - -You can change the environment from UAT to Mock by changing the endpoint as below - - - {`UAT - https://sandbox.cou.setu.co/api/bills/uat/biller-categories -MOCK - https://sandbox.cou.setu.co/api/bills/mock/biller-categories`} - - -The mock environment has been set up to mimic the actual process, so you’ll often see there’s a delay of about 30 secs until the bill is populated (until that time you’ll be shown ERR000). Also we have simulated cases where you’d see billers being down or giving timeout related errors. - -
    - -## List of APIs - -
    - -##### Get all biller categories - -Use the Get categories API to get a list of all categories on BBPS. - - - {`Method - GET -Endpoint - https://sandbox.cou.setu.co/api/bills/mock/biller-categories -Request Body - None -`} - - -
    - -In production, presently there are 23 categories in total. The following categories are supported in the mock environment— - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CategoryCategory Code
    Electricity1
    Mobile Postpaid6
    Landline Postpaid7
    Water8
    DTH9
    Loan Repayment12
    Fastag13
    - -
    - -##### Get biller list for a category - -Use the Get biller list API to get all billers for a particular category by providing the category code. - - - {`Method - GET -Method - POST -Endpoint - https://sandbox.cou.setu.co/api/bills/mock/biller-list -Request Body - - { - "categoryCode":"1" - }`} - - - -
    - -You can also pass following parameters to the API— - - - - - - - - - - - - - - - - - - -
    ParameterDescription
    - limit - - Limit the number of billers you get in the result, to use for pagination -
    - offset - - Number of values to skip. Value = (Offset x Limit). The resulting list - will show from (Offset x Limit) till (Offset x Limit) + Limit -
    - search - Search biller code or name by passing a string value.
    - -
    - -##### Get biller details - -Use the Get biller details API to— - -- get the inputs required by the biller to fetch a bill -- get details on biller’s availability for payment -- to get the list of validations used by biller to qualify a payment attempt -- and more... - - - {`Method - POST -Endpoint - https://sandbox.cou.setu.co/api/bills/mock/biller-details -Request Body - - { - "billerId": "MAHI00000NATIC", - "categoryCode": "12" - }`} - - -You can use the following combinations in the mock environment— - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Biller IdCategory Code
    NDMC00000DEL021
    BESCOM000KAR011
    AVVNL0000RAJ011
    APDCL0000ASM011
    SBPDCL000BHI011
    SKPR00000SIK011
    WESCO0000ODI011
    BSESRAJPLDEL011
    JIO000000NAT016
    ATLLI0000NAT027
    JALK00000UTP0P8
    AIRT00000NAT879
    MAHI00000NATIC12
    AXIS00000NATSN13
    - -
    - -##### Get biller fields - -Use the Get biller fields API to list all input fields needed by a biller to do a bill fetch from biller system. The response to this API is a subset of the Get biller details API. - - -{`Method - POST -Endpoint - https://sandbox.cou.setu.co/api/bills/mock/biller-fields -Request Body - - { - "billerId": "MAHI00000NATIC", - "categoryCode": "12" - } -`} - - - -You can use the following combinations in the mock environment— - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Biller IdCategory Code
    NDMC00000DEL021
    BESCOM000KAR011
    AVVNL0000RAJ011
    APDCL0000ASM011
    SBPDCL000BHI011
    SKPR00000SIK011
    WESCO0000ODI011
    BSESRAJPLDEL011
    JIO000000NAT016
    ATLLI0000NAT027
    JALK00000UTP0P8
    AIRT00000NAT879
    MAHI00000NATIC12
    AXIS00000NATSN13
    - -
    - -##### Bill fetch and payment - -Use the Register for bill fetch API to pass on details that you have collected from your customer. These are the details required to do a bill fetch from the biller’s system. - - -{`Method - POST -Method - POST -Endpoint - https://sandbox.cou.setu.co/api/bills/mock/bill-fetch-request -Request Body - - { - "agent": { - ** Please Find Values Below In Agent Ids Section ** - }, - "mobileNumber": "9192990013", - "billerId": "Example Biller Id from below examples", - "categoryCode": "Example Category Code from below examples", - "customerParams": [ - { - "name": "Example Name from below examples", - "value": "Example Value from below examples" - } - ] - } -`} - - - -The mock environment has support for creating different error scenarios. You can call the Bill fetch API with the data that has been provided below to create various error scenarios. - -Follow these steps— - -1. Call the `Register for bill fetch API` with sample data given under each error scenario described below -2. Use the `context` you get in the response from the `Register for bill fetch API` response for the next API called described in below errors. - Verify that you get the expected error and repeat above steps with data provided under other error scenarions. - -
    - -###### Error scenario 1 — Biller down - -The below data, when used in the `Register for bill fetch API` will always give **biller down** error (BFR008) when you call the Get fetched bill API. - - - {`"billerId": "AVVNL0000RAJ01", - "categoryCode": "1", - "customerParams": [ - { - "name": "K Number", - "value": "100" - } - ]`} - - -
    - -###### Error scenario 2 — BOU Timeout - -The below data, when used in `Register for bill fetch API` will always give **BOU timeout** error when you call the Get fetched bill API. - - - {`"billerId": "APDCL0000ASM01", - "categoryCode": "1", - "customerParams": [ - { - "name": "Consumer ID", - "value": "100" - } - ]`} - - -
    - -###### Error scenario 3 — Backside connection error - -The below data, when used in the `Register for bill fetch API` will always give **backside connection error** when you call the Get fetched bill API. - -This can occur for any API in production - -
    - - - {`"billerId": "SBPDCL000BHI01", - "categoryCode": "1", - "customerParams": [ - { - "name": "CA Number", - "value": "10085" - } - ]`} - - -
    - -###### Error scenario 4 — Non JSON error - -The below data, when used in the `Register for bill fetch API` will always give **non JSON error** when you call the Get fetched bill API - -This can occur for any API in production - -
    - - - {`"billerId": "SKPR00000SIK01", - "categoryCode": "1", - "customerParams": [ - { - "name": "Contract Acc Number", - "value": "10085" - } - ]`} - - -
    - -###### Error scenario 5 — Too many requests error - -The below data, when used in the `Register for bill fetch API` will always give **too many requests error** when you call the Get fetched bill API. - -This can occur for any API in production -
    - - - {`"billerId": "WESCO0000ODI01", - "categoryCode": "1", - "customerParams": [ - { - "name": "Consumer Number", - "value": "10085" - } - ]`} - - -
    - -###### Error scenario 6 — Technical error - -The below data, when used in the `Register for bill fetch API` will always give **technical error** when you call the Get fetched bill API. - -This can occur for any API in production - -
    - - - {`"billerId": "BSESRAJPLDEL01", - "categoryCode": "1", - "customerParams": [ - { - "name": "CA Number", - "value": "10085" - } - ]`} - - -
    - -###### Error scenario 7 — Mandatory tag(s) not present - -The below data, when used in the `Register for bill fetch API` will give **Mandatory tag(s) not present** error when you call the Get fetched bill API. - - - {`"billerId": "MAHI00000NATKR", - "categoryCode": "12", - "customerParams": [ - { - "name": "Loan Account Number", - "value": "3523122" - } - ]`} - - -
    - -###### Error scenario 8 — Client code regex validation failure - -The below data, when used in the `Register for bill fetch API` will give **client code regex validation failure** error when you call the Get fetched bill API - - - {`"billerId": "MAHI00000NATKR", - "categoryCode": "12", - "customerParams": [ - { - "name": "Loan Account Number", - "value": "10001" - },{ - "name": "Mobile or Vehicle Registration Number", - "value": "2121" - } - ]`} - - -
    - -###### Error scenario 9 — Failed payment due to techincal decline - -The below data, when used in the `Register for bill fetch API` will always give a **technical decline** when you call the Make payment API. - -In the mock environment, the technical decline happens with a probablility of 80% and will work 20% of the time. This is helpful for you to build a retry logic. - - - {`"billerId": "MAHI00000NATIC", - "categoryCode": "12", - "customerParams": [ - { - "name": "Loan Number", - "value": "10805" - } - ]`} - - -
    - -###### Error scenario 10 — Failed payment due to business decline{" "} - -The below data, when used in the `Register for bill fetch API` will give `data.status`, ie, payment status as `Cancelled` when you call the Get payment status API. - - - {`"billerId": "MAHI00000NATIC", - "categoryCode": "12", - "customerParams": [ - { - "name": "Loan Number", - "value": "10505" - } - ]`} - - -
    - - diff --git a/content/payments/billpay/api-integration/deprecated/polling.mdx b/content/payments/billpay/api-integration/deprecated/polling.mdx deleted file mode 100644 index a536c278..00000000 --- a/content/payments/billpay/api-integration/deprecated/polling.mdx +++ /dev/null @@ -1,114 +0,0 @@ ---- -sidebar_title: Polling -page_title: BBPS Billpay polling -order: 2 -visible_in_sidebar: false ---- - -## API Polling - - - This set of APIs has been deprecated. It is recommended to use{" "} - these APIs instead. - -
    - -BillPay COU APIs are asynchronous and require a polling mechanism to retrieve results. The duration for the intervals between polling and end states are documented below. - - - We strongly recommend using a persistent queue like RabbitMQ to process - these APIs. - - -
    - -### Flowchart for polling logic - -These APIs are mandatory to consume, and asynchronous and dependent on each other. The APIs that require polling logic— - - - - Bill fetch APIs -
    - bill-fetch-request and get-fetched-bill -
    -
    - Bill payment APIs -
    - make-payment and get-payment-status -
    -
    - - - -
    - -
    - -### Bill fetch APIs - -The Bill Fetch APIs are used to retrieve outstanding bills from a biller. These are the `bill-fetch-request` and `get-fetched-bill` APIs. - -The `context` from the response for `bill-fetch-request` has to be passed as the request for `get-fetched-bill`. - -The `get-fetched-bill` API must be called 5 secs after a successful `bill-fetch-request`— - -- If the `fetchAPIStatus`, from response of `get-fetched-bill`, is `Acknowledged` it means that the request is still processing. You'll need to re-hit the `get-fetched-bill` with the same context again after 5 secs and wait for `fetchAPIStatus` to become `Active`. -- If the `fetchAPIStatus` does not become `Active` after retrying the same for 1 minute you can terminate the bill fetch and display an error. - - - If either bill-fetch-request or get-fetched-bill{" "} - has an error/timeout and does NOT give a response, you can retry the APIs - with the same request body. - -
    - -If `fetchAPIStatus`, from `get-fetched-bill` response is— - -- `Acknowledged`—The request is still processing. Retry after 5 secs. -- `Cancelled`—The request has finished processing but there was an error. You can display the provided error message. -- `Rejected`—The request finished processing but there was an error. You can display the provided error message. -- `Active`—The request has finished processing successfully. You can display the bill and redirect the user to payment screens. - -
    - -### Make payment APIs - -The `make-payment` and `get-payment-status` APIs are used to complete payment for outstanding bills of a biller. - -The `context` from the response of `get-fetched-bill` has to be passed as the request for `make-payment`. Similarly, `context` from the response of `make-payment` has to be passed as the request for `get-payment-status`. - -The `get-payment-status` API must be called 5 secs after a successful `make-payment` call— - -- If the status from the response of `get-payment-status` is `Execution Awaited` it means the request is still processing. You'll need to re-hit `get-payment-status` with the same context again after 5 secs and wait for status to become `Settled` or `Cancelled` or `Rejected`. -- If the `status` does not go into an end state after retrying the same for 5 minutes, you can retry the `get-payment-status` with the same context again once every 5 minutes till it goes to an end state. - If the end state is not `Settled` or `Cancelled` or `Rejected` even after 1 day, please contact us at Setu Support. - - - If the make-payment API errors/timeouts and does NOT give a - response you can pass the context used in the{" "} - make-payment request body as the context for{" "} - get-payment-status request. -
    -
    - This will help you identify if the payment in question has been registered with - the BBPS system. -
    - -
    - - - Never call the make-payment API multiple times for the same - context as it may result in your account getting debitted multiple times. - - -
    - -If the `get-payment-status` API errors/times out and does not give a response you can retry with the same request body. - -If `status`, obtained in the response of `get-payment-status` is— - -- `Execution Awaited`—The request is still processing. Please retry after 5 secs. -- `Cancelled`—The request has finished processing but there was an error. You can display the provided error message. -- `Rejected`—The request has finished processing but there was an error. You can display the provided error message. -- `Settled`—The request has finished processing successfully. You can display the receipt for your user. diff --git a/content/payments/billpay/api-integration/harmonization_of_tat.mdx b/content/payments/billpay/api-integration/harmonization_of_tat.mdx index c5b5866a..589c36f4 100644 --- a/content/payments/billpay/api-integration/harmonization_of_tat.mdx +++ b/content/payments/billpay/api-integration/harmonization_of_tat.mdx @@ -75,43 +75,58 @@ Different transaction types have specific cooling period requirements: ## API Examples -### Request Example - -{` -{ - "transactionId": "DP015080142106KQkKly", - "disputeType": "account-not-updated", - "description": "I have paid but account is not updated" -} -`} - - -### Response Example - - -{` -{ - "data": { - "assignedTo": "BBPCU", - "disposition": "D32", - "disputeId": "TKTCVEJDCOH215KV2761CLGxwrzHMI50801521", - "refId": "CVEJET77GM8365VO5HRGtokm7MX50801525", - "remarks": "Belongs to BOU", - "responseReason": "Success", - "status": "PENDING_REFUND", - "ticketTAT": "2025-03-22", - "ticketType": "DISPUTE" - }, - "success": true, - "traceId": "CVEJNK8H215KV2761F50" -} -`} + +
    + + + Sample Dispute Request + + + {` + { + "transactionId": "DP015080142106KQkKly", + "disputeType": "account-not-updated/payment-info-delay/wrong-amount/double-payment/paid-to-wrong-account/service-disconnected/service-not-received/late-payment-surcharge", + "description": "I have paid but account is not updated" + } + `} +
    +
    + + + +
    + + + Sample Dispute Response + + + {` + { + "data": { + "assignedTo": "BBPCU", + "disposition": "D32", + "disputeId": "TKTCVEJDCOH215KV2761CLGxwrzHMI50801521", + "refId": "CVEJET77GM8365VO5HRGtokm7MX50801525", + "remarks": "Belongs to BOU", + "responseReason": "Success", + "status": "PENDING_REFUND", + "ticketTAT": "2025-03-22", + "ticketType": "DISPUTE" + }, + "success": true, + "traceId": "CVEJNK8H215KV2761F50" + } + `} +
    +
    +
    ## Implementation Notes 1. **Backward compatibility**: Existing dispute API endpoints remain functional -2. **Webhook updates**: All webhook/callback responses now include the new fields +2. **Webhook updates**: All webhook/callback responses now include the new fields 3. **Validation**: System validates cooling period requirements before allowing ticket creation 4. **TAT tracking**: `ticketTAT` field provides clear resolution timeline expectations + diff --git a/content/payments/billpay/api-integration/objects.mdx b/content/payments/billpay/api-integration/objects.mdx index 24b80c43..f9969c38 100644 --- a/content/payments/billpay/api-integration/objects.mdx +++ b/content/payments/billpay/api-integration/objects.mdx @@ -43,22 +43,11 @@ Payment modes supported by a biller. ## State and City mapping -[Click here ↗](https://docs.google.com/spreadsheets/d/18LYdPbEw5JCB-bOp3gacbV6xUeHun_gBxbLeGxBuhK8/edit?usp=sharing) for State and City Biller Coverage Mapping +[Click here ↗](https://docs.google.com/spreadsheets/d/18LYdPbEw5JCB-bOp3gacbV6xUeHun_gBxbLeGxBuhK8/edit?usp=sharing) for State and City Biller Coverage Mapping | ## Customer -Customer object holds the customer mobile number and the customer bill parameters. This object is used in the V1 API. - -| parameter | type | description | -| -------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| `mobile` | `string` (6, 10 and 20 digits) | Customer Mobile Number | -| `billParameters` | `{ name: string, value: string}[]` | Bill Parameters used for standard bill fetch/payment. The parameters to send is found in the biller details API. | -| `billParameters[].name` | `string` | Name of the bill parameter. name should match the parameter in biller details API. | -| `billParameters[].value` | `string` | Value of the bill parameter. Value is validate according to the regex found in the biller details. | - -## CustomerV2 - -CustomerV2 object holds the customer mobile number and the customer bill parameters. This is a new object introduced in the V2 API. +CustomerV2 object holds the customer mobile number and the customer bill parameters. This is a new object introduced in the V2 API Spec. | parameter | type | description | | -------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | @@ -68,7 +57,7 @@ CustomerV2 object holds the customer mobile number and the customer bill paramet | `customerParams[].value` | `string` | Value of the customer parameter. Value is validate according to the regex found in the biller details. | | `name` | `string` (Optional) | Customer's name as registered with the biller. Only present in UPMS registration callbacks if provided by the biller's system. | -Note: `customerParams` is a new field introduced in the V2 API in place of `billParameters`. +Note: `customerParams` is a new field introduced in the V2 API in place of `billParameters` (Refer [V2 migration guide](/payments/billpay/api-integration/v2-migration#bill-fetch-request)). ## Biller @@ -147,13 +136,13 @@ A standard structure for representing errors in API responses or callbacks. ## Payment Details -| parameter | type | description | -| ---------------------- | ------------------------------------------------------- | ------------------------------------ | -| mode | [Payment Mode](#payment-mode) | Payment Mode | -| paymentRefId | `string` (6 - 35 characters) | Payment Reference ID tagged by agent | -| amount | `integer` | Amount in paise | -| timestamp | `date-time` | Timestamp | -| selectedPaymentOptions | [Selected Payment Option](#selected-payment-option)`[]` | Array of selected payment options | +| parameter | type | description | +| ---------------------- | ------------------------------------------------------- | ------------------------------------------- | +| mode | [Payment Mode](#payment-mode) | Payment Mode | +| paymentRefId | `string` (6 - 35 characters) | Unique Payment Reference ID tagged by agent | +| amount | `integer` | Amount in paise | +| timestamp | `date-time` | Timestamp | +| selectedPaymentOptions | [Selected Payment Option](#selected-payment-option)`[]` | Array of selected payment options | ## Payment Bill @@ -261,7 +250,7 @@ Represents the customer's mandate details provided during UPMS registration crea | `debitInfo` | [UPMS Debit Info](#upms-debit-info) (Optional) | Required only if `registrationType` is `AUTO_PAY`. Contains auto-debit parameters. | | `billerParams` | `{ name: string, value: string}[]` (Optional) | Additional parameters specific to the biller for the mandate (e.g., "Low Balance Threshold"). Structure matches `billParameters`. | -## UPMSRegistration +## UPMS Registration Represents the complete details of a UPMS registration, typically received in webhook callbacks. diff --git a/content/payments/billpay/api-integration/plan-mdm-integration.mdx b/content/payments/billpay/api-integration/plan-mdm-integration.mdx index 8fcfc0de..a22ab121 100644 --- a/content/payments/billpay/api-integration/plan-mdm-integration.mdx +++ b/content/payments/billpay/api-integration/plan-mdm-integration.mdx @@ -973,3 +973,5 @@ It is similar to this (See API Reference) +**Endpoint:** `POST /api/v2/bbps/bills/fetch/request` (See API Reference) **Type:** Asynchronous @@ -1096,7 +1096,7 @@ Note the presence of `upmsRegistrationRefId` indicating this is for a registered When a user opts to pay a presented bill: -1. **Invoke Payment API**: Construct and send a request to our BBPS Payment API endpoint. (See API Reference) +1. **Invoke Payment API**: Construct and send a request to our BBPS Payment API endpoint. (See API Reference) 2. **Follow Payment Flow**: Handle the response and subsequent steps (e.g., status checks, notifications) as defined in the Payment API documentation. ## 6. Handling Skipped Payments diff --git a/content/payments/billpay/api-integration/v2-migration.mdx b/content/payments/billpay/api-integration/v2-migration.mdx index 918bf78f..891d27eb 100644 --- a/content/payments/billpay/api-integration/v2-migration.mdx +++ b/content/payments/billpay/api-integration/v2-migration.mdx @@ -11,7 +11,7 @@ The changes below will help you plan your migration from v1 to v2 specs. ### Bill Fetch Request -Following changes were made to this API +Following changes were made to this API | Type | Old | New | | ---- | ------------------------- | ------------------------- | @@ -43,14 +43,13 @@ Following changes were made to this ### Bill Fetch Response -Following changes were made to this API +Following changes were made to this API | Type | Old | New | | ---- | -------------------- | -------------- | @@ -63,7 +62,6 @@ Following changes were made to this API +Following changes were made to this API | Type | Old | New | | ---- | ------------------------- | ------------------------- | @@ -158,7 +156,7 @@ Following changes were made to this API +Following changes were made to this API | Type | Old | New | | ---- | ------------------- | --- | @@ -194,7 +192,7 @@ Following changes were made to this API +Following changes were made to this API | Type | Old | New | | ---- | ---------------- | --------------- | @@ -213,7 +211,7 @@ Following changes were made to this API +Following changes were made to this API | Type | Old | New | | ---------------- | ---------------- | -------------- | @@ -224,8 +222,8 @@ Following changes were made to this {` -- GET /billers?categoryName=Loan+Repayment&categoryName=Education+Fees -+ GET /billers?categoryName=Loan+Repayment +- GET /billers?categoryName[]=Loan+Repayment&categoryName[]=Education+Fees ++ GET /billers?categoryName=Loan+Repayment&categoryName=Education+Fees `}
    @@ -284,7 +282,7 @@ Following changes were made to this
    API +Following changes were made to this API | Type | Old | New | | --------------- | ---------------------- | --------------- | @@ -330,7 +328,7 @@ Following changes were made to this API +Following changes were made to this API | Type | Old | New | | ---- | ---------------------- | -------------- | diff --git a/content/payments/billpay/api-integration/webhooks.mdx b/content/payments/billpay/api-integration/webhooks.mdx index c62f7c58..b8292a78 100644 --- a/content/payments/billpay/api-integration/webhooks.mdx +++ b/content/payments/billpay/api-integration/webhooks.mdx @@ -12,7 +12,7 @@ Here is the general structure of any webhook— {`{ "traceId" : "C3SFG0O6N88R6UI7EQ", "timeStamp" : "2021-11-12T00:12:29+05:30", - "event" : "BILLER_UPDATES", + "event" : "BILL_FETCH / BILL_PAY / BILL_DISPUTE / BILLER_UPDATES / PLAN_UPDATES / CREATE_UPMS_REGISTRATION / UPDATE_UPMS_REGISTRATION / CANCEL_UPMS_REGISTRATION / SKIP_PAYMENT", "data" : { /* Present on success */ }, "error" : { /* Present on failure */ } }`} @@ -57,8 +57,7 @@ URL : To be provided by partner`} "billerRefId": "9540207519", "exactness": "Exact", "refId": "CJLJBQK91PA0FD9MPMK0W75BD9M32391709", - "status": "Success", - "upmsRegistrationRefId": "CJLJBQK91PA0FD9MPMK0W75BD9M32391709" + "status": "Success" } } `} @@ -134,7 +133,7 @@ URL : To be provided by partner`}
    - Bill payment sample request + Bill payment sample request (Success) @@ -142,7 +141,35 @@ URL : To be provided by partner`} "event": "BILL_PAY", "data": { "refId": "HENSVVR4QOS7X1UGPY7JGUV444P10102202", - "status": "PROCESSING/SUCCESS/FAILURE", + "status": "SUCCESS", + "billerRefId": "ABC1235", + "transactionId": "AX01122999900001", + "paymentDetails": { + "mode": "Internet Banking/Debit Card/Credit Card/Cash/UPI/Wallet/Prepaid Card/AEPS/Account Transfer/Bharat QR/USSD", + "paymentRefId": "N2001121212344", + "amount": 10000, + "timestamp": "2020-12-12T13:12:00+05:30" + }, + "billerId": "VODA00000MUM03" + } +}`} + +
    + + + +
    + + + Bill payment sample request (Failed) + + + + {`{ + "event": "BILL_PAY", + "data": { + "refId": "HENSVVR4QOS7X1UGPY7JGUV444P10102202", + "status": "FAILURE", "billerRefId": "ABC1235", "transactionId": "AX01122999900001", "failureReason": { @@ -150,16 +177,13 @@ URL : To be provided by partner`} "message": "Biller not accepting payments at the moment" }, "paymentDetails": { - "mode": "Internet Banking/Debit Card/Credit Card/IMPS/Cash/UPI/Wallet/NEFT/Prepaid Card/AEPS/Account Transfer/Bharat QR/USSD", + "mode": "Internet Banking/Debit Card/Credit Card/Cash/UPI/Wallet/Prepaid Card/AEPS/Account Transfer/Bharat QR/USSD", "paymentRefId": "N2001121212344", "amount": 10000, "timestamp": "2020-12-12T13:12:00+05:30" }, "billerId": "VODA00000MUM03" - }, - "success": true, - "traceId": "C3SFG0O6N88R6UI7EQ", - "error": null + } }`}
    @@ -187,12 +211,10 @@ URL : To be provided by partner`} "data": { "refId": "JPMRPBOGGDTP1EFRZVXVESQVQIS10461642", "disputeId": "OP0121046567755", - "status": "INITIALIZED/ASSIGNED/RE_ASSIGNED/ASSIGNED_TO_BOU/ASSIGNED_TO_COU/ASSIGNED_TO_OU/ESCALATED/RESOLVED/UNRESOLVED", + "status": "ASSIGNED/RESOLVED/REJECTED/DEFAULT_RESOLVED/REFUNDED/PENDING_REFUND", "assignedTo": "AX39", "remarks": "Resolved in favour of customer" - }, - "success": true, - "error": null + } } `}