202 and you poll the corresponding response API for the final result.
With synchronous responses enabled, these APIs attempt to return the final result within a 30-second window in the same call. If the result is not ready within that window, the API falls back to the standard async flow and returns HTTP 202.
Synchronous responses are an opt-in feature and are disabled by default. To enable them for your account, contact your Cashfree account manager. You do not need to change your request format.
Response status
The following table explains each response status and what to do:
The
data.result object has the same format as the data object that the corresponding response API returns, so you can reuse your existing response handling.
For
LIST billers where the Bill Fetch Response was returned using x-api-version: 2026-01-01, data.result contains the biller_responses array format. For all other billers, it contains the standard biller_response object.Examples
The following examples show Bill Payment Request responses for each outcome:Handle synchronous responses
Even with synchronous responses enabled, some requests return HTTP202, for example when the biller responds slowly. To handle both outcomes:
- Set your HTTP client timeout to at least 35 seconds for the Bill Fetch Request and Bill Payment Request APIs. This ensures your client does not time out before the 30-second sync window closes.
- Check the HTTP status code of the response.
- If the status code is
200, read the final status fromdata.statusand the details fromdata.result. - If the status code is
202, poll the corresponding response API using the polling strategy described on its page.
Recovery after a client timeout
If your client times out before the response arrives, the payment may still be processing on the server. The Cashfree server keeps the connection open for up to 60 seconds. If the sync result is not ready within the 30-second window, the API immediately sends an async fallback response in the same call. This response containstransaction_ref_id. Use that transaction_ref_id to poll the Bill Payment Response API for the final status.
Cashfree delivers webhook notifications for bill fetch and payment events regardless of whether the API returned HTTP 200 (synchronous result) or HTTP 202 (asynchronous). You receive webhooks in both cases, so your webhook handler does not need any changes when synchronous responses are enabled. For payload contracts and signature verification, see COU Webhooks.