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

# Verify the status of a payin invoice

> Verifies the status of a payin invoice (hosted or direct) from the creation token.

## Headers

<ParamField header="Apikey" type="string" required>
  API key of the LigdiCash project.
</ParamField>

<ParamField header="Authorization" type="string" required>
  `Bearer {API_TOKEN}`
</ParamField>

<ParamField header="Accept" type="string" required>
  `application/json`
</ParamField>

## Query parameter

<ParamField query="invoiceToken" type="string" required>
  Token returned by the `create` endpoint at invoice creation. **Do not use the callback token** — they are different.
</ParamField>

## Response

<ResponseField name="response_code" type="string">`"00"` = call succeeded, `"01"` = technical error.</ResponseField>
<ResponseField name="status" type="string">Payment status: `completed`, `pending`, or `notcompleted`.</ResponseField>
<ResponseField name="token" type="string">Empty in the `confirm` response.</ResponseField>
<ResponseField name="response_text" type="string">Error sub-code if `response_code = "01"`, empty otherwise.</ResponseField>
<ResponseField name="description" type="string">Free-form description. Can be empty.</ResponseField>
<ResponseField name="operator_id" type="string">Identifier of the operator used. Empty if `status = pending`.</ResponseField>
<ResponseField name="operator_name" type="string">Operator name. Empty if `status = pending`.</ResponseField>
<ResponseField name="customer" type="string">Payer's number. `null` if `status = pending`.</ResponseField>
<ResponseField name="montant" type="integer">Amount in XOF.</ResponseField>
<ResponseField name="amount" type="integer">Same as `montant`.</ResponseField>
<ResponseField name="date" type="string">Transaction date. Format: `YYYY-MM-DD HH:MM:SS+TZ`.</ResponseField>
<ResponseField name="external_id" type="string">Concatenation of `valueof_customdata` values whose key contains `"id"`. Matches the `transaction_id` if the pattern is respected.</ResponseField>
<ResponseField name="oreference" type="string">Operator reference. Can be empty.</ResponseField>
<ResponseField name="request_id" type="string">Unique LigdiCash identifier. Useful for support.</ResponseField>

<ResponseField name="custom_data" type="array">
  Metadata enriched by LigdiCash.

  <Expandable title="Entry fields">
    <ResponseField name="keyof_customdata" type="string">Key. LigdiCash adds its own entries (`logfile`).</ResponseField>
    <ResponseField name="valueof_customdata" type="string">Value.</ResponseField>
    <ResponseField name="datecreation_customdata" type="string">Creation timestamp of the entry.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="customer_details" type="object">
  <Expandable title="Fields">
    <ResponseField name="firstname" type="string">First name.</ResponseField>
    <ResponseField name="lastname" type="string">Last name.</ResponseField>
    <ResponseField name="email" type="string">Email.</ResponseField>
    <ResponseField name="phone" type="string">Phone.</ResponseField>
    <ResponseField name="details" type="string">Additional information.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="wiki" type="string">URL to the sub-codes documentation.</ResponseField>

| `status`       | Meaning                      |
| -------------- | ---------------------------- |
| `completed`    | Payment confirmed            |
| `pending`      | Awaiting operator processing |
| `notcompleted` | Payment did not go through   |

<CodeGroup>
  ```json completed theme={null}
  {
    "response_code": "00",
    "status": "completed",
    "operator_id": "14",
    "operator_name": "MOOV CI",
    "customer": "2250171584035",
    "montant": 5000,
    "amount": 5000,
    "date": "2026-04-15 11:19:28+00",
    "external_id": "ORD-2025-00042",
    "oreference": "",
    "request_id": "P2771491712026",
    "token": "",
    "response_text": "",
    "description": "",
    "custom_data": [
      { "keyof_customdata": "transaction_id", "valueof_customdata": "ORD-2025-00042", "datecreation_customdata": "2026-04-15 11:19:28.977757" },
      { "keyof_customdata": "logfile", "valueof_customdata": "2026041511192869df7440ed917", "datecreation_customdata": "2026-04-15 11:19:28.977757" }
    ],
    "customer_details": { "firstname": "Amadou", "lastname": "Diallo", "email": "amadou@example.com", "phone": "2250171584035", "details": "" },
    "wiki": "https://client.ligdicash.com/wiki/confirmInvoice"
  }
  ```

  ```json pending theme={null}
  {
    "response_code": "00",
    "status": "pending",
    "operator_id": "",
    "operator_name": "",
    "customer": null,
    "montant": 5000,
    "amount": 5000,
    "date": "2026-04-22 16:51:02+00",
    "external_id": "ORD-2025-00042",
    "token": "",
    "response_text": "",
    "wiki": "https://client.ligdicash.com/wiki/confirmInvoice"
  }
  ```

  ```json API error theme={null}
  {
    "response_code": "01",
    "response_text": "Echec (Code01)",
    "status": "",
    "wiki": "https://client.ligdicash.com/wiki/confirmInvoice"
  }
  ```
</CodeGroup>

## Error codes

Wiki: `https://client.ligdicash.com/wiki/confirmInvoice` — see [Sub-codes per endpoint](/en/errors/sub-codes#confirminvoice).

## Related guides

* [Verify the status — hosted payin](/en/payment-api/hosted-payin/verify-status)
* [Verify the status — direct payin](/en/payment-api/direct-payin/verify-status)
* [Securing the callback](/en/payment-api/callback/security)
