Payment terms

A payment term defines the number of days until a payment is due. Use payment terms to set the number of days the customer has to pay a vendor. You can set paymentTermId in bills, invoices, and recurring invoices.

See the /v3/organizations/{organizationId}/payment-terms API for the complete list of available operations.

Create a payment term

In your POST /v3/organizations/{organizationId}/payment-terms request, set the required fields.

FieldDescription
namePayment term name. Examples include Net 30 and Due upon receipt.
daysDueNumber of days until payment is due. The value must be between 0 and 999. BILL prevents creating two payment terms with the same daysDue value in the same organization.
📘

Deleting payment terms is not supported

Payment terms cannot be deleted or archived.

Sample request

In this cURL example, a payment term of 60 days is created.

curl --request POST \
--url 'https://gateway.stage.bill.com/connect/v3/organizations/{organizationId}/payment-terms' \
--header 'content-type: application/json' \
--header 'devKey: {developer_key}' \
--header 'sessionId: {session_id}' \
--data '{
  "name": "Net 60",
  "daysDue": 60
}'

Response

In the response, a BILL-generated payment term id is available. The value begins with 00p. You can use this payment term id to set paymentTermId in bills, invoices, and recurring invoices.

{
  "id": "00p02CPOUSFAPFO2hv0s",
  "name": "Net 60",
  "daysDue": 60,
  "createdTime": "2026-07-13T04:29:34.000+00:00",
  "updatedTime": "2026-07-13T04:29:34.000+00:00"
}

See POST /v3/organizations/{organizationId}/payment-terms for more information.

Get list of payment terms

Use GET /v3/organizations/{organizationId}/payment-terms to get a list of payment terms for your organization. By default, you get 20 results on one page of results. Set max in your request to get up to 100 results on one page.

See Search operations with lists to learn about pagination, sorting, and filtering.

Sample request

In this cURL example, a list of payment terms is returned for the organization.

curl --request GET \
--url 'https://gateway.stage.bill.com/connect/v3/organizations/{organizationId}/payment-terms' \
--header 'devKey: {developer_key}' \
--header 'sessionId: {session_id}'

Response

In the response, the payment terms for the organization are available.

{
  "results": [
    {
      "id": "{payment_term_id_01}",
      "name": "Due upon receipt",
      "daysDue": 0,
      "createdTime": "2025-07-23T16:15:57.000+00:00",
      "updatedTime": "2025-07-23T16:15:57.000+00:00"
    },
    {
      "id": "{payment_term_id_02}",
      "name": "Net 15",
      "daysDue": 15,
      "createdTime": "2025-07-23T16:15:57.000+00:00",
      "updatedTime": "2025-07-23T16:15:57.000+00:00"
    }
  ]
}

See GET /v3/organizations/{organizationId}/payment-terms for more information.

Get payment term details

Use GET /v3/organizations/{organizationId}/payment-terms/{paymentTermId} to get details about an existing payment term.

Sample request

In this cURL example, the details of an existing payment term are returned using the payment term id.

curl --request GET \
--url 'https://gateway.stage.bill.com/connect/v3/organizations/{organizationId}/payment-terms/{paymentTermId}' \
--header 'devKey: {developer_key}' \
--header 'sessionId: {session_id}'

Response

In the response, the payment term details are available.

{
  "id": "00p02CPOUSFAPFO2hv0s",
  "name": "Net 60",
  "daysDue": 60,
  "createdTime": "2026-07-13T04:29:34.000+00:00",
  "updatedTime": "2026-07-13T04:29:34.000+00:00"
}

See GET /v3/organizations/{organizationId}/payment-terms/{paymentTermId} for more information.

Update a payment term

In your PATCH /v3/organizations/{organizationId}/payment-terms/{paymentTermId} request, set the fields you want to update.

Sample request

In this cURL example, the daysDue of an existing payment term is updated.

curl --request PATCH \
--url 'https://gateway.stage.bill.com/connect/v3/organizations/{organizationId}/payment-terms/{paymentTermId}' \
--header 'content-type: application/json' \
--header 'devKey: {developer_key}' \
--header 'sessionId: {session_id}' \
--data '{
  "name": "Net 30",
  "daysDue": 28
}'

Response

In the response, the updated payment term details are available. In addition, updatedTime reflects the time the payment term was last updated.

{
  "id": "00p02CPOUSFAPFO2hv0s",
  "name": "Net 30",
  "daysDue": 28,
  "createdTime": "2026-07-13T04:29:34.000+00:00",
  "updatedTime": "2026-07-13T04:36:10.000+00:00"
}

See PATCH /v3/organizations/{organizationId}/payment-terms/{paymentTermId} for more information.





Did this page help you?