In Payabli, bills represent a bill from a vendor that a paypoint is expected to pay. Use managed payables with Payabli to turn those payouts to vendors into an income stream.

This guide covers adding bills with the API, but you can also use the API to do the following:

Learn how to use our OCR engine to scrape documents and create : Use the OCR Engine

Basic bill workflow

  1. When you get an invoice from a vendor or supplier, add it to Payabli as a bill via the API, File Exchange, or the web.
  2. Update or delete bills, and then queue them for approval.
  3. After bills are approved, make payout requests, and you can pay one or many bills.

Via an enablement process, your vendors are contacted to help decide on a payment method. The goal is that they choose to receive payments through virtual cards for ease, speed, and security of payment.

Considerations

Keep these points in mind when working with bills:

  • You don’t have to use Payabli’s bill engine to make a payout. When making a payout request, set the query parameter doNotCreateBills to true.
  • You can pay more than one bill with one payout request. If several active bills added, queued, and ready to be paid, you can make a payout request to pay all active bills. Remittance information for that single payout request will include the details for all of the paid bills.
  • Bill approval isn’t required. If a bill status is Active or Approved it can be sent for payout. If a bill status is Sent to Approval or Pending Approval you can’t send it for payout.
  • You can use the OCR engine to capture data from uploaded bill images.

Build the request

First, choose an endpoint. If you’re testing, use the Sandbox endpoint. for your target environment.

Authenticate

Authenticate by sending your API token in the request header with the key requestToken:
--header 'requestToken: API TOKEN'

Path parameter

For a full list of available parameters, see the API reference for this endpoint.

entry
string
required

ID for the entrypoint the bill belongs to.

Body parameter

These are the minimum required fields in the body parameter.

billNumber
string
required

Unique identifier for the bill.

netAmount
double
required

Net Amount owed on bill.

vendorData
object
required

Object describing the vendor to receive the payment. At minimum, vendorNumber is required. The status must be set to 1 to execute the payout. See the VendorData object reference for complete details and required object fields.

attachments
array[fileContent]

Array of fileContent objects containing bill images. Attachments aren’t required, but including them is a best practice. Including a bill image can make payouts smoother and prevent delays. You can include either the Base64-encoded file content, or you can include an fURL to a public file. See fileContent Object Model for complete details on this object. The maximum file size for image uploads is 30 MB.

Example request

This example adds a bill to the entrypoint with ID 41035afaa7. The bill is for a vendor with the vendorNumber “AD”. The bill number is UTIL-2457, and the request includes an uploaded bill image, and optional fields like comments.

Add a bill
curl --request POST 
    --url https://api-sandbox.payabli.com/api/Bill/single/41035afaa7 
    --header 'accept: application/json' 
    --header 'content-type: application/*+json' 
    --header 'requestToken: <API TOKEN>' 
    --data '
{
  "vendor": {
    "vendorNumber": "AD"
},
  "attachments": [
    {
      "filename": "my-bill.pdf",
      "ftype": "pdf",
      "fContent": "TXkgdGVzdCBmaWxlHJ==..."
    }
  ],
  "billNumber": "UTIL-2457",
  "netAmount": 1200,
  "billDate": "2023-07-01",
  "dueDate": "2023-10-01",
  "comments": "Floor waxing and repairs",
  "status": 1
}
'

Example response

If the request is a success, it returns the bill ID as “responseData”.

Response
{
  "isSuccess": true,
  "responseText": "Success",
  "responseCode": 1,
  "responseData": 287
}