Skip to content

Accounts

Accounts represent customers (buyers) in the Billtrust system. They are the top-level resource — documents, notes, representatives, and contacts all attach to an account.


POST /accounts/{account_number}

Creates a new account. Returns 409 if the account number already exists for this tenant. Use PUT for an idempotent upsert.

Path Parameters

Parameter Description
account_number Caller-defined unique identifier for this account within the tenant.

Request Body

Field Type Required Description
name string Yes Account display name. Must not be empty.
display_reference string No Short reference shown in the UI. Also used as the CashApp location-level customer identifier for payment matching.
currency string (ISO 4217) Conditional Required when the tenant uses the basic currency model. Locked on first write.
language string (ISO 639-1) No Used for Collections communications.
billing_address Address object No See Shared Schemas.
remit_to Address object No Remittance address.
phone string No
mobile_phone string No
fax string No
email string No Primary email. Used for Collections reminders.
payment_terms string No e.g. NET30
credit_limit number No
account_group string No Grouping/segment label.
parent_account_number string No Groups accounts into a parent-child hierarchy.
is_parent_account boolean No Marks this account as the parent. Required when parent_account_number is set.
branch_name string No Controls virtual eInvoice Connect site assignment and PDF branding.
description string No
vat string No VAT registration number.
company_registration_number string No
data_providers object No Credit provider identifiers. Passthrough object — any keys accepted.
custom_fields Custom Fields object No Collections typed custom fields. See Shared Schemas.

Status Codes

Status Description
201 Account created.
409 Account already exists. Use PUT to replace or PATCH to update.
422 Validation failure.

Example Request

curl -X POST https://ext.arc-aegis.billtrust.com/api/v1/ingest/accounts/ACCT-001 \
  -H "X-API-Key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corp",
    "currency": "USD",
    "email": "billing@acme.com",
    "billing_address": {
      "address1": "123 Main St",
      "city": "Atlanta",
      "state": "GA",
      "zip": "30301",
      "country": "US"
    }
  }'

Example Response — 201

{
  "csrId": 12345,
  "accountNumber": "ACCT-001",
  "name": "Acme Corp",
  "currency": "USD",
  "email": "billing@acme.com",
  "billing_address": {
    "address1": "123 Main St",
    "city": "Atlanta",
    "state": "GA",
    "zip": "30301",
    "country": "US"
  },
  "createdAt": "2026-05-12T14:00:00.000Z",
  "updatedAt": "2026-05-12T14:00:00.000Z"
}

Example Response — 409

{
  "error": "account_already_exists",
  "account_number": "ACCT-001",
  "message": "Account 'ACCT-001' already exists. Use PUT to replace it or PATCH to update it."
}

PUT /accounts/{account_number}

Creates or replaces an account. Returns 201 on create and 200 on replace. Safe to retry.

Request Body

Same fields as POST.

Status Codes

Status Description
201 Account created.
200 Account replaced.
422 Validation failure.

Example Request

curl -X PUT https://ext.arc-aegis.billtrust.com/api/v1/ingest/accounts/ACCT-001 \
  -H "X-API-Key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corp",
    "currency": "USD"
  }'

GET /accounts/{account_number}

Retrieves an account and its embedded notes.

Status Codes

Status Description
200 Account found.
404 Account not found.

Example Request

curl https://ext.arc-aegis.billtrust.com/api/v1/ingest/accounts/ACCT-001 \
  -H "X-API-Key: <your-api-key>"

Example Response — 200

{
  "csrId": 12345,
  "accountNumber": "ACCT-001",
  "name": "Acme Corp",
  "currency": "USD",
  "createdAt": "2026-05-12T14:00:00.000Z",
  "updatedAt": "2026-05-12T14:00:00.000Z",
  "notes": [
    {
      "reference": "NOTE-001",
      "accountNumber": "ACCT-001",
      "body": "Customer on payment plan.",
      "effective_date": "2026-05-12T00:00:00.000Z",
      "createdAt": "2026-05-12T14:00:00.000Z"
    }
  ]
}

PATCH /accounts/{account_number}

Partially updates an account. Only fields present in the request body are modified.

Status Codes

Status Description
200 Account updated. Returns the updated account.
404 Account not found.
422 Validation failure.

Example Request

curl -X PATCH https://ext.arc-aegis.billtrust.com/api/v1/ingest/accounts/ACCT-001 \
  -H "X-API-Key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "credit_limit": 10000,
    "payment_terms": "NET60"
  }'

POST /accounts/{account_number}/notes

Creates an immutable note on an account. Notes cannot be updated or deleted (SOX requirement).

Request Body

Field Type Required Description
reference string Yes Caller-defined unique identifier for this note within the tenant.
body string Yes Note content. Must not be empty.
subject string No Note subject line.
note_type string No Free-text classification (e.g. credit, collections).
effective_date string No ISO 8601 datetime. Defaults to submission timestamp.

Status Codes

Status Description
201 Note created.
404 Parent account not found.
409 A note with this reference already exists for this tenant.
422 Validation failure.

Example Request

curl -X POST https://ext.arc-aegis.billtrust.com/api/v1/ingest/accounts/ACCT-001/notes \
  -H "X-API-Key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "reference": "NOTE-001",
    "body": "Customer agreed to payment plan.",
    "subject": "Payment arrangement confirmed",
    "note_type": "payment_arrangement",
    "effective_date": "2026-05-12T00:00:00Z"
  }'

Example Response — 201

{
  "reference": "NOTE-001",
  "account_number": "ACCT-001",
  "body": "Customer agreed to payment plan.",
  "subject": "Payment arrangement confirmed",
  "note_type": "payment_arrangement",
  "effective_date": "2026-05-12T00:00:00.000Z",
  "created_at": "2026-05-12T15:00:00.000Z"
}

GET /accounts/{account_number}/notes/{reference}

Retrieves a single note by its caller-defined reference.

Status Codes

Status Description
200 Note found.
404 Account not found, or note reference not found on this account.

Example Request

curl https://ext.arc-aegis.billtrust.com/api/v1/ingest/accounts/ACCT-001/notes/NOTE-001 \
  -H "X-API-Key: <your-api-key>"