USD Accounts

The USD Accounts allow you to receive payment via FEDWIRE and ACH.

How to create a USD Account

To create a USD Account for a customer, the customer would need to present additional documents which were not previously captured at Tier 2 upgrade.

Documents Required

  • Source of funds: Can be a payslip or bank statement.
  • Proof of address: Can be a lease agreement or utility bill.
  • Passport image: An image of the customer's international passport document (not passport photograph).

In addition to these documents, the customer has to provide their:

  • US residency status: Can be US citizen, resident alien, or non-resident alien.
  • Employment status: Can be Employee, Self-employed, unemployed or other.

API Reference

The API Reference has a comprehensive list of all the APIs needed to make this work.

After sending all documents and information via the create USD account API, you will get either a webhook with event account.creation.change_request which signifies that some documents submitted are invalid and need to be changed or you get the account.creation.failed event which means the request was rejected, and finally, you could get the account.creation.successful event which means the request was successful.

What next after receiving a webhook event?

When you receive the account.creation.successful event, the next step is to make a request to Get Virtual Account using the id returned in the webhook. You should get a response with the account details. Visit Get Virtual Account to try it out.

When you receive the account.creation.failed event, it means the account request was rejected and you will need to make another creation request, the invalid document submitted or incorrect data provided information will be sent in the webhook payload.

When you receive the account.creation.change_request event, it means the account request is pending approval and will be approved after resolving the issues stated in decline_reason array of the webhook payload.

When you receive the account.transaction event, it means the account has received a transaction of type microdeposit or refunded. Microdeposit are deposits less than $1, funds are never credited to wallet only meant to be used for account verification. Refunded type are sent when funds could not be delivered and were refunded to the sender.


📘

Fetch Institution Detail

API returns institution information using routing number

Webhooks

{
    "event": "account.creation.failed",
    "id": "4d385519-d0c4-55cb-97d9-79f146893427",
    "reference": "8c185519-f0b8-44da-97d9-79f146662211",
    "Decline_reason":[
     "failed to verify proof of fund",
"The ID photo submitted is not valid. Please submit a valid ID (passport or national ID) live photo in .jpeg format."
    ]
}
{
  "event": "account.creation.successful",
  "id": "320dc0d3-f0fa-44eb-9270-2de737287e6c",
  "reference": "8c185519-f0b8-44da-97d9-79f146662211",
  "decline_reason": null
}
{
  "event": "account.status",
  "id": "477210ef-4de8-439d-804f-6731ecb58317", // the virtual account id
  "status": "CLOSED" //DORMANT, OPEN, FROZEN
}
{
  "event": "account.creation.change_request",
  "id": "",
  "reference": "b22bf335-888d-4148-a610-92f30126320e",
  "decline_reason": [
   "Receipts are not acceptable as proof of address. Please submit a valid proof of address (utility bill, bank/credit card statement or lease agreement signed) with the customer name, issued less than 90 days"
  ]
}
{
  "amount": 11,
  "event": "account.transaction",
  "id": "69d1ccfb-2daa-49da-a483-649d7c6a6afb",
  "source": {
    "account_number": "091313297634875",
    "bank_name": "",
    "description": "MercuryACH Jane Doe MRCR-WZT5250B8Q 251014 [Peter Joe] From Jane Doe via mercury.com",
    "imad": "",
    "payment_rail": "ach_push",
    "sender_name": "Jane Doe",
    "trace_number": "091313297634875"
  },
  "type": "microdeposit" // refunded
}