# BILL

> Manage accounts payable and receivable in BILL: vendors, bills, customers, invoices, payments and payment terms.

App · Accounting & Finance · 20 actions. Web page: https://docs.lodol.com/docs/integrations/bill

## Actions

### Archive a vendor

Archive a vendor so it no longer appears in BILL's active lists. BILL has no delete for vendors, and archiving an already archived vendor changes nothing.

**Inputs**

- Vendor (`vendor_id`, text, required): The vendor's BILL id, which begins 009. Use 'List vendors' to find one; the id also appears in the vendor's BILL web address.

**Outputs**

- `archived` (true/false): True once BILL reports the vendor archived.
- `status` (text): Status of the action execution ("success" on success).
- `vendor` (object): The vendor after archiving.
- `vendor_id` (text): The vendor that was archived.

**Example output**

```json
{
  "archived": true,
  "status": "success",
  "vendor": {
    "archived": true,
    "id": "00901ACMEVENDORRECORD",
    "name": "Northwind Paper Co"
  },
  "vendor_id": "00901ACMEVENDORRECORD"
}
```

### Create a bill

Record a bill a vendor has sent you. The invoice number and date are the ones on the vendor's own document.

**Inputs**

- Vendor (`vendor_id`, text, required): The vendor's BILL id, which begins 009. Use 'List vendors' to find one; the id also appears in the vendor's BILL web address.
- Vendor invoice number (`invoice_number`, text, required): The number the vendor put on their invoice.
- Invoice date (`invoice_date`, date, required): The date on the vendor's invoice.
- Due date (`due_date`, date, required): When the bill has to be paid.
- Amount (`amount`, number): The bill's amount, which becomes its single line. Leave blank only if you are filling in Line items.
- Line description (`line_description`, text): What that single line is for.
- Line items (`line_items`, list): Several lines instead of one amount. Each takes an amount, and optionally a quantity, price and description.
- Description (`description`, text): A note about the bill as a whole.
- Payment term (`payment_term_id`, text): The payment term to apply to this bill.
- Pay from account (`pay_from_chart_of_account_id`, text): A chart-of-accounts id (beginning 0ca) to pay this bill from.
- Purchase order number (`purchase_order_number`, text): Your PO number for this bill.

**Outputs**

- `bill` (object): The bill that was created.
- `bill_id` (text): The new bill's id.
- `status` (text): Status of the action execution ("success" on success).

**Example output**

```json
{
  "bill": {
    "amount": 420.5,
    "dueDate": "2026-10-15",
    "id": "00n01ACMEBILLRECORD1",
    "vendorId": "00901ACMEVENDORRECORD"
  },
  "bill_id": "00n01ACMEBILLRECORD1",
  "status": "success"
}
```

### Create a customer

Add a customer you invoice. BILL requires a name and an email address.

**Inputs**

- Customer name (`name`, text, required): The customer's name, as it should appear in BILL.
- Email (`email`, text, required): Where invoices go. BILL requires one on every customer.
- Company name (`company_name`, text): The customer's company name, if it differs from the name.
- Contact first name (`contact_first_name`, text): Given name of the person you deal with.
- Contact last name (`contact_last_name`, text): Family name of the person you deal with.
- Phone (`phone`, text): The customer's phone number.
- Fax (`fax`, text): The customer's fax number.
- Description (`description`, text): A note about this customer, kept on their record.
- Invoice currency (`invoice_currency`, text): Three-letter currency code their invoices are issued in, such as USD, CAD, EUR or GBP.
- Account type (`account_type`, text): Whether the customer is a business or a person. One of: `NONE`, `BUSINESS`, `PERSON`.
- Payment term (`payment_term_id`, text): How long the customer has to pay an invoice. Sets the default term on their invoices.
- Account number (`account_number`, text): Your reference for this customer. It appears on invoices.
- Billing address street (`billing_address_line1`, text): Street address. If you fill in any part of the address, street, city, postal code and country are all required.
- Billing address street line 2 (`billing_address_line2`, text): Suite, floor or unit.
- Billing address city (`billing_address_city`, text): City or town.
- Billing address state or province (`billing_address_state_or_province`, text): State, province or region.
- Billing address postal code (`billing_address_zip_or_postal_code`, text): ZIP or postal code.
- Billing address country (`billing_address_country`, text): Two-letter country code, such as US, CA or GB.

**Outputs**

- `customer` (object): The customer that was created.
- `customer_id` (text): The new customer's id.
- `status` (text): Status of the action execution ("success" on success).

**Example output**

```json
{
  "customer": {
    "email": "billing@harbour.example",
    "id": "0cu01ACMECUSTOMERREC",
    "name": "Harbour Design Studio"
  },
  "customer_id": "0cu01ACMECUSTOMERREC",
  "status": "success"
}
```

### Create a vendor

Add a vendor to BILL. An address is required: street, city, postal code and country.

**Inputs**

- Vendor name (`name`, text, required): The vendor's name, as it should appear in BILL.
- Address street (`address_line1`, text, required): Street address. BILL requires an address on a new vendor.
- Address street line 2 (`address_line2`, text): Suite, floor or unit.
- Address city (`address_city`, text, required): City or town.
- Address state or province (`address_state_or_province`, text): State, province or region.
- Address postal code (`address_zip_or_postal_code`, text, required): ZIP or postal code.
- Address country (`address_country`, text, required): Two-letter country code, such as US, CA or GB.
- Short name (`short_name`, text): A shorter name for the vendor, used on lists and reports.
- Your account number (`account_number`, text): Your account number with this vendor -- the one on their billing statement.
- Account type (`account_type`, text): Whether the vendor is a business or a person. One of: `NONE`, `BUSINESS`, `PERSON`.
- Email (`email`, text): The vendor's email address.
- Phone (`phone`, text): The vendor's phone number.
- Bill currency (`bill_currency`, text): Three-letter currency code their bills are issued in, such as USD, CAD, EUR or GBP.
- Legal company name (`company_name`, text): The vendor's registered company name, if it differs.
- Tax ID (`tax_id`, text): The vendor's tax identification number.
- Tax ID type (`tax_id_type`, text): Which kind of tax ID that is. One of: `EIN`, `SSN`.
- Track for 1099 (`track_1099`, true/false): Include this vendor's payments in 1099 reporting.
- Payment lead time (days) (`lead_time_in_days`, number): How many days ahead this vendor's payments must be sent. From 0 to 365.
- Combine payments (`combine_payments`, true/false): Pay several bills from this vendor in one payment.
- Payment term (`payment_term_id`, text): The payment term to apply to this vendor's bills.

**Outputs**

- `status` (text): Status of the action execution ("success" on success).
- `vendor` (object): The vendor that was created.
- `vendor_id` (text): The new vendor's id.

**Example output**

```json
{
  "status": "success",
  "vendor": {
    "archived": false,
    "id": "00901ACMEVENDORRECORD",
    "name": "Northwind Paper Co"
  },
  "vendor_id": "00901ACMEVENDORRECORD"
}
```

### Create an invoice

Issue an invoice to a customer. Leave the invoice number blank and BILL generates one.

**Inputs**

- Customer (`customer_id`, text, required): The customer's BILL id, which begins 0cu. Use 'List customers' to find one.
- Quantity (`quantity`, number): How many units the single line is for. BILL requires a quantity on every line.
- Unit price (`price`, number): What one unit costs.
- Line description (`line_description`, text): What that single line is for.
- Line items (`line_items`, list): Several lines instead of one. Each needs a quantity, and optionally a price, description and taxable flag.
- Invoice number (`invoice_number`, text): Your number for this invoice. Leave blank to let BILL generate one.
- Invoice date (`invoice_date`, date): The invoice's date. Defaults to today.
- Due date (`due_date`, date): When the customer has to pay.
- Payment term (`payment_term_id`, text): The payment term for this invoice, which sets how long the customer has to pay.
- Pay into account (`pay_to_chart_of_account_id`, text): A chart-of-accounts id (beginning 0ca) the payment should land in.
- Allow card payment (`enable_card_payment`, true/false): Let the customer pay this invoice by card.
- Email it to the customer (`send_email`, true/false): On sends the invoice to the customer's email address immediately. Off (the default) creates it quietly. Default: `false`.

**Outputs**

- `emailed` (true/false): True when BILL was asked to email the customer.
- `invoice` (object): The invoice that was created.
- `invoice_id` (text): The new invoice's id.
- `status` (text): Status of the action execution ("success" on success).

**Example output**

```json
{
  "emailed": false,
  "invoice": {
    "customerId": "0cu01ACMECUSTOMERREC",
    "id": "00e01ACMEINVOICEREC1",
    "invoiceNumber": "INV-1042",
    "totalAmount": 1250.0
  },
  "invoice_id": "00e01ACMEINVOICEREC1",
  "status": "success"
}
```

### Get a bill

Get one bill in full, including its approvers.

**Inputs**

- Bill (`bill_id`, text, required): The bill's BILL id, which begins 00n. Use 'List bills' to find one.

**Outputs**

- `bill` (object): The bill's record.
- `status` (text): Status of the action execution ("success" on success).

**Example output**

```json
{
  "bill": {
    "amount": 420.5,
    "dueDate": "2026-10-15",
    "id": "00n01ACMEBILLRECORD1",
    "paymentStatus": "UNPAID",
    "vendorId": "00901ACMEVENDORRECORD"
  },
  "status": "success"
}
```

### Get a customer

Get one customer's full record.

**Inputs**

- Customer (`customer_id`, text, required): The customer's BILL id, which begins 0cu. Use 'List customers' to find one.

**Outputs**

- `customer` (object): The customer's record.
- `status` (text): Status of the action execution ("success" on success).

**Example output**

```json
{
  "customer": {
    "email": "billing@harbour.example",
    "id": "0cu01ACMECUSTOMERREC",
    "name": "Harbour Design Studio"
  },
  "status": "success"
}
```

### Get a vendor

Get one vendor's full record.

**Inputs**

- Vendor (`vendor_id`, text, required): The vendor's BILL id, which begins 009. Use 'List vendors' to find one; the id also appears in the vendor's BILL web address.

**Outputs**

- `status` (text): Status of the action execution ("success" on success).
- `vendor` (object): The vendor's record.

**Example output**

```json
{
  "status": "success",
  "vendor": {
    "archived": false,
    "billCurrency": "USD",
    "id": "00901ACMEVENDORRECORD",
    "name": "Northwind Paper Co"
  }
}
```

### Get an invoice

Get one invoice in full, with its lines and payments.

**Inputs**

- Invoice (`invoice_id`, text, required): The invoice's BILL id, which begins 00e. Use 'List invoices' to find one.

**Outputs**

- `invoice` (object): The invoice's record.
- `status` (text): Status of the action execution ("success" on success).

**Example output**

```json
{
  "invoice": {
    "customerId": "0cu01ACMECUSTOMERREC",
    "id": "00e01ACMEINVOICEREC1",
    "invoiceNumber": "INV-1042",
    "status": "OPEN",
    "totalAmount": 1250.0
  },
  "status": "success"
}
```

### Get organization

Get your BILL organization's profile: name, address, tax details and account type.

**Inputs**

- Organization (`organization_id`, text): A BILL organization id, beginning 008. Leave blank for the organization this connection signs in to.

**Outputs**

- `organization` (object): The organization's profile.
- `organization_id` (text): The organization that was read.
- `status` (text): Status of the action execution ("success" on success).

**Example output**

```json
{
  "organization": {
    "accountType": "BUSINESS",
    "id": "00801ACMEORGANIZATION",
    "name": "Acme Supplies Inc",
    "phone": "415-555-0142"
  },
  "organization_id": "00801ACMEORGANIZATION",
  "status": "success"
}
```

### Get session info

Check the BILL connection and report which organization and user it is signed in as.

**Inputs**: None.

**Outputs**

- `mfa_bypass` (true/false): True when MFA is disabled at the developer-key level.
- `organization_id` (text): The organization this connection acts on.
- `session` (object): The signed-in session, as BILL reports it.
- `status` (text): Status of the action execution ("success" on success).
- `user_id` (text): The BILL user the connection signs in as.

**Example output**

```json
{
  "mfa_bypass": false,
  "organization_id": "00801ACMEORGANIZATION",
  "session": {
    "mfaBypass": false,
    "organizationId": "00801ACMEORGANIZATION",
    "userId": "00601ACMEUSERRECORDID"
  },
  "status": "success",
  "user_id": "00601ACMEUSERRECORDID"
}
```

### List bills

List the bills you owe. The rows carry everything a single bill does except its approvers: use 'Get a bill' for those.

**Inputs**

- Vendor (`vendor_id`, text): Only return bills from this vendor (an id beginning 009). Leave blank for every vendor.
- Payment status (`payment_status`, text): Only return bills in this payment status. One of: `PAID`, `UNPAID`, `PARTIALLY_PAID` (Partially paid), `SCHEDULED`, `IN_PROCESS` (In process).
- Archived only (`archived`, true/false): On returns only archived records, off only active ones. Leave unset for both.
- Due on or after (`due_on_or_after`, date): Only return bills due on or after this date.
- Due on or before (`due_on_or_before`, date): Only return bills due on or before this date.
- Created on or after (`created_on_or_after`, date): Only return records created on or after this date.
- Maximum results (`max_results`, number): How many records to return on this page (1-100). BILL returns 20 when this is blank. From 1 to 100.
- Page (`page`, text): The 'Next page' value from an earlier run of this action. Leave blank for the first page.
- Sort by (`sort_by`, text): Which field to sort on. Leave blank for BILL's own order. One of: `dueDate`, `createdTime`, `updatedTime`.
- Sort direction (`sort_direction`, text): Which way to sort. Ascending unless you choose otherwise. One of: `asc`, `desc`.

**Outputs**

- `bills` (list): The bills that matched.
- `count` (number): How many bills this page carried.
- `next_page` (text): Cursor for the next page, or empty when this is the last one. Pass it back as 'Page'.
- `prev_page` (text): Cursor for the previous page, when there is one.
- `status` (text): Status of the action execution ("success" on success).
- `total_count` (number): How many bills matched in total, across all pages.
- `total_due_amount` (number): The total amount still due across everything matched.

**Example output**

```json
{
  "bills": [
    {
      "amount": 420.5,
      "dueDate": "2026-10-15",
      "id": "00n01ACMEBILLRECORD1",
      "paymentStatus": "UNPAID",
      "vendorId": "00901ACMEVENDORRECORD",
      "vendorName": "Northwind Paper Co"
    }
  ],
  "count": 1,
  "next_page": "",
  "prev_page": "",
  "status": "success",
  "total_count": 1,
  "total_due_amount": 420.5
}
```

### List customers

List the customers on your BILL organization.

**Inputs**

- Name starts with (`name`, text): Only return customers whose name starts with this.
- Archived only (`archived`, true/false): On returns only archived records, off only active ones. Leave unset for both.
- Account type (`account_type`, text): Only return records of this account type. One of: `NONE`, `BUSINESS`, `PERSON`.
- Created on or after (`created_on_or_after`, date): Only return records created on or after this date.
- Updated on or after (`updated_on_or_after`, date): Only return records changed on or after this date.
- Maximum results (`max_results`, number): How many records to return on this page (1-100). BILL returns 20 when this is blank. From 1 to 100.
- Page (`page`, text): The 'Next page' value from an earlier run of this action. Leave blank for the first page.
- Sort by (`sort_by`, text): Which field to sort on. Leave blank for BILL's own order. One of: `name`, `createdTime`, `updatedTime`.
- Sort direction (`sort_direction`, text): Which way to sort. Ascending unless you choose otherwise. One of: `asc`, `desc`.

**Outputs**

- `count` (number): How many customers this page carried.
- `customers` (list): The customers that matched.
- `next_page` (text): Cursor for the next page, or empty when this is the last one. Pass it back as 'Page'.
- `prev_page` (text): Cursor for the previous page, when there is one.
- `status` (text): Status of the action execution ("success" on success).

**Example output**

```json
{
  "count": 1,
  "customers": [
    {
      "archived": false,
      "email": "billing@harbour.example",
      "id": "0cu01ACMECUSTOMERREC",
      "name": "Harbour Design Studio"
    }
  ],
  "next_page": "",
  "prev_page": "",
  "status": "success"
}
```

### List invoices

List the invoices you have issued to customers.

**Inputs**

- Customer (`customer_id`, text): Only return invoices for this customer (an id beginning 0cu). Leave blank for every customer.
- Status (`status`, text): Only return invoices in this status. One of: `PAID_IN_FULL` (Paid in full), `OPEN`, `PARTIAL_PAYMENT` (Partial payment), `SCHEDULED`.
- Archived only (`archived`, true/false): On returns only archived records, off only active ones. Leave unset for both.
- Created on or after (`created_on_or_after`, date): Only return records created on or after this date.
- Updated on or after (`updated_on_or_after`, date): Only return records changed on or after this date.
- Maximum results (`max_results`, number): How many records to return on this page (1-100). BILL returns 20 when this is blank. From 1 to 100.
- Page (`page`, text): The 'Next page' value from an earlier run of this action. Leave blank for the first page.
- Sort by (`sort_by`, text): Which field to sort on. Leave blank for BILL's own order. One of: `createdTime`, `updatedTime`.
- Sort direction (`sort_direction`, text): Which way to sort. Ascending unless you choose otherwise. One of: `asc`, `desc`.

**Outputs**

- `count` (number): How many invoices this page carried.
- `invoices` (list): The invoices that matched.
- `next_page` (text): Cursor for the next page, or empty when this is the last one. Pass it back as 'Page'.
- `prev_page` (text): Cursor for the previous page, when there is one.
- `status` (text): Status of the action execution ("success" on success).
- `total_count` (number): How many invoices matched in total, across all pages.
- `total_due_amount` (number): The total amount still due across everything matched.

**Example output**

```json
{
  "count": 1,
  "invoices": [
    {
      "customerId": "0cu01ACMECUSTOMERREC",
      "id": "00e01ACMEINVOICEREC1",
      "invoiceNumber": "INV-1042",
      "status": "OPEN",
      "totalAmount": 1250.0
    }
  ],
  "next_page": "",
  "prev_page": "",
  "status": "success",
  "total_count": 1,
  "total_due_amount": 1250.0
}
```

### List payment terms

List the payment terms set up on the organization, with the id bills, customers and invoices refer to.

**Inputs**

- Organization (`organization_id`, text): A BILL organization id, beginning 008. Leave blank for the organization this connection signs in to.
- Days to pay (`days_due`, number): Only return terms with exactly this many days to pay, such as 30 for Net 30. From 0 to 365.
- Maximum results (`max_results`, number): How many records to return on this page (1-100). BILL returns 20 when this is blank. From 1 to 100.
- Sort by (`sort_by`, text): Which field to sort on. Leave blank for BILL's own order. One of: `name`, `createdTime`, `updatedTime`.
- Sort direction (`sort_direction`, text): Which way to sort. Ascending unless you choose otherwise. One of: `asc`, `desc`.

**Outputs**

- `count` (number): How many payment terms this page carried.
- `next_page` (text): Cursor for the next page, or empty when this is the last one. Pass it back as 'Page'.
- `payment_terms` (list): The payment terms that matched.
- `prev_page` (text): Cursor for the previous page, when there is one.
- `status` (text): Status of the action execution ("success" on success).

**Example output**

```json
{
  "count": 1,
  "next_page": "",
  "payment_terms": [
    {
      "daysDue": 30,
      "id": "00p01ACMEPAYMENTTERM",
      "name": "Net 30"
    }
  ],
  "prev_page": "",
  "status": "success"
}
```

### List payments

List payments already made or scheduled. Making a payment needs an SMS-verified BILL session, so this integration reads payments but never creates one.

**Inputs**

- Vendor (`vendor_id`, text): Only return payments to this vendor (an id beginning 009).
- Status (`status`, text): Only return payments in this status. One of: `APPROVING`, `SCHEDULED`, `PAID`, `CANCELLED`, `VOID`, `ESCHEATED`.
- Paid by (`disbursement_type`, text): Only return payments sent this way. One of: `CHECK`, `ACH`, `RPPS`, `PAYPAL`, `OFFLINE`, `INTERNATIONAL_E_PAYMENT` (International e payment), `AMEX`, `VIRTUAL_CARD` (Virtual card), `WALLET`, `CREDIT_CARD` (Credit card).
- Processed on or after (`process_date_on_or_after`, date): Only return payments processed on or after this date.
- Processed on or before (`process_date_on_or_before`, date): Only return payments processed on or before this date.
- Maximum results (`max_results`, number): How many records to return on this page (1-100). BILL returns 20 when this is blank. From 1 to 100.
- Page (`page`, text): The 'Next page' value from an earlier run of this action. Leave blank for the first page.
- Sort by (`sort_by`, text): Which field to sort on. Leave blank for BILL's own order. One of: `processDate`, `amount`, `createdTime`, `updatedTime`.
- Sort direction (`sort_direction`, text): Which way to sort. Ascending unless you choose otherwise. One of: `asc`, `desc`.

**Outputs**

- `count` (number): How many payments this page carried.
- `next_page` (text): Cursor for the next page, or empty when this is the last one. Pass it back as 'Page'.
- `payments` (list): The payments that matched.
- `prev_page` (text): Cursor for the previous page, when there is one.
- `status` (text): Status of the action execution ("success" on success).

**Example output**

```json
{
  "count": 1,
  "next_page": "",
  "payments": [
    {
      "amount": 420.5,
      "disbursementType": "ACH",
      "id": "stp01ACMEPAYMENTREC1",
      "status": "PAID",
      "vendorId": "00901ACMEVENDORRECORD"
    }
  ],
  "prev_page": "",
  "status": "success"
}
```

### List vendors

List the vendors on your BILL organization.

**Inputs**

- Name starts with (`name`, text): Only return vendors whose name starts with this.
- Archived only (`archived`, true/false): On returns only archived records, off only active ones. Leave unset for both.
- Account type (`account_type`, text): Only return records of this account type. One of: `NONE`, `BUSINESS`, `PERSON`.
- Created on or after (`created_on_or_after`, date): Only return records created on or after this date.
- Updated on or after (`updated_on_or_after`, date): Only return records changed on or after this date.
- Maximum results (`max_results`, number): How many records to return on this page (1-100). BILL returns 20 when this is blank. From 1 to 100.
- Page (`page`, text): The 'Next page' value from an earlier run of this action. Leave blank for the first page.
- Sort by (`sort_by`, text): Which field to sort on. Leave blank for BILL's own order. One of: `name`, `createdTime`, `updatedTime`.
- Sort direction (`sort_direction`, text): Which way to sort. Ascending unless you choose otherwise. One of: `asc`, `desc`.

**Outputs**

- `count` (number): How many vendors this page carried.
- `next_page` (text): Cursor for the next page, or empty when this is the last one. Pass it back as 'Page'.
- `prev_page` (text): Cursor for the previous page, when there is one.
- `status` (text): Status of the action execution ("success" on success).
- `total_count` (number): How many vendors matched in total, across all pages.
- `total_due_amount` (number): The total amount still due across everything matched.
- `vendors` (list): The vendors that matched.

**Example output**

```json
{
  "count": 1,
  "next_page": "",
  "prev_page": "",
  "status": "success",
  "total_count": 1,
  "total_due_amount": null,
  "vendors": [
    {
      "archived": false,
      "email": "ap@northwind.example",
      "id": "00901ACMEVENDORRECORD",
      "name": "Northwind Paper Co"
    }
  ]
}
```

### Update a bill

Change a bill. Only the fields you fill in are changed. Line items can only be edited, not added: each one needs the id BILL gave it.

**Inputs**

- Bill (`bill_id`, text, required): The bill's BILL id, which begins 00n. Use 'List bills' to find one.
- Vendor (`vendor_id`, text): Move the bill to a different vendor (id begins 009).
- Due date (`due_date`, date): A new due date for the bill.
- Description (`description`, text): A new note about the bill.
- Vendor invoice number (`invoice_number`, text): A corrected invoice number from the vendor.
- Invoice date (`invoice_date`, date): A corrected date on the vendor's invoice.
- Payment term (`payment_term_id`, text): The payment term for this bill. Leave blank to keep the one it already has -- BILL requires a term on every update, so this step reads it back and sends it unchanged.
- Purchase order number (`purchase_order_number`, text): A new PO number for this bill.
- Line items (`line_items`, list): Existing lines to change. Each must carry the line's own id (beginning 'bli') from 'Get a bill'.

**Outputs**

- `bill` (object): The bill after the update.
- `bill_id` (text): The bill that was updated.
- `status` (text): Status of the action execution ("success" on success).
- `updated_fields` (list): The BILL fields this step changed.

**Example output**

```json
{
  "bill": {
    "description": "September paper order",
    "dueDate": "2026-10-31",
    "id": "00n01ACMEBILLRECORD1"
  },
  "bill_id": "00n01ACMEBILLRECORD1",
  "status": "success",
  "updated_fields": [
    "description",
    "dueDate",
    "paymentTermId"
  ]
}
```

### Update a customer

Change a customer's details. Only the fields you fill in are changed.

**Inputs**

- Customer (`customer_id`, text, required): The customer's BILL id, which begins 0cu. Use 'List customers' to find one.
- Customer name (`name`, text): A new name for the customer.
- Email (`email`, text): A new email address for invoices.
- Company name (`company_name`, text): The customer's company name, if it differs from the name.
- Contact first name (`contact_first_name`, text): Given name of the person you deal with.
- Contact last name (`contact_last_name`, text): Family name of the person you deal with.
- Phone (`phone`, text): The customer's phone number.
- Fax (`fax`, text): The customer's fax number.
- Description (`description`, text): A note about this customer, kept on their record.
- Invoice currency (`invoice_currency`, text): Three-letter currency code their invoices are issued in, such as USD, CAD, EUR or GBP.
- Account type (`account_type`, text): Whether the customer is a business or a person. One of: `NONE`, `BUSINESS`, `PERSON`.
- Payment term (`payment_term_id`, text): How long the customer has to pay an invoice. Sets the default term on their invoices.
- Account number (`account_number`, text): Your reference for this customer. It appears on invoices.
- Billing address street (`billing_address_line1`, text): Street address.
- Billing address street line 2 (`billing_address_line2`, text): Suite, floor or unit.
- Billing address city (`billing_address_city`, text): City or town.
- Billing address state or province (`billing_address_state_or_province`, text): State, province or region.
- Billing address postal code (`billing_address_zip_or_postal_code`, text): ZIP or postal code.
- Billing address country (`billing_address_country`, text): Two-letter country code, such as US, CA or GB.

**Outputs**

- `customer` (object): The customer after the update.
- `customer_id` (text): The customer that was updated.
- `status` (text): Status of the action execution ("success" on success).
- `updated_fields` (list): The BILL fields this step changed.

**Example output**

```json
{
  "customer": {
    "companyName": "Harbour Design Ltd",
    "id": "0cu01ACMECUSTOMERREC",
    "name": "Harbour Design Studio"
  },
  "customer_id": "0cu01ACMECUSTOMERREC",
  "status": "success",
  "updated_fields": [
    "companyName"
  ]
}
```

### Update a vendor

Change a vendor's details. Only the fields you fill in are changed.

**Inputs**

- Vendor (`vendor_id`, text, required): The vendor's BILL id, which begins 009. Use 'List vendors' to find one; the id also appears in the vendor's BILL web address.
- Vendor name (`name`, text): A new name for the vendor.
- Address street (`address_line1`, text): Street address.
- Address street line 2 (`address_line2`, text): Suite, floor or unit.
- Address city (`address_city`, text): City or town.
- Address state or province (`address_state_or_province`, text): State, province or region.
- Address postal code (`address_zip_or_postal_code`, text): ZIP or postal code.
- Address country (`address_country`, text): Two-letter country code, such as US, CA or GB.
- Short name (`short_name`, text): A shorter name for the vendor, used on lists and reports.
- Your account number (`account_number`, text): Your account number with this vendor -- the one on their billing statement.
- Account type (`account_type`, text): Whether the vendor is a business or a person. One of: `NONE`, `BUSINESS`, `PERSON`.
- Email (`email`, text): The vendor's email address.
- Phone (`phone`, text): The vendor's phone number.
- Bill currency (`bill_currency`, text): Three-letter currency code their bills are issued in, such as USD, CAD, EUR or GBP.
- Legal company name (`company_name`, text): The vendor's registered company name, if it differs.
- Tax ID (`tax_id`, text): The vendor's tax identification number.
- Tax ID type (`tax_id_type`, text): Which kind of tax ID that is. One of: `EIN`, `SSN`.
- Track for 1099 (`track_1099`, true/false): Include this vendor's payments in 1099 reporting.
- Payment lead time (days) (`lead_time_in_days`, number): How many days ahead this vendor's payments must be sent. From 0 to 365.
- Combine payments (`combine_payments`, true/false): Pay several bills from this vendor in one payment.
- Payment term (`payment_term_id`, text): The payment term to apply to this vendor's bills.

**Outputs**

- `status` (text): Status of the action execution ("success" on success).
- `updated_fields` (list): The BILL fields this step changed.
- `vendor` (object): The vendor after the update.
- `vendor_id` (text): The vendor that was updated.

**Example output**

```json
{
  "status": "success",
  "updated_fields": [
    "phone"
  ],
  "vendor": {
    "id": "00901ACMEVENDORRECORD",
    "name": "Northwind Paper Co",
    "phone": "415-555-0188"
  },
  "vendor_id": "00901ACMEVENDORRECORD"
}
```
