Building a Venmo Style Application

Enable customers to deposit and withdraw funds on your platform

Use Wyre ACH services to onramp and offramp any supported combination of fiat and crypto. Currently for US users only, but we are rapidly expanding this so please reach out to our Sales team with any international opportunities.

📘

The Flow at a High-Level:

  1. Create Accounts for your users to hold fiat and crypto.
  2. Connect a Bank to receive fiat payouts.
  3. Use Transfers to onramp funds from the user payment method to their account.
  4. Use Transfers to offramp funds out of the account to the user payment method.

Step 1 - Creating Accounts

Once a new user registers on your platform, Create an Account for that user. This user is under your control, and stored on Wyre. To the end user, they only ever see your brands look/feel. Not Wyre.

📘

Creating Accounts:

  • Create users as subaccounts by setting the subaccount parameter to true.
  • Use masquerading to move funds on behalf of your subaccounts.
  • Each account will automatically be assigned a unique BTC & ETH address. The ETH address also supports Wyre's integrated ERC20 tokens: Supported Currencies.
  • Each account will also support holding a balance in multiple fiat currencies: Supported Currencies.
  • It may be necessary to upload additional documents to create an account, such as a driver's license or passport photo. Use the Upload Document endpoint to handle these scenarios.
  • Save the returned "id" that gets generated in the response as this will be used later to create money transfers.

Step 2 - Connecting a Bank

Once a new user has a new account, attach a bank account to send fiat payouts and load currency via ACH.

📘

Connecting a Bank:

  • Connect a user's bank account using our Plaid module and pass the returned public key to the Create Payment Method endpoint.
  • In some cases a user may be asked to upload additional information such as an ACH Authorization form or further identification. Review the Payment Method Edge Cases to learn more.
  • Save the returned "id" that gets generated in the response as this will be used later to create money transfers.

Step 3 - Creating Onramp Transfers

Once a new user has an account and an attached bank (payment method), they can start transferring funds to their account from the created payment method.

📘

Creating Transfers:

  • Transfers use the Create Transfer endpoint. Transfers can happen between accounts, wallets, payment methods and crypto addresses.

  • Transfers utilize our SRNs. This is important because the SRNs are concatenated to the referenced IDs in the transfer.

  • Transfers via ACH require the :ach SRN postfix, like this:

"source":"paymentmethod:PA-W7YN28ABCHT:ach",
"dest":"account:AC_XXXXXXXX3",

  • Save the returned identifier from the response as this will be used later to track transfers.

Step 4 - Creating Offramp Transfers

Step 3 above describes an onramp transfer to the user account. The transfers endpoint can also be used to offramp funds out of an account. Both crypto and fiat can be off-ramped as determined by the dest, sourceCurrency, and destCurrency parameters .

📘

Off-Ramp Notes

  • The user can Create a Transfer to withdraw funds from their account to their connected payment method. This transfer could be fiat -> fiat or crypto -> fiat.

    "source":"account:AC_XXXXXXXX2",
    "dest":"paymentmethod:PA-W7YN28ABCHT",