Get a List of Invoices crm.invoice.list
If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the MCP server so that the assistant can utilize the official REST documentation.
Scope:
crmWho can execute the method: any user
DEPRECATED
The development of this method has been halted. Please use Universal Methods for Invoices.
This method returns a list of invoices. It is an implementation of the list method for invoices.
When querying, use the following masks:
- "*" — to select all fields (excluding custom fields)
- "UF_*" — to select all custom fields.
The method does not return properties and line items of the invoice. To obtain properties and line items, use the method crm.invoice.get.
Method Parameters
See the description of list methods.
Required parameters are marked with *
|
Name |
Description |
|
filter |
Record filter. By default, all records are returned without filtering |
|
order |
Record sorting. Sorting is supported by the same fields as in the filter |
Code Examples
How to Use Examples in Documentation
This example outputs data to the console. If you need to display data differently, implement your own data handling for the results returned by result.data() and result.error().
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"order":{"DATE_INSERT":"ASC"},"filter":{">PRICE":100},"select":["ID","ACCOUNT_NUMBER","ORDER_TOPIC","DATE_INSERT","STATUS_ID","PRICE","CURRENCY_ID"]}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.invoice.list
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"order":{"DATE_INSERT":"ASC"},"filter":{">PRICE":100},"select":["ID","ACCOUNT_NUMBER","ORDER_TOPIC","DATE_INSERT","STATUS_ID","PRICE","CURRENCY_ID"],"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.invoice.list
// callListMethod: Retrieves all data at once. Use only for small selections (< 1000 items) due to high memory load.
try {
const response = await $b24.callListMethod(
'crm.invoice.list',
{
"order": { "DATE_INSERT": "ASC" },
"filter": { ">PRICE": 100 },
"select": [ "ID", "ACCOUNT_NUMBER", "ORDER_TOPIC", "DATE_INSERT", "STATUS_ID", "PRICE", "CURRENCY_ID" ]
},
(progress) => { console.log('Progress:', progress) }
)
const items = response.getData() || []
for (const entity of items) { console.log('Entity:', entity) }
} catch (error) {
console.error('Request failed', error)
}
// fetchListMethod: Retrieves data in parts using an iterator. Use for large volumes of data for efficient memory consumption.
try {
const generator = $b24.fetchListMethod('crm.invoice.list', { "order": { "DATE_INSERT": "ASC" }, "filter": { ">PRICE": 100 }, "select": [ "ID", "ACCOUNT_NUMBER", "ORDER_TOPIC", "DATE_INSERT", "STATUS_ID", "PRICE", "CURRENCY_ID" ] }, 'ID')
for await (const page of generator) {
for (const entity of page) { console.log('Entity:', entity) }
}
} catch (error) {
console.error('Request failed', error)
}
// callMethod: Manual control of pagination through the start parameter. Use for precise control over request batches. Less efficient for large data than fetchListMethod.
try {
const response = await $b24.callMethod('crm.invoice.list', { "order": { "DATE_INSERT": "ASC" }, "filter": { ">PRICE": 100 }, "select": [ "ID", "ACCOUNT_NUMBER", "ORDER_TOPIC", "DATE_INSERT", "STATUS_ID", "PRICE", "CURRENCY_ID" ] }, 0)
const result = response.getData().result || []
for (const entity of result) { console.log('Entity:', entity) }
} catch (error) {
console.error('Request failed', error)
}
try {
$response = $b24Service
->core
->call(
'crm.invoice.list',
[
'order' => ['DATE_INSERT' => 'ASC'],
'filter' => ['>PRICE' => 100],
'select' => ['ID', 'ACCOUNT_NUMBER', 'ORDER_TOPIC', 'DATE_INSERT', 'STATUS_ID', 'PRICE', 'CURRENCY_ID'],
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
error_log($result->error());
echo 'Error: ' . $result->error();
} else {
echo 'Data: ' . print_r($result->data(), true);
if ($result->more()) {
$result->next();
}
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error fetching invoice list: ' . $e->getMessage();
}
BX24.callMethod(
"crm.invoice.list",
{
"order": { "DATE_INSERT": "ASC" },
"filter": { ">PRICE": 100 },
"select": [ "ID", "ACCOUNT_NUMBER", "ORDER_TOPIC", "DATE_INSERT", "STATUS_ID", "PRICE", "CURRENCY_ID" ]
},
function(result)
{
if(result.error())
console.error(result.error());
else
{
console.dir(result.data());
if(result.more())
result.next();
}
}
);
require_once('crest.php');
$result = CRest::call(
'crm.invoice.list',
[
'order' => ['DATE_INSERT' => 'ASC'],
'filter' => ['>PRICE' => 100],
'select' => ['ID', 'ACCOUNT_NUMBER', 'ORDER_TOPIC', 'DATE_INSERT', 'STATUS_ID', 'PRICE', 'CURRENCY_ID']
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
Fields Returned by the Method
|
Field / Type |
Description |
Note |
|
ID |
Identifier |
Read-only |
|
ACCOUNT_NUMBER |
Number |
Required |
|
COMMENTS |
Manager's comment |
|
|
CREATED_BY |
Created by user |
Read-only |
|
CURRENCY |
Currency identifier |
Read-only |
|
DATE_BILL |
Invoice date |
|
|
DATE_INSERT |
Creation date |
|
|
DATE_MARKED |
Rejection date |
Provided if the invoice is rejected |
|
DATE_PAY_BEFORE |
Payment due date |
|
|
DATE_PAYED |
Date moved to paid status |
Read-only |
|
DATE_STATUS |
Date status changed |
Read-only |
|
DATE_UPDATE |
Date updated |
Read-only |
|
EMP_PAYED_ID |
Identifier of the user who last marked the invoice as "paid" |
Read-only |
|
EMP_STATUS_ID |
Identifier of the user who last changed the invoice status |
Read-only |
|
LID |
Site identifier |
Read-only |
|
IS_RECURRING |
Flag for recurring deal template |
|
|
XML_ID |
External code |
|
|
ORDER_TOPIC |
Subject |
Required |
|
PAY_SYSTEM_ID |
Identifier of the payment form |
Required |
|
PAY_VOUCHER_DATE |
Payment date |
Provided if the invoice is paid |
|
PAY_VOUCHER_NUM |
Payment document number |
Provided if the invoice is paid |
|
PAYED |
Payment status |
Read-only |
|
PERSON_TYPE_ID |
Payer type identifier |
Required |
|
PRICE |
Amount |
Read-only |
|
REASON_MARKED |
Status comment |
Provided if the invoice is paid or rejected |
|
RESPONSIBLE_EMAIL |
Responsible person's e-mail |
Read-only |
|
RESPONSIBLE_ID |
Identifier of the responsible person |
|
|
RESPONSIBLE_LAST_NAME |
Last name of the responsible person |
Read-only |
|
RESPONSIBLE_LOGIN |
Login of the responsible person |
Read-only |
|
RESPONSIBLE_NAME |
First name of the responsible person |
Read-only |
|
RESPONSIBLE_PERSONAL_PHOTO |
Identifier of the responsible person's photo |
Read-only |
|
RESPONSIBLE_SECOND_NAME |
Middle name of the responsible person |
Read-only |
|
RESPONSIBLE_WORK_POSITION |
Position of the responsible person |
Read-only |
|
STATUS_ID |
Status identifier |
Identifier of the "INVOICE_STATUS" reference |
|
TAX_VALUE |
Tax amount |
Read-only |
|
UF_COMPANY_ID |
Company identifier |
Provided if the payer is a "Legal entity" |
|
UF_CONTACT_ID |
Contact identifier |
Provided if the payer is an "Individual" or as a contact person for the company |
|
UF_MYCOMPANY_ID |
Identifier of your company |
Provided as the company with invoice details (binding to details is set separately) |
|
UF_DEAL_ID |
Identifier of the related deal |
|
|
UF_QUOTE_ID |
Identifier of the related estimate |
|
|
USER_DESCRIPTION |
Comment |