> ## Documentation Index
> Fetch the complete documentation index at: https://www.cashfree.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Poll Ticket Status Response

> Use this API to poll the status of a previously raised ticket.
Call this using the `ref_id` returned from the Raise Ticket Request API.

<Accordion title="Polling strategy">

Poll at increasing intervals until `message` is no longer `"Ticket request is still being processed"`:

| Attempt | Wait before this poll |
|---|---|
| 1 | 5 seconds |
| 2 | 15 seconds |
| 3 | 30 seconds |
| 4 | 1 minute |
| 5+ | 3 minutes |

Stop polling when `message` is `"Ticket details fetched successfully"` or `"Ticket request failed"`. If the ticket remains in a processing state beyond your retry limit, contact Cashfree support with the `ref_id`.

</Accordion>

<Accordion title="Response outcomes by `message`">

| `message` | Meaning |
|---|---|
| `"Ticket details fetched successfully"` | Completed. Check `data` for ticket details. |
| `"Ticket request failed"` | Terminal failure. Stop polling. |
| `"Ticket request is still being processed"` | Still processing. Continue polling. |

</Accordion>



## OpenAPI

````yaml openapi/bbps/bbps-cou.yaml post /bbps/cou/v1/billers/response/ticket-status
openapi: 3.0.3
info:
  title: BBPS for Customers (Customer Operating Unit)
  version: 1.0.0
  description: >
    APIs for Agent Institutions to integrate with the Bharat Bill Payment System
    (BBPS) as a Customer Operating Unit (COU). These APIs enable bill discovery,
    bill fetch, bill payment, ticket management, and wallet operations.
servers:
  - url: https://sandbox.cashfree.com
    description: Sandbox (Testing) environment.
  - url: https://api.cashfree.com
    description: Production environment.
security:
  - XClientID: []
    XClientSecret: []
paths:
  /bbps/cou/v1/billers/response/ticket-status:
    post:
      tags:
        - Ticket
      summary: Poll Ticket Status
      description: >-
        Use this API to poll the status of a previously raised ticket.

        Call this using the `ref_id` returned from the Raise Ticket Request API.


        <Accordion title="Polling strategy">


        Poll at increasing intervals until `message` is no longer `"Ticket
        request is still being processed"`:


        | Attempt | Wait before this poll |

        |---|---|

        | 1 | 5 seconds |

        | 2 | 15 seconds |

        | 3 | 30 seconds |

        | 4 | 1 minute |

        | 5+ | 3 minutes |


        Stop polling when `message` is `"Ticket details fetched successfully"`
        or `"Ticket request failed"`. If the ticket remains in a processing
        state beyond your retry limit, contact Cashfree support with the
        `ref_id`.


        </Accordion>


        <Accordion title="Response outcomes by `message`">


        | `message` | Meaning |

        |---|---|

        | `"Ticket details fetched successfully"` | Completed. Check `data` for
        ticket details. |

        | `"Ticket request failed"` | Terminal failure. Stop polling. |

        | `"Ticket request is still being processed"` | Still processing.
        Continue polling. |


        </Accordion>
      operationId: getTicketStatus
      requestBody:
        description: Request parameters to poll the status of a raised ticket.
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - ref_id
              properties:
                ref_id:
                  type: string
                  description: >-
                    Reference ID received from the Raise Ticket Request API
                    response (data.ref_id).
                  example: TKREF4QOS7X1UGPY7JGUV444P10102202
            example:
              ref_id: TKREF4QOS7X1UGPY7JGUV444P10102202
      responses:
        '200':
          description: Ticket status response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: HTTP status of the API call. This is always "OK".
                    example: OK
                  message:
                    type: string
                    description: >-
                      Human-readable outcome indicator. "Ticket details fetched
                      successfully" indicates success; "Ticket request failed"
                      indicates a terminal failure; "Ticket request is still
                      being processed" indicates the request is pending.
                    example: Ticket details fetched successfully
                  data:
                    type: object
                    description: >-
                      Ticket details and current status. Present once the ticket
                      request has been processed.
                    properties:
                      ref_id:
                        type: string
                        description: Reference ID echoed from the request.
                        example: TKREF4QOS7X1UGPY7JGUV444P10102202
                      ticket_id:
                        type: string
                        description: >-
                          Unique ticket ID assigned by the BBPS network. Present
                          once the ticket is created.
                        example: TKT20240110001234
                      ticket_status:
                        type: string
                        description: >-
                          Terminal status of the ticket. Possible values are
                          ASSIGNED, RESOLVED, REJECTED, and REFUNDED.
                        enum:
                          - ASSIGNED
                          - RESOLVED
                          - REJECTED
                          - REFUNDED
                        example: ASSIGNED
                      ticket_type:
                        type: string
                        description: >-
                          Type of ticket raised. DISPUTE for contested
                          transactions; COMPLAINT for service-related issues.
                        enum:
                          - DISPUTE
                          - COMPLAINT
                        example: DISPUTE
                      assigned:
                        type: string
                        description: Entity to which the ticket is currently assigned.
                        example: BILLER
                      response_code:
                        type: string
                        description: >-
                          "000" indicates success; any other value indicates
                          failure.
                        example: '000'
                      response_reason:
                        type: string
                        description: Human-readable description of the response code.
                        example: SUCCESS
                      description:
                        type: string
                        description: >-
                          Description of the ticket as submitted in the raise
                          request.
                        example: >-
                          Customer did not receive confirmation for a successful
                          payment.
              examples:
                success:
                  summary: Ticket found
                  value:
                    status: OK
                    message: Ticket details fetched successfully
                    data:
                      ref_id: TKREF4QOS7X1UGPY7JGUV444P10102202
                      ticket_id: TKT20240110001234
                      ticket_status: RESOLVED
                      ticket_type: DISPUTE
                      assigned: BILLER
                      response_code: '000'
                      response_reason: SUCCESS
                      description: >-
                        Customer did not receive confirmation for a successful
                        payment.
                processing:
                  summary: Still processing
                  value:
                    status: OK
                    message: Ticket request is still being processed
                    data:
                      ref_id: TKREF4QOS7X1UGPY7JGUV444P10102202
                failed:
                  summary: Ticket request failed
                  value:
                    status: OK
                    message: Ticket request failed
                    data:
                      ref_id: TKREF4QOS7X1UGPY7JGUV444P10102202
        '400':
          description: Bad request error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
        '429':
          description: Rate Limit Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitResponse'
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
      security:
        - XClientID: []
          XClientSecret: []
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: Human-readable description of the validation or request error.
          example: >-
            bill_fetch_request.agent_id : is missing in the request. Value
            received: 
        code:
          type: string
          description: >-
            Machine-readable error code identifying the specific validation
            failure.
          example: bill_fetch_request.agent_id_missing
        type:
          type: string
          description: Category of the error, indicating the error class.
          example: invalid_request_error
    UnauthorizedResponse:
      type: object
      properties:
        message:
          type: string
          description: Human-readable description of the authentication failure.
          example: authentication Failed
        code:
          type: string
          description: Machine-readable error code identifying the failure reason.
          example: request_failed
        type:
          type: string
          description: Category of the error, indicating the error class.
          example: authentication_error
    RateLimitResponse:
      type: object
      properties:
        message:
          type: string
          description: Human-readable description of the rate limit breach.
          example: Too many requests from IP. Check headers
        code:
          type: string
          description: Machine-readable error code identifying the failure reason.
          example: request_failed
        type:
          type: string
          description: Category of the error, indicating the error class.
          example: rate_limit_error
    InternalServerErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: Human-readable description of the server-side error.
          example: internal Server Error
        code:
          type: string
          description: Machine-readable error code identifying the failure reason.
          example: internal_error
        type:
          type: string
          description: Category of the error, indicating the error class.
          example: api_error
  securitySchemes:
    XClientID:
      type: apiKey
      in: header
      name: x-client-id
      description: >-
        Your unique client identifier issued by Cashfree. You can find this in
        your [Merchant
        Dashboard](https://merchant.cashfree.com/verificationsuite/developers/api-keys).
    XClientSecret:
      type: apiKey
      in: header
      name: x-client-secret
      description: >-
        Your unique client secret issued by Cashfree. Keep this confidential and
        never expose it in client-side code. You can find this in your [Merchant
        Dashboard](https://merchant.cashfree.com/verificationsuite/developers/api-keys).

````