Welcome to the Routable API documentation. This API will give you the ability to connect your software to the Routable infrastructure to:
- Manage vendor and customer, their contacts and their payment methods.
- Automate your payables.
- Retrieve information stored by the Routable system.
Don't miss the resource overview!
Before diving into our reference documentation, we highly recommend checking out our Resource Overview page so you can gain a quick understanding of how all the resources in our system interact.
URLs
Environment | Base URL |
---|---|
Sandbox | https://api.sandbox.routable.com |
Production | https://api.routable.com |
Authentication
To access the API you must supply your API token in the Authorization
header.
Authorization: Bearer <token>
For instructions on retrieving your token, please see our guide.
Errors
In general, there are 3 status code ranges you can expect when working with the API:
2XX
for a successful request4XX
indicate an error related to something the client has sent to Routable5XX
indicate a problem on Routable's side
All error responses come back in an RFC7807 Problem Detail compliant format.
{
// An absolute URI that identifies the problem type and has
// human-readable documentation.
"type": "https://developers.routable.com/v1/error/validation-error",
// A short, summary of the problem type.
"title": "Validation Error",
// The HTTP status code generated by the origin server for this occurrence
// of the problem.
"status": 400,
// A human readable explanation specific to this occurrence of the problem.
"detail": "There were validation errors associated with your request.",
// When applicable, a list of errors associated with the request
"errors": [
{
"where": "body",
"path": "/acting_team_member",
"detail": "field required"
}
],
// A request ID that can be sent to Routable's support team
// to assist in debugging.
"request_id": "c9339616-7d23-486c-872d-02b13c7ec619"
}
{
"type": "https://developers.routable.com/v1/error/400",
"title": "General Error",
"status": 400,
"detail": "Not enough funds in balance.",
"request_id": "5687d5df-daca-4676-9488-532fbd4b8694"
}
{
"type": "https://developers.routable.com/v1/error/validation-error",
"title": "Validation Error",
"status": 400,
"errors": [
{
"where": "body",
"path": "/acting_team_member",
"detail": "field required"
}
],
"request_id": "c9339616-7d23-486c-872d-02b13c7ec619"
}
{
"type": "https://developers.routable.com/v1/error/401",
"title": "Unauthorized",
"status": 401,
"request_id": "4d38b901-60b8-4f84-aab6-3d5becf8d60a"
}
{
"type": "https://developers.routable.com/v1/error/503",
"title": "Service Unavailable",
"status": 503,
"detail": "Routable is currently in maintenance mode.",
"request_id": "a6cb9901-b9c5-4542-ac2a-755f21adf1e7"
}
Pagination
For endpoints that return List
objects, we support paging via the page
and page_size
parameters.
We do not explicitly include pagination metadata in the API and expect clients to use the next
and prev
links to navigate forward and backward through the result set.
{
"object":"List",
"results":[],
"links":{
"self":"https://api.sandbox.routable.com/v1/companies",
"next":"https://api.sandbox.routable.com/v1/companies?page=2&page_size=10",
"prev":null
}
}
Rate Limits
The Routable API employs rate limiting against bursts of incoming traffic to help maximize it's stability. Customers who send too many requests in quick succession may see error responses that show up as status code 429
.
- For most APIs, Routable allows 600 requests per minute.
- For our create payable API, Routable allows 100 requests per minute.
We may reduce limits to prevent abuse, or increase limits to enable high-traffic applications. To request an increased rate limit, please contact support.
Request IDs
In every response, we return Request-ID
header with a unique identifier for the request. Please log this.
This ID can be passed along to our support team to assist with any issues you have using our API.
Sort Order
Consider Sort Order Undefined
At this time, please consider our sort order for list calls to be undefined. We are working towards standardizing these and will be specifying them at a future date.