Skip to main content

API Overview

This page describes general guidelines for interacting with our Banking API. It focuses on environment configuration, authentication, and global patterns that our API adheres to.



Data Types


Most resources carry a created_dt and updated_dt timestamp in addition to any other timestamps relevant to them.

Timestamps are formatted as an RFC-3339 string. Most timestamps are in UTC (including a Z suffix) but time offset can be directly inferred from the value and should not necessarily be assumed.


The only currency currently supported by Figure Pay is USD.

All fields representing an amount of currency, from an account balance to a transaction amount are represented as USD Pennies. Amounts are transmitted as an integer JSON numbers and not fractional decimal numbers. For example, if an account has a balance of $100 USD then a response from a balance inquiry would contain amount_coins: 10000.

The amount field is expected to be supplied with the amount in coins. The amount field will contain the unit in the name e.g. amount_coins.

Balance fields will include the unit in the name e.g. balance_coins: 10000 and balance_usd: 100.


Endpoints that return a list of items are typically paginated. Paginated endpoints employ a cursor-based pagination strategy by accepting a next_cursor and limit field as part of the request, in addition to any resource-specific filters.

Request Parameters

next_cursor optional, exclusive (refers to the last item in the previous response)

limit optional, default is 100, max is 250


id optional, ensures that any retried API calls don't submit multiple requests successfully

Response Payload

next_cursor to supply in subsequent paginated requests

limit what was supplied in the request or the default that was used

data array containing the actual response elements, in order

"data": [...],
"limit": 100,
"next_cursor": "2022-01-01T00:00:00.000000-00:00"

Error Responses

Our Banking API returns standard HTTP status codes.

Your client will receive a 4xx HTTP code if our API believes the error originated from the request itself e.g. a 400 Bad Request if the response is malformed or a 404 Not Found if we were unable to located the requested resource.

Your client will receive a 5xx HTTP status code if there's an issue with our API e.g. a 503 Service Unavailable if we're experience system downtime.

Additionally, we provide a JSON response body which provides context for the errors experienced during your request.

400 Bad Request

"errors": [
{ "error": "'name' must not be empty." },
{ "error": "'amount' must be greater than 0." }