Your First Transactions

This page outlines the API interactions that are relevant for various scenario.

Wire deposit

A wire deposit is sent to a specific Ledger Account. Each Ledger Account has one or memos associated with it. When a depositor uses the memo instructions in the wire, sent from their financial institution, the funds appear in the corresponding Ledger Account.

If the Ledger Account belongs to an Identity:

If the Ledger Account belongs to an Organization

You can expect corresponding deposit.deposit.statusUpdated Webhook Events as the deposit is processed.

Withdrawals

Before executing a withdrawal, the recipient must be created as an ACTIVE Payment Instrument.

If the Payment Instrument is in PENDING_VERIFICATION status, you can expect paymentInstrument.*.statusUpdated Webhook Events to notify you if this changes.

📘

Some withdrawals, such as Wire withdrawals, allow you to still submit the withdrawal. However, this withdrawal will be queued until such time where the Payment Instrument has become ACTIVE.

Assuming that Entity, Ledger Account (or Blockchain wallet) and the Payment Instrument are available:

sequenceDiagram
  actor client as You
  participant api as MoveUSD API

  alt Optional
    client ->>+ api: GET /withdrawal/estimate  
    api -->>- client: Available estimates
  end
  
  client ->>+ api: POST /withdrawal/quote
  api -->>- client: Quote
  alt Happy with the quote?
    alt Blockchain wallet?
      client ->> client: Sign transaction
    end
    client ->>+ api: POST /withdrawal/quote/{id}/accept
    api -->>- client: Receipt
  else
    client ->>+ api: POST /withdrawal/quote/{id}/reject
    api -->>- client: 
  end

  api -) client: Withdrawal status updated event(s)
  1. Optionally, get an estimate and understand the associated fees: Get Withdrawal Estimate
  2. Create a quote for the withdrawal: Create Quote
  3. If happy with the quote and,
    1. Using a Ledger Account, simply Accept Quote
    2. Using a Blockchain wallet,
      1. Sign the unsignedWithdrawalTransaction transaction
      2. Return the signed transaction via Accept Quote

You can expect corresponding withdrawal.withdrawal.statusUpdated Webhook Events as the withdrawal is progressed.