tgpay cryptoAPI
crypto-payapitransferspayouts

APIリファレンス:送金と送金リンク

1分で読めます最終更新: 2026年8月22日

支払いを出すためのメソッドです。 送金は、アプリの残高からTelegramユーザーのウォレットへ直接資金を送ります。 送金リンクは、先に資金を確保しておく、受け取り可能なリンクです。 共通の決まり(認証、レスポンスの形、金額、spend_id)はMerchant APIリファレンスにまとめています。

transfer

POST /pay/api/transfer、スコープはpayouts、上限は1分間に30回です。 すぐに、まとめて完了します。保留の状態はありません。

パラメーター必須説明
user_idinteger必須受取人のTelegramユーザーID。受取人はすでにアプリのユーザーである必要があります。知らないIDへの支払いは、誰も開かないウォレットに入金されるのではなく、エラーになります
assetstring必須資産コード
amountstring必須正の10進数の文字列。1回あたりの最小額と最大額(現在のレートでの米ドル換算の目安)にも従います
spend_idstring必須べき等キー。1〜64文字で、支払いごとに重複しない値
commentstring任意1024文字まで。受取人に表示されます
disable_send_notificationboolean任意trueにすると、Telegramで受取人に通知しません

結果は送金オブジェクトです。 transfer_idhashuser_idassetamountamount_minorspend_idcommentstatus(常にcompleted)・created_atcompleted_atです。

エラーは404 user_not_found(受取人がアプリを使ったことがない)・409 recipient_blocked400 amount_too_small400 amount_too_big(1回あたりの範囲外)・409 insufficient_funds404 unknown_asset400 invalid_amountと、spend_id409 idempotency_conflict409 idempotency_in_progressです。

transferBatch

POST /pay/api/transferBatch、スコープはpayouts、上限は1分間に10回です。 大量の支払いのための拡張で、1回の呼び出しで最大100件送れます。

パラメーターはitemsの1つです。 配列の各項目が、transferのパラメーター一式(user_idassetamountspend_idと、任意のcommentdisable_send_notification)です。 spend_idは同じ一括の中で重複できません。 重複していると、何も実行されないまま400 duplicate_spend_idで呼び出し全体が失敗します。

各項目は独立して、順番に処理されます。1件失敗しても、ほかの項目が巻き戻ることはありません。 一部の項目が失敗しても、呼び出し自体はHTTP 200とok: trueを返すので、必ず項目ごとに確かめてください。

  • 成功:{"ok": true, "spend_id": "…", "result": <transfer object>}
  • 失敗:{"ok": false, "spend_id": "…", "error": {"code": …, "name": "…"}}。エラー名は単体のtransferと同じです

一括の項目は、単体の送金とべき等性の名前空間を共有します。 一括全体を送り直しても、1件を同じspend_idで単体のtransferとして送り直しても、二重に支払われず元の結果が返ります。

getTransfers

GET /pay/api/getTransfers、スコープはreadです。 絞り込みはassettransfer_ids(カンマ区切り)・spend_id(完全一致。自分のキーで支払いを引けます)と、offsetcountです。 {"items": [transfer, …]}を新しい順に返します。

createCheck

POST /pay/api/createCheck、スコープはchecks、上限は1分間に60回です。 アプリの残高から資金を確保して、1回だけ使える送金リンクを作ります。 リンクを持っている人なら誰でも、または指定した相手だけが、自分のウォレットに受け取れます。 金額は作成した瞬間に確保されます(getBalanceavailableからonholdへ移ります)。

パラメーター必須説明
assetstring必須資産コード
amountstring必須正の10進数の文字列
pin_to_user_idinteger任意このTelegramユーザーIDの相手だけが受け取れます
pin_to_usernamestring任意この@usernameの相手だけが受け取れます(@は省略できます。pin_to_user_idも指定した場合は無視されます)。そのユーザー名は、アプリの既存のユーザーのものである必要があります
spend_idstring任意べき等キー(拡張)。指定してください

結果は送金リンクオブジェクトです。 check_idhashassetamountamount_minorbot_check_urlt.meの受け取りリンク)・statusactiveactivated)・pin_to_user_idcreated_atactivated_atです。 受け取られると、選んで受け取るcheck_activatedWebhookが発火します。

エラーは404 unknown_asset400 invalid_amount404 user_not_found(指定したユーザー名が誰とも一致しない)・409 insufficient_fundsと、spend_idのエラーです。

deleteCheck

POST /pay/api/deleteCheck、スコープはchecksです。 パラメーターはcheck_idの1つです。 まだ受け取られていない送金リンクをキャンセルし、確保していた金額をアプリの残高に戻してtrueを返します。 エラーは404 check_not_found409 check_not_active(すでに受け取られた、または削除済み)です。

getChecks

GET /pay/api/getChecks、スコープはreadです。 絞り込みはassetcheck_ids(カンマ区切り)・statusactiveactivated)と、offsetcountです。 {"items": [check, …]}を新しい順に返します。 削除された送金リンクは返りません。