> For the complete documentation index, see [llms.txt](https://dev.indodana.id/indodana-paylater/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev.indodana.id/indodana-paylater/api-reference/qris-transaction-api.md).

# QRIS Transaction API

QRIS-specific endpoints of the Indodana Paylater merchant API. These complement the [Online Transaction API](/indodana-paylater/api-reference/api-reference.md) and share the same `{base_url}` and authentication scheme.

In this section, `{base_url}` corresponds to `https://sandbox01-api.indodanafinance.co.id/chermes/merchant` for `sandbox` and `https://api.indodanafinance.co.id/chermes/merchant` for `production`.

{% hint style="info" %}
You can find our IP list [here](/indodana-paylater/go-live-preparation/whitelist-ip.md).
{% endhint %}

## QRIS Check Transaction Status

<mark style="color:blue;">`GET`</mark> `https://{base_url}/v1/transactions/qris/check_status`

You can use this endpoint to check the transaction status on Indodana.

`*` means the parameter is required

#### Query Parameters

| Name                                              | Type   | Description                                                       |
| ------------------------------------------------- | ------ | ----------------------------------------------------------------- |
| merchantOrderId<mark style="color:red;">\*</mark> | string | The transaction order ID that is sent by merchant on the checkout |

#### Headers

| Name                                            | Type   | Description                                                                               |
| ----------------------------------------------- | ------ | ----------------------------------------------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | string | The generated Authentication signature with format `Bearer {api_key}:{nonce}:{signature}` |

{% tabs %}
{% tab title="200 " %}

```javascript
{
  "status": "OK",
  "fraudStatus": "ACCEPT",
  "legalName": "<INDODANA-CUSTOMER-NAME>",
  "amount": 4500000,
  "indodanaUserId": "<INDODANA-USER-ID>",
  "paymentType": "3_months",
  "transactionStatus": "INITIATED",
  "merchantOrderId": "<MERCHANT-ORDER-ID>",
  "transactionTime": "2019-09-26T06:24:26+0000",
  "transactionId": "<INDODANA-TRANSACTION-ID>"
}
```

{% endtab %}

{% tab title="404 " %}

```javascript
{
  "status": "ERROR",
  "error": {
    "kind": "NotFound",
    "message": "<String>"
  }
}
```

{% endtab %}
{% endtabs %}

## QRIS Transaction Metadata Callback

<mark style="color:green;">`POST`</mark> `https://{base_url}/v1/transactions/qris/metadata`

#### Headers

| Name                                            | Type   | Description                                                                                                     |
| ----------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | string | <p>The generated authentication signature with format<br><code>Bearer {api\_key}:{nonce}:{signature}</code></p> |

#### Request Body

| Name                                              | Type   | Description                                                                             |
| ------------------------------------------------- | ------ | --------------------------------------------------------------------------------------- |
| merchantOrderId<mark style="color:red;">\*</mark> | string | The same merchant order id given by Merchant Partner when generating Quickpay URL.      |
| paidAt<mark style="color:red;">\*</mark>          | string | Timestamp of the successful transaction on Merchant Partner side. ISO-8601 date format. |
| customerPan<mark style="color:red;">\*</mark>     | string | QRIS customer PAN.                                                                      |
| acquirer<mark style="color:red;">\*</mark>        | string | Name of QRIS acquirer.                                                                  |
| referenceNumber<mark style="color:red;">\*</mark> | string | QRIS transaction reference number from switcher.                                        |

{% tabs %}
{% tab title="API Request" %}

```javascript
{
  "merchantOrderId": "<MERCHANT-ORDER-ID>",
  "paidAt": "2024-01-01T13:00:00.000+07:00",
  "acquirer": "Indodana",
  "customerPan": "123456789",
  "referenceNumber": "REF-123456789"
}
```

{% endtab %}

{% tab title="API Response" %}

```javascript
{
    "status": "OK"
}
```

{% endtab %}
{% endtabs %}
