---
title: "Read a USDT send"
method: GET
path: "/v1/usdt/sends/{id}"
tags: ["Partner API"]
---

# Read a USDT send

`GET /v1/usdt/sends/{id}`

## Request

- Base URL: `https://sandbox.onlink.africa`
- URL: `https://sandbox.onlink.africa/v1/usdt/sends/{id}`
- Auth: API key in header `X-OnLink-Key`

## Path parameters

- `id` string, required

## Response `200`

The send.

- PartnerUsdtSendResponseDto
  - `id` string, required: The send id.
  - `status` 'awaiting_confirmation' | 'confirmed' | 'processing' | 'settled' | 'failed' | 'expired', required: The send status.
  - `destinationWalletId` string, required: The destination wallet id you registered.
  - `usdtAmount` string, required: The amount sent, in USDT.
  - `partnerReference` string: Your own reference, echoed back.
  - `failureReason` string: A classified failure code, present only once failed.
  - `createdAt` string, date-time, required: ISO-8601 instant the send was created.
  - `confirmedAt` string, date-time: ISO-8601 instant the send was confirmed: when its confirmation code was verified, or, when confirmation is waived for your account, when the send was created already confirmed.
  - `confirmation` ConfirmationDto
    - `id` string, required: The confirmation id. POST the code your confirmation contact receives (or your webhook, as `confirmation.code_issued`, when `channel` is `webhook`) back to `/v1/confirmations/:id` to authorise the transfer.
    - `channel` 'email' | 'sms' | 'webhook', required: How the confirmation code was delivered. `webhook` means it was pushed to your webhook endpoint as `confirmation.code_issued`.
    - `deliveredTo` string, required: Masked delivery address or number. Never the raw contact.
    - `expiresAt` string, date-time, required: ISO-8601 instant the confirmation code expires.
    - `resendAvailableAt` string, date-time, required: ISO-8601 instant a resend becomes available.
    - `webhookDelivery` ConfirmationWebhookDeliveryDto
      - `status` 'pending' | 'delivered' | 'failed', required: `pending` while we are still trying, `delivered` once your endpoint acknowledged the push, `failed` once every attempt has failed.
      - `attempts` integer, required: How many push attempts have been made so far.
      - `lastAttemptAt` string, date-time, nullable, required: ISO-8601 instant of the most recent push attempt, or null before the first.
    - `waiverNotApplied` 'key_without_ip_allowlist': Present only when OnLink has enabled confirmation waiving for your account but this request still needs a confirmation code, because the API key that made it has no IP allowlist. Ask OnLink to add an IP allowlist to that API key; payouts made with it are then created already confirmed. Present on the first response only: a repeat of the same request (an idempotent replay) returns the stored payout without it. Absent in every other case.

## Other responses

- `404`: USDT_SEND_NOT_FOUND.

---

[API](https://skmtc.dev/onlink/apis/onlink-partner-api.md) - [All operations](https://skmtc.dev/onlink/apis/onlink-partner-api/llms.txt) - [OpenAPI document](https://skmtc.dev/onlink/apis/onlink-partner-api/revisions/1d1c6a3671f2?raw)
