> ## 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.

# Transaction Status and Complaint Request

> Use this API to submit a transaction status check or raise a complaint against a previously processed bill payment.
This is an **async** API. It returns only an acknowledgement with a `msg_id`.
Poll the Complaint Response API using `bill_fetch_ref_id`, `transaction_ref_id`, and `msg_id` to get the final result.

<Accordion title="Request type codes">

| `xchange_id` | Purpose |
|---|---|
| `401` | Transaction Status check |
| `501` | Complaint Registration |
| `502` | Re-assignment |
| `506` | Complaint Status check |
| `507` | Complaint Closure |

</Accordion>



## OpenAPI

````yaml /openapi/bbps/bbps-cou.yaml post /bbps/cou/v1/billers/request/complaint
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, complaint 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/request/complaint:
    post:
      tags:
        - Complaints
      summary: Transaction Status & Complaint Request
      description: >-
        Use this API to submit a transaction status check or raise a complaint
        against a previously processed bill payment.

        This is an **async** API. It returns only an acknowledgement with a
        `msg_id`.

        Poll the Complaint Response API using `bill_fetch_ref_id`,
        `transaction_ref_id`, and `msg_id` to get the final result.


        <Accordion title="Request type codes">


        | `xchange_id` | Purpose |

        |---|---|

        | `401` | Transaction Status check |

        | `501` | Complaint Registration |

        | `502` | Re-assignment |

        | `506` | Complaint Status check |

        | `507` | Complaint Closure |


        </Accordion>
      operationId: complaintRequest
      requestBody:
        description: >-
          Request parameters to submit a transaction status check or complaint
          request.
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - txn_status_complain_request
              properties:
                txn_status_complain_request:
                  type: object
                  required:
                    - bill_fetch_ref_id
                    - txn
                    - txn_status_complain_req
                  properties:
                    bill_fetch_ref_id:
                      type: string
                      description: >-
                        Unique reference ID from the Bill Fetch or Bill Payment
                        step.
                      example: HENSVVR4QOS7X1UGPY7JGUV444P10102202
                    txn:
                      type: object
                      required:
                        - ts
                        - xchange_id
                      properties:
                        ts:
                          type: string
                          description: Timestamp of the request in ISO 8601 format.
                          example: '2021-01-10T22:02:45+05:30'
                        xchange_id:
                          type: string
                          description: Request type code.
                          enum:
                            - '401'
                            - '501'
                            - '502'
                            - '506'
                            - '507'
                          example: '401'
                    txn_status_complain_req:
                      type: object
                      required:
                        - complaint_type
                        - transaction_ref_id
                      properties:
                        complaint_type:
                          type: string
                          enum:
                            - Transaction
                            - Service
                          example: Transaction
                        transaction_ref_id:
                          type: string
                          description: Reference ID from the original payment.
                          example: OU011010ABCD12345601
                        mobile:
                          type: string
                          nullable: true
                          example: '9876543210'
                        complaint_id:
                          type: string
                          nullable: true
                          description: Required for xchange_id 502, 506, and 507.
                        disposition:
                          type: string
                          nullable: true
                          description: Predefined value for transaction complaints.
                        serv_reason:
                          type: string
                          nullable: true
                          description: Predefined value for service complaints.
                        description:
                          type: string
                          nullable: true
                        participation_type:
                          type: string
                          nullable: true
                          enum:
                            - AGENT
                            - BILLER
                        agent_id:
                          type: string
                          nullable: true
                          description: Required if participation_type is AGENT.
                        biller_id:
                          type: string
                          nullable: true
                          description: Required if participation_type is BILLER.
                        super_level_esc:
                          type: boolean
                          default: false
                        reopen_complaint:
                          type: boolean
                          default: false
            example:
              txn_status_complain_request:
                bill_fetch_ref_id: HENSVVR4QOS7X1UGPY7JGUV444P10102202
                txn:
                  ts: '2021-01-10T22:02:45+05:30'
                  xchange_id: '401'
                txn_status_complain_req:
                  complaint_type: Transaction
                  mobile: '9876543210'
                  transaction_ref_id: OU011010ABCD12345601
                  complaint_id: null
                  super_level_esc: false
                  reopen_complaint: false
      responses:
        '202':
          description: >-
            Success response for submitting a transaction status check or
            complaint request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ACCEPTED
                  message:
                    type: string
                    example: Transaction status request accepted for processing
                  data:
                    type: object
                    properties:
                      bill_fetch_ref_id:
                        type: string
                        example: HENSVVR4QOS7X1UGPY7JGUV444P10102202
                      transaction_ref_id:
                        type: string
                        example: OU011010ABCD12345678
                      status:
                        type: string
                        example: PROCESSING
                      msg_id:
                        type: string
                        example: 8ENSVVR4QOS7X1UGPY7JGUV444P10102202
        '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'
        '500':
          description: API related Error.
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        status:
          type: string
          example: BAD_REQUEST
        message:
          type: string
          example: Validation error description
        data:
          nullable: true
          example: null
    UnauthorizedResponse:
      type: object
      properties:
        message:
          type: string
          example: Unauthorized
  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).

````