Create a Custom Field for Invoices crm.invoice.userfield.add
Choose a tool for developing with an AI agent:
- use Alaio Vibecode to build an app for Bitrix24 from a task description without knowing any programming language. The agent writes the code and deploys the app to a server, with no manual hosting setup
- use the MCP server to develop a REST API integration in your own project. The agent refers to 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 creates a new custom field for invoices.
There is a system limitation on the field name - 20 characters. The custom field name is always prefixed with UF_CRM_, meaning the actual length of the name is 13 characters.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
fields |
A set of fields - an array of the form |
|
LIST |
Contains a set of list values for custom fields of type List. This is specified when creating/updating the field. Each value is an array with the following fields:
|
Code Examples
How to Use Examples in Documentation
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"order":{"SORT":"ASC"},"filter":{"%NAME":"Estimate"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.paysystem.list
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"order":{"SORT":"ASC"},"filter":{"%NAME":"Estimate"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.paysystem.list
// callListMethod: Retrieves all data at once. Use only for small datasets (< 1000 items) due to high memory load.
try {
const response = await $b24.callListMethod(
'crm.paysystem.list',
{
order: {"SORT": "ASC"},
filter: {
"%NAME": "Estimate",
}
},
(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 chunks using an iterator. Use for large datasets for efficient memory consumption.
try {
const generator = $b24.fetchListMethod('crm.paysystem.list', {
order: {"SORT": "ASC"},
filter: {
"%NAME": "Estimate",
}
}, '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.paysystem.list', {
order: {"SORT": "ASC"},
filter: {
"%NAME": "Estimate",
}
}, 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.paysystem.list',
[
'order' => ['SORT' => 'ASC'],
'filter' => [
'%NAME' => 'Estimate',
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
if ($response->more()) {
$response->next();
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error listing payment systems: ' . $e->getMessage();
}
BX24.callMethod(
"crm.paysystem.list", {
order: {"SORT": "ASC"},
filter: {
"%NAME": "Estimate",
}
},
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.paysystem.list',
[
'order' => ['SORT' => 'ASC'],
'filter' => ['%NAME' => 'Estimate']
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client and ctx are already created — see the Go SDK section
res, err := client.Core().Call(ctx, "crm.paysystem.list", b24.Params{
"order": b24.Params{
"SORT": "ASC",
},
"filter": b24.Params{
"%NAME": "Estimate",
},
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("crm.paysystem.list: %w", err)
}
// The response arrives as json.RawMessage — unmarshal it
// into a struct matching the response shape shown below on this page.
fmt.Printf("%s\n", res.Result)