Skip to main content
Call GET /api/payments/status/{slug} to check whether a payment has arrived for a given payment link. This is a lightweight endpoint built for frequent polling — the hosted checkout page calls it every few seconds to detect on-chain transfers and update the UI in real time. It returns only the fields you need to determine payment outcome, without the full link record.

Request

GET https://pay.kibble.sh/api/payments/status/{slug}

Path parameters

slug
string
required
The unique identifier for the payment link. You receive the slug in the response when you create the link via POST /api/links.

Example request

cURL
curl --request GET \
  --url https://pay.kibble.sh/api/payments/status/abc12345

Response

A successful request returns 200 OK with the following fields.
status
string
required
The current payment status. See the table below for all possible values.
received_amount
string
required
The total USDC amount detected on-chain so far (e.g. "49.00"). "0.00" when no payment has been detected.
expected_amount
string
required
The USDC amount that was set when the payment link was created (e.g. "49.00").

Status values

ValueMeaning
pendingNo payment has been detected yet.
confirmedThe exact expected amount was received — payment is complete.
partialLess than the expected amount was received. The payer can send the remaining balance.
excessMore than the expected amount was received.
errorAn error occurred while processing the on-chain payment.

Example response

200
{
  "status": "confirmed",
  "received_amount": "49.00",
  "expected_amount": "49.00"
}