Skip to main content

Overview

Wire payments are fund transfers done electronically across a network of banks or transfer agencies. The direction of wire payment is always Credit, moving funds from the Unit account to the counterparty account.

Once you create a wire payment, Unit will process it immediately, and a Wire Transaction will be created.

caution

Wires are typically used to move large amounts of money. Wires are final and cannot be disputed - once the funds are sent, they cannot be recouped. For that reason, Unit highly recommends that you re-authenticate the customer before a wire is sent. The best practice includes:

  1. Re-authenticate using username and password
  2. Authenticate the customer using OTP
  3. Mobile: Authenticate the customer using Biometric Authentication
note

Wire payments are not enabled by default, and are subject to a minimum payment amount that is determined by the partner bank. Please contact Unit if you would like to enable this functionality.

Create a Wire payment#

Wire payments are fund transfers done electronically across a network of banks or transfer agencies. The direction of wire payment is always Credit, moving funds from the Unit account to the counterparty account.

Once you create a wire payment, Unit will process it immediately, and a Wire Transaction will be created.

caution

Wires are typically used to move large amounts of money. Wires are final and cannot be disputed - once the funds are sent, they cannot be recouped. For that reason, Unit highly recommends that you re-authenticate the customer before a wire is sent. The best practice includes:

  1. Re-authenticate using username and password
  2. Authenticate the customer using OTP
  3. Mobile: Authenticate the customer using Biometric Authentication
note

Wire payments are not enabled by default, and are subject to a minimum payment amount that is determined by the partner bank. Please contact Unit if you would like to enable this functionality.

VerbPOST
Urlhttps://api.s.unit.sh/payments
Required Scopepayments-write
Data TypewirePayment
Timeout (Seconds)5

Attributes#

NameTypeDescription
amountintegerThe amount (in cents).
descriptionstringPayment description (maximum of 50 characters), this will show up on statement of the counterparty.
counterpartyWire CounterpartyThe party on the other side of the Wire payment.
idempotencyKeystringOptional. See Idempotency.
tagsobjectOptional. See Tags. Tags that will be copied to any transaction that this payment creates (see Tag Inheritance).

Relationships#

NameTypeDescription
accountJSON:API RelationshipThe Deposit Account originating the payment.
Example Request:
curl -X POST 'https://api.s.unit.sh/payments'-H 'Content-Type: application/vnd.api+json'-H 'Authorization: Bearer ${TOKEN}'--data-raw '{  "data": {    "type": "wirePayment",    "attributes": {      "amount": 200,      "direction": "Credit",      "description": "Wire payment",      "counterparty": {        "name": "April Oniel",        "routingNumber": "812345678",        "accountNumber": "1000000001",        "address": {          "street": "20 Ingram St",          "city": "Forest Hills",          "state": "CA",          "postalCode": "11375",          "country": "US"        }      }    },    "relationships": {      "account": {        "data": {          "type": "depositAccount",          "id": "10000"        }      }    }  }}'

Response#

Response is a JSON:API document.

Example Response:
{  "data": {    "type": "wirePayment",    "id": "1135",    "attributes": {      "createdAt": "2021-08-30T12:19:18.639Z",      "amount": 200,      "direction": "Credit",      "description": "Wire payment",      "counterparty": {        "name": "April Oniel",        "routingNumber": "812345678",        "accountNumber": "1000000001",        "address": {          "street": "20 Ingram St",          "city": "Forest Hills",          "state": "CA",          "postalCode": "11375",          "country": "US"        }      },      "status": "Pending"    },    "relationships": {      "account": {        "data": {          "type": "account",          "id": "10000"        }      },      "customer": {        "data": {          "type": "customer",          "id": "10000"        }      },      "customers": {        "data": [          {            "type": "customer",            "id": "10000"          }        ]      },      "transaction": {        "data": {          "type": "transaction",          "id": "4"        }      }    }  }}
|

Receiving a wire payment#

You can receive wire (Fedwire) payments into any deposit account. To do so, you may provide the routing number and account number to trusted third parties. These numbers are both attributes of any Deposit Account.

Received wire payments are processed automatically. You can get notified on them by listening to the transaction.created webhook and inspecting the payload for a Wire Transaction.

As an example, receiving a wire payment in the amount of $4,000 when the balance is $0 will automatically result in a balance increase. Two transactions will be created: one Wire Transaction and one associated Fee Transaction (if the fee is non-zero).

Receiving International Wires#

Unit supports the ability to receive international wires.

Receiving international wires has compliance implications. As such, it is only enabled for specific use cases. Please contact Unit if you need to receive international wires as part of your product.

Possible Wire rejection Reasons#

When creating a Wire payment, it may be rejected due to the following reasons:

ReasonDescription
AccountFrozenThe counterparty account is frozen.
SuspectedFraudThe payment is suspected to be fraudulent.
InsufficientFundsThe available balance isn’t enough to cover the value of the wire.
Invalid Routing NumberThe counterparty routing number is not valid.
Wire RejectedThe counterparty rejected the wire payment.
AccountClosedThe counterparty account has been closed.
ClientRequestThe client has requested the wire payment to be rejected.