{% note tip "" %}
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.
{% endnote %}
Scope:
saleWho can execute the method: administrator
The method sale.paymentItemShipment.getFields retrieves the available fields of the payment item shipment binding table.
No parameters.
{% include Footnote on examples %}
{% list tabs %}
-
cURL (Webhook)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.paymentitemshipment.getfields
-
cURL (OAuth)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/sale.paymentitemshipment.getfields
-
JS (TS)
// This snippet is an ES module: top-level await requires type="module" or a bundler. // $b24 is an already-initialized SDK instance (see the SDK "Get started" guide). import { Text } from '@bitrix24/b24jssdk' import type { B24Frame } from '@bitrix24/b24jssdk' declare const $b24: B24Frame type FieldInfo = { isImmutable: boolean isReadOnly: boolean isRequired: boolean type: string } // Shape of the payload returned in result (match the "response handling" section of the page) type GetFieldsResult = { paymentItemShipment: Record<string, FieldInfo> } try { const response = await $b24.actions.v2.call.make<GetFieldsResult>({ method: 'sale.paymentitemshipment.getfields', params: {}, requestId: Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) } else { const result = response.getData()!.result console.info(result.paymentItemShipment) } } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) }
-
JS (UMD)
<!-- Load the SDK (UMD build); it is exposed as the global B24Js --> <script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script> <script> async function getPaymentItemShipmentFields() { try { // Initialize the SDK inside a Bitrix24 frame const $b24 = await B24Js.initializeB24Frame() const response = await $b24.actions.v2.call.make({ method: 'sale.paymentitemshipment.getfields', params: {}, requestId: B24Js.Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) return } const result = response.getData().result console.info(result.paymentItemShipment) } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) } } document.addEventListener('DOMContentLoaded', getPaymentItemShipmentFields) </script>
-
Python
from b24pysdk.errors import BitrixAPIError, BitrixSDKException try: bitrix_response = client.sale.paymentitemshipment.get_fields().response result = bitrix_response.result print(result) except BitrixAPIError as error: print( "Bitrix API error", f"error: {error.error}", f"error_description: {error.error_description}", sep="\n", ) except BitrixSDKException as error: print(f"Bitrix SDK error: {error.message}") except Exception as error: print(f"Unexpected error: {error}")
-
PHP
try { $response = $b24Service ->core ->call( 'sale.paymentitemshipment.getfields', [] ); $result = $response ->getResponseData() ->getResult(); echo 'Success: ' . print_r($result, true); // Your required data processing logic processData($result); } catch (Throwable $e) { error_log($e->getMessage()); echo 'Error getting payment item shipment fields: ' . $e->getMessage(); }
-
BX24.js
BX24.callMethod( "sale.paymentitemshipment.getfields", {}, function(result) { if (result.error()) { console.error(result.error()); } else { console.info(result.data()); } } );
-
PHP CRest
require_once('crest.php'); $result = CRest::call( 'sale.paymentitemshipment.getfields', [] ); echo '<PRE>'; print_r($result); echo '</PRE>';
-
Go
// client and ctx are already created — see the Go SDK section res, err := client.Core().Call(ctx, "sale.paymentitemshipment.getfields", nil, b24.WithIdempotent()) if err != nil { return fmt.Errorf("sale.paymentitemshipment.getfields: %w", err) } // The method wraps the response in an object with the "paymentItemShipment" key. raw, ok := b24.Unwrap(res.Result, "paymentItemShipment") if !ok { return fmt.Errorf("no paymentItemShipment key in the response") } fmt.Printf("%s\n", raw)
{% endlist %}
HTTP status: 200
{
"result": {
"paymentItemShipment": {
"dateInsert": {
"isImmutable": false,
"isReadOnly": true,
"isRequired": false,
"type": "datetime"
},
"id": {
"isImmutable": false,
"isReadOnly": true,
"isRequired": false,
"type": "integer"
},
"paymentId": {
"isImmutable": true,
"isReadOnly": false,
"isRequired": true,
"type": "integer"
},
"shipmentId": {
"isImmutable": true,
"isReadOnly": false,
"isRequired": true,
"type": "integer"
},
"xmlId": {
"isImmutable": false,
"isReadOnly": false,
"isRequired": false,
"type": "string"
}
}
},
"time": {
"start": 1713171556.275477,
"finish": 1713171556.555498,
"duration": 0.28002095222473145,
"processing": 0.008104085922241211,
"date_start": "2024-04-15T11:59:16+02:00",
"date_finish": "2024-04-15T11:59:16+02:00"
}
}#|
|| Name
type | Description ||
|| result
object | Root element of the response ||
|| paymentItemShipment
object | Object in the format {"field_1": "value_1", ... "field_N": "value_N"}. Where field is the identifier of the sale_payment_item_shipment object, and value is an object of type rest_field_description ||
|| time
time | Information about the request execution time ||
|#
HTTP status: 400
{
"error": 0,
"error_description": "error"
}{% include notitle error handling %}
#|
|| Code | Description ||
|| 200040300010 | Insufficient permissions to read available payment item shipment binding fields ||
|| 0 | Other errors (e.g., fatal errors) ||
|#
{% include system errors %}