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

# Cryptocurrency payments

> Top up your Orbit wallet with Bitcoin, USDT, Ethereum, and other supported coins via NOWPayments.

# Cryptocurrency payments

Orbit accepts cryptocurrency top-ups alongside credit/debit cards. Crypto
payments settle to your Orbit wallet in USD-equivalent credits, the same as
Stripe top-ups. There are no separate "crypto credits" — once a payment
confirms, the funds are indistinguishable from any other top-up and can be
spent on messaging, voice, and AI as usual.

Crypto payments are powered by [NOWPayments](https://nowpayments.io/) and use
their hosted invoice flow. You never share wallet keys with Orbit; the only
information we record is what NOWPayments reports on the IPN callback.

***

## What is crypto top-up?

Crypto top-up is an alternative to credit/debit card payment. You choose an
amount in USD, click "Pay with crypto", and NOWPayments mints a hosted
invoice showing the exact crypto amount to send to a one-time receiving
address. Once the network confirms the transfer, your Orbit wallet is
credited automatically.

The flow is one-shot per top-up. Crypto auto top-up is intentionally not
supported — auto top-up remains card-only (USD via Stripe) because crypto
prices are volatile and there is no on-file credential we can charge.

***

## Supported coins

Orbit does not fetch or filter the coin list itself. You pick the coin you want
to pay with directly on NOWPayments' hosted payment page, which shows the full
live roster when you proceed to checkout. At launch the coins you'll typically
see there include:

* Bitcoin (BTC) — Bitcoin mainnet
* Tether (USDT) — Tron (TRC-20) and Ethereum (ERC-20)
* USD Coin (USDC) — Ethereum (ERC-20) and Solana (SPL)
* Ethereum (ETH) — Ethereum mainnet
* BNB Smart Chain (BNB) — BSC mainnet
* Solana (SOL)
* Tron (TRX)
* Polygon (MATIC)

The hosted invoice surface from NOWPayments shows the full live list when you
proceed to checkout. If a coin you want is not visible, contact support — the
operator may have it disabled.

***

## Payment flow

1. In Dashboard → Billing, choose **Cryptocurrency** in the payment method
   selector above the amount preset ladder.
2. Pick an amount (preset or custom). The "Pay with crypto" button opens a
   NOWPayments hosted invoice in a new browser tab.
3. On the hosted invoice, pick the coin you want to pay with. NOWPayments
   shows the exact crypto amount + the one-time receiving address.
4. Send EXACTLY the requested amount from your wallet to the displayed
   address. Underpayments and wrong-amount sends are flagged for manual
   review.
5. The Orbit dashboard shows a pending-payment card with live status while
   the network confirms. Once `finished`, your balance updates immediately.

***

## Status meanings

The pending-payment card surfaces the status states reported by
NOWPayments, plus one Orbit-side state (`cancelled`). The most common
transitions in practice are
`waiting → confirming → confirmed → sending → finished`.

| Status           | Plain English                                                                                                                             |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `waiting`        | Invoice issued, waiting for you to send from your wallet.                                                                                 |
| `confirming`     | Transfer detected on-chain — waiting for block confirmations.                                                                             |
| `confirmed`      | Network has confirmed; NOWPayments is finalising the deposit.                                                                             |
| `sending`        | NOWPayments is moving the funds into your Orbit balance.                                                                                  |
| `partially_paid` | You sent less than the invoice asked. Flagged for review.                                                                                 |
| `finished`       | Done — wallet credited, ready to spend.                                                                                                   |
| `failed`         | Top-up could not complete. Open a new invoice to try again.                                                                               |
| `refunded`       | Orbit operator initiated a payout to your wallet.                                                                                         |
| `expired`        | Invoice timed out before any payment landed. Try again.                                                                                   |
| `cancelled`      | You cancelled the pending invoice from the dashboard before it settled (see [Cancelling a pending top-up](#cancelling-a-pending-top-up)). |

***

## Cancelling a pending top-up

If you opened an invoice but no longer want to complete it, you can cancel
it from the dashboard instead of waiting for it to expire. The pending-payment
card shows a **Cancel pending payment** button while the invoice is still
awaiting funds.

Cancelling is only possible while the invoice is in an early state:

* **Cancellable:** `waiting` (no payment seen yet) and `confirming` (a
  transfer has been detected on-chain but is not yet confirmed).
* **Not cancellable:** once the payment is `confirmed`, `sending`,
  `finished`, `refunded`, `failed`, or already `expired`. Pressing Cancel in
  any of these states returns `409 PAYMENT_IN_FLIGHT` and the pending card
  refreshes to show the real, current status.

Cancelling does not contact NOWPayments — there is no invoice-cancel API on
their side, so the receiving address technically stays open. Orbit simply
marks the top-up `cancelled` on our side so it stops showing as pending.

<Warning>
  Cancel-then-pay safety: if you cancel and then funds DO land at the invoice
  address afterwards, you do **not** lose them. When NOWPayments reports the
  payment as `finished`, Orbit overrides the `cancelled` state and credits your
  wallet automatically. The credit is idempotent — you are credited exactly
  once for the amount received. Because of this, only cancel an invoice you are
  sure you have not sent (and will not send) funds to; if you have already
  broadcast a transfer, let it settle rather than cancelling.
</Warning>

***

## Important warnings

<Warning>
  Crypto payments are FINAL and NON-REFUNDABLE without operator action.
  Once the network confirms a transfer, Orbit cannot reverse it from the
  dashboard. If you need a refund, open a support ticket and a human operator
  will process it manually (see [Refund process](#refund-process) below).
</Warning>

<Warning>
  Wrong-chain transfers CANNOT be recovered. If the invoice asks for
  USDT-TRC20 and you send USDT-ERC20 (or vice versa), the funds land at an
  address that exists on a different network. Neither NOWPayments nor Orbit
  can recover them. Double-check the network displayed on the invoice before
  you send.
</Warning>

<Warning>
  Send EXACTLY the requested amount. Underpayments are flagged for manual
  review and may delay your top-up by hours. Overpayments are credited at the
  USD-equivalent we observe at the time of confirmation — not at the rate
  displayed on the invoice.
</Warning>

***

## How long does it take?

Confirmation time is set by the blockchain, not by Orbit or NOWPayments.
Typical observed times:

* Bitcoin (BTC) — 10 to 60 minutes (1-6 confirmations)
* Ethereum (ETH) and ERC-20 (USDT, USDC) — 2 to 10 minutes
* Tron (TRX) and TRC-20 (USDT) — 1 to 3 minutes
* BNB Smart Chain — 1 to 3 minutes
* Solana (SOL, USDC) — under 1 minute

Some coins require more confirmations than others; the hosted invoice shows
the required count + the live counter as blocks roll in.

***

## Receipts and tax

Crypto top-ups produce the same kind of receipt as card top-ups, available
under Dashboard → Billing → Invoices. The receipt records:

* Payment method: Cryptocurrency
* Network and coin (e.g. USDT-TRC20)
* USD-equivalent at the time of confirmation
* Absorbed NOWPayments fee — the fee Orbit covers on your behalf, recorded
  internally for accounting. This is non-zero only for top-ups of $50 or less
  (where Orbit absorbs the fee); for top-ups above $50 the fee is added on top
  of the amount you send and no Orbit-side fee is recorded against the credit.
  See the fee policy below.
* Transaction hash (when NOWPayments reports it; not all coins surface this
  on the IPN payload)

The fiat-equivalent USD figure is recorded at confirmation time and is the
value used for tax/accounting purposes. Subsequent price moves of the
underlying crypto do NOT change the recorded USD amount.

### Fee policy

For top-ups of $50 or less, Orbit absorbs the NOWPayments network fee — you
pay exactly the requested amount. For top-ups above $50, the network fee is
shown as a "Network fee" line item on the pre-checkout summary and is added
to the amount you send. Either way the USD credited to your wallet is the
amount you requested.

***

## Refund process

Crypto refunds are not self-service. To request a refund:

1. Open a support ticket from the dashboard. Reference the original
   transaction id (visible under Dashboard → Billing → Invoices).
2. Provide the destination wallet address. This must be a wallet you control
   on the **same chain** as the original payment — wrong-chain refunds are
   irrecoverable and we will not initiate them.
3. The operator reviews the ticket and, when approved, submits a payout via
   NOWPayments. You receive a confirmation when the on-chain payout is
   broadcast and again when it confirms.

Refund processing time depends on the chain (same ranges as for top-ups).
The operator's response time is up to 24 hours during business days.

***

## Auto top-up

Auto top-up is **not available** for crypto. The auto-replenish setting on
Dashboard → Billing remains card-only (USD via Stripe). This is by design:

* Crypto prices are volatile, so an auto-charge would have to re-quote on
  every trigger — non-deterministic from a budgeting standpoint.
* There is no on-file crypto credential we could charge against; every send
  has to be initiated manually from a wallet you control.

If you have auto top-up enabled and want to switch to crypto for a manual
top-up, the auto setting is unaffected — you can do both.

***

## Troubleshooting

**The pending card shows `partially_paid`.** You sent less than the invoice
asked. Contact support and reference the transaction id. The operator will
either credit the partial amount manually or refund the partial transfer
(your choice).

**The hosted invoice expired.** NOWPayments marks an invoice `expired` if no
payment is detected within 24 hours of issuing it. Click "Try again" in the
dashboard — a fresh invoice is issued.

**My balance didn't update after `finished`.** Refresh the dashboard. The
pending card normally invalidates the balance query automatically; if it
doesn't, the next page load will pick up the new balance. If the balance
still doesn't reflect a `finished` top-up after 5 minutes, contact support
with the transaction id.

**I sent on the wrong chain.** Unfortunately, neither Orbit nor NOWPayments
can recover wrong-chain transfers. The funds remain at an address on the
chain you sent on; whether they're spendable depends on whether you control
a wallet at that derivation path on the other chain. This is a hard
limitation of how cross-chain transfers work, not an Orbit policy.
