Skip to main content

BILL v3 API Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to a BILL v3 API location.
bill_v3_api.png

BILL v3 API

Create a BILL v3 API Destination

  1. Click the + icon on the Nexset that will be sent to the BILL v3 API destination, and select the Send to Destination option from the menu.

  2. Select the BILL v3 API connector from the list of available destination connectors. Then, select the credential that will be used to connect to the BILL v3 API organization, and click Next; or, create a new BILL v3 API credential for use in this flow.

  3. In Nexla, BILL v3 API destinations can be created using pre-built endpoint templates, which expedite destination setup for common BILL v3 API endpoints. Each template is designed specifically for the corresponding BILL v3 API endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    BILL v3 API destinations can also be configured manually, allowing you to send data to BILL v3 API endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common BILL v3 API endpoints. Each template is designed specifically for the corresponding BILL v3 API endpoint, making destination setup easy and efficient.

  • To configure this destination using a template, select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

    Create Bill

    This endpoint creates a new bill in your BILL accounts payable. Use it to automate AP intake from upstream systems such as procurement, ERP, or OCR pipelines.

    • Each Nexset record is sent as a JSON body to POST /v3/bills. Ensure the records contain the fields required by the BILL Create Bill endpoint (e.g., vendorId, invoiceNumber, invoiceDate, billLineItems).
    • No additional template parameters are required; configure record shape using upstream Nexla transforms.

    For complete details on the request body schema, refer to the BILL Create Bill reference.

    Update Bill

    This endpoint updates an existing bill. Use it to apply changes to bill details, line items, or approval routing.

    • Enter the unique identifier of the bill to update in the Bill ID field. The ID is appended to the path: {'PATCH /v3/bills/{bill_id}'}.
    • Each Nexset record is sent as the JSON body containing only the fields to be modified.

    For complete details, refer to the BILL Update Bill reference.

    Delete Bill

    This endpoint deletes a bill from accounts payable. Use it for cleanup workflows where bills must be removed from BILL based on upstream system events.

    • Enter the unique identifier of the bill to delete in the Bill ID field. Nexla calls {'DELETE /v3/bills/{bill_id}'}.

    For complete details, refer to the BILL Delete Bill reference.

    Approve Bill

    This endpoint approves a bill for payment. Use it to automate bill approvals based on rules evaluated in upstream Nexla flows.

    • Enter the unique identifier of the bill to approve in the Bill ID field. Nexla calls {'POST /v3/bills/{bill_id}/approve'}.
    • Each Nexset record is sent as the JSON body if the approve endpoint requires additional approval context (e.g., approver notes).

    For complete details, refer to the BILL Approve Bill reference.

    Create Payment

    This endpoint creates a new AP payment for one or more bills. Use it to disburse vendor payments programmatically from Nexla.

    • Each Nexset record is sent as a JSON body to POST /v3/payments. Include the fields required by BILL (e.g., vendorId, billPayments, processDate, paymentMethod).

    For complete details on the request body schema, refer to the BILL Create Payment reference.

    Update Payment

    This endpoint updates an existing AP payment. Use it to modify a scheduled or pending payment before processing.

    • Enter the unique identifier of the payment to update in the Payment ID field. Nexla calls {'PATCH /v3/payments/{payment_id}'}.

    For complete details, refer to the BILL Update Payment reference.

    Void Payment

    This endpoint voids an AP payment. Use it to cancel a payment that has not yet been processed or to reverse a payment record.

    • Enter the unique identifier of the payment to void in the Payment ID field. Nexla calls {'POST /v3/payments/{payment_id}/void'}.

    For complete details, refer to the BILL Void Payment reference.

    Create Vendor

    This endpoint creates a new vendor record. Use it to onboard vendors into BILL from procurement systems, vendor master data hubs, or vendor onboarding workflows.

    • Each Nexset record is sent as a JSON body to POST /v3/vendors. Include required vendor fields such as name, email, and remittance information per the BILL schema.

    For complete details, refer to the BILL Create Vendor reference.

    Update Vendor

    This endpoint updates an existing vendor record. Use it to keep vendor master data synchronized with an upstream source of truth.

    • Enter the unique identifier of the vendor to update in the Vendor ID field. Nexla calls {'PATCH /v3/vendors/{vendor_id}'}.

    For complete details, refer to the BILL Update Vendor reference.

    Delete Vendor

    This endpoint deletes a vendor record. Use it for vendor offboarding or to maintain a clean vendor master list.

    • Enter the unique identifier of the vendor to delete in the Vendor ID field. Nexla calls {'DELETE /v3/vendors/{vendor_id}'}.

    For complete details, refer to the BILL Delete Vendor reference.

    Create Customer

    This endpoint creates a new AR customer record. Use it to onboard customers into BILL from CRM, billing, or onboarding workflows.

    • Each Nexset record is sent as a JSON body to POST /v3/customers. Include required customer fields such as name, email, and billing address per the BILL schema.

    For complete details, refer to the BILL Create Customer reference.

    Update Customer

    This endpoint updates an existing AR customer record. Use it to keep customer master data in BILL synchronized with your CRM or billing system.

    • Enter the unique identifier of the customer to update in the Customer ID field. Nexla calls {'PATCH /v3/customers/{customer_id}'}.

    For complete details, refer to the BILL Update Customer reference.

    Delete Customer

    This endpoint deletes an AR customer record.

    • Enter the unique identifier of the customer to delete in the Customer ID field. Nexla calls {'DELETE /v3/customers/{customer_id}'}.

    For complete details, refer to the BILL Delete Customer reference.

    Create Invoice

    This endpoint creates a new AR invoice for a customer. Use it to issue invoices programmatically based on billing events from upstream systems.

    • Each Nexset record is sent as a JSON body to POST /v3/invoices. Include required invoice fields such as customerId, invoiceNumber, invoiceDate, and invoiceLineItems.

    For complete details, refer to the BILL Create Invoice reference.

    Update Invoice

    This endpoint updates an existing AR invoice.

    • Enter the unique identifier of the invoice to update in the Invoice ID field. Nexla calls {'PATCH /v3/invoices/{invoice_id}'}.

    For complete details, refer to the BILL Update Invoice reference.

    Delete Invoice

    This endpoint deletes an AR invoice.

    • Enter the unique identifier of the invoice to delete in the Invoice ID field. Nexla calls {'DELETE /v3/invoices/{invoice_id}'}.

    For complete details, refer to the BILL Delete Invoice reference.

    Send Invoice

    This endpoint sends an existing invoice to the customer. Use it to automate invoice delivery once invoices have been created in BILL.

    • Enter the unique identifier of the invoice to send in the Invoice ID field. Nexla calls {'POST /v3/invoices/{invoice_id}/send'}.
    • Each Nexset record is sent as the JSON body if the send endpoint accepts delivery options.

    For complete details, refer to the BILL Send Invoice reference.

    Record AR Payment

    This endpoint records a payment received for an AR invoice. Use it to apply customer payments captured by an external system back to BILL invoices.

    • Enter the unique identifier of the invoice receiving payment in the Invoice ID field. Nexla calls {'POST /v3/invoices/{invoice_id}/payments'}.
    • Each Nexset record is sent as the JSON body containing the payment details (e.g., amount, paymentDate, paymentMethod).

    For complete details, refer to the BILL Record AR Payment reference.

    Create Vendor Credit

    This endpoint creates a new vendor credit, representing an amount owed back to your organization by a vendor that can offset future bills.

    • Each Nexset record is sent as a JSON body to POST /v3/vendor-credits. Include required fields such as vendorId, creditDate, and vendorCreditLineItems.

    For complete details, refer to the BILL Create Vendor Credit reference.

Configure Manually

BILL v3 API destinations can be manually configured to send data to any valid BILL v3 API endpoint.

Using manual configuration, you can also configure Nexla to automatically send the response received from the BILL v3 API after each call to a new Nexla webhook data source, which is useful for capturing BILL-generated IDs returned by create operations.

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the BILL v3 API from the Method pulldown menu. Common methods for BILL v3 API are:

    • POST: For creating bills, invoices, payments, vendors, customers, vendor credits, or for triggering actions such as approve, send, or void.
    • PATCH: For partial updates to existing bills, invoices, payments, vendors, or customers.
    • DELETE: For removing bills, invoices, vendors, or customers.

Data Format

  1. Select the format in which the Nexset data will be sent to the BILL v3 API from the Content Format pulldown menu. The BILL v3 API expects JSON; Nexla will automatically convert the data to JSON for each API call.

API Endpoint URL

  1. Enter the URL of the BILL v3 API endpoint to which you want to send the Nexset data in the URL field. Use the base URL that matches your credential: https://api.bill.com for production or https://gateway.stage.bill.com/connect for sandbox. For update or action endpoints, include the resource ID in the path (e.g., https://api.bill.com/v3/bills/{bill_id}).

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include the devKey or sessionId headers—both are added automatically by Nexla based on your BILL v3 API credential.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this BILL v3 API destination, select the attributes from the Exclude Attributes pulldown menu. This is useful for stripping internal Nexla bookkeeping fields or upstream-only columns before posting to BILL.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional

The BILL v3 API write endpoints accept one resource per request. Batching is not typically used for BILL v3 API write operations; leave record batching disabled unless a specific endpoint accepts an array body.

  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings.

Response Webhook

Optional

Nexla can automatically send the response received from the BILL v3 API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call and capture BILL-generated identifiers (e.g., a new bill or payment ID) for downstream processing.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the BILL v3 API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.

  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the BILL v3 API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the BILL v3 API using the current settings.

Save & Activate the Destination

  • Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured BILL v3 API endpoint, open the destination resource menu, and select Activate.

    The Nexset data will not be sent to the BILL v3 API until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.