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

# Money Movement

A customer can hold funds in two places: a virtual account and a trading account.

* A **virtual account** (`va_`), which has its own set of bank details in your (or your customer's) legal entity's name. Once a virtual account is designated as `active` and its group is `enabled`It can receive funds from and make payments to third parties. <br />See the <a href="/fx/flows/va-onboarding">onboarding flow</a>.
* A **trading account**, opened at signup and used to settle your FX trades. It can only receive funds from, and allow withdrawals to, the customer’s own accounts at other institutions. It cannot receive funds from or send funds to third parties.

Funds may flow between the two account types via a transfer (`trf_`).

## Movement Actions

| Action | Prefix | Description |
| - | - | - |
| Payin | `pi` | A deposit into a hop account from an external sender |
| Payout | `po` | A transfer out of a hop account to an external receiver |
| Transfer | `trf` | Cross money movement between your `virtual accounts` or `virtual account` and a `trading account` |
| FX Trade | `fxt` | FX transaction in a `trading account` |

<div className="hop-flow hop-flow-steps">
  <div className="hop-prereq">↳ <span className="hop-strong">Prerequisite:</span> the virtual account is <code>active</code> and its group is <code>enabled</code> with onboarding <code>approved</code>. See the <a href="/fx/flows/va-onboarding">onboarding flow</a>. A virtual account issued <code>pending</code> cannot receive or pay.</div>

  <div className="hop-legend" aria-label="Flow legend">
    <span className="hop-legend-item"><span className="hop-chip hop-chip-platform">You</span>the API caller</span>
    <span className="hop-legend-item"><span className="hop-chip hop-chip-hop">Hop</span>automatic</span>
    <span className="hop-legend-item"><span className="hop-chip hop-chip-customer">Bank</span>payer or payee</span>
  </div>

  <ol className="hop-steps">
    <li className="hop-step-phase">Money in</li>

    <li className="hop-step-row">
      <span className="hop-step-n">1</span>
      <span className="hop-chip hop-chip-platform">You</span>

      <div className="hop-step-body">
        <span className="hop-step-title">Get the payer the details for where the money should land</span>

        <ol className="hop-steps hop-steps-sub">
          <li className="hop-step-row">
            <span className="hop-step-n">1a</span>

            <div className="hop-step-body">
              <a href="/fx/api-reference/deposit-instructions/list-deposit-instructions" className="hop-step-title">Trading account: read the deposit instructions, or create a wallet for crypto</a>
              <span className="hop-step-pills"><span className="hop-pill hop-get"><span className="hop-method">GET</span>/accounts/\{aid}/deposit-instructions</span> <span className="hop-pill hop-post"><span className="hop-method">POST</span>/accounts/\{aid}/wallets</span></span>
            </div>
          </li>

          <li className="hop-step-row">
            <span className="hop-step-n">1b</span>

            <div className="hop-step-body">
              <a href="/fx/api-reference/virtual-accounts/get-virtual-account" className="hop-step-title">Virtual account: read its bank details</a>
              <span className="hop-step-pills"><span className="hop-pill hop-get"><span className="hop-method">GET</span>/accounts/\{aid}/virtual-account-groups/\{gid}/virtual-accounts/\{va\_id}</span></span>
            </div>
          </li>
        </ol>
      </div>
    </li>

    <li className="hop-step-row">
      <span className="hop-step-n">2</span>
      <span className="hop-chip hop-chip-customer">Bank</span>

      <div className="hop-step-body">
        <span className="hop-step-title">Payer sends funds to those details over a supported rail, or on-chain</span>
        <span className="hop-step-pills"><span className="hop-pill hop-rail">ACH · Fedwire · SWIFT · SEPA · SPEI · PIX · FPS</span></span>
      </div>
    </li>

    <li className="hop-step-row">
      <span className="hop-step-n">3</span>
      <span className="hop-chip hop-chip-hop">Hop</span>

      <div className="hop-step-body">
        <a href="/fx/webhooks/events" className="hop-step-title">Credits the trading account or the virtual account the details belong to, and raises a payin</a>
        <span className="hop-step-pills"><span className="hop-pill hop-webhook">payin.received</span> <span className="hop-pill hop-object">pi\_</span></span>
      </div>
    </li>

    <li className="hop-step-phase">Hold & convert</li>

    <li className="hop-step-row">
      <span className="hop-step-n">4</span>
      <span className="hop-chip hop-chip-platform">You</span>

      <div className="hop-step-body">
        <a href="/fx/api-reference/accounts/get-balances" className="hop-step-title">Check the balances: the trading account and each virtual account are reported separately</a>
        <span className="hop-step-pills"><span className="hop-pill hop-get"><span className="hop-method">GET</span>/customers/\{cid}/accounts/\{aid}/balances</span></span>
      </div>
    </li>

    <li className="hop-step-row">
      <span className="hop-step-n">5</span>
      <span className="hop-chip hop-chip-platform">You</span>

      <div className="hop-step-body">
        <a href="/fx/api-reference/transfers/create-transfer" className="hop-step-title">Move value between the trading account and a virtual account, or between two virtual accounts: same currency, settles at once</a>
        <span className="hop-step-pills"><span className="hop-pill hop-post"><span className="hop-method">POST</span>/accounts/\{aid}/transfers</span> <span className="hop-pill hop-object">trf\_</span></span>
      </div>
    </li>

    <li className="hop-step-row">
      <span className="hop-step-n">6</span>
      <span className="hop-chip hop-chip-platform">You</span>

      <div className="hop-step-body">
        <a href="/fx/api-reference/fx/create-fx-quote" className="hop-step-title">Convert currency in the trading account: quote, then execute before it expires</a>
        <span className="hop-step-pills"><span className="hop-pill hop-post"><span className="hop-method">POST</span>/accounts/\{aid}/fx/quotes · /execute</span> <span className="hop-pill hop-object">fxt\_</span></span>
      </div>
    </li>

    <li className="hop-step-phase">Money out</li>

    <li className="hop-step-row">
      <span className="hop-step-n">7</span>
      <span className="hop-chip hop-chip-platform">You</span>

      <div className="hop-step-body">
        <a href="/fx/api-reference/beneficiaries/create-beneficiary" className="hop-step-title">Record who you are paying and where: a beneficiary, then a payout destination under it</a>
        <span className="hop-step-pills"><span className="hop-pill hop-post"><span className="hop-method">POST</span>/beneficiaries · /payout-destinations</span> <span className="hop-pill hop-object">bene\_ · dest\_</span></span>
      </div>
    </li>

    <li className="hop-step-row">
      <span className="hop-step-n">8</span>
      <span className="hop-chip hop-chip-platform">You</span>

      <div className="hop-step-body">
        <a href="/fx/api-reference/payouts/create-payout" className="hop-step-title">Create the payout, naming the funding source</a>
        <span className="hop-step-pills"><span className="hop-pill hop-post"><span className="hop-method">POST</span>/accounts/\{aid}/payouts</span> <span className="hop-pill hop-object">po\_</span></span>

        <ol className="hop-steps hop-steps-sub">
          <li className="hop-step-row">
            <span className="hop-step-n">8a</span>

            <div className="hop-step-body">
              <span className="hop-step-title"><strong>Withdrawal</strong> from the trading account: <code>funding\_source.type</code> is <code>trading\_account</code>, the beneficiary must be <code>self\_owned</code>. Omit <code>method</code>.</span>
            </div>
          </li>

          <li className="hop-step-row">
            <span className="hop-step-n">8b</span>

            <div className="hop-step-body">
              <span className="hop-step-title"><strong>Payout</strong> from a virtual account: <code>funding\_source.type</code> is <code>virtual\_account</code>, any active beneficiary. Include a top-level <code>method</code> for the selected payment rail.</span>
            </div>
          </li>
        </ol>
      </div>
    </li>

    <li className="hop-step-row">
      <span className="hop-step-n">9</span>
      <span className="hop-chip hop-chip-hop">Hop</span>

      <div className="hop-step-body">
        <a href="/fx/webhooks/events" className="hop-step-title">Holds the payout amount on the funding balance, and any service fee in the fee-paying account's trading account</a>
        <span className="hop-step-pills"><span className="hop-pill hop-webhook">payout.created</span></span>
      </div>
    </li>

    <li className="hop-step-row">
      <span className="hop-step-n">10</span>
      <span className="hop-chip hop-chip-hop">Hop</span>

      <div className="hop-step-body">
        <span className="hop-step-title">Submits to the provider once any approval has cleared</span>
        <span className="hop-step-pills"><span className="hop-pill hop-webhook">status: processing</span></span>
      </div>
    </li>

    <li className="hop-step-row">
      <span className="hop-step-n">11</span>
      <span className="hop-chip hop-chip-customer">Bank</span>

      <div className="hop-step-body">
        <span className="hop-step-title">Payee's bank credits the funds</span>
        <span className="hop-step-pills"><span className="hop-pill hop-rail">settlement</span></span>
      </div>
    </li>

    <li className="hop-step-row">
      <span className="hop-step-n">12</span>
      <span className="hop-chip hop-chip-platform">You</span>

      <div className="hop-step-body">
        <a href="/fx/api-reference/payouts/get-payout" className="hop-step-title">Reconcile on the webhook, or poll the payout</a>
        <span className="hop-step-pills"><span className="hop-pill hop-webhook">payout.completed · payout.failed</span> <span className="hop-pill hop-get"><span className="hop-method">GET</span>/payouts/\{id}</span></span>
      </div>
    </li>
  </ol>

  <div className="hop-footnote">Money in: a payin (<code>pi\_</code>) credited to a virtual account or the trading account, depending on which instruction the payer used. Money out: a payout (<code>po\_</code>) funded from either. Between them: a transfer (<code>trf\_</code>) to move value, and an FX trade (<code>fxt\_</code>) to change its currency.</div>
</div>

## Outflows

`funding_source` decides which balance is debited and which beneficiaries the payout may go to.

| `funding_source` | Hop calls it | Use it for |
| - | - | - |
| `{"type": "virtual_account", "virtual_account_id": "va_…"}` | Payout | Paying third parties. |
| `{"type": "trading_account"}` | Withdrawal | The default when omitted. The trading account may only pay a beneficiary marked `self_owned`: your own account elsewhere. |

FX settles in the trading account, so converting money that arrived in a virtual account means transferring it across first, executing the trade, and transferring the proceeds back if you want to pay from a virtual account in the new currency.

## **Transaction limits**

Most payment rails have high daily limits and no customer-level cap. For local USD payments, including ACH, Fedwire, RTP, and FedNow, our banking partners apply an aggregate daily limit of approximately \$50 million.

SEPA Instant (`SEPA_INST`) has a limit of €1 million per transaction.

There is no minimum transaction amount, but zero-value transactions are not allowed.

Contact your account manager for the limits that apply to a specific payment rail or to request a higher limit.

## Service fees

Hop may charge a fee when a virtual account is created or used to make a payout. Fees are debited from a trading account:

* For customers onboarded directly by Hop, the fee is debited from the customer’s own trading account.
* For end customers onboarded through a platform, the fee is debited from the platform’s fee-collection account. The end customer is not charged, and an insufficient balance in the fee-collection account does not block the payout.
