Skip to main content

3.2 Get payin status

Get payIn status

GET /api/v1/payins/{external_id}

Returns the current payIn status for your external_id.

Shop routing: when using multiple shops, you can pass shop_code in the query. If shop_code is provided, the search is limited to that shop. If shop_code is omitted, the API searches only in the merchant's default active shop. If no default active shop is configured, the API returns 422.

Headers

ParameterTypeRequiredDescription
X-API-KeystringYesAPI key.
X-TimestampstringYesRequest time.
X-SignaturestringYesHMAC-SHA256(secret, timestamp + body) — for GET requests the body is empty.

Path parameters

ParameterTypeDescription
external_idstringpayIn identifier provided at creation.

Query parameters

ParameterTypeRequiredDescription
shop_codestringNoShop code. If omitted, the lookup is performed only in the default active shop.

Example

GET /api/v1/payins/PIN-001?shop_code=shop-001

Response 200 (OK)

{
"id": 12345,
"external_id": "PIN-001",
"shop_code": "shop-001",
"status": "pending",
"amount": "1000.00",
"currency": "RUB",
"paymentData": {},
"updated_at": "2025-12-05T10:00:00.000000Z"
}

Response 404

{"message": "PayIn not found"} — no payin with this external_id was found in the resolved shop scope.


PayIn statuses

HTTP status responses use merchant-facing statuses. Internal processing states such as processing, waiting_api, processing_api, pay_error, and polling_expired are collapsed to pending in the REST API response.

StatusDescription
pendingCreated or still in progress from the merchant point of view.
successCompleted successfully.
failedProcessing finished with an error.
canceledThe user canceled the operation.
refundedThe amount was refunded after completion.
expiredThe time for completing the payin expired.

Status change notifications are sent to callback_url if it was provided at creation, or to the default webhook URL.