Across Docs
Introduction

Tracking Transfers

Follow an order from submission to a settled outcome.

Executing a quote returns an order id. Tracking is one call against that id, repeated until the order settles.

  1. Save the id the execution returns.
  2. Retrieve the order with GET /v1/transfers/{orderId}.
  3. Read status.state for progress.
  4. Stop when status.isTerminal is true. The outcome is decided.
track.ts
const BASE_URL = "https://api.staging.across.to";
const API_KEY = process.env.ACROSS_API_KEY;

async function track(orderId: string) {
  while (true) {
    const res = await fetch(`${BASE_URL}/v1/transfers/${orderId}`, {
      headers: { Authorization: `Bearer ${API_KEY}` },
    });
    const transfer = await res.json();

    if (transfer.status.isTerminal) return transfer;

    await new Promise((r) => setTimeout(r, 5_000));
  }
}

status.description is a support-safe sentence you can show a user directly. Branch your own logic on status.state, never on description.

To list orders rather than fetch one, use GET /v1/transfers. Its filters are named statusState and statusReason, and addresses are filtered with depositor and recipient — there is no generic status or address parameter, and an unrecognised one is a 400 rather than being ignored.

Reference

The endpoint definitions, authentication, complete response, state and reason values, filters, and pagination are all in the API Reference:

On this page