Introduction

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

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 request
  • 4XX indicate an error related to something the client has sent to Routable
  • 5XX 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.