Search intercompany bills

Operation ID: searchIntercompanyBills

Group: Accounting › Intercompany Bills

Open in the interactive reference

POST /accounting/intercompany-bills/search

Read-only: A read that takes its filters in the body. Changes nothing, and ignores Idempotency-Key.

Searches intercompany bills. Each intercompany bill is returned in full, including its lines.

Parameters

Name In Type Required Description
Api-Version header string · v1 yes The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1.

Request body

Required, application/json: searchIntercompanyBillsInput.

Field Type Required Description
filters object no The filters to apply. An intercompany bill must match every filter you send. Omit to return all intercompany bills.
filters.id string no Limits results to the intercompany bill with this identifier.
filters.intercompanyBillNumber string no Limits results to the intercompany bill with this intercompany bill number. The match is exact. Example: 'ICB-1'.
filters.name string no Limits results to intercompany bills whose name contains this text. The match is case-insensitive. A blank value is ignored.
filters.description string no Limits results to intercompany bills whose description contains this text. The match is case-insensitive. A blank value is ignored.
filters.fromEntityId string no Limits results to intercompany bills issued by this legal entity. See id on GET base/entities.
filters.toEntityId string no Limits results to intercompany bills issued to this legal entity. See id on GET base/entities.
filters.eitherEntityId string no Limits results to intercompany bills where this legal entity is either fromEntityId or toEntityId. See id on GET base/entities.
filters.status array<string> no Limits results to intercompany bills in any of these statuses. Accepted values: 'draft', 'open', 'partiallySettled', 'settled', 'voided'. Any other value matches no intercompany bill.
filters.type array<string> no Limits results to intercompany bills of any of these types. Accepted values: 'manual', 'system'. Any other value matches no intercompany bill.
filters.billMarkup array<string> no Limits results to intercompany bills with any of these markup types. Accepted values: 'none', 'percentage', 'flatFee'. Any other value matches no intercompany bill.
filters.postingDirection array<string> no Limits results to intercompany bills with any of these posting directions. Accepted values: 'normal', 'reverse'. Any other value matches no intercompany bill.
filters.currency string no Limits results to intercompany bills in this currency. The match is exact. Format ISO 4217, for example 'USD'.
filters.paymentTerms string no Limits results to intercompany bills with this payment term. Accepted values: 'net30', 'net60', 'net90', 'dueOnReceipt', 'net15', 'custom'. Any other value matches no intercompany bill.
filters.exchangeRate object no Limits results to intercompany bills whose exchangeRate is in this range. Omit either bound to leave that side open.
filters.exchangeRate.min decimal no The inclusive lower bound.
filters.exchangeRate.max decimal no The inclusive upper bound.
filters.markupAmount object no Limits results to intercompany bills whose markupAmount is in this range. Omit either bound to leave that side open.
filters.markupAmount.min decimal no The inclusive lower bound.
filters.markupAmount.max decimal no The inclusive upper bound.
filters.billDate object no Limits results to intercompany bills dated in this range. Omit either bound to leave that side open.
filters.billDate.start date no The inclusive lower bound. Format YYYY-MM-DD.
filters.billDate.end date no The inclusive upper bound. Format YYYY-MM-DD.
filters.dueDate object no Limits results to intercompany bills falling due in this range. Omit either bound to leave that side open.
filters.dueDate.start date no The inclusive lower bound. Format YYYY-MM-DD.
filters.dueDate.end date no The inclusive upper bound. Format YYYY-MM-DD.
filters.serviceDate object no Limits results to intercompany bills whose serviceDate is in this range. Omit either bound to leave that side open.
filters.serviceDate.start date no The inclusive lower bound. Format YYYY-MM-DD.
filters.serviceDate.end date no The inclusive upper bound. Format YYYY-MM-DD.
filters.lastModifiedDate object no Limits results to intercompany bills last changed in this range. Omit either bound to leave that side open.
filters.lastModifiedDate.start date-time no The inclusive lower bound, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
filters.lastModifiedDate.end date-time no The inclusive upper bound, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
page object no The pagination controls. Omit for the first page.
page.cursor string no The cursor from the previous response's pagination.nextCursor. Omit on the first request.
page.size number no The number of intercompany bills per page, between 1 and 200. Defaults to 50. A value above 200 is treated as 200, not rejected.
{
  "filters": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "intercompanyBillNumber": "<intercompanyBillNumber>",
    "name": "<name>",
    "description": "<description>",
    "fromEntityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "toEntityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "eitherEntityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "status": [
      "<status>"
    ],
    "type": [
      "<type>"
    ],
    "billMarkup": [
      "<billMarkup>"
    ],
    "postingDirection": [
      "<postingDirection>"
    ],
    "currency": "<currency>",
    "paymentTerms": "<paymentTerms>",
    "exchangeRate": {
      "min": "19.99",
      "max": "19.99"
    },
    "markupAmount": {
      "min": "19.99",
      "max": "19.99"
    },
    "billDate": {
      "start": "2026-01-15",
      "end": "2026-01-15"
    },
    "dueDate": {
      "start": "2026-01-15",
      "end": "2026-01-15"
    },
    "serviceDate": {
      "start": "2026-01-15",
      "end": "2026-01-15"
    },
    "lastModifiedDate": {
      "start": "2026-01-15T09:30:00.000Z",
      "end": "2026-01-15T09:30:00.000Z"
    }
  },
  "page": {
    "cursor": "<cursor>",
    "size": 0
  }
}

Response

200 Success

Under data (searchIntercompanyBillsOutput):

Field Type Required Description
items array<object> yes The intercompany bills on this page, most recently created first. An empty array when nothing matches.
items[].id string yes The unique identifier for the intercompany bill.
items[].intercompanyBillNumber string no The intercompany bill number. Unique within the tenant. Example: 'ICB-1'.
items[].name string no The name of the intercompany bill.
items[].description string no A description of the intercompany bill.
items[].fromEntityId string no The legal entity that issues the intercompany bill and is owed the amount. See id on GET base/entities.
items[].fromEntityName string no The name of the issuing legal entity. See entityName on GET base/entities.
items[].toEntityId string no The legal entity that receives the intercompany bill and is charged for it. See id on GET base/entities.
items[].toEntityName string no The name of the receiving legal entity. See entityName on GET base/entities.
items[].intercompanyProcessId string no The intercompany process whose intercompany receivable and payable accounts balance each legal entity's side of the bill's journal entry. Bills created by a system process that don't name one use the default 'Intercompany Transaction' process. No endpoint returns intercompany processes.
items[].intercompanyProcessName string no The name of the intercompany process.
items[].currency string no The currency of the intercompany bill. Every amount on the bill and its lines is in this currency. Format ISO 4217, for example 'USD'.
items[].exchangeRate decimal no The rate used to convert amounts from the intercompany bill's currency to each legal entity's functional currency. The same rate is used for both legal entities.
items[].billMarkup string no How markupAmount is applied to the lines. Possible values: 'none' (no markup: markupAmount and each line's markup are 0), 'percentage' (each line's markup is its amount multiplied by markupAmount), 'flatFee' (markupAmount is a total split evenly across the lines).
items[].markupAmount decimal no The markup on the lines. How to read markupAmount depends on billMarkup. When billMarkup is 'percentage', markupAmount is a decimal fraction of each line's amount, so 0.1 is 10%. When billMarkup is 'flatFee', markupAmount is a total in the intercompany bill's currency, split evenly across the lines and rounded to 2 decimal places, with any remainder on the first line. 0 when billMarkup is 'none'.
items[].billDate date no The date of the intercompany bill. Format YYYY-MM-DD.
items[].paymentTerms string no The payment term of the intercompany bill. Possible values: 'net30', 'net60', 'net90', 'dueOnReceipt', 'net15', 'custom'.
items[].dueDate date no The date the intercompany bill falls due. Format YYYY-MM-DD.
items[].serviceDate date no The start date of the service period the intercompany bill covers. Format YYYY-MM-DD.
items[].status string no The status of the intercompany bill. Possible values: 'draft', 'open', 'partiallySettled', 'settled', 'voided'.
items[].voidReason string no The reason given when the intercompany bill was voided. Absent when status is not 'voided'.
items[].type string no How the intercompany bill was created. Possible values: 'manual' (in the application), 'system' (by a system process, such as an allocation run).
items[].postingDirection string no The direction of the intercompany bill's journal entry postings. Possible values: 'normal', 'reverse'. When postingDirection is 'reverse', the debit and credit accounts of the intercompany process are swapped.
items[].lastModifiedDate date-time yes The date and time the intercompany bill last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
items[].lines array<object> no The lines of the intercompany bill. An empty array when the bill has no lines.
items[].lines[].id string yes The unique identifier for the line.
items[].lines[].description string no A description of the line.
items[].lines[].amount decimal no The amount of the line before markup, in the intercompany bill's currency.
items[].lines[].fromAccountId string no The account the issuing legal entity credits with the line's amount, typically where it records the income or recharge. Markup is credited to the issuing entity's markup account instead. See id on GET accounting/accounts/:id.
items[].lines[].toAccountId string no The account the receiving legal entity debits with the line's amount plus markup, typically where it records the cost or asset. See id on GET accounting/accounts/:id.
items[].lines[].fromValueAllocationId string no The numeric id of the value accounting tags on the issuing legal entity's side, not a UUID. No endpoint returns value accounting tags. Absent when value accounting tags are not in use.
items[].lines[].toValueAllocationId string no The numeric id of the value accounting tags on the receiving legal entity's side, not a UUID. No endpoint returns value accounting tags. Absent when value accounting tags are not in use.
items[].lines[].markupAmount decimal no The markup on the line, in the intercompany bill's currency, calculated from the bill's billMarkup and markupAmount.
items[].lines[].fromTaxAmount decimal no The tax the issuing legal entity charges on the line (output tax), in the intercompany bill's currency. It is the rate of the issuing entity's tax configuration multiplied by the line's amount plus markup. Absent when no tax applies.
items[].lines[].toTaxAmount decimal no The tax the receiving legal entity pays on the line and records as recoverable (input tax), in the intercompany bill's currency. It is the rate of the receiving entity's tax configuration multiplied by the line's amount plus markup. Absent when no tax applies.
pagination object yes The pagination details for this page.
pagination.nextCursor string no The cursor for the next page. Pass it as page.cursor. Absent on the last page.
pagination.hasMore boolean yes Whether more intercompany bills remain after this page.
{
  "data": {
    "items": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "intercompanyBillNumber": "<intercompanyBillNumber>",
        "name": "<name>",
        "description": "<description>",
        "fromEntityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "fromEntityName": "<fromEntityName>",
        "toEntityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "toEntityName": "<toEntityName>",
        "intercompanyProcessId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "intercompanyProcessName": "<intercompanyProcessName>",
        "currency": "<currency>",
        "exchangeRate": "19.99",
        "billMarkup": "<billMarkup>",
        "markupAmount": "19.99",
        "billDate": "2026-01-15",
        "paymentTerms": "<paymentTerms>",
        "dueDate": "2026-01-15",
        "serviceDate": "2026-01-15",
        "status": "<status>",
        "voidReason": "<voidReason>",
        "type": "<type>",
        "postingDirection": "<postingDirection>",
        "lastModifiedDate": "2026-01-15T09:30:00.000Z",
        "lines": [
          {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "description": "<description>",
            "amount": "19.99",
            "fromAccountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "toAccountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "fromValueAllocationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "toValueAllocationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "markupAmount": "19.99",
            "fromTaxAmount": "19.99",
            "toTaxAmount": "19.99"
          }
        ]
      }
    ],
    "pagination": {
      "nextCursor": "<nextCursor>",
      "hasMore": true
    }
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}

Statuses