Skip to main content
Orchestra supports four integration patterns. Pick the one that fits your use case.

Patterns

Quote and Submit

Full control per transaction. Get a quote, fund the deposit, submit, track the order.

Fiat Onramp

One call to POST /v1/orchestration/onramp creates a Lightning-invoice order. The user pays the invoice from any Lightning wallet or Cash App.

Pay Links

Shareable payment links with a fixed stablecoin output. Each click creates a fresh Lightning invoice. No expiration.

Reusable Addresses

Persistent deposit addresses in two directions: accumulation (any chain to Spark) and liquidation (Bitcoin L1 to any chain).

Comparison

The Fiat Onramp is the fourth pattern: POST /v1/orchestration/onramp creates an order with a single-use BOLT11 invoice that the end user pays from any Lightning wallet or Cash App. Best for fiat-adjacent flows where the user starts from a Lightning balance.

Address behavior

Quote deposit addresses are generated per quote. Each /quote call returns a fresh depositAddress. Do not reuse a previous quote’s deposit address for a new deposit. Reusable addresses (accumulation and liquidation) are deterministic. The deposit address is derived from the partner and destination configuration. Creating the same configuration twice returns the same address. Give reusable addresses to end users as permanent deposit targets.
Never send a second deposit to a quote’s depositAddress after that quote has been submitted or expired. Each quote generates its own deposit instruction.
Reusable address deposits are detected automatically by server-side webhooks. You do not need to call /submit for these flows. Register a partner webhook to receive order updates.

Which flow should I use?

  • Need per-transaction price control, custom slippage, or exact-out payments? Quote/Submit.
  • User starts from a Lightning balance or Cash App and you want delivery in one API call? Fiat Onramp.
  • Shareable “pay me $X” links via Lightning? Pay Links. Use amountFiatUsd when the displayed Cash App figure must match the link, or amountOut when the receiver must end up with an exact stablecoin amount.
  • Auto-converting deposits into BTC on Spark, or Bitcoin L1 deposits into any supported asset? Reusable addresses (accumulation for inbound stablecoins, liquidation for inbound BTC).

Next steps