---
title: "Buy credits for a store's owner key with USDC, USDT, or BTC (compatibility)"
method: POST
path: "/v1/merchants/{id}/credits"
tags: ["Merchant Setup"]
---

# Buy credits for a store's owner key with USDC, USDT, or BTC (compatibility)

`POST /v1/merchants/{id}/credits`

## Request

- Base URL: `https://api.insumermodel.com`
- URL: `https://api.insumermodel.com/v1/merchants/{id}/credits`
- Auth: API key in header `X-API-Key`

Kept for compatibility. Credits bought here go to the regular credit balance of the API key that owns the merchant, the same balance POST /v1/credits/buy tops up and the one that pays for the store's codes, scans and taps. The store has no balance of its own. Pricing: flat 25 credits per $1 ($0.04/call) at every purchase size. POST /v1/credits/buy is the normal way to top up and carries the volume tiers. Send to the platform wallet: EVM USDC/USDT `0xAd982CB19aCCa2923Df8F687C0614a7700255a23` (same on all chains), Solana USDC/USDT `6a1mLjefhvSJX1sEX8PTnionbE9DqoYjU6F6bNkT4Ydr`, Bitcoin BTC `bc1qg7qnerdhlmdn899zemtez5tcx2a2snc0dt9dt0`, Tron USDT-TRC20 `TC5yvwkAMakkXtUxYiu2Yn1xbBcwYuD6cn`. USDC and USDT auto-detected from EVM and Solana transactions. BTC accepted on Bitcoin (converted to USD at market rate, requires 1 confirmation). USDT-TRC20 accepted on Tron. Supported chains: Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, Solana, Bitcoin, Tron. Crypto sent on unsupported chains cannot be recovered. All purchases are final and non-refundable. Sender verification: the first purchase registers the sender wallet address to the API key. Subsequent purchases must come from the same sender wallet. To change the registered wallet, include `"updateWallet": true` — the verified transfer from the new address proves ownership.

## Path parameters

- `id` string, required

## Request body

- object
  - `txHash` string, required: Transaction hash proving payment
  - `chainId` union, required: Chains supported for crypto payments. EVM chains and Solana accept USDC and USDT. Bitcoin accepts BTC (converted to USD at market rate, requires 1 confirmation). Tron accepts USDT-TRC20.
    - 1 | 8453 | 137 | 42161 | 10 | 56 | 43114
    - 'solana' | 'bitcoin' | 'tron'
  - `amount` number: Stablecoin amount sent (min 5). Not required for BTC — USD value derived from on-chain BTC amount at market rate.
  - `updateWallet` boolean: Set true to replace the registered sender wallet with this transaction's sender

## Response `200`

Credits purchased

- object
  - `ok` true
  - `data` object
    - `creditsAdded` integer
    - `totalCredits` integer
    - `usdcPaid` string: Stablecoin amount verified. Present on all purchases except Bitcoin.
    - `btcPaid` string: BTC amount verified. Present on Bitcoin purchases; usdcPaid otherwise.
    - `btcPrice` number: BTC/USD market rate used for conversion. Present on Bitcoin purchases; usdcPaid otherwise.
    - `usdEquivalent` string: USD value credited. Present on Bitcoin purchases; usdcPaid otherwise.
    - `chainName` string
  - `meta` Meta
    - `version` string
    - `timestamp` string, date-time

## Other responses

- `400`: Validation error
- `401`: Invalid or missing API key
- `403`: API key does not own this merchant
- `404`: Merchant not found
- `409`: Transaction already used
- `422`: On-chain verification failed
- `429`: Rate limit exceeded. API-key requests count against the key's daily limit; every authenticated response carries X-RateLimit-Limit and X-RateLimit-Remaining headers, and a 429 additionally carries Retry-After (seconds until the window resets).
- `500`: Unexpected server error. Safe to retry; no credits are charged on a 500. Router endpoints return the standard error envelope; standalone endpoints (the ones whose 200 is a flat object) return a flat {"error": "..."} object.
- `503`: On-chain verification temporarily unavailable. Retry in a few seconds.

---

[API](https://skmtc.dev/insumermodel/apis/insumerapi.md) · [All operations](https://skmtc.dev/insumermodel/apis/insumerapi/llms.txt) · [OpenAPI document](https://skmtc.dev/insumermodel/apis/insumerapi/revisions/91f56fe9e3d8?raw)
