APIs
Create ACH payment to linked Counterparty
Originates an ACH payment to a Counterparty. The counterparty should be created separately through Create Counterparty.
| Verb | POST |
| URL | https://api.s.unit.sh/payments |
| Required Scope | payments-write-counterparty or payments-write or ach-payments-write |
| Data Type | achPayment |
| Timeout (Seconds) | 60 |
Attributes
false. Verify the counterparty balance, if balance verification fails the payment will be rejected with reason set to CounterpartyInsufficientFunds.Relationships
curl -X POST 'https://api.s.unit.sh/payments'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "achPayment",
"attributes": {
"amount": 10000,
"direction": "Credit",
"description": "Funding"
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "555"
}
},
"counterparty": {
"data": {
"type": "counterparty",
"id": "4567"
}
}
}
}
}'
Response
Response is a JSON:API document.
{
"data": {
"type": "achPayment",
"id": "50",
"attributes": {
"createdAt": "2020-01-13T16:01:19.346Z",
"status": "Pending",
"reason": null,
"counterparty": {
"routingNumber": "812345678",
"accountNumber": "12345569",
"accountType": "Checking",
"name": "Jane Doe"
},
"description": "Funding",
"direction": "Credit",
"amount": 10000,
"tags": {
"purpose": "internal"
}
},
"relationships": {
"account": {
"data": {
"type": "depositAccount",
"id": "555"
}
},
"customer": {
"data": {
"type": "individualCustomer",
"id": "99823"
}
},
"counterparty": {
"data": {
"type": "counterparty",
"id": "4567"
}
}
}
}
}
Create ACH payment with Plaid token
Originates an ACH payment to a counterparty which is verified by Plaid.
For more information on using Plaid, please read Unit's Plaid partnership guide
| Verb | POST |
| URL | https://api.s.unit.sh/payments |
| Required Scope | payments-write or payments-write-ach-debit or ach-payments-write |
| Data Type | achPayment |
| Timeout (Seconds) | 60 |
You can use scope payments-write-ach-debit only with ACH Debit payments.
Attributes
false. Verify the counterparty balance, if balance verification fails the payment will be rejected with reason set to CounterpartyInsufficientFunds.When creating an ACH payment with a Plaid processor token, the counterparty name is required for the ACH payment. If counterpartyName is not provided in the request, Unit will call Plaid's Identity API to retrieve the account owner's name.
To avoid the Identity API call, you can either:
- Provide
counterpartyNamein the request - Include the counterparty name directly when creating the ACH payment - Use a pre-existing counterparty - Create a Counterparty first (which stores the name), then use Create ACH payment to linked Counterparty instead
This is relevant if your Plaid integration does not have the Identity product enabled, as the Identity API call will fail in that case.
Relationships
curl -X POST 'https://api.s.unit.sh/payments'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "achPayment",
"attributes": {
"amount": 10000,
"direction": "Debit",
"plaidProcessorToken": "processor-5a62q307-ww0a-6737-f6db-pole26004556",
"description": "Funding"
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "555"
}
}
}
}
}'
Response
Response is a JSON:API document.
201 Created
408 Request Timeout
The request to Plaid has timed-out, probably because of a technical issue with the counterparty bank. You might want to retry the request without the verifyCounterpartyBalance flag.
{
"data": {
"type": "achPayment",
"id": "50",
"attributes": {
"createdAt": "2020-01-13T16:01:19.346Z",
"status": "Pending",
"reason": null,
"counterparty": {
"routingNumber": "812345673",
"accountNumber": "12345569",
"accountType": "Checking",
"name": "Jane Doe"
},
"description": "Funding",
"direction": "Credit",
"amount": 10000,
"tags": {
"purpose": "internal"
}
},
"relationships": {
"account": {
"data": {
"type": "depositAccount",
"id": "555"
}
},
"customer": {
"data": {
"type": "individualCustomer",
"id": "99823"
}
}
}
}
}
Create ACH payment to inline Counterparty
Originates an ACH payment to a counterparty which is specified inline (vs to a linked Counterparty Resource).
Originating ACH debits requires capturing the authorization of the account owner and therefore originating ACH debits to inline counterparties is not allowed by default. If your use case requires this capability, please contact Unit.
| Verb | POST |
| URL | https://api.s.unit.sh/payments |
| Required Scope | payments-write or ach-payments-write |
| Data Type | achPayment |
| Timeout (Seconds) | 60 |
Attributes
Relationships
curl -X POST 'https://api.s.unit.sh/payments'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "achPayment",
"attributes": {
"amount": 10000,
"direction": "Credit",
"counterparty": {
"routingNumber": "812345673",
"accountNumber": "12345569",
"accountType": "Checking",
"name": "Jane Doe"
},
"description": "Funding"
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "555"
}
}
}
}
}'
Response
Response is a JSON:API document.
{
"data": {
"type": "achPayment",
"id": "50",
"attributes": {
"createdAt": "2020-01-13T16:01:19.346Z",
"status": "Pending",
"reason": null,
"counterparty": {
"routingNumber": "812345673",
"accountNumber": "12345569",
"accountType": "Checking",
"name": "Jane Doe"
},
"description": "Funding",
"direction": "Credit",
"amount": 10000,
"tags": {
"purpose": "internal"
}
},
"relationships": {
"account": {
"data": {
"type": "depositAccount",
"id": "555"
}
},
"customer": {
"data": {
"type": "individualCustomer",
"id": "99823"
}
}
}
}
}
Update ACH Payment
Update an ACH Payment.
| Verb | PATCH |
| URL | https://api.s.unit.sh/payments/:paymentId |
| Required Scope | payments-write |
| Timeout (Seconds) | 5 |
Attributes
Debit in status PendingReview or Pending. See Dynamic Clearing Periodcurl -X PATCH 'https://api.s.unit.sh/payments/:paymentId'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "achPayment",
"attributes": {
"tags": {
"by": null,
"uuid": "83033b64-38f8-4dbc-91a1-313ff0156d02"
},
"clearingDaysOverride": 3
}
}
}'
Response
Response is a JSON:API document.
200 OK
Cancel ACH Payment
Cancels a previously processed ACH payment. Only payments with status Pending or PendingReview can be canceled.
| Verb | POST |
| URL | https://api.s.unit.sh/payments/{paymentId}/cancel |
| Required Scope | payments-write |
| Timeout (Seconds) | 5 |
Response
Response is a JSON:API document.
200 OK
curl -X POST 'https://api.s.unit.sh/payments/61212/cancel' \
-H "Authorization: Bearer ${TOKEN}"
Clear ACH Debit Payment
Clears an ACH debit payment while in clearing status. Overrides the original clearing period, making funds available immediately. Requires the Dynamic Clearing Period feature to be enabled.