---
title: "Verify a Polygon deposit and its credited balance"
method: GET
path: "/transaction/status/polygon/{txId}"
tags: ["Transactions"]
---

# Verify a Polygon deposit and its credited balance

`GET /transaction/status/polygon/{txId}`

## Request

- Base URL: `https://nano-gpt.com/api`
- URL: `https://nano-gpt.com/api/transaction/status/polygon/{txId}`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Poll with the original account API key and complete URL-encoded txId. Unknown or foreign IDs return 404, not an inferred PENDING state. COMPLETED and balanceCredited true require a matching completed ledger deposit. EXPIRED means the acceptance window closed; it does not prove that no transfer was sent or rule out later reconciliation. Never resend solely because polling failed or the window expired.

## Path parameters

- `txId` string, required

## Response `200`

Current owner-scoped deposit state.

- PolygonDeposit: Creation instructions or current status. Original quote fields can be absent on historical/settled records. Monetary fields labeled quoted or estimated are not settled credit.
  - `network` 'polygon'
  - `token` string: POL for current native deposits.
  - `chainId` 137
  - `tokenDecimals` 18
  - `address` string: Receiving address; create a fresh payment window before every transfer despite address reuse.
  - `jobId` string
  - `txId` string: Opaque status identifier: address:jobId:expiry. Persist exactly and URL-encode when polling.
  - `statusUrl` string: Relative URL to poll on https://nano-gpt.com with the same account API key.
  - `status` 'PENDING' | 'CONFIRMING' | 'PROCESSING' | 'COMPLETED' | 'EXPIRED' | 'FAILED'
  - `balanceCredited` boolean: True only when the status endpoint verifies a completed account-owned ledger deposit. Present in status responses.
  - `creditedUsd` number: Final credited USD when balanceCredited is true; prefer settlement.creditedUsdExact for exact accounting.
  - `requestedUsd` number: Original requested gross USD estimate.
  - `quotedTokenAmount` string: Quoted POL quantity as a decimal string, not a guaranteed final USD credit.
  - `quotedTokenAmountAtomic` string: Quoted POL quantity in atomic units (18 decimals). Parse as BigInt or another exact integer, never a floating-point Number.
  - `quotedTokenUsdPrice` number: Indicative quote price, not a locked settlement price.
  - `priceLocked` false
  - `creditEstimate` PolygonDepositCreditEstimate: Indicative USD breakdown: conversion spread, consolidation fee, then bonus. Final credit uses actual POL received and settlement pricing. Never treat this as a locked exchange rate.
    - `grossUsdExact` string, required: Exact decimal string. Use decimal arithmetic.
    - `conversionSpreadRateExact` string, required: Exact decimal string. Use decimal arithmetic.
    - `conversionSpreadUsdExact` string, required: Exact decimal string. Use decimal arithmetic.
    - `consolidationFeeUsdExact` string, required: Exact decimal string. Use decimal arithmetic.
    - `netBeforeBonusUsdExact` string, required: Exact decimal string. Use decimal arithmetic.
    - `bonusRateExact` string, required: Exact decimal string. Use decimal arithmetic.
    - `bonusUsdExact` string, required: Exact decimal string. Use decimal arithmetic.
    - `estimatedCreditedUsdExact` string, required: Exact decimal string. Use decimal arithmetic.
    - `basis` 'requested_usd_at_quote_price', required
  - `expiresAt` integer: Payment-window expiry as Unix seconds. Do not send against expired or cancelled requests.
  - `remainingTime` integer: Seconds remaining when this response was built.
  - `minimumDepositUsd` number: Minimum requested gross USD estimate.
  - `consolidationFeeUsd` number
  - `consolidationFeeUsdExact` string: Exact decimal string. Use decimal arithmetic.
  - `estimatedCreditUsd` number: Legacy estimate after conversion spread and consolidation fee, before bonus.
  - `amountCrypto` union: Ambiguous legacy field. Creation responses contain the USD estimate, NOT POL. Use quotedTokenAmount; status may use this legacy field for an observed amount.
    - number
    - string
  - `quotedEthAmount` string: Legacy alias for quotedTokenAmount on native POL.
  - `quotedEthAmountWei` string: Legacy alias for quotedTokenAmountAtomic on native POL.
  - `txHash` string
  - `paidTokenAmount` string: Exact decimal string. Use decimal arithmetic.
  - `paidTokenAmountAtomic` string
  - `settlement` object: Only returned for verified COMPLETED ledger rows. Historical bonus components are null if unavailable or inconsistent; no bonus is inferred.
    - `creditedUsdExact` string, required: Exact decimal string. Use decimal arithmetic.
    - `baseUsdExact` string, nullable, required
    - `bonusUsdExact` string, nullable, required
    - `bonusRateExact` string, nullable, required
    - `breakdownSource` 'cryptoBonus' | 'null', nullable, required

## Other responses

- `400`: Malformed txId.
- `401`: Missing or invalid authentication.
- `404`: No matching deposit for this account, network and address.
- `503`: Status could not be verified; retry with backoff.

## Changes

- **2026-11-03** `cc8b07d75689`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nano-gpt/apis/nanogpt-api/changes/transaction/status/polygon/:txId/get.md)

---

[API](https://skmtc.dev/nano-gpt/apis/nanogpt-api.md) - [All operations](https://skmtc.dev/nano-gpt/apis/nanogpt-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nano-gpt/apis/nanogpt-api/revisions/cc8b07d75689?raw)
