---
title: "Monitor Session Status"
method: POST
path: "/webhook-url"
tags: ["Webhook format"]
---

# Monitor Session Status

`POST /webhook-url`

## Headers

- `X-Signature` string

## Request body

- SessionRecordDto
  - `session_id` string, required — The identifier of the interaction with the user within the scope of the Hosted Payment Page
  - `transaction_id` string — The transaction identifier in Ratepay
  - `partner_transaction_id` string — The transaction identifier on the merchant side
  - `shop_buyer_id` string — The buyer identifier on the merchant side
  - `session_status` 'CREATED' | 'IN_PROGRESS' | 'COMPLETED' | 'ERROR' | 'EXPIRED' | 'CANCELED' | 'FRAUD_CANCELLATION_REQUESTED' | 'OTP_PENDING', required — The current status of the record. <br> * CREATED - the session has just been created by the merchant, but the buyer still didn't do anything. <br> * IN_PROGRESS - the session is being processed by Ratepay.<br> * COMPLETED - the transaction has been successfully completed.<br> * ERROR - some processing error has happened (please refer to the field `decline_reasons`).<br> * EXPIRED - the buyer didn't take any action within 30 minutes. <br> * CANCELED - the buyer clicked on the cancel button. <br> * FRAUD_CANCELLATION_REQUESTED - Ratepay advises for this transaction to be canceled by the merchant. <br> * OTP_PENDING - the buyer has been requested to validate their phone number, and Ratepay is still waiting for the verification. <br>
  - `decline_reasons` DeclineDto
    - `category` string
    - `reasons` string[]
    - `invalid_fields` InvalidFieldDto[]
      - `json_path` string
      - `message` string
  - `created_date` string — The date and time when the status was first created
  - `updated_date` string — The date and time when the status was last updated

## Response `2xx`

Handled as success case - therefore, will not be retried.

## Other responses

- `5xx` — Handled as a failure, and will be retried later. It will be retried in intervals of 3, 6 and 9 seconds until giving up. If it cannot be delivered, the merchant is advised to use the session records API to fetch the latest status of the transaction.
- `4xx` — Handled as a failure, and will be retried later. It will be retried in intervals of 3, 6 and 9 seconds until giving up. If it cannot be delivered, the merchant is advised to use the session records API to fetch the latest status of the transaction.

---

[API](https://skmtc.dev/ratepay/apis/openapi-definition.md) · [All operations](https://skmtc.dev/ratepay/apis/openapi-definition/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ratepay/openapi-definition/revisions/27d19f2769e5/schema)
