> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stablepayfi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve a transfer

> Retrieve a transfer

See [authentication, signing, data conventions, and errors](https://docs.stablepayfi.ai/en/api/stablecoin-exchange/overview). Regenerate the timestamp, nonce, and signature on every retry.

`GET /transfer/{transfer_id}` Returns transfer details and status by ID or business reference.

## Request headers

**Authorization** `string` *required*

Bearer API Key.

**X-StablePay-Timestamp** `string` *required*

Unix seconds, within five minutes of server time.

**X-StablePay-Nonce** `string` *required*

Unique per request, 16–64 characters.

**X-StablePay-Signature** `string` *required*

Lowercase hexadecimal HMAC-SHA256 signature for the exact request body.

## Request parameters

**transfer\_id** `string` *required*

Transfer ID

**merchant\_id** `string`

10 digits; omit for merchant apps, required for service-provider apps

**external\_transfer\_id** `string`

Look up by business reference

## Response

**transfer\_id** `string` *required*

Transfer ID

**merchant\_id** `string` *required*

Merchant ID

**external\_transfer\_id** `string`

Business reference

**transfer\_type** `string` *required*

`on_ramp`, `off_ramp`, swap

**quote\_id** `string`

Executed quote ID

**fiat\_deposit\_id** `string`

Deposit record for `on_ramp`

**source\_currency** `string`

Sell currency

**target\_currency** `string`

Buy currency

**source\_network** `string`

Source network

**target\_network** `string`

Target network

**source\_amount** `integer`

Sell amount excluding fees

**target\_amount** `integer`

Buy amount; estimate under floating

**rate\_type** `string`

fixed or floating

**rate** `string`

Rate, decimal string

**fee\_amount** `integer`

Fee

**fee\_currency** `string`

Fee currency

**source\_account\_no** `string`

Source account

**target\_account\_no** `string`

Target account

**recipient\_id** `string`

Recipient ID

**recipient** `object`

Address and memo, or bank fields

**status** `string` *required*

processing, `payment_submitted`, completed, `funds_refunded`, `bounced_back`

**failure\_reason** `string`

Failure reason

**metadata** `object`

Custom metadata

**created** `integer` *required*

Creation time

**updated** `integer`

Last update time

## Status and errors

404 when missing or owned by another merchant.

State machine: processing → `payment_submitted` → completed. Terminal states also include `funds_refunded` and `bounced_back`, with the reason recorded in `failure_reason`. Transitions are pushed as transfer.\* webhook events and can also be polled through the transfer query endpoint.

```bash cURL theme={"system"}
curl --request GET \
  --url "https://api.stablepay.co/api/v1/transfer/{transfer_id}" \
  --header "Authorization: Bearer <API_KEY>" \
  --header "X-StablePay-Timestamp: <TIMESTAMP>" \
  --header "X-StablePay-Nonce: <NONCE>" \
  --header "X-StablePay-Signature: <SIGNATURE>"
```

```javascript JavaScript theme={"system"}
const response = await fetch("https://api.stablepay.co/api/v1/transfer/{transfer_id}", {
  method: "GET",
  headers: {
    "Authorization": "Bearer <API_KEY>",
    "X-StablePay-Timestamp": "<TIMESTAMP>",
    "X-StablePay-Nonce": "<NONCE>",
    "X-StablePay-Signature": "<SIGNATURE>"
  }
});
console.log(await response.json());
```

```json 200 theme={"system"}
{
  "transfer_id": "9000000011",
  "merchant_id": "2000000001",
  "transfer_type": "on_ramp",
  "quote_id": "9000000017",
  "fiat_deposit_id": "9000000090",
  "source_amount": 100500,
  "target_amount": 100479,
  "rate_type": "fixed",
  "rate": "0.9998",
  "fee_amount": 5,
  "fee_currency": "USD",
  "target_account_no": "00000001",
  "status": "processing",
  "created": 1718726400
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.