API Calls
Ready-to-Launch Banking provides several API endpoints to help you manage accounts, transactions, and payments.
Our API is available in two environments:
| Name | Dashboard URL | API URL |
|---|---|---|
| Sandbox | https://app.s.unit.sh/ | https://api.s.unit.sh/ |
| Live | https://app.unit.co | https://api.unit.co/ |
To be able to use the api, you'll first need to Create an API token for Ready-to-Launch APIs by contacting your Unit solution engineer to help set up an API token for both Sandbox and Production environments.
Get Account
Get a specific account by its ID.
| Verb | GET |
| URL | https://api.s.unit.sh/ready-to-launch/accounts/:accountId |
| Required Scope | accounts |
| Timeout (Seconds) | 5 |
Example Request:
curl -X GET 'https://api.s.unit.sh/ready-to-launch/accounts/42' \
-H "Authorization: Bearer ${TOKEN}"
Response
Returns account details including routing number, account number, status, and current balance (in cents).
Response is a JSON:API document.
200 OK
| Name | Type | Description |
|---|---|---|
| id | string | Identifier of the account resource. |
| type | string | Type of the account resource. Always account. |
| attributes | JSON Object | JSON object representing the account data. |
Attributes
| Name | Type | Description |
|---|---|---|
| id | string | The unique identifier of the account. |
| routingNumber | string | The routing number of the account. |
| accountNumber | string | The account number. |
| status | string | The status of the account (Open, Frozen, or Closed). |
| balance | integer | The current balance in cents. |
| userIds | array | List of user IDs associated with this account. |
Example Response:
{
"data": {
"type": "account",
"id": "10004",
"attributes": {
"routingNumber": "812345678",
"accountNumber": "1000000001",
"status": "Open",
"balance": 150000,
"userIds": ["user_12345", "user_67890"]
}
}
}
List Accounts
List deposit accounts.
| Verb | GET |
| URL | https://api.s.unit.sh/ready-to-launch/accounts |
| Required Scope | accounts |
| Timeout (Seconds) | 5 |
Query Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| filter[customerId] | string | (empty) | Filter accounts by customer ID. Required if userId not provided. |
| filter[userId] | string | (empty) | Filter accounts by user ID. Required if customerId not provided. |
| page[limit] | integer | 100 | Optional. Maximum number of resources to return. Maximum is 10000 resources. |
| page[offset] | integer | 0 | Optional. Number of resources to skip. See Pagination. |
At least one of filter[customerId] or filter[userId] must be provided.
Example Request:
curl -X GET 'https://api.s.unit.sh/ready-to-launch/accounts?filter[customerId]=10000' \
-H "Authorization: Bearer ${TOKEN}"
Response
Returns a paginated list of deposit accounts with their details.
Response is a JSON:API document.
200 OK
| Name | Type | Description |
|---|---|---|
| data | Array of accounts | Array of account resources. |
Example Response:
{
{
"data": [
{
"type": "account",
"id": "10020",
"attributes": {
"routingNumber": "406735154",
"accountNumber": "864800000014",
"status": "Open",
"balance": 6000,
"userIds": ["user_12345"]
}
}
],
"meta": {
"pagination": {
"total": 1,
"limit": 100,
"offset": 0
}
}
}
Get Customer
Get a specific customer by its ID.
| Verb | GET |
| URL | https://api.s.unit.sh/ready-to-launch/customers/:customerId |
| Required Scope | customers |
| Timeout (Seconds) | 5 |
Example Request:
curl -X GET 'https://api.s.unit.sh/ready-to-launch/customers/10014' \
-H "Authorization: Bearer ${TOKEN}"
Response
Returns customer details including the list of associated user IDs.
Response is a JSON:API document.
200 OK
| Name | Type | Description |
|---|---|---|
| id | string | Identifier of the customer resource. |
| type | string | Type of the customer resource. Always customer. |
| attributes | JSON Object | JSON object representing the customer data. |
Attributes
| Name | Type | Description |
|---|---|---|
| createdAt | string | The date the customer was created. |
| status | string | The status of the customer (Active or Archived). |
| customerType | string | The type of the customer (individual or business). |
| userIds | array | List of user IDs associated with this customer. |
Example Response:
{
"data": {
"type": "customer",
"id": "10014",
"attributes": {
"createdAt": "2023-10-20T10:15:22.123Z",
"status": "Active",
"customerType": "individual",
"userIds": ["user_12345", "user_67890"]
}
}
}
List Customers
Get a list of customers.
| Verb | GET |
| URL | https://api.s.unit.sh/ready-to-launch/customers |
| Required Scope | customers |
| Timeout (Seconds) | 5 |
Query Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| filter[customerId] | string | (empty) | Optional. Filter customers by customer ID. |
| filter[userId] | string | (empty) | Optional. Filter customers by user ID. |
Example Request:
curl -X GET 'https://api.s.unit.sh/ready-to-launch/customers' \
-H "Authorization: Bearer ${TOKEN}"
Response
Returns a list of customers with their details.
Response is a JSON:API document.
200 OK
| Name | Type | Description |
|---|---|---|
| data | Array of customers | Array of customer resources. |
Attributes
| Name | Type | Description |
|---|---|---|
| createdAt | string | The date the customer was created. |
| status | string | The status of the customer (Active or Archived). |
| customerType | string | The type of the customer (individual or business). |
| userIds | array | List of user IDs associated with this customer. |
Example Response:
{
"data": [
{
"type": "customer",
"id": "10014",
"attributes": {
"createdAt": "2023-10-20T10:15:22.123Z",
"status": "Active",
"customerType": "individual",
"userIds": ["user_12345", "user_67890"]
}
},
{
"type": "customer",
"id": "10016",
"attributes": {
"createdAt": "2023-11-05T14:30:00.000Z",
"status": "Active",
"customerType": "business",
"userIds": ["user_11111"]
}
}
]
}
Get Transaction
Get a transaction by transaction id and account id.
| Verb | GET |
| URL | https://api.s.unit.sh/ready-to-launch/accounts/:accountId/transactions/:transactionId |
| Required Scope | transactions |
| Timeout (Seconds) | 5 |
Example Request:
curl -X GET 'https://api.s.unit.sh/ready-to-launch/accounts/12345/transactions/12345' \
-H "Authorization: Bearer ${TOKEN}"
Response
Returns the transaction details. Amounts and balances are in cents.
Response is a JSON:API document.
200 OK
| Name | Type | Description |
|---|---|---|
| id | string | Identifier of the transaction resource. |
| type | string | Type of the transaction resource. The value is always transaction. |
| attributes | JSON Object | JSON object representing the transaction data. |
| relationships | JSON:API Relationships | Describes relationships between the transaction resource and other resources. |
Attributes
| Name | Type | Description |
|---|---|---|
| createdAt | string | The date the transaction was created. Common to all transaction types. |
| direction | string | The direction in which the funds flow. Common to all transaction types. |
| amount | integer | The amount (cents) of the transaction. Common to all transaction types. |
| balance | integer | The account balance (cents) after the transaction. Common to all transaction types. |
| transactionType | string | The type of the transaction. |
| summary | string | A brief summary of the transaction. |
| tags Optional | object | Optional. See Tags. |
| counterparty Optional | object | Optional. The counterparty of the transaction. See Counterparty |
| userIds | array | List of user IDs associated with this transaction. |
| addenda Optional | string | Optional. ACH only. Additional payment description (maximum of 80 characters), not all institutions present that. |
| atmName Optional | string | Optional. ATM only. The name of the ATM. |
| atmLocation Optional | string | Optional. ATM only. The location (city, state, etc.) of the ATM. |
| merchant.name Optional | string | Optional. Purchase/Card only. The name of the merchant. |
| merchant.type Optional | integer | Optional. Purchase/Card only. The 4-digit ISO 18245 merchant category code (MCC). |
| merchant.location Optional | string | Optional. Purchase/Card only. The location (city, state, etc.) of the merchant. |
| merchant.id Optional | string | Optional. Purchase/Card only. The unique network merchant identifier. |
Relationships
| Name | Type | Description |
|---|---|---|
| account | JSON:API Relationship | The Deposit Account of the customer. |
| customer | Optional, JSON:API Relationship | The Customer the deposit account belongs to. |
| customers | Optional, Array of JSON:API Relationship | The list of Customers the deposit account belongs to. |
Example Response:
{
"data": {
"type": "transaction",
"id": "12345",
"attributes": {
"amount": 50000,
"direction": "Credit",
"transactionType": "ACH",
"createdAt": "2021-06-02T10:15:22.123Z",
"balance": 150000,
"summary": "ACH payment from John Doe",
"tags": {
"purpose": "invoice-payment"
},
"counterparty": {
"name": "John Doe",
"routingNumber": "812345678",
"accountNumber": "1000000002",
"accountType": "Checking"
},
"userIds": ["user_12345"]
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "10004"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
},
"customers": {
"data": [
{
"type": "customer",
"id": "10000"
}
]
}
}
}
}
List Transactions
List transactions with optional filtering and pagination.
| Verb | GET |
| URL | https://api.s.unit.sh/ready-to-launch/transactions/ |
| Required Scope | transactions |
| Timeout (Seconds) | 5 |
Query Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| filter[userId] | string | (empty) | Filter transactions by user ID. Required if customerId not provided. |
| filter[customerId] | string | (empty) | Filter transactions by customer ID. Required if userId not provided. |
| filter[accountId] | string | (empty) | Optional. Filter transactions by account ID. |
| filter[since] | string | (empty) | Optional. Start date for filtering (ISO 8601). |
| filter[until] | string | (empty) | Optional. End date for filtering (ISO 8601). |
| filter[query] | string | (empty) | Optional. Free-text search across transaction fields (summary, counterparty name, etc.). |
| filter[fromAmount] | integer | (empty) | Optional. Minimum transaction amount in cents (inclusive). Use with filter[toAmount] for range filtering. |
| filter[toAmount] | integer | (empty) | Optional. Maximum transaction amount in cents (inclusive). Use with filter[fromAmount] for range filtering. |
| filter[type] | string | (empty) | Optional. Filter by transaction type(s). Comma-separated list or repeated param. Multiple types allowed. Valid values: transaction type identifiers (e.g. originatedAchTransaction, bookTransaction, wireTransaction). |
| filter[direction] | string | (empty) | Optional. Filter by direction (Credit or Debit). Single value or repeated param for multiple directions. |
| sort | string | -createdAt | Optional. Sort order. Use createdAt for ascending or -createdAt for descending by creation date. |
| page[limit] | integer | 100 | Optional. Maximum number of resources to return. |
| page[offset] | integer | 0 | Optional. Number of resources to skip. |
At least one of filter[customerId] or filter[userId] must be provided.
Example Request:
curl -X GET 'https://api.s.unit.sh/ready-to-launch/transactions?filter[userId]=user_12345' \
-H "Authorization: Bearer ${TOKEN}"
Response
Returns a paginated list of transactions with their details. Amounts and balances are in cents.
Response is a JSON:API document.
200 OK
| Name | Type | Description |
|---|---|---|
| data | Array of transactions | Array of transaction resources. |
Example Response:
{
"data": [
{
"type": "transaction",
"id": "12345",
"attributes": {
"amount": 50000,
"direction": "Credit",
"transactionType": "ACH",
"createdAt": "2021-06-02T10:15:22.123Z",
"balance": 150000,
"userIds": ["user_12345"]
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "10004"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
},
"customers": {
"data": [
{
"type": "customer",
"id": "10000"
}
]
}
}
}
],
"meta": {
"pagination": {
"total": 1,
"limit": 10,
"offset": 0
}
}
}
Get Check Deposit
Get a check deposit by check deposit id.
| Verb | GET |
| URL | https://api.s.unit.sh/ready-to-launch/check-deposits/:checkDepositId |
| Required Scope | check-deposits |
| Timeout (Seconds) | 5 |
Example Request:
curl -X GET 'https://api.s.unit.sh/ready-to-launch/check-deposits/12345' \
-H "Authorization: Bearer ${TOKEN}"
Response
Returns check deposit details including direction, type, created at, tags, summary, counterparty, amount and balance (in cents).
Response is a JSON:API document.
200 OK
| Name | Type | Description |
|---|---|---|
| id | string | Identifier of the check deposit resource. |
| type | string | Type of the check deposit resource. The value is always checkDeposit. |
| attributes | JSON Object | JSON object representing the check deposit data. |
| relationships | JSON:API Relationships | Describes relationships between the check deposit resource and other resources. |
Attributes
| Name | Type | Description |
|---|---|---|
| amount | integer | The amount (cents) of the check deposit. |
| direction | string | The direction in which the funds flow. |
| type | string | The type of the check deposit. |
| createdAt | string | The date the check deposit was created. |
| balance | integer | The account balance (cents) after the check deposit. |
| tags Optional | object | Optional. See Tags. |
| summary | string | A brief summary of the check deposit. |
| counterparty Optional | object | Optional. The counterparty of the check deposit. See Counterparty |
Example Response:
{
"data": {
"type": "checkDeposit",
"id": "12345",
"attributes": {
"amount": 50000,
"direction": "Credit",
"type": "CheckDeposit",
"createdAt": "2021-06-02T10:15:22.123Z",
"balance": 150000,
"tags": {
"purpose": "invoice-payment"
},
"summary": "Check deposit from John Doe",
"counterparty": {
"name": "John Doe",
"routingNumber": "812345678",
"accountNumber": "1000000002",
"accountType": "Checking"
}
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "10004"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
}
}
}
}
Create Book Payment
Create a new book payment between accounts.
| Verb | POST |
| URL | https://api.s.unit.sh/ready-to-launch/book-payments |
| Required Scope | payments-write |
| Data Type | bookPayment |
| Timeout (Seconds) | 5 |
Attributes
| Name | Type | Description |
|---|---|---|
| amount | integer | The amount (in cents). |
| description | string | Payment description (maximum of 80 characters), this will show up on statement of the counterparty. |
| tags Optional | object | Optional. See Tags. Tags that will be copied to any transaction that this payment creates (see Tag Inheritance). |
| idempotencyKey Optional | string | Optional. See Idempotency. |
Relationships
| Name | Type | Description |
|---|---|---|
| account | JSON:API Relationship | The Deposit Account originating the payment. |
| operationalAccount | JSON:API Relationship | The Organization's Operational Account the payment to be made to. |
Example Request:
curl -X POST 'https://api.s.unit.sh/ready-to-launch/book-payments' \
-H 'Content-Type: application/vnd.api+json' \
-H 'Authorization: Bearer ${TOKEN}' \
--data-raw '{
"data": {
"type": "bookPayment",
"attributes": {
"amount": 1000,
"description": "test payment",
"tags": {
"test": "test"
},
"idempotencyKey": "unique-idempotency-key"
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "10013"
}
},
"operationalAccount": {
"data": {
"type": "account",
"id": "10020"
}
}
}
}
}'
Response
Returns details of the created book payment including status and associated resources.
Response is a JSON:API document.
200 OK
| Name | Type | Description |
|---|---|---|
| id | string | Identifier of the book payment resource. |
| type | string | Type of the book payment resource. The value is always bookPayment. |
| attributes | JSON Object | JSON object representing the book payment data. |
| relationships | JSON:API Relationships | Describes relationships between the book payment resource and other resources. |
Attributes
| Name | Type | Description |
|---|---|---|
| createdAt | string | The date and time the payment was created. |
| status | string | The status of the payment. |
| reason Optional | string | Optional. More information about the failure reason. Present only when the payment status is Rejected. |
| amount | integer | Payment amount in cents. |
| description | string | Description of the payment. |
| direction | string | The direction in which the funds flow (always Credit). |
Relationships
| Name | Type | Description |
|---|---|---|
| account | JSON:API Relationship | The Deposit Account creating the payment. |
| counterpartyAccount | JSON:API Relationship | The Deposit Account that is the counterparty (receiving) account for the payment. |
| customer | Optional, JSON:API Relationship | The Customer the deposit account belongs to. |
| customers | Optional, Array of JSON:API Relationship | The list of Customers the deposit account belongs to. |
| transaction | JSON:API Relationship | The Book Transaction generated by this payment. |
Example Response:
{
"data": {
"type": "bookPayment",
"id": "12345",
"attributes": {
"createdAt": "2023-10-20T10:15:22.123Z",
"amount": 50000,
"direction": "Credit",
"description": "Payment transfer",
"status": "Sent",
"tags": {},
"userIds": ["user_12345"]
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "10004"
}
},
"counterpartyAccount": {
"data": {
"type": "account",
"id": "10005"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
},
"customers": {
"data": [
{
"type": "customer",
"id": "10000"
}
]
},
"transaction": {
"data": {
"type": "transaction",
"id": "12345"
}
}
}
}
}
Disable User
Disable a user in the Ready-to-Launch Banking app. Once disabled, the user will no longer be able to access the banking experience.
Disabling a user only revokes their access to the banking app. It does not disable the underlying customer, nor does it freeze or archive any accounts. If you need to take action on the customer or their accounts, please contact Unit directly to request it.
When a user is disabled, the whiteLabelAppUser.disabled webhook event is fired.
| Verb | POST |
| URL | https://api.s.unit.sh/ready-to-launch/users/:userId/disable |
| Timeout (Seconds) | 5 |
Example Request:
curl -X POST 'https://api.s.unit.sh/ready-to-launch/users/user_67890/disable'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
Response
Returns the disabled user resource.
Response is a JSON:API document.
200 OK
| Name | Type | Description |
|---|---|---|
| id | string | Identifier of the user resource. |
| type | string | Type of the resource. Always whiteLabelAppUser. |
| attributes | JSON Object | JSON object representing the user data. |
Attributes
| Name | Type | Description |
|---|---|---|
| userId | string | The user ID in your system (matches the sub claim in the user's JWT token). |
| userRole | string | The role of the user. See Team Roles & Permissions. |
| status | string | The status of the user. Will be Disabled after a successful request. |
Relationships
| Name | Type | Description |
|---|---|---|
| customer | JSON:API Relationship | The customer the user belongs to. |
Example Response:
{
"data": {
"type": "whiteLabelAppUser",
"id": "user_67890",
"attributes": {
"userId": "user_67890",
"userRole": "Admin",
"status": "Disabled"
},
"relationships": {
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
}
}
}
}
List Webhook Events
List webhook event resources for Ready-to-Launch Banking, going back up to 90 days. Paging can be applied.
| Verb | GET |
| URL | https://api.s.unit.sh/ready-to-launch/webhook-events |
| Required Scope | webhook-events |
| Timeout (Seconds) | 5 |
Query Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| page[limit] | integer | 100 | Optional. Maximum number of resources that will be returned. Maximum is 1000 resources. See Pagination. |
| page[offset] | integer | 0 | Optional. Number of resources to skip. See Pagination. |
| filter[type][] | string | (empty) | Optional. Filter events by event type. |
| filter[since] | RFC3339 Date string | (empty) | Optional. Filters the events that occurred after the specified date. e.g. 2022-01-13T16:01:19.346Z |
| filter[until] | RFC3339 Date string | (empty) | Optional. Filters the events that occurred before the specified date. e.g. 2022-01-15T20:06:23.486Z |
Example Request:
curl -X GET 'https://api.s.unit.sh/ready-to-launch/webhook-events?page[limit]=20&page[offset]=10&filter[since]=2022-01-13T16:01:19.346Z&filter[until]=2022-01-15T20:06:23.486Z' \
-H "Authorization: Bearer ${TOKEN}"
Response
Returns a paginated list of webhook event resources.
Response is a JSON:API document.
200 OK
| Name | Type | Description |
|---|---|---|
| data | Array of Event | Array of webhook event resources. |