Fetch bill
Returns the live outstanding amount, so the customer pays what is actually owed rather than a number typed from memory.
Sample reference
This shows the shape of the call — the operation, its fields and what comes back. The exact paths, base URL and any extra fields are confirmed with your sandbox credentials.
{BASE_URL}/v1/bbps/bills/fetch🚧 Not every biller has a bill to fetch
📘 Fetch again if the customer comes back later
Headers
AuthorizationstringrequiredBearer <your API key>. Sandbox and production keys are separate.
Content-Typestringrequiredapplication/json on every request that has a body.
Request body
billerIdstringrequiredFrom the biller catalogue.
customerParamsobjectrequiredThe same fields you validated.
Response fields
billIdstringrequiredPass this when you submit the payment.
amountnumberrequiredOutstanding amount in rupees.
dueDatestringoptionalISO date. Worth showing — it is why customers come back.
Errors
Every API returns the same envelope on failure, so one handler covers the whole catalogue.
VALIDATION_ERRORA field is missing or malformed. The message names the field.
UNAUTHORIZEDThe API key is missing, wrong, or for the other environment.
NOT_FOUNDNo resource with that ID or reference exists.
DUPLICATE_REFERENCEThis clientReference was already used. Safe to treat as a repeat of the first call.
RATE_LIMITEDToo many requests. Back off and retry after the Retry-After header.
UPSTREAM_UNAVAILABLEThe biller, bank or network is down. Retry later; nothing was charged.
