Skip to content
Testnet only: a reference implementation, not a production service.Tokens and bank transfers here are simulated and have no value.

Transfers

6 operations under transfers. Examples read $API and $KEY from your shell.

GET /v1/transfers/{id}/timeline

Parameters

  • id string required in path

Responses

200 Default Response

object

  • data array required

    Each item:

    • status string required
    • previous_status string required (nullable)
    • reason string required (nullable)
    • at string required
  • has_more boolean required

Errors are RFC 9457 problem documents (application/problem+json).

curl

curl -s \
  "$API/v1/transfers/$ID/timeline" \
  -H "authorization: Bearer $KEY"
Copied

SDK

import { createScrClient } from "@scr/sdk";

// The client sends the API key for you.
const client = createScrClient({ baseUrl: process.env.API!, apiKey: process.env.KEY! });
const { data, error } = await client.GET("/v1/transfers/{id}/timeline", {
  params: { path: { id: "<id>" } },
});
Copied

GET /v1/transfers/{id}/entries

Parameters

  • id string required in path

Responses

200 Default Response

object

  • data array required

    Each item:

    • id string required
    • journal_entry_id string required
    • kind string required
    • transfer_id string required (nullable)
    • ledger_account string required one of customer_tokens, frozen, customer_fiat
    • asset string required
    • amount decimal string required
    • direction string required one of debit, credit
    • created_at string required
  • has_more boolean required

Errors are RFC 9457 problem documents (application/problem+json).

curl

curl -s \
  "$API/v1/transfers/$ID/entries" \
  -H "authorization: Bearer $KEY"
Copied

SDK

import { createScrClient } from "@scr/sdk";

// The client sends the API key for you.
const client = createScrClient({ baseUrl: process.env.API!, apiKey: process.env.KEY! });
const { data, error } = await client.GET("/v1/transfers/{id}/entries", {
  params: { path: { id: "<id>" } },
});
Copied

GET /v1/transfers

Parameters

  • kind string optional in query, one of mint, redeem, onchain, payout, conversion
  • status string optional in query, one of pending_approval, created, awaiting_funds, funds_received, tokens_received, reserve_check, submitted, burn_submitted, burned, payout_initiated, completed, suspended, returned, failed, canceled, expired
  • limit integer required in query
  • starting_after string optional in query
  • stellar_tx_hash string optional in query
  • reference string optional in query
  • on_behalf_of string optional in query

Responses

200 Default Response

object

  • data array required

    Each item:

    • id string required
    • kind string required one of mint, redeem, onchain, payout, conversion
    • quote_id string optional
    • status string required
    • status_reason string required (nullable)
    • on_behalf_of string required (nullable)
    • asset string required
    • amount decimal string required
    • currency string required (nullable)
    • net_amount decimal string required
    • source object required
      • type string required
      • currency string optional
      • rail string optional
      • asset string optional
      • amount decimal string optional
      • asset_issuer string optional (nullable)
      • counterparty_id string optional
      • address string optional
      • deposit_route_id string optional (nullable)
    • destination object required
      • type string required
      • currency string optional
      • rail string optional
      • asset string optional
      • amount decimal string optional
      • asset_issuer string optional (nullable)
      • counterparty_id string optional
      • address string optional
      • deposit_route_id string optional (nullable)
    • deposit_instructions one of required (nullable)
      1. Variant 1: object

        • rail string required one of wire
        • beneficiary_name string required
        • bank_name string required
        • account_number string required
        • reference string required
        • expires_at string required
      2. Variant 2: object

        • rail string required one of stellar
        • asset string required
        • muxed_address string required (nullable)
        • amount decimal string required
        • expires_at string required
    • fees array required

      Each item:

      • type string required
      • amount decimal string required
      • currency string required
    • payout_rail_ref string required (nullable)
    • stellar_tx_hash string required (nullable)
    • ledger_sequence integer required (nullable)
    • metadata object required
    • version integer required
    • expires_at string required (nullable)
    • created_at string required
    • updated_at string required
  • has_more boolean required

Errors are RFC 9457 problem documents (application/problem+json).

curl

curl -s \
  "$API/v1/transfers?limit=1" \
  -H "authorization: Bearer $KEY"
Copied

SDK

import { createScrClient } from "@scr/sdk";

// The client sends the API key for you.
const client = createScrClient({ baseUrl: process.env.API!, apiKey: process.env.KEY! });
const { data, error } = await client.GET("/v1/transfers", {
  params: { query: { limit: 1 } },
});
Copied

POST /v1/transfers

Send an Idempotency-Key header on every POST so a retry never repeats the request.

Request body

application/json, required

one of

  1. Variant 1: object

    • source object required
      • type string required one of fiat
      • currency string required
      • rail string required one of wire
    • destination object required
      • type string required one of stellar
      • asset string required
      • counterparty_id string required
    • amount decimal string required
    • metadata object optional
    • on_behalf_of string optional
  2. Variant 2: object

    • source object required
      • type string required one of stellar
      • asset string required
      • counterparty_id string required
    • destination object required
      • type string required one of fiat
      • currency string required
      • rail string required one of wire
      • counterparty_id string required
    • amount decimal string required
    • metadata object optional
    • on_behalf_of string optional
  3. Variant 3: object

    • quote_id string required
    • source object required
      • type string required one of balance
      • asset string required
    • destination object required
      • type string required one of stellar
      • asset string required
      • counterparty_id string required
    • metadata object optional
  4. Variant 4: object

    • source object required
      • type string required one of balance
      • asset string required
    • destination object required
      • type string required one of stellar
      • asset string required
      • counterparty_id string required
    • amount decimal string required
    • metadata object optional
    • on_behalf_of string optional
  5. Variant 5: object

    • source object required
      • type string required one of fiat_balance
      • currency string required
    • destination one of required
      1. Variant 1: object

        • type string required one of stellar
        • asset string required
        • counterparty_id string required
      2. Variant 2: object

        • type string required one of fiat
        • currency string required
        • rail string required one of wire
        • counterparty_id string required
    • amount decimal string required
    • metadata object optional
    • on_behalf_of string optional

Responses

201 Default Response

object

  • id string required
  • kind string required one of mint, redeem, onchain, payout, conversion
  • quote_id string optional
  • status string required
  • status_reason string required (nullable)
  • on_behalf_of string required (nullable)
  • asset string required
  • amount decimal string required
  • currency string required (nullable)
  • net_amount decimal string required
  • source object required
    • type string required
    • currency string optional
    • rail string optional
    • asset string optional
    • amount decimal string optional
    • asset_issuer string optional (nullable)
    • counterparty_id string optional
    • address string optional
    • deposit_route_id string optional (nullable)
  • destination object required
    • type string required
    • currency string optional
    • rail string optional
    • asset string optional
    • amount decimal string optional
    • asset_issuer string optional (nullable)
    • counterparty_id string optional
    • address string optional
    • deposit_route_id string optional (nullable)
  • deposit_instructions one of required (nullable)
    1. Variant 1: object

      • rail string required one of wire
      • beneficiary_name string required
      • bank_name string required
      • account_number string required
      • reference string required
      • expires_at string required
    2. Variant 2: object

      • rail string required one of stellar
      • asset string required
      • muxed_address string required (nullable)
      • amount decimal string required
      • expires_at string required
  • fees array required

    Each item:

    • type string required
    • amount decimal string required
    • currency string required
  • payout_rail_ref string required (nullable)
  • stellar_tx_hash string required (nullable)
  • ledger_sequence integer required (nullable)
  • metadata object required
  • version integer required
  • expires_at string required (nullable)
  • created_at string required
  • updated_at string required

202 Default Response

object

  • id string required
  • kind string required one of mint, redeem, onchain, payout, conversion
  • quote_id string optional
  • status string required
  • status_reason string required (nullable)
  • on_behalf_of string required (nullable)
  • asset string required
  • amount decimal string required
  • currency string required (nullable)
  • net_amount decimal string required
  • source object required
    • type string required
    • currency string optional
    • rail string optional
    • asset string optional
    • amount decimal string optional
    • asset_issuer string optional (nullable)
    • counterparty_id string optional
    • address string optional
    • deposit_route_id string optional (nullable)
  • destination object required
    • type string required
    • currency string optional
    • rail string optional
    • asset string optional
    • amount decimal string optional
    • asset_issuer string optional (nullable)
    • counterparty_id string optional
    • address string optional
    • deposit_route_id string optional (nullable)
  • deposit_instructions one of required (nullable)
    1. Variant 1: object

      • rail string required one of wire
      • beneficiary_name string required
      • bank_name string required
      • account_number string required
      • reference string required
      • expires_at string required
    2. Variant 2: object

      • rail string required one of stellar
      • asset string required
      • muxed_address string required (nullable)
      • amount decimal string required
      • expires_at string required
  • fees array required

    Each item:

    • type string required
    • amount decimal string required
    • currency string required
  • payout_rail_ref string required (nullable)
  • stellar_tx_hash string required (nullable)
  • ledger_sequence integer required (nullable)
  • metadata object required
  • version integer required
  • expires_at string required (nullable)
  • created_at string required
  • updated_at string required

Errors are RFC 9457 problem documents (application/problem+json).

curl

curl -s \
  -X POST \
  "$API/v1/transfers" \
  -H "authorization: Bearer $KEY" \
  -H "idempotency-key: $(uuidgen)" \
  -H "content-type: application/json" \
  -d '{"source":{"type":"fiat","currency":"<currency>","rail":"wire"},"destination":{"type":"stellar","asset":"<asset>","counterparty_id":"<counterparty_id>"},"amount":"10.00"}'
Copied

SDK

import { createScrClient } from "@scr/sdk";

// The client sends the API key and an Idempotency-Key for you.
const client = createScrClient({ baseUrl: process.env.API!, apiKey: process.env.KEY! });
const { data, error } = await client.POST("/v1/transfers", {
  body: {
    "source": {
      "type": "fiat",
      "currency": "<currency>",
      "rail": "wire"
    },
    "destination": {
      "type": "stellar",
      "asset": "<asset>",
      "counterparty_id": "<counterparty_id>"
    },
    "amount": "10.00"
  },
});
Copied

GET /v1/transfers/{id}

Parameters

  • id string required in path

Responses

200 Default Response

object

  • id string required
  • kind string required one of mint, redeem, onchain, payout, conversion
  • quote_id string optional
  • status string required
  • status_reason string required (nullable)
  • on_behalf_of string required (nullable)
  • asset string required
  • amount decimal string required
  • currency string required (nullable)
  • net_amount decimal string required
  • source object required
    • type string required
    • currency string optional
    • rail string optional
    • asset string optional
    • amount decimal string optional
    • asset_issuer string optional (nullable)
    • counterparty_id string optional
    • address string optional
    • deposit_route_id string optional (nullable)
  • destination object required
    • type string required
    • currency string optional
    • rail string optional
    • asset string optional
    • amount decimal string optional
    • asset_issuer string optional (nullable)
    • counterparty_id string optional
    • address string optional
    • deposit_route_id string optional (nullable)
  • deposit_instructions one of required (nullable)
    1. Variant 1: object

      • rail string required one of wire
      • beneficiary_name string required
      • bank_name string required
      • account_number string required
      • reference string required
      • expires_at string required
    2. Variant 2: object

      • rail string required one of stellar
      • asset string required
      • muxed_address string required (nullable)
      • amount decimal string required
      • expires_at string required
  • fees array required

    Each item:

    • type string required
    • amount decimal string required
    • currency string required
  • payout_rail_ref string required (nullable)
  • stellar_tx_hash string required (nullable)
  • ledger_sequence integer required (nullable)
  • metadata object required
  • version integer required
  • expires_at string required (nullable)
  • created_at string required
  • updated_at string required

Errors are RFC 9457 problem documents (application/problem+json).

curl

curl -s \
  "$API/v1/transfers/$ID" \
  -H "authorization: Bearer $KEY"
Copied

SDK

import { createScrClient } from "@scr/sdk";

// The client sends the API key for you.
const client = createScrClient({ baseUrl: process.env.API!, apiKey: process.env.KEY! });
const { data, error } = await client.GET("/v1/transfers/{id}", {
  params: { path: { id: "<id>" } },
});
Copied

POST /v1/transfers/{id}/cancel

Send an Idempotency-Key header on every POST so a retry never repeats the request.

Parameters

  • id string required in path

Request body

application/json, required

object

Responses

200 Default Response

object

  • id string required
  • kind string required one of mint, redeem, onchain, payout, conversion
  • quote_id string optional
  • status string required
  • status_reason string required (nullable)
  • on_behalf_of string required (nullable)
  • asset string required
  • amount decimal string required
  • currency string required (nullable)
  • net_amount decimal string required
  • source object required
    • type string required
    • currency string optional
    • rail string optional
    • asset string optional
    • amount decimal string optional
    • asset_issuer string optional (nullable)
    • counterparty_id string optional
    • address string optional
    • deposit_route_id string optional (nullable)
  • destination object required
    • type string required
    • currency string optional
    • rail string optional
    • asset string optional
    • amount decimal string optional
    • asset_issuer string optional (nullable)
    • counterparty_id string optional
    • address string optional
    • deposit_route_id string optional (nullable)
  • deposit_instructions one of required (nullable)
    1. Variant 1: object

      • rail string required one of wire
      • beneficiary_name string required
      • bank_name string required
      • account_number string required
      • reference string required
      • expires_at string required
    2. Variant 2: object

      • rail string required one of stellar
      • asset string required
      • muxed_address string required (nullable)
      • amount decimal string required
      • expires_at string required
  • fees array required

    Each item:

    • type string required
    • amount decimal string required
    • currency string required
  • payout_rail_ref string required (nullable)
  • stellar_tx_hash string required (nullable)
  • ledger_sequence integer required (nullable)
  • metadata object required
  • version integer required
  • expires_at string required (nullable)
  • created_at string required
  • updated_at string required

Errors are RFC 9457 problem documents (application/problem+json).

curl

curl -s \
  -X POST \
  "$API/v1/transfers/$ID/cancel" \
  -H "authorization: Bearer $KEY" \
  -H "idempotency-key: $(uuidgen)" \
  -H "content-type: application/json" \
  -d '{}'
Copied

SDK

import { createScrClient } from "@scr/sdk";

// The client sends the API key and an Idempotency-Key for you.
const client = createScrClient({ baseUrl: process.env.API!, apiKey: process.env.KEY! });
const { data, error } = await client.POST("/v1/transfers/{id}/cancel", {
  params: { path: { id: "<id>" } },
  body: {},
});
Copied

Edit on GitHub