Outgoing Wires

Fortress APIs allow the ability to send a wire out to any external bank account in the US. In order for us to perform this functionality, we'll need the end users banking information.

POST /api/trust/v1/external-accounts/wire

//Sample Request Schema
{
  "identityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", //identityId of the end user sending the wire
  "accountNumber": "572490710216",
  "routingNumber": "021001208",
  "receiverName": "John Doe",
  "receiverAddress": {
    "street1": "4220 Davisson Street",
    "postalCode": "46173",
    "city": "Rushville",
    "state": "IN",
    "country": "US"
  },
  "receiverBankName": "Wells Fargo",
  "receiverBankAddress": {
    "street1": "4637 South St",
    "street2": "Suite A5",
    "postalCode": "47836",
    "city": "Elkhorn",
    "state": "NE",
    "country": "US"
  }
}

Make a payment(withdrawal)

Once you've submitted the above call, an externalAccount object will be created to reference that particular bank for wire transfers. Followup with a payments call to initiate the withdrawal process.

POST /api/trust/v2/payments

{
  "source": {
    "custodialAccountId": "F3CA08AC-3058-4C3C-81E7-51DA24B171FF", //the Fortress account from which the funds will be pulled to send
  },
  "destination": {
    "externalAccountId": "488H158A-921E-4D79-9F2D-5FDA08F93653" //The connected bank account from the above call
  },
  "comment": "Weekly Withdrawal",
  "funds": 100,
  "memo": "string",
  "purposeOfPayment": "string",
  "spreadBasisPoints": 0,
  "feeFixedAmount": 0
}

Once the payment is initiated, a transaction object will be created in which you can monitor the status to know when the wire has been sent from our bank to the end user's bank. You'll also receive a webhook update once the status has changed.

🚧

International Wire Withdrawal minimums

Please note that International Wires have a $100 minimum

Domestic Wire Withdrawal Validations

For a seamless and error-free experience when it comes to wire withdrawals we have implemented a set of guidelines that will greatly assist in ensuring the accuracy and reliability of the data we collect. Our guidelines aim to streamline the data collection process, enabling us to accurately process your wire withdrawal requests. By providing complete and up-to-date information, such as the correct beneficiary details, account numbers, and transaction amounts, you can help prevent any unnecessary delays or errors.

Field & TypeFormat & Character LimitsRequired
identityid (string)UUID format✅ Yes
bankName (string)MaxLength: 35 characters✅ Yes
street1 (string)MaxLength: 35 characters✅ Yes
street2 (string)MaxLength: 35 characters❌ No
city (string)MaxLength: 21 characters✅ Yes
state (string)2-letter U.S. abbreviation (e.g., "CA"); only if country is U.S.✅ Yes (if U.S.)
country (string)2-character ISO country code✅ Yes
postalCode (string)5 characters, or ZIP+4 (5 + 4 format)✅ Yes
routingNumber (string)MaxLength: 9 characters✅ Yes
accountNumber (string)MaxLength: 35 characters; recommend double entry to confirm✅ Yes
amount (string)USD format: "00.00" with two decimal places✅ Yes

International Wire Withdrawal Validations


Field & TypeFormat & Character LimitsRequired
identityId (string, UUID)UUID format, minLength: 1✅ Yes
receiverName (string)minLength: 1✅ Yes
receiverAddress.street1 (string)minLength: 1✅ Yes
receiverAddress.street2 (string)Nullable❌ No
receiverAddress.postalCode (string)Nullable❌ No
receiverAddress.city (string)minLength: 1✅ Yes
receiverAddress.state (string)Nullable❌ No
receiverAddress.country (string)minLength: 1✅ Yes
receiverBankName (string)minLength: 1✅ Yes
receiverBankAddress.street1 (string)minLength: 1✅ Yes
receiverBankAddress.street2 (string)Nullable❌ No
receiverBankAddress.postalCode (string)Nullable✅ Yes
receiverBankAddress.city (string)minLength: 1✅ Yes
receiverBankAddress.state (string)Nullable❌ No
receiverBankAddress.country (string)minLength: 1✅ Yes
internationalBankAccountNumber (string)minLength: 1, maxLength: 35✅ Yes
swiftCode (string)Nullable✅ Yes
routingNumber (string)Nullable✅ Yes
intermediaryBankName (string)Nullable✅ Yes
intermediaryBankAddress.street1 (string)minLength: 1✅ Yes (if used)
intermediaryBankAddress.street2 (string)Nullable✅ Yes
intermediaryBankAddress.postalCode (string)Nullable✅ Yes
intermediaryBankAddress.city (string)minLength: 1✅ Yes (if used)
intermediaryBankAddress.state (string)Nullable❌ No
intermediaryBankAddress.country (string)minLength: 1✅ Yes (if used)
intermediaryBankAbaRoutingNumber (string)minLength: 1, maxLength: 9✅ Yes (if used)