Create a Payable

Types of Payables

Routable supports creating six different types of Payables:

Bank Transfer (type=ach)

  • Create this Payable type when you explicitly want to pay your vendor via bank transfer.
  • Your vendor must have an existing PaymentMethod where type=bank.
  • This Payable type is also used for real_time_payments like FedNow and RTP. See Real-Time Payments for more information.

Check (type=check)

  • Create this Payable type when you explicitly want to pay your vendor via check.
  • Your vendor must have an existing PaymentMethod where type=address.

External (type=external)

  • Create this Payable type when you want to track a payment that was already made outside of Routable.

International (type=international)

  • Create this Payable type when paying international vendors via local bank transfer or SWIFT.
  • Your vendor must have an existing PaymentMethod where type=international. They can create this in the Invite a Company or Accept Payment flows.
  • See the delivery_methods array in the vendor's PaymentMethod to determine what delivery methods are supported.
  • You must have an existing PaymentMethod where type=bank to process an international transaction.
  • See International Payments for details.

PayPal (type=paypal)

  • 🚧 PayPal support is currently in limited availability. Please contact Routable to see if your Workspace qualifies for PayPal integration.
  • Create this Payable type when making PayPal direct payments.
  • Your vendor must have an existing PaymentMethod where type=paypal.

Vendor Choice (type=vendor_choice)

  • Create this Payable type when you want your vendor to be able to choose their preferred payment method.
  • You may use this when your vendor has no existing payment methods and they will be prompted to submit a payment method via our onboarding flow.

Rate Limiting

🏁 This endpoint's rate limit is 100 calls per minute.

Idempotency Key

We highly recommend you supply an idempotency key when creating Payables to prevent duplicate requests. These keys are stored for a period of 24 hours.

If a request fails due to a network error, you can safely retry the same request with the same key and guarantee that your request had exactly one effect.

When a request is sent with an idempotency key for an already created resource, the response object for the existing resource will be returned.

All requests with the same key will be considered attempts for the same request. It is therefore important that you use unique keys. We suggest using random values, such as UUIDs.

Status Codes

Please note that it is possible for this endpoint to return a 202 response, which indicates that we are still processing the request.

To ensure that the payment has been created, you may attempt to retrieve it using the returned ID or self link.

Scheduling Payables

Routable supports 3 different ways of scheduling your Payables based on the value supplied for send_on.

Sending a Payable Today

  • To send a Payable today, set it to today's date in Pacific time.
  • Use this when you want to send a Payable ASAP.

Sending a Payable in the Future

  • To send a Payable in the future, set send_on to a future date in Pacific time.
  • Use this when you want to send a Payable in the future.

Sending a Payable with no defined date

  • To create a Payable with no specified date, set send_on to null.
  • Use this when you want to prepare a Payable to be sent. This can be useful when testing out your integration.

Default Contacts

When sending Payables via our API, we will notify all contacts associated with the company based on the values specified for their default_contact_for_payable_and_receivable field.

Default Approvals

When sending Payables via our API and a payable requires approvals per your approval settings we will automatically fill in the appropriate team members.

We do this by finding all applicable levels of approval and requesting approvals from all TeamMembers.

For example, you can set up your account so that:

  • Any Payable over $1,000 requires a first level approval from either Angela or Oscar.
  • Any Payable over $2,000 requires a second level approval from both Michael and Andy.

When creating a Payable for $1,100 the API would request approval from both Angela and Oscar.

When creating a Payable for $2,100 the API would request approval from both Michael and Andy for the second level as well as Angela and Oscar on the first level.

Body Params

New Payable that pays out to a vendor via ACH

date | null
required

The date that the Payable should be sent in Pacific Time.

  • When set to today, the Payable will be sent immediately.
  • When set to null, the Payable will be put in a ready_to_send status.
  • When set to a date in the future, the Payable will be scheduled for a future date. No email communications will go out until that date.

Note that if a Create Payable call occurs after the cut-off time when ach_same_day or ach_next_day is selected as a delivery_method, the Payable will be scheduled as if it had been created on the following business day.

uuid
required

The ID of the TeamMember performing this action. This will be displayed in the Routable Dashboard and also used as the sender of any invitation emails sent to your Company's actionable Contacts.

string
required

The total amount for this transaction.

attachments
array of objects

An optional array of file attachments to add to the transaction. There is no file size limit on an individual file, but the total size of your request including all attachments may not exceed 25MB.

attachments
string

The bill number for this transaction. If you have integrated your accounting software, this will match the bill number in that application.

string
enum
length between 3 and 3
Defaults to USD

An ISO 4217 currency code. Only currencies currently supported by Routable are available.

string | null

A external ID you have assigned to this transaction. For example, this might be the ID of a transaction in your application.

string
length ≥ 1

A custom message to include in the email sent to the actionable and readonly Contacts on this Company. A limited subset of HTML tags are permitted for formatting.

string

This field is used as an additional reference number for the item when Routable is not integrated with your accounting software. If you have integrated your accounting software with Routable, this field is not used.

date

The date by which the invoice must be paid.

date

The date on which the invoice was issued.

ledger

Fields specific to your accounting suite integration.

line_items
array of objects
required
length ≥ 1
line_items*
uuid
required

The Company ID to pay.

uuid
required

The Account ID to withdraw from.

string
enum
required

The Payable delivery method option. Different selections here will incur different fees.' Note that for ach_next_day and ach_same_day Payables, cut-off times apply. If a Payable is created after the cut-off time when ach_same_day or ach_next_day is selected as a delivery_method, the Payable will be scheduled as if it had been created on the following business day.

Allowed:
uuid

The Payment Method ID to pay.

string
enum
required
Allowed:
type_details
object
Headers
string
length between 1 and 128

An idempotency key to prevent duplicate requests. All requests with the same key will be considered attempts for the same request.

These keys are stored for a period of 24 hours. To ensure these keys are sufficiently tied to a request, we recommend either storing generated idempotency keys alongside your payment data, or using a hash of the request JSON itself to generate your idempotency key.

string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Bearer
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json