Update Account Billing Preferences: /accounts/{account_id}/billing-preferences
Purpose
This API endpoint allows updating the billing preferences for a specific account.
Use Case
Use this endpoint when you need to modify how an account is billed. For example, you may want to change the invoice mode from manual to automatic, update the payment processor, align billing with the order start date, or update the communication profile for billing notifications. This ensures that invoices are generated correctly, payments are processed according to the selected terms, and the account’s billing behavior reflects the latest business rules.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| account_id | string | Unique identifier of the account to update. |
Query Parameters
No query parameters required for this endpoint.
Request Body
{
"account": {
"billing_preferences": {
"communication_profile": "COMMUNICATION_PROFILE",
"invoice_mode": "INVOICE_MODE",
"invoice_term": "INVOICE_TERM",
"billing_period": "BILLING_PERIOD",
"billing_start_date": "BILLING_START_DATE",
"charging_and_billing_alignment": "CHARGING_AND_BILLING_ALIGNMENT",
"payment_processor": "PAYMENT_PROCESSOR",
"payment_mode": "PAYMENT_MODE",
"payment_term": "PAYMENT_TERM",
"payment_term_alignment": "PAYMENT_TERM_ALIGNMENT"
}
}
}
| Attribute | Type | Description |
|---|---|---|
| account | object | Container object representing the account. |
| billing_preferences | object | Object containing all billing preference settings. |
| communication_profile | string | The communication profile for billing notifications. |
| invoice_mode | string | The mode of invoice generation (example: AUTOMATIC, MANUAL). |
| invoice_term | string | The basis for calculating invoice terms (example: Billing Start Date). |
| billing_period | string | Frequency of billing (example: 1 Month). |
| billing_start_date | string | The start date for billing (example: ORDER_START_DATE). |
| charging_and_billing_alignment | string | Whether charging and billing dates are aligned (true/false). |
| payment_processor | string | Payment processor used for the account (example: Cheque). |
| payment_mode | string | Payment mode (example: MANUAL, AUTOMATIC). |
| payment_term | string | Payment terms (example: Due on Receipt). |
| payment_term_alignment | string | Alignment for payment terms (example: BILLING_DATE). |
Response
On success, the API returns the updated account object including the applied billing preferences. Each preference field reflects the updated configuration, such as communication profile, invoice mode, billing start date, payment processor, and alignment settings. Some fields may include calculated or system-generated values, such as the day of the month the billing starts. This response confirms that the account’s billing behavior has been updated successfully and can be used to verify the applied settings.
Response Body
{
"account": {
"id": "ACCOUNT_ID",
"billing_preferences": {
"communication_profile": "COMMUNICATION_PROFILE",
"invoice_mode": "INVOICE_MODE",
"invoice_term": "INVOICE_TERM",
"billing_period": "BILLING_PERIOD",
"billing_start_date": "BILLING_START_DATE",
"billing_start_day_of_month": "BILLING_START_DAY_OF_MONTH",
"charging_and_billing_alignment": "CHARGING_AND_BILLING_ALIGNMENT",
"payment_processor": "PAYMENT_PROCESSOR",
"payment_mode": "PAYMENT_MODE",
"payment_term": "PAYMENT_TERM",
"payment_term_alignment": "PAYMENT_TERM_ALIGNMENT"
}
}
}
| Attribute | Type | Description |
|---|---|---|
| account | object | Container object representing the account. |
| id | string | Unique identifier of the account. |
| billing_preferences | object | Object containing the updated billing preference settings. |
| communication_profile | string | Updated communication profile for billing notifications. |
| invoice_mode | string | Updated mode of invoice generation. |
| invoice_term | string | Updated basis for invoice terms. |
| billing_period | string | Updated frequency of billing. |
| billing_start_date | string | Updated start date for billing. |
| billing_start_day_of_month | string | System-calculated start day of the month for billing. |
| charging_and_billing_alignment | string | Updated alignment of charging and billing dates. |
| payment_processor | string | Updated payment processor. |
| payment_mode | string | Updated payment mode. |
| payment_term | string | Updated payment term. |
| payment_term_alignment | string | Updated alignment of payment terms. |
Update Specific Contact by Type: /accounts/{account_id}/contacts/{contact_type}
Purpose
This API updates the contact information of a specified type (example: billing or shipping) for a specific account. There are two types of contact type: System Defined and User Defined. CONTACT_1 and CONTACT_2 are System Defined containing values respectively Billing Contact and Shipping Contact. User can add more contact(if needed) but those will come after CONTACT_1 and CONTACT_2. This endpoint allows partial or full updates to fields such as address, phone numbers, name, and communication preferences.
Use Case
Used when editing a contact's information, such as changing their phone number, title, or address, within a specific role (example: billing contact) under an account.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| account_id | String | Unique identifier of the account. |
| contact_type | Enum | Identifier for the contact type. (Example: CONTACT_1, CONTACT_2) |
Query Parameters
No query parameters required for this endpoint.
Request Body
{
"account": {
"contact": {
"salutation": "SALUTATION_NAME",
"designation": "DESIGNATION_NAME",
"first_name": "FIRST_NAME",
"middle_name": "MIDDLE_NAME",
"email": {
"address": "EMAIL_ADDRESS",
"do_not_email": "BOOLEAN_STRING"
},
"address_line_1": "ADDRESS_LINE_1",
"address_line_2": "ADDRESS_LINE_2",
"address_line_3": "ADDRESS_LINE_3",
"address_line_4": "ADDRESS_LINE_4",
"address_line_5": "ADDRESS_LINE_5",
"post_code": "POST_CODE",
"city": "CITY",
"state": "STATE",
"country": "COUNTRY",
"phone": {
"country_code": "CC",
"area_code": "AC",
"number": "PHONE_NUMBER",
"do_not_call": "BOOLEAN_STRING"
},
"fax": {
"country_code": "CC",
"area_code": "AC",
"number": "FAX_NUMBER",
"do_not_call": "BOOLEAN_STRING"
},
"mobile": {
"country_code": "CC",
"area_code": "AC",
"number": "MOBILE_NUMBER",
"do_not_call": "BOOLEAN_STRING"
},
"custom_attributes": [],
"receive_billing_information": "BOOLEAN_STRING"
}
}
}
| Attribute | Type | Description |
|---|---|---|
| salutation | String | Title prefix (example: Mr., Ms.). |
| designation | String | Role or job title (example: CEO). |
| first_name | String | Contact’s first name. |
| middle_name | String | Middle name of the contact. |
| email.address | String | Contact's email address. |
| email.do_not_email | String | Flag to suppress emails (true/false). |
| address_line_1-5 | String | Mailing address lines. |
| post_code | String | Postal code. |
| city | String | City name. |
| state | String | State or province. |
| country | String | Country name. |
| phone, fax, mobile | Object | Contact numbers and opt-out settings. |
| receive_billing_information | String | Flag to receive billing info (true/false). |
| custom_attributes | Array | Any custom metadata or user-defined fields. |
Response
Returns the updated contact object under the given type for the specified account.
Response Body
{
"account": {
"contacts": {
"type": "CONTACT_TYPE",
"type_display_name": "TYPE_DISPLAY_NAME",
"billing_contact": "BOOLEAN_STRING",
"shipping_contact": "BOOLEAN_STRING",
"salutation": {
"id": "SALUTATION_ID",
"name": "SALUTATION_NAME",
"link": "SALUTATION_LINK"
},
"designation": {
"id": "DESIGNATION_ID",
"name": "DESIGNATION_NAME",
"link": "DESIGNATION_LINK"
},
"first_name": "FIRST_NAME",
"middle_name": "MIDDLE_NAME",
"last_name": "LAST_NAME",
"email": {
"address": "EMAIL_ADDRESS",
"do_not_email": "BOOLEAN_STRING"
},
"address_line_1": "ADDRESS_LINE_1",
"address_line_2": "ADDRESS_LINE_2",
"address_line_3": "ADDRESS_LINE_3",
"address_line_4": "ADDRESS_LINE_4",
"address_line_5": "ADDRESS_LINE_5",
"post_code": "POST_CODE",
"city": "CITY",
"state": "STATE",
"country": "COUNTRY",
"phone": {
"country_code": "CC",
"area_code": "AC",
"number": "PHONE_NUMBER",
"full": "FULL_NUMBER",
"do_not_call": "BOOLEAN_STRING"
},
"fax": {
"country_code": "CC",
"area_code": "AC",
"number": "FAX_NUMBER",
"full": "FULL_FAX",
"do_not_call": "BOOLEAN_STRING"
},
"mobile": {
"country_code": "CC",
"area_code": "AC",
"number": "MOBILE_NUMBER",
"full": "FULL_MOBILE",
"do_not_call": "BOOLEAN_STRING"
},
"receive_billing_information": "BOOLEAN_STRING",
"created_by": "CREATOR_NAME",
"created_on": "CREATED_TIMESTAMP",
"last_updated_by": "UPDATER_NAME",
"last_updated_on": "UPDATED_TIMESTAMP",
"uuid": "CONTACT_UUID",
"version": "VERSION",
"custom_attributes": []
},
"id": "ACCOUNT_ID"
}
}
| Attribute | Type | Description |
|---|---|---|
| type | String | Type of contact (CONTACT_1, CONTACT_2, etc). |
| type_display_name | String | Human-readable type (example: "Billing Contact"). |
| billing_contact | String | Whether this is the billing contact. |
| shipping_contact | String | Whether this is the shipping contact. |
| salutation | Object | Salutation details with id, name, and link. |
| designation | Object | Designation info with id, name, and link. |
| first_name | String | First name of the contact. |
| middle_name | String | Middle name of the contact. |
| last_name | String | Last name of the contact. |
| email.address | String | Email address. |
| email.do_not_email | String | Email opt-out flag (true/false). |
| address_line_1-5 | String | Address fields for mailing purposes. |
| post_code | String | Postal code. |
| city, state, country | String | Location info. |
| phone, fax, mobile | Object | Full number, segmented parts, and opt-out flags. |
| receive_billing_information | String | Indicates if billing info should be sent here. |
| created_by, last_updated_by | String | Creator and last updater of the contact. |
| created_on, last_updated_on | String | Timestamps of creation and update. |
| uuid | UUID | Unique ID of the contact. |
| version | String | Version control metadata. |
| custom_attributes | Array | Custom user-defined metadata. |