From ebc135e8bfa80b432ddbb32fc2782abfb7c34787 Mon Sep 17 00:00:00 2001 From: tanmay Date: Wed, 7 May 2025 16:44:31 +0530 Subject: [PATCH] Update API Integration --- .../payments/billpay/api-integration.json | 9042 ++++++++++++----- 1 file changed, 6234 insertions(+), 2808 deletions(-) diff --git a/api-references/payments/billpay/api-integration.json b/api-references/payments/billpay/api-integration.json index acb0c418..be1688a5 100644 --- a/api-references/payments/billpay/api-integration.json +++ b/api-references/payments/billpay/api-integration.json @@ -22,7 +22,9 @@ "paths": { "/api/v2/auth/token": { "post": { - "tags": ["Token API"], + "tags": [ + "Token API" + ], "description": "Fetch token to be used to authorize all Setu APIs", "operationId": "fetchToken", "requestBody": { @@ -99,7 +101,10 @@ "schema": { "allOf": [ { - "required": ["expiresIn", "token"], + "required": [ + "expiresIn", + "token" + ], "type": "object", "properties": { "expiresIn": { @@ -113,7 +118,10 @@ } }, { - "required": ["success", "traceId"], + "required": [ + "success", + "traceId" + ], "type": "object", "properties": { "success": { @@ -136,11 +144,18 @@ "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -172,9 +187,10 @@ }, "/api/v2/bbps/bills/fetch/request": { "post": { - "tags": ["Fetch"], + "tags": [ + "Fetch" + ], "description": "Bill fetch request API", - "operationId": "FetchRequestV2", "parameters": [ { "name": "X-PARTNER-ID", @@ -192,30 +208,19 @@ "schema": { "allOf": [ { - "required": ["agent", "biller"], + "required": [ + "agent", + "biller" + ], "type": "object", "properties": { "agent": { - "required": ["channel", "id"], + "required": [ + "channel", + "id" + ], "type": "object", "properties": { - "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" - }, "app": { "type": "string", "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", @@ -239,25 +244,6 @@ "MPOS" ] }, - "imei": { - "type": "string", - "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", - "example": "123456789012345" - }, - "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": 20, - "minLength": 6, - "pattern": "^\\d{6}(\\d{4}(\\d{10})?)?$", - "type": "string", - "description": "Mobile number with 6, 10 and 20 digits are valid.", - "example": "9481773053" - }, "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", @@ -273,16 +259,56 @@ "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"], + "required": [ + "id" + ], "type": "object", "properties": { "id": { @@ -293,64 +319,76 @@ }, "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 }, { - "required": ["customer"], + "required": [ + "customer" + ], "type": "object", "properties": { "customer": { "allOf": [ { - "required": ["mobile"], + "required": [ + "mobile" + ], "type": "object", "properties": { - "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" - } - } + "customerId": { + "type": "string", + "description": "Customer Identifier" }, "mobile": { - "maxLength": 20, + "maxLength": 22, "minLength": 6, - "pattern": "^\\d{6}(\\d{4}(\\d{10})?)?$", + "pattern": "^\\d{6,22}$", "type": "string", - "description": "Mobile number with 6, 10 and 20 digits are valid.", - "example": "9481773053" + "description": "Mobile number with 6 to 22 digits are valid." } } }, { - "required": ["customerParams"], + "required": [ + "customerParams" + ], "type": "object", "properties": { "customerParams": { "type": "array", "description": "The bill params for fetching the bill", "items": { - "required": ["name", "value"], + "required": [ + "name", + "value" + ], "type": "object", "properties": { "name": { @@ -369,6 +407,80 @@ } } ] + }, + "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.0" + } + }, + "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)." + }, + "currency": { + "type": "integer", + "description": "The currency code. Use `356` for `INR`." + }, + "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": "2025-01-01", + "x-omitempty": true + } + } } } } @@ -429,15 +541,24 @@ "content": { "application/json": { "schema": { - "required": ["data", "success", "traceId"], + "required": [ + "data", + "success", + "traceId" + ], "type": "object", "properties": { "data": { - "required": ["refId"], + "required": [ + "refId" + ], "type": "object", "properties": { "duplicate": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -445,21 +566,81 @@ }, "message": { "type": "string" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." } } }, "refId": { "type": "string", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202", + "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" } } }, "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" } } @@ -472,11 +653,18 @@ "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -507,11 +695,18 @@ "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -540,13 +735,19 @@ }, "security": [ { - "Production": ["bbps:partner"] + "Production": [ + "bbps:partner" + ] }, { - "Sandbox": ["bbps:partner"] + "Sandbox": [ + "bbps:partner" + ] }, { - "QA": ["bbps:partner"] + "QA": [ + "bbps:partner" + ] } ], "x-codegen-request-body-name": "CouAgentBillFetchRequest" @@ -554,9 +755,10 @@ }, "/api/v2/bbps/bills/fetch/response": { "post": { - "tags": ["Fetch"], + "tags": [ + "Fetch" + ], "description": "Bill fetch response API", - "operationId": "FetchResponseV2", "parameters": [ { "name": "X-PARTNER-ID", @@ -572,12 +774,14 @@ "content": { "application/json": { "schema": { - "required": ["refId"], + "required": [ + "refId" + ], "type": "object", "properties": { "refId": { "type": "string", - "example": "LNMSQQR4RKT7X1UGPY7JGUV454PL9T2C689" + "description": "The generated Reference ID for the request." } }, "x-go-name": "RefIdBasedRequest", @@ -639,7 +843,10 @@ "schema": { "allOf": [ { - "required": ["success", "traceId"], + "required": [ + "success", + "traceId" + ], "type": "object", "properties": { "success": { @@ -653,21 +860,26 @@ } }, { - "required": ["data"], + "required": [ + "data" + ], "type": "object", "properties": { "data": { - "required": ["refId", "status"], + "required": [ + "refId", + "status" + ], "type": "object", "properties": { - "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"], + "required": [ + "name", + "value" + ], "type": "object", "properties": { "name": { @@ -680,13 +892,77 @@ } } }, - "x-go-name": "BillAdditionalInfo" + "x-go-name": "BillAdditionalInfo", + "x-omitempty": false + }, + "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 + }, + "billerRefId": { + "type": "string", + "example": "7f16a032e514" }, "billerResponseType": { "type": "string", "nullable": true, "example": "SINGLE", - "enum": ["SINGLE", "LIST", "SELECTIVE"], + "enum": [ + "SINGLE", + "LIST", + "SELECTIVE" + ], "x-nullable": true, "x-omitempty": false }, @@ -695,7 +971,11 @@ "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"], + "enum": [ + "SINGLE", + "MULTIPLE", + "ALL" + ], "x-nullable": true, "x-omitempty": false }, @@ -712,21 +992,6 @@ ], "type": "object", "properties": { - "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 - }, "amount": { "type": "integer", "nullable": true, @@ -738,6 +1003,11 @@ "nullable": true, "x-omitempty": true }, + "billDate": { + "type": "string", + "format": "date", + "example": "2021-01-02" + }, "billNumber": { "type": "string", "example": "1232332" @@ -746,10 +1016,14 @@ "type": "string", "example": "ONETIME|DAILY|WEEKLY|BIMONTHLY|MONTHLY|QUARTERLY|HALFYEARLY|YEARLY|ASPRESENTED" }, - "billDate": { + "customerName": { + "type": "string", + "example": "Manoj Chekuri" + }, + "dueDate": { "type": "string", "format": "date", - "example": "2021-01-02" + "example": "2021-09-24" }, "label": { "type": "string", @@ -757,6 +1031,12 @@ "example": "Advance EMI", "x-omitempty": true }, + "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", @@ -767,19 +1047,11 @@ "type": "array", "nullable": true, "items": { - "required": ["name"], + "required": [ + "name" + ], "type": "object", "properties": { - "minAmount": { - "type": "integer", - "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.", @@ -797,6 +1069,17 @@ "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-go-name": "PaymentOption" @@ -808,12 +1091,22 @@ }, "x-omitempty": true }, - "billerRefId": { + "exactness": { "type": "string", - "example": "7f16a032e514" + "example": "Exact", + "enum": [ + "Exact", + "Exact and above", + "Exact and below", + "Any", + "RANGE" + ] }, "failureReason": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -826,14 +1119,33 @@ }, "type": { "type": "string", - "enum": ["FUND_TRANSFER", "BBPS", "APP"] + "enum": [ + "FUND_TRANSFER", + "BBPS", + "APP" + ] } } }, + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + }, "status": { "type": "string", "example": "Success", - "enum": ["Processing", "Success", "Failure"] + "enum": [ + "Processing", + "Success", + "Failure", + "Credit_Adjustment" + ] + }, + "upmsRegistrationRefId": { + "type": "string", + "nullable": true, + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202", + "x-omitempty": true } } } @@ -850,11 +1162,18 @@ "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -885,11 +1204,18 @@ "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -918,13 +1244,19 @@ }, "security": [ { - "Production": ["bbps:partner"] + "Production": [ + "bbps:partner" + ] }, { - "Sandbox": ["bbps:partner"] + "Sandbox": [ + "bbps:partner" + ] }, { - "QA": ["bbps:partner"] + "QA": [ + "bbps:partner" + ] } ], "x-codegen-request-body-name": "CouAgentAsyncRequest" @@ -932,9 +1264,10 @@ }, "/api/v2/bbps/bills/payment/request": { "post": { - "tags": ["Pay"], + "tags": [ + "Pay" + ], "description": "Bill payment request API", - "operationId": "PaymentRequestV2", "parameters": [ { "name": "X-PARTNER-ID", @@ -952,12 +1285,116 @@ "schema": { "allOf": [ { - "required": ["paymentDetails"], + "required": [ + "paymentDetails" + ], "type": "object", "properties": { - "refId": { - "type": "string", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + "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" + } + }, + "x-go-gen-location": "models", + "x-go-name": "BillerDetails" }, "bills": { "uniqueItems": true, @@ -965,7 +1402,10 @@ "nullable": true, "example": "Selection on bills in case of list billers", "items": { - "required": ["amount", "billNumber"], + "required": [ + "amount", + "billNumber" + ], "type": "object", "properties": { "amount": { @@ -982,6 +1422,21 @@ }, "x-omitempty": true }, + "dummyBillerResponseAmount": { + "type": "integer", + "description": "On debug, this is the amount passed in biller response COMFORT NEGATIVE 23", + "nullable": true + }, + "dummyCustomerMobile": { + "type": "string", + "description": "On debug, this hijacks the customer mobiler number COMFORT NEGATIVE 30, 31", + "nullable": true + }, + "dummyOrigRefId": { + "type": "string", + "description": "On debug, hijacks orig ref id of payment request - COMFORT PAYMENT - 83", + "nullable": true + }, "paymentDetails": { "required": [ "amount", @@ -991,10 +1446,14 @@ ], "type": "object", "properties": { - "timestamp": { + "COUcustConvFee": { + "type": "integer", + "nullable": true + }, + "Id": { "type": "string", - "format": "date-time", - "example": "2020-12-12T13:12:00+05:30" + "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, @@ -1010,33 +1469,6 @@ "type": "integer", "nullable": true }, - "selectedPaymentOptions": { - "type": "array", - "description": "List of selected payment options", - "nullable": true, - "items": { - "required": ["amount", "name"], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the payment option as returned in bill fetch response.", - "example": "Early Payment Amount" - }, - "amount": { - "minimum": 1, - "type": "integer", - "description": "The amount to be paid for the selected payment option." - } - } - }, - "x-nullable": true, - "x-omitempty": true - }, - "COUcustConvFee": { - "type": "integer", - "nullable": true - }, "custConvFee": { "type": "integer", "nullable": true @@ -1065,107 +1497,68 @@ "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" } } }, - "agent": { - "required": ["channel", "id"], + "refId": { + "type": "string", + "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + }, + "remitter": { "type": "object", "properties": { - "os": { - "type": "string", - "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", - "example": "iOS", - "enum": ["iOS", "Android"] + "aadhaar": { + "maxLength": 50, + "minLength": 1, + "type": "string" }, - "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" - }, - "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" - ] - }, - "imei": { - "type": "string", - "description": "Mandatory if channel is `MOB`, `MOBB`. Not required for others.", - "example": "123456789012345" - }, - "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": 20, - "minLength": 6, - "pattern": "^\\d{6}(\\d{4}(\\d{10})?)?$", - "type": "string", - "description": "Mobile number with 6, 10 and 20 digits are valid.", - "example": "9481773053" - }, - "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" + "email": { + "maxLength": 50, + "minLength": 1, + "type": "string" }, - "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" + "name": { + "maxLength": 50, + "minLength": 1, + "type": "string" }, - "ip": { - "type": "string", - "description": "Mandatory if channel is `INT`, `INTB`. Not required for others.", - "format": "ipv4", - "example": "124.170.23.24" + "pan": { + "maxLength": 50, + "minLength": 1, + "type": "string" } } - }, - "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" } }, "x-omitempty": true @@ -1176,53 +1569,38 @@ "customer": { "allOf": [ { - "required": ["mobile"], + "required": [ + "mobile" + ], "type": "object", "properties": { - "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" - } - } + "customerId": { + "type": "string", + "description": "Customer Identifier" }, "mobile": { - "maxLength": 20, + "maxLength": 22, "minLength": 6, - "pattern": "^\\d{6}(\\d{4}(\\d{10})?)?$", + "pattern": "^\\d{6,22}$", "type": "string", - "description": "Mobile number with 6, 10 and 20 digits are valid.", - "example": "9481773053" + "description": "Mobile number with 6 to 22 digits are valid." } } }, { - "required": ["customerParams"], + "required": [ + "customerParams" + ], "type": "object", "properties": { "customerParams": { "type": "array", "description": "The bill params for fetching the bill", "items": { - "required": ["name", "value"], + "required": [ + "name", + "value" + ], "type": "object", "properties": { "name": { @@ -1301,15 +1679,24 @@ "content": { "application/json": { "schema": { - "required": ["data", "success", "traceId"], + "required": [ + "data", + "success", + "traceId" + ], "type": "object", "properties": { "data": { - "required": ["refId"], + "required": [ + "refId" + ], "type": "object", "properties": { "duplicate": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -1317,21 +1704,80 @@ }, "message": { "type": "string" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." } } }, "refId": { "type": "string", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + "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" } } }, "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" } } @@ -1344,11 +1790,18 @@ "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -1423,15 +1876,24 @@ "content": { "application/json": { "schema": { - "required": ["data", "success", "traceId"], + "required": [ + "data", + "success", + "traceId" + ], "type": "object", "properties": { "data": { - "required": ["refId"], + "required": [ + "refId" + ], "type": "object", "properties": { "duplicate": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -1439,21 +1901,80 @@ }, "message": { "type": "string" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." } } }, "refId": { "type": "string", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + "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" } } }, "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" } } @@ -1466,11 +1987,18 @@ "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -1499,13 +2027,19 @@ }, "security": [ { - "Production": ["bbps:partner"] + "Production": [ + "bbps:partner" + ] }, { - "Sandbox": ["bbps:partner"] + "Sandbox": [ + "bbps:partner" + ] }, { - "QA": ["bbps:partner"] + "QA": [ + "bbps:partner" + ] } ], "x-codegen-request-body-name": "CouAgentBillPaymentRequestV2" @@ -1513,7 +2047,9 @@ }, "/api/v2/bbps/bills/payment/response": { "post": { - "tags": ["Pay"], + "tags": [ + "Pay" + ], "description": "Bill payment response API", "parameters": [ { @@ -1530,12 +2066,14 @@ "content": { "application/json": { "schema": { - "required": ["refId"], + "required": [ + "refId" + ], "type": "object", "properties": { "refId": { "type": "string", - "example": "LNMSQQR4RKT7X1UGPY7JGUV454PL9T2C689" + "description": "The generated Reference ID for the request." } }, "x-go-name": "RefIdBasedRequest", @@ -1546,132 +2084,152 @@ "required": true }, "responses": { - "400": { - "description": "Bad request", + "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": ["error", "success", "traceId"], + "required": [ + "data", + "success", + "traceId" + ], "type": "object", "properties": { - "error": { - "required": ["code", "message"], + "data": { + "required": [ + "refId", + "status" + ], "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": { + "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", - "example": "validation-error" + "description": "The biller ID on BBPS", + "example": "MAHI00000NATIC" }, - "message": { + "billerRefId": { "type": "string", - "example": "Input is invalid" - } - } - }, - "success": { - "type": "boolean", - "example": false - }, - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - } - } - } - } - } - }, - "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", "status"], - "type": "object", - "properties": { + "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": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "ERR004" + }, + "message": { + "type": "string", + "example": "customer not found" + }, + "type": { + "type": "string", + "enum": [ + "FUND_TRANSFER", + "BBPS", + "APP" + ] + } + } + }, "lastPaidDate": { "type": "string", "format": "date-time", @@ -1687,10 +2245,14 @@ ], "type": "object", "properties": { - "timestamp": { + "COUcustConvFee": { + "type": "integer", + "nullable": true + }, + "Id": { "type": "string", - "format": "date-time", - "example": "2020-12-12T13:12:00+05:30" + "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, @@ -1706,33 +2268,6 @@ "type": "integer", "nullable": true }, - "selectedPaymentOptions": { - "type": "array", - "description": "List of selected payment options", - "nullable": true, - "items": { - "required": ["amount", "name"], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the payment option as returned in bill fetch response.", - "example": "Early Payment Amount" - }, - "amount": { - "minimum": 1, - "type": "integer", - "description": "The amount to be paid for the selected payment option." - } - } - }, - "x-nullable": true, - "x-omitempty": true - }, - "COUcustConvFee": { - "type": "integer", - "nullable": true - }, "custConvFee": { "type": "integer", "nullable": true @@ -1761,6 +2296,37 @@ "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" } } }, @@ -1771,79 +2337,16 @@ "status": { "type": "string", "example": "Success", - "enum": ["Processing", "Success", "Failure"] + "enum": [ + "Processing", + "Success", + "Failure", + "Credit_Adjustment" + ] }, "transactionId": { "type": "string", "example": "AX30910192192192192" - }, - "additionalInfo": { - "type": "array", - "items": { - "required": ["name", "value"], - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "Line item 1" - }, - "value": { - "type": "string", - "example": "Value 1" - } - } - }, - "x-go-name": "BillAdditionalInfo" - }, - "billerId": { - "type": "string", - "description": "The biller ID on BBPS", - "example": "MAHI00000NATIC" - }, - "failureReason": { - "required": ["code", "message"], - "type": "object", - "properties": { - "code": { - "type": "string", - "example": "ERR004" - }, - "message": { - "type": "string", - "example": "customer not found" - }, - "type": { - "type": "string", - "enum": ["FUND_TRANSFER", "BBPS", "APP"] - } - } - }, - "billerRefId": { - "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 } } }, @@ -1861,17 +2364,107 @@ } } } + }, + "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"] + "Production": [ + "bbps:partner" + ] }, { - "Sandbox": ["bbps:partner"] + "Sandbox": [ + "bbps:partner" + ] }, { - "QA": ["bbps:partner"] + "QA": [ + "bbps:partner" + ] } ], "x-codegen-request-body-name": "CouAgentAsyncRequest" @@ -1879,14 +2472,15 @@ }, "/api/v2/bbps/bills/complaint/request": { "post": { - "tags": ["Dispute"], + "tags": [ + "Dispute" + ], "description": "Raise dispute request API", - "operationId": "DisputeRequestV2", "parameters": [ { "name": "X-PARTNER-ID", "in": "header", - "description": "Partner ID", + "description": "The Partner ID provided by Setu.", "required": true, "schema": { "type": "integer" @@ -1899,7 +2493,10 @@ "schema": { "allOf": [ { - "required": ["description", "disputeType"], + "required": [ + "description", + "disputeType" + ], "type": "object", "properties": { "description": { @@ -1909,7 +2506,6 @@ "disputeType": { "type": "string", "description": "The type of NPCI dispute", - "example": "account-not-updated", "enum": [ "account-not-updated", "double-payment", @@ -1917,13 +2513,20 @@ "others", "amount-deducted-biller-credited-no-transaction-id", "amount-deducted-biller-not-credited-no-transaction-id", - "amount-deducted-multiple-times" + "amount-deducted-multiple-times", + "service-not-received", + "service-disconnected", + "late-payment-surcharge", + "wrong-amount", + "payment-info-delay" ] } } }, { - "required": ["transactionId"], + "required": [ + "transactionId" + ], "type": "object", "properties": { "transactionId": { @@ -1989,15 +2592,24 @@ "content": { "application/json": { "schema": { - "required": ["data", "success", "traceId"], + "required": [ + "data", + "success", + "traceId" + ], "type": "object", "properties": { "data": { - "required": ["refId"], + "required": [ + "refId" + ], "type": "object", "properties": { "duplicate": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -2005,21 +2617,80 @@ }, "message": { "type": "string" + }, + "refId": { + "type": "string", + "description": "The generated Reference ID for the request." } } }, "refId": { "type": "string", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + "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" } } }, "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" } } @@ -2032,11 +2703,18 @@ "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -2063,15 +2741,22 @@ } }, "500": { - "description": "Bad request", + "description": "Internal server error", "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -2100,13 +2785,19 @@ }, "security": [ { - "Production": ["bbps:partner"] + "Production": [ + "bbps:partner" + ] }, { - "Sandbox": ["bbps:partner"] + "Sandbox": [ + "bbps:partner" + ] }, { - "QA": ["bbps:partner"] + "QA": [ + "bbps:partner" + ] } ], "x-codegen-request-body-name": "CouAgentDisputeRequest" @@ -2114,13 +2805,15 @@ }, "/api/v2/bbps/bills/complaint/response": { "post": { - "tags": ["Dispute"], + "tags": [ + "Dispute" + ], "description": "Raise dispute response API", "parameters": [ { "name": "X-PARTNER-ID", "in": "header", - "description": "Partner ID", + "description": "The Partner ID provided by Setu.", "required": true, "schema": { "type": "integer" @@ -2131,12 +2824,14 @@ "content": { "application/json": { "schema": { - "required": ["refId"], + "required": [ + "refId" + ], "type": "object", "properties": { "refId": { "type": "string", - "example": "LNMSQQR4RKT7X1UGPY7JGUV454PL9T2C689" + "description": "The generated Reference ID for the request." } }, "x-go-name": "RefIdBasedRequest", @@ -2196,7 +2891,10 @@ "content": { "application/json": { "schema": { - "required": ["success", "traceId"], + "required": [ + "success", + "traceId" + ], "type": "object", "properties": { "data": { @@ -2213,18 +2911,35 @@ "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", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" + "description": "The generated Reference ID for the request." }, "remarks": { "type": "string", "example": "Resolved in favour of Biller" }, + "responseReason": { + "type": "string", + "example": "Ticket already IN-PROGRESS" + }, "status": { "type": "string", "description": "BBPS Complaint status", @@ -2238,7 +2953,23 @@ "ASSIGNED_TO_OU", "ESCALATED", "RESOLVED", - "UNRESOLVED" + "UNRESOLVED", + "REJECTED", + "DEFAULT_RESOLVED", + "REFUNDED", + "PENDING_REFUND" + ] + }, + "ticketTAT": { + "type": "string", + "format": "date", + "nullable": true + }, + "ticketType": { + "type": "string", + "enum": [ + "DISPUTE", + "COMPLAINT" ] } }, @@ -2264,11 +2995,18 @@ "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -2299,11 +3037,18 @@ "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -2332,54 +3077,62 @@ }, "security": [ { - "Production": ["bbps:partner"] + "Production": [ + "bbps:partner" + ] }, { - "Sandbox": ["bbps:partner"] + "Sandbox": [ + "bbps:partner" + ] }, { - "QA": ["bbps:partner"] + "QA": [ + "bbps:partner" + ] } ], "x-codegen-request-body-name": "CouAgentAsyncRequest" } }, - "/api/v2/bbps/disputes": { + "/api/v2/bbps/billers": { "get": { - "tags": ["List"], - "description": "Returns the list of disputes.", - "operationId": "getDisputesV2", + "tags": [ + "List" + ], + "description": "Returns the list of billers.", "parameters": [ { "name": "X-PARTNER-ID", "in": "header", - "description": "Partner ID", + "description": "The Partner ID provided by Setu.", "required": true, "schema": { "type": "integer" } }, { - "name": "status", + "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": { - "uniqueItems": true, "type": "array", "items": { - "type": "string", - "enum": [ - "INITIALIZED", - "ASSIGNED", - "RE_ASSIGNED", - "ASSIGNED_TO_BOU", - "ASSIGNED_TO_COU", - "ASSIGNED_TO_OU", - "ESCALATED", - "RESOLVED", - "UNRESOLVED" - ] + "type": "string" } } }, @@ -2388,120 +3141,132 @@ "in": "query", "description": "Limit", "schema": { - "maximum": 1000.0, + "maximum": 250.0, "minimum": 1.0, "type": "integer" } }, { - "name": "categories", + "name": "after", "in": "query", - "description": "Biller Category", - "style": "form", - "explode": false, "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } + "type": "string" } }, { - "name": "months", + "name": "search", "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": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string", - "format": "date", - "example": "2022-07-19" - } + "type": "string" } }, { - "name": "after", + "name": "pincode", "in": "query", "schema": { "type": "string" } }, { - "name": "mobile", + "name": "city", "in": "query", - "description": "Mobile number with 6, 10 and 20 digits are valid.", "schema": { - "maxLength": 20, - "minLength": 6, - "pattern": "^\\d{6}(\\d{4}(\\d{10})?)?$", "type": "string" } }, { - "name": "transactionIds", + "name": "state", "in": "query", - "description": "Transaction IDs", - "style": "form", - "explode": false, "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } + "type": "string" } }, { - "name": "paymentRefIds", + "name": "country", "in": "query", - "description": "Agent's payment reference Ids", - "style": "form", - "explode": false, "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } + "type": "string" } }, { - "name": "billerIds", + "name": "coverage", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "tags", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "paymentChannel", "in": "query", - "description": "The biller ID on BBPS", "style": "form", "explode": false, "schema": { - "uniqueItems": true, "type": "array", "items": { - "type": "string" + "type": "string", + "enum": [ + "INT", + "INTB", + "MOB", + "BNKBRNCH", + "BSC", + "AGT", + "KIOSK", + "ATM", + "MOBB", + "POS", + "MPOS" + ] } } }, { - "name": "expand", + "name": "paymentMode", "in": "query", "style": "form", "explode": false, "schema": { - "uniqueItems": true, "type": "array", "items": { "type": "string", - "example": "BILLER", - "enum": ["BILLER", "TRANSACTION"] + "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" + } } ], "responses": { "200": { - "description": "List of disputes", + "description": "List of billers", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -2549,1709 +3314,1081 @@ "content": { "application/json": { "schema": { - "allOf": [ - { - "required": ["success", "traceId"], - "type": "object", - "properties": { - "success": { - "type": "boolean", - "example": true - }, - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - } - } - }, - { + "required": [ + "success", + "traceId" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "billers" + ], "type": "object", "properties": { - "data": { - "type": "object", - "properties": { - "disputes": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "biller": { - "required": [ - "categoryName", - "customerParams", - "exactness", - "fetchApiType", - "id", - "name", - "payWithoutFetchAllowed", - "paymentChannels", - "paymentModes", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "ADIT00000NAT0T" - }, - "country": { - "type": "string", - "example": "IND" - }, - "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 - } - } - } - }, - "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 - }, - "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" - } - } - } - }, - "city": { - "type": "string", - "example": "Hyderabad" - }, - "enforcesSameDayFetchPay": { - "type": "boolean", - "example": true, - "x-omitempty": false - }, - "payWithoutFetchAllowed": { - "type": "boolean", - "example": true - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - }, - "tags": { - "type": "string", - "example": "tags" - }, - "modifiedAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "state": { - "type": "string", - "example": "TEL" - }, - "logo": { - "type": "string", - "example": "logo" - }, - "name": { - "type": "string", - "example": "Aditya Birla Sun Life Insurance" - }, - "coverage": { - "type": "string", - "example": "IND-TEL-Hyderabad" - }, - "customerParamsGroups": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "string", - "example": "Param 1" - } - } - }, - "exactness": { - "type": "string", - "description": "Biller exactness", - "example": "Exact", - "enum": [ - "Exact", - "Exact and above", - "Exact and below", - "Any", - "RANGE" - ] - }, - "fetchApiType": { - "type": "string", - "example": "BILL_FETCH", - "enum": [ - "BILL_FETCH", - "BILL_VALIDATE", - "BILL_DIRECT" - ] - }, - "subCategoryName": { - "type": "string", - "example": "DAIRY" - }, - "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 - }, - "categoryName": { - "type": "string", - "example": "loan-repayment" - }, - "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": { - "regex": { - "type": "string", - "example": "^[a-zA-Z0-9]{7,15}" - }, - "values": { - "type": "string" - }, - "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" - ] - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - } - } - } - }, - "pincode": { - "type": "string", - "example": "pincode" - } - }, - "x-go-name": "CouBillerDetails" - }, - "billerId": { - "type": "string", - "description": "The biller ID on BBPS", - "example": "MAHI00000NATIC" - }, - "complaintId": { - "type": "string", - "example": "Loan Repayment" - }, - "lastModifiedAt": { - "type": "string", - "description": "Dispute's last modified timestamp", - "format": "date-time", - "example": "2020-12-12T13:12:00+05:30" - }, - "refId": { - "type": "string", - "example": "Loan Repayment" - }, - "responseCode": { - "type": "string", - "example": "ADIT00000NATRA" - }, - "assigned": { - "type": "string", - "example": "ADIT00000NATRA" - }, - "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" - ] - }, - "createdAt": { - "type": "string", - "description": "Dispute's creation timestamp", - "format": "date-time", - "example": "2020-12-12T13:12:00+05:30" - }, - "remarks": { - "type": "string", - "example": "ADIT00000NATRA" - }, - "responseReason": { - "type": "string", - "example": "ADIT00000NATRA" - }, - "transactionId": { - "type": "string", - "description": "Setu BillPay Transaction ID.", - "example": "AX30910192192192192" - } - } - }, - { - "type": "object", - "properties": { - "mobile": { - "maxLength": 20, - "minLength": 6, - "pattern": "^\\d{6}(\\d{4}(\\d{10})?)?$", - "type": "string", - "description": "Mobile number with 6, 10 and 20 digits are valid.", - "example": "9481773053" - }, - "paymentRefId": { - "type": "string", - "description": "Agent's payment reference ID" - }, - "transaction": { - "allOf": [ - { - "type": "object", - "properties": { - "amount": { - "type": "integer" - }, - "bills": { - "type": "array", - "items": { - "required": [ - "amount", - "billNumber" - ], - "type": "object", - "properties": { - "amount": { - "minimum": 1, - "type": "integer", - "description": "Amount in Paise" - }, - "billNumber": { - "type": "string", - "example": "B1234567" - } - }, - "x-omitempty": true - } - }, - "refId": { - "type": "string", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - }, - "status": { - "type": "string", - "example": "Success", - "enum": [ - "Processing", - "Success", - "Error" - ] - }, - "biller": { - "required": [ - "categoryName", - "customerParams", - "exactness", - "fetchApiType", - "id", - "name", - "payWithoutFetchAllowed", - "paymentChannels", - "paymentModes", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "ADIT00000NAT0T" - }, - "country": { - "type": "string", - "example": "IND" - }, - "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 - } - } - } - }, - "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 - }, - "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" - } - } - } - }, - "city": { - "type": "string", - "example": "Hyderabad" - }, - "enforcesSameDayFetchPay": { - "type": "boolean", - "example": true, - "x-omitempty": false - }, - "payWithoutFetchAllowed": { - "type": "boolean", - "example": true - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - }, - "tags": { - "type": "string", - "example": "tags" - }, - "modifiedAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "state": { - "type": "string", - "example": "TEL" - }, - "logo": { - "type": "string", - "example": "logo" - }, - "name": { - "type": "string", - "example": "Aditya Birla Sun Life Insurance" - }, - "coverage": { - "type": "string", - "example": "IND-TEL-Hyderabad" - }, - "customerParamsGroups": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "string", - "example": "Param 1" - } - } - }, - "exactness": { - "type": "string", - "description": "Biller exactness", - "example": "Exact", - "enum": [ - "Exact", - "Exact and above", - "Exact and below", - "Any", - "RANGE" - ] - }, - "fetchApiType": { - "type": "string", - "example": "BILL_FETCH", - "enum": [ - "BILL_FETCH", - "BILL_VALIDATE", - "BILL_DIRECT" - ] - }, - "subCategoryName": { - "type": "string", - "example": "DAIRY" - }, - "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 - }, - "categoryName": { - "type": "string", - "example": "loan-repayment" - }, - "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": { - "regex": { - "type": "string", - "example": "^[a-zA-Z0-9]{7,15}" - }, - "values": { - "type": "string" - }, - "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" - ] - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - } - } - } - }, - "pincode": { - "type": "string", - "example": "pincode" - } - }, - "x-go-name": "CouBillerDetails" - }, - "billerId": { - "type": "string", - "description": "The biller ID on BBPS", - "example": "MAHI00000NATIC" - }, - "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" - } - } - } - }, - "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": "AX30910192192192192" - } - } - }, - { - "type": "object", - "properties": { - "mobile": { - "maxLength": 20, - "minLength": 6, - "pattern": "^\\d{6}(\\d{4}(\\d{10})?)?$", - "type": "string", - "description": "Mobile number with 6, 10 and 20 digits are valid.", - "example": "9481773053" - }, - "paymentRefId": { - "type": "string", - "description": "Agent's payment reference ID" - } - } - } - ] - } - } - } - ] - } - }, - "nextPage": { - "type": "string", - "example": "/api/bbps/billers?search=Aditya&CategoryCode=Loan+Repayment&CategoryCode=Insurance&after=ABCC00000PTNNS" - }, - "total": { - "type": "integer" - } - } - } - } - } - ] - } - } - } - }, - "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/transactions": { - "get": { - "tags": ["List"], - "description": "Returns the list of transactions.", - "operationId": "getTxnsV2", - "parameters": [ - { - "name": "X-PARTNER-ID", - "in": "header", - "description": "Partner ID", - "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.", - "schema": { - "type": "string", - "format": "date" - } - }, - { - "name": "endDate", - "in": "query", - "description": "end date of the timestamp provided by the partner while making the request.", - "schema": { - "type": "string", - "format": "date" - } - }, - { - "name": "billerId", - "in": "query", - "description": "Transaction BillerId", - "schema": { - "type": "string" - } - }, - { - "name": "ids", - "in": "query", - "description": "Transaction Reference Ids", - "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"] - } - }, - { - "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", - "example": "2022-07-19" - } - } - }, - { - "name": "status", - "in": "query", - "description": "Transaction Status", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "example": "Success", - "enum": ["Processing", "Success", "Error"] - } - } - }, - { - "name": "mobile", - "in": "query", - "description": "Mobile number with 6, 10 and 20 digits are valid.", - "schema": { - "maxLength": 20, - "minLength": 6, - "pattern": "^\\d{6}(\\d{4}(\\d{10})?)?$", - "type": "string" - } - }, - { - "name": "expand", - "in": "query", - "style": "form", - "explode": false, - "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string", - "example": "BILLER", - "enum": ["BILLER"] - } - } - } - ], - "responses": { - "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" - } - } - } - } - } - }, - "200": { - "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" - } - } - }, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "required": ["success", "traceId"], - "type": "object", - "properties": { - "success": { - "type": "boolean", - "example": true - }, - "traceId": { - "type": "string", - "example": "C3SFG0O6N88R6UI7EQ" - } - } - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "nextPage": { - "type": "string", - "example": "/api/bbps/billers?search=Aditya&CategoryCode=Loan+Repayment&CategoryCode=Insurance&after=ABCC00000PTNNS" - }, - "transactions": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "amount": { - "type": "integer" - }, - "bills": { - "type": "array", - "items": { - "required": ["amount", "billNumber"], - "type": "object", - "properties": { - "amount": { - "minimum": 1, - "type": "integer", - "description": "Amount in Paise" - }, - "billNumber": { - "type": "string", - "example": "B1234567" - } - }, - "x-omitempty": true - } - }, - "refId": { - "type": "string", - "example": "HENSVVR4QOS7X1UGPY7JGUV444P10102202" - }, - "status": { - "type": "string", - "example": "Success", - "enum": [ - "Processing", - "Success", - "Error" - ] - }, - "biller": { - "required": [ - "categoryName", - "customerParams", - "exactness", - "fetchApiType", - "id", - "name", - "payWithoutFetchAllowed", - "paymentChannels", - "paymentModes", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "ADIT00000NAT0T" - }, - "country": { - "type": "string", - "example": "IND" - }, - "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 - } - } - } - }, - "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 - }, - "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" - } - } - } - }, - "city": { - "type": "string", - "example": "Hyderabad" - }, - "enforcesSameDayFetchPay": { - "type": "boolean", - "example": true, - "x-omitempty": false - }, - "payWithoutFetchAllowed": { - "type": "boolean", - "example": true - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - }, - "tags": { - "type": "string", - "example": "tags" - }, - "modifiedAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "state": { - "type": "string", - "example": "TEL" - }, - "logo": { - "type": "string", - "example": "logo" - }, - "name": { - "type": "string", - "example": "Aditya Birla Sun Life Insurance" - }, - "coverage": { - "type": "string", - "example": "IND-TEL-Hyderabad" - }, - "customerParamsGroups": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "string", - "example": "Param 1" - } - } - }, - "exactness": { - "type": "string", - "description": "Biller exactness", - "example": "Exact", - "enum": [ - "Exact", - "Exact and above", - "Exact and below", - "Any", - "RANGE" - ] - }, - "fetchApiType": { - "type": "string", - "example": "BILL_FETCH", - "enum": [ - "BILL_FETCH", - "BILL_VALIDATE", - "BILL_DIRECT" - ] - }, - "subCategoryName": { - "type": "string", - "example": "DAIRY" - }, - "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 - }, - "categoryName": { - "type": "string", - "example": "loan-repayment" - }, - "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": { - "regex": { - "type": "string", - "example": "^[a-zA-Z0-9]{7,15}" - }, - "values": { - "type": "string" - }, - "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" - ] - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - } - } - } - }, - "pincode": { - "type": "string", - "example": "pincode" - } + "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": { + "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" }, - "x-go-name": "CouBillerDetails" - }, - "billerId": { - "type": "string", - "description": "The biller ID on BBPS", - "example": "MAHI00000NATIC" - }, - "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" - } - } + "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" } - }, - "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": "AX30910192192192192" } } - }, + } + } + }, + "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" + }, + "upms_registration_overriding_rule": { + "type": "string", + "description": "Rule specifying how to handle UPMS registration conflicts", + "nullable": true, + "example": "NEWEST", + "x-omitempty": true + } + }, + "x-go-name": "CouBillerDetails" + } + }, + "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": "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/bbps/billers/plans": { + "get": { + "tags": [ + "List" + ], + "description": "Returns the list of plans for a given set of billers", + "operationId": "getBillerPlans", + "parameters": [ + { + "name": "X-PARTNER-ID", + "in": "header", + "description": "The Partner ID provided by Setu.", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "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": 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" + } + } + ], + "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": [ { - "type": "object", - "properties": { - "mobile": { - "maxLength": 20, - "minLength": 6, - "pattern": "^\\d{6}(\\d{4}(\\d{10})?)?$", - "type": "string", - "description": "Mobile number with 6, 10 and 20 digits are valid.", - "example": "9481773053" - }, - "paymentRefId": { - "type": "string", - "description": "Agent's payment reference ID" - } - } + "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" ] } } } + }, + "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" + }, + "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/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" + } + } + ], + "responses": { + "200": { + "description": "List of categories", + "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": [ + "categories" + ], + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "billerCount": { + "type": "integer" + }, + "name": { + "type": "string", + "example": "Loan Repayment" + } + } + } + } + } + }, + "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" } - ] + } } } } @@ -4261,11 +4398,60 @@ "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "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"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -4294,48 +4480,59 @@ }, "security": [ { - "Production": ["bbps:partner"] + "Production": [ + "bbps:partner" + ] }, { - "Sandbox": ["bbps:partner"] + "Sandbox": [ + "bbps:partner" + ] }, { - "QA": ["bbps:partner"] + "QA": [ + "bbps:partner" + ] } ] } }, - "/api/v2/bbps/billers": { + "/api/v2/bbps/disputes": { "get": { - "tags": ["List"], - "description": "Returns the list of billers.", - "operationId": "getBillersV2", + "tags": [ + "List" + ], + "description": "Returns the list of disputes.", "parameters": [ { "name": "X-PARTNER-ID", "in": "header", - "description": "Partner ID", + "description": "The Partner ID provided by Setu.", "required": true, "schema": { "type": "integer" } }, { - "name": "categoryName", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "ids", + "name": "status", "in": "query", "style": "form", "explode": false, "schema": { "type": "array", "items": { - "type": "string" + "type": "string", + "enum": [ + "INITIALIZED", + "ASSIGNED", + "RE_ASSIGNED", + "ASSIGNED_TO_BOU", + "ASSIGNED_TO_COU", + "ASSIGNED_TO_OU", + "ESCALATED", + "RESOLVED", + "UNRESOLVED" + ] } } }, @@ -4350,126 +4547,120 @@ } }, { - "name": "after", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "search", + "name": "categories", "in": "query", + "description": "Biller Category", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string" + } } }, { - "name": "pincode", + "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": "string" + "type": "array", + "items": { + "type": "string", + "format": "date" + } } }, { - "name": "city", + "name": "after", "in": "query", "schema": { "type": "string" } }, { - "name": "state", + "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": "country", + "name": "customerId", "in": "query", + "description": "Customer Identifier", "schema": { "type": "string" } }, { - "name": "coverage", + "name": "transactionIds", "in": "query", + "description": "Transaction IDs", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string" + } } }, { - "name": "tags", + "name": "paymentRefIds", "in": "query", + "description": "Partner provided transaction Ids", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "maxLength": 35, + "minLength": 6, + "type": "string" + } } }, { - "name": "paymentChannel", + "name": "billerIds", "in": "query", + "description": "The biller ID on BBPS", "style": "form", "explode": false, "schema": { "type": "array", "items": { - "type": "string", - "enum": [ - "INT", - "INTB", - "MOB", - "BNKBRNCH", - "BSC", - "AGT", - "KIOSK", - "ATM", - "MOBB", - "POS", - "MPOS" - ] + "type": "string" } } }, { - "name": "paymentMode", + "name": "expand", "in": "query", "style": "form", "explode": false, "schema": { + "uniqueItems": true, "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" + "BILLER", + "TRANSACTION" ] } } - }, - { - "name": "updatedSince", - "in": "query", - "description": "Used to fetch billers updated since the given date-time in IST", - "schema": { - "type": "string", - "format": "date-time" - } } ], "responses": { "200": { - "description": "List of billers", + "description": "List of disputes", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -4517,356 +4708,3276 @@ "content": { "application/json": { "schema": { - "required": ["success", "traceId"], - "type": "object", - "properties": { - "data": { - "required": ["billers"], + "allOf": [ + { + "required": [ + "success", + "traceId" + ], "type": "object", "properties": { - "total": { - "type": "integer" + "success": { + "type": "boolean", + "example": true }, - "billers": { - "type": "array", - "items": { - "required": [ - "categoryName", - "customerParams", - "exactness", - "fetchApiType", - "id", - "name", - "payWithoutFetchAllowed", - "paymentChannels", - "paymentModes", - "supportsPendingStatus" - ], - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "ADIT00000NAT0T" - }, - "country": { - "type": "string", - "example": "IND" - }, - "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 - } - } - } - }, - "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 - }, - "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" + "traceId": { + "type": "string", + "example": "C3SFG0O6N88R6UI7EQ" + } + } + }, + { + "type": "object", + "properties": { + "data": { + "required": [ + "disputes" + ], + "type": "object", + "properties": { + "disputes": { + "type": "array", + "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" + }, + "upms_registration_overriding_rule": { + "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": [ + "INITIALIZED", + "ASSIGNED", + "RE_ASSIGNED", + "ASSIGNED_TO_BOU", + "ASSIGNED_TO_COU", + "ASSIGNED_TO_OU", + "ESCALATED", + "RESOLVED", + "UNRESOLVED", + "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" + } } - } - } - }, - "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" + }, + { + "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" + }, + "upms_registration_overriding_rule": { + "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" + } + } + } + ] + } } } - } - }, - "city": { - "type": "string", - "example": "Hyderabad" - }, - "enforcesSameDayFetchPay": { - "type": "boolean", - "example": true, - "x-omitempty": false - }, - "payWithoutFetchAllowed": { - "type": "boolean", - "example": true - }, - "supportsPendingStatus": { - "type": "boolean", - "example": false - }, - "tags": { - "type": "string", - "example": "tags" - }, - "modifiedAt": { - "type": "string", - "format": "date-time", - "nullable": true, - "example": "2021-11-12T13:37:04.572+05:30", - "x-omitempty": false - }, - "state": { - "type": "string", - "example": "TEL" - }, - "logo": { - "type": "string", - "example": "logo" - }, - "name": { - "type": "string", - "example": "Aditya Birla Sun Life Insurance" - }, - "coverage": { - "type": "string", - "example": "IND-TEL-Hyderabad" - }, - "customerParamsGroups": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "string", - "example": "Param 1" - } - } - }, - "exactness": { - "type": "string", - "description": "Biller exactness", - "example": "Exact", - "enum": [ - "Exact", - "Exact and above", - "Exact and below", - "Any", - "RANGE" - ] - }, - "fetchApiType": { - "type": "string", - "example": "BILL_FETCH", - "enum": [ - "BILL_FETCH", - "BILL_VALIDATE", - "BILL_DIRECT" ] - }, - "subCategoryName": { - "type": "string", - "example": "DAIRY" - }, - "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 - }, - "categoryName": { - "type": "string", - "example": "loan-repayment" - }, - "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": { - "regex": { - "type": "string", - "example": "^[a-zA-Z0-9]{7,15}" - }, - "values": { - "type": "string" - }, - "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" - } + } + }, + "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/transactions": { + "get": { + "tags": [ + "List" + ], + "description": "Returns the list of transactions.", + "parameters": [ + { + "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" + ] + } + }, + { + "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": "string", + "enum": [ + "Required", + "Requested", + "Processed" + ] + } + } + ], + "responses": { + "200": { + "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" + } + } + }, + "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": { + "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": { + "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" + }, + "upms_registration_overriding_rule": { + "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" + } + } + } + ] + } + } + } + } + ] + } + } + } + ], + "x-go-name": "TransactionsResponse" + } + } + } + }, + "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/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/registrations/{upmsRegistrationRefID}": { + "get": { + "tags": [ + "UPMS" + ], + "description": "This synchronous endpoint allows you to retrieve the current status and details of a specific, existing UPMS registration immediately.", + "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": "debug", + "in": "query", + "description": "DEBUG-FIELD: In debug, if the UPMS View Registration is sent to NPCI", + "schema": { + "type": "boolean" + } + } + ], + "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": { + "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" } } - }, - "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 - } + } + }, + "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.0" } + }, + "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)." + }, + "currency": { + "type": "integer", + "description": "The currency code. Use `356` for `INR`." + }, + "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" } }, - "pincode": { - "type": "string", - "example": "pincode" - } + "description": "Details for debit information (mandatory when registrationType is AUTO_PAY)" }, - "x-go-name": "CouBillerDetails" + "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": "2025-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" + } + } + }, + "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": "This asynchronous endpoint permanently triggers cancellation of an active UPMS 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" + } + } + ], + "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": { + "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": { + "*/*": { + "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" + ], + "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" + } + } + } + } + } + }, + "409": { + "description": "Registration status invalid for cancellation", + "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" + } + } + } + } + } + }, + "500": { + "description": "Server error", + "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" + } + } + } + } + } + } + }, + "security": [ + { + "Production": [ + "bbps:partner" + ] + }, + { + "Sandbox": [ + "bbps:partner" + ] + }, + { + "QA": [ + "bbps:partner" + ] + } + ] + }, + "patch": { + "tags": [ + "UPMS" + ], + "description": "Update details for a UPMS registration. This is an asynchronous API which only acknowledges receipt of a valid request. The actual result of the update operation will be communicated via a callback.\n", + "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" + } + } + ], + "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" + ] } }, - "nextPage": { + "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": "2025-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.", + "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": { + "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": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "code": { "type": "string", - "example": "/api/bbps/billers?search=Aditya&CategoryCode=Loan+Repayment&CategoryCode=Insurance&after=ABCC00000PTNNS" + "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": { + "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" + } + } + } + } + } + }, + "409": { + "description": "Conflict (e.g., trying to update a cancelled registration)", + "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"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -4881,27 +7992,156 @@ }, "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": "CouAgentUpdateUPMSRegistrationRequest" + } + }, + "/api/v2/upms/simulate/{billRefId}/callbacks/skip-payment": { + "post": { + "tags": [ + "UPMS" + ], + "description": "Simulates a skip payment notification for the specified bill. Validates the request, acknowledges receipt, and triggers an asynchronous callback delivery that indicates a payment was made through an alternative channel. For lower environments only.", + "operationId": "SimulateSkipPaymentNotification", + "parameters": [ + { + "name": "X-PARTNER-ID", + "in": "header", + "description": "The Partner ID provided by Setu.", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "billRefId", + "in": "path", + "description": "Reference ID of the Bill", + "required": true, + "schema": { + "maxLength": 35, + "minLength": 35, + "type": "string" + } + } + ], + "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", - "example": "C3SFG0O6N88R6UI7EQ" + "description": "The traceId generated for the request", + "example": "CV4PE82LTNJE9O014OE0" } - } + }, + "x-go-name": "SimulateCallbackResponse" } } } }, "400": { - "description": "Bad request", + "description": "Bad request - validation failed", "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -4927,16 +8167,23 @@ } } }, - "500": { - "description": "Bad request", + "403": { + "description": "Forbidden - operation not allowed in current environment", "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -4961,47 +8208,24 @@ } } } - } - }, - "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": "Partner ID", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad request", + "404": { + "description": "Bill not found", "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -5028,15 +8252,22 @@ } }, "500": { - "description": "Bad request", + "description": "Internal server error", "content": { "application/json": { "schema": { - "required": ["error", "success", "traceId"], + "required": [ + "error", + "success", + "traceId" + ], "type": "object", "properties": { "error": { - "required": ["code", "message"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -5061,9 +8292,59 @@ } } } + } + }, + "security": [ + { + "Production": [ + "bbps:partner" + ] + }, + { + "Sandbox": [ + "bbps:partner" + ] + }, + { + "QA": [ + "bbps:partner" + ] + } + ] + } + }, + "/api/v2/upms/simulate/{upmsRegistrationRefId}/callbacks/bill": { + "post": { + "tags": [ + "UPMS" + ], + "description": "Simulates a bill notification for the specified UPMS registration. Validates the request, acknowledges receipt, and triggers an asynchronous callback delivery. For lower environments only.", + "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" + } + } + ], + "responses": { "200": { - "description": "List of categories", + "description": "Request accepted and queued for processing", "headers": { "X-Frame-Options": { "description": "X Frame options", @@ -5111,11 +8392,45 @@ "content": { "application/json": { "schema": { - "required": ["success", "traceId"], + "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"], + "required": [ + "code", + "message" + ], "type": "object", "properties": { "code": { @@ -5130,32 +8445,137 @@ }, "success": { "type": "boolean", - "example": true + "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" + } + } }, - "data": { - "required": ["categories"], + "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": { - "categories": { - "type": "array", - "items": { - "type": "object", - "properties": { - "billerCount": { - "type": "integer" - }, - "name": { - "type": "string", - "example": "Loan Repayment" - } - } - } + "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" } } } @@ -5165,13 +8585,19 @@ }, "security": [ { - "Production": ["bbps:partner"] + "Production": [ + "bbps:partner" + ] }, { - "Sandbox": ["bbps:partner"] + "Sandbox": [ + "bbps:partner" + ] }, { - "QA": ["bbps:partner"] + "QA": [ + "bbps:partner" + ] } ] }