Skip to content

Step 3: Check Payment Status

http
POST /p/api/v1.0/steam/pay/status

Returns the outcome of a transactionId. This endpoint is read-only: it never charges the balance and never starts a payment.

The response uses the same JSON fields as POST /p/api/v1.0/steam/pay. Only transactions belonging to the API key owner are visible. Any other transactionId returns the same error as an expired id.

Request Body

json
{
  "transactionId": "d34cb700-fcf9-4cab-89b1-7a6b552a0df5"
}

Fields:

  • transactionId (string, required): Value returned by the check step. Must be 10 to 100 characters.

Example Request

bash
curl 'https://core.steaminventoryhelper.com/p/api/v1.0/steam/pay/status' \
  -H 'content-type: application/json' \
  -H 'api-key: <USER_API_KEY>' \
  --data-raw '{"transactionId":"d34cb700-fcf9-4cab-89b1-7a6b552a0df5"}'

Success Response

json
{
  "status": "success",
  "message": "Payment completed successfully",
  "paymentAmount": 50,
  "cashback": 0.003
}

Response fields (same as POST /p/api/v1.0/steam/pay):

  • status: Payment state. See the table below.
  • message: Human-readable result.
  • paymentAmount: Paid refill amount in RUB. 0 when the amount is not known yet.
  • cashback: Cashback credited to SIH balance in USD. 0 when no cashback was applied or the payment did not complete.

Status Values

statusMeaningBalance charged
createdThe check step succeeded, no payment was started yet. Lives for 1 hour after check.No
successThe balance was charged and the payment provider accepted the refill.Yes
failedThe payment provider rejected the refill. Everything was rolled back.No
unknownThe call to the payment provider errored or timed out. The balance was rolled back, but the provider may still have received the payment. message may describe the specific undetermined case; status stays unknown. A later pay/status poll may become failed if the provider reports FAILED.No

Error Responses

Invalid transactionId format:

json
{
  "success": false,
  "error": "transactionId has invalid length"
}

Unknown, expired, or not owned by this API key:

json
{
  "success": false,
  "error": "Invalid or expired transactionId"
}

Polling

  • The endpoint allows 1 request per 2 seconds per user, which is looser than check and pay.
  • Poll after pay until status is success or failed, then stop.
  • Treat unknown as requiring attention rather than as a failure: nothing was charged, but the refill may still have been delivered. Read message for the specific case, and contact support before retrying. An unknown payment may later become failed if the provider reports FAILED.
  • A transactionId that stays created for an hour has expired. Start again from check.

Status Codes

  • 200: Request processed. Some provider validation failures may still return success: false.
  • 400: Invalid input, invalid transaction, not enough balance, or payment provider failure.
  • 401: Missing or invalid API key, or the owning user account is locked.
  • 403: API key disabled by the user or disallowed by an administrator, or transactionId belongs to another user.
  • 404: User not found while locking balance (rare).
  • 429: Rate limit exceeded. See retryAfter (1 for check/pay, 2 for pay/status).
  • 500: Internal service error (Internal server error) or currency rate error (Failed to get currency rate).
  • 503: Temporary cache/transaction validation failure.

Integration Notes

  • Always call check immediately before pay.
  • Do not reuse a transactionId for a different Steam account, amount, user, or API key.
  • Retry pay with the same transactionId only when the previous request timed out or the client did not receive a response.
  • Prefer POST /p/api/v1.0/steam/pay/status over retrying pay when the outcome of a payment is unclear.
  • The SIH balance is charged only after the transaction ownership, rates, amount, and balance checks pass.