Bulksplit API
The Bulksplit API is used to register consolidated shipment information for bulksplit parcels and pallet shipments transported in bulk.
The API provides three functions:
- Reserving bulk shipment IDs. These IDs can optionally be referenced at time of booking the individual shipments to enable a better tracking experience.
- Producing routing labels for a shipment ahead of booking. This is an optional step if you want to create a routing label when you start work on loading a pallet.
- Registering the complete shipment. When a pallet or group of pallets is ready for shipping, the pallet information including final weight should now be provided. This step is important as it triggers sending of the EDI information fir the consolidated shipment. At this point we can also produce a CMR waybill for the shipment and routing labels if your workflow involves labelling at the end.
Authentication
To integrate with the Bring APIs, you will need a Mybring user account with an API key. Information about prerequisites and authentication headers can be found on the general API Getting Started page. In addition to authentication, you need to be authorized.
Workflow
When working with the Bulksplit API the process is as follows:
1. Reserve a bulk shipment ID
Use the /bulk-shipment-ids endpoint to reserve an identifier for use on the CMR documentation and identifies the bulk shipment.
2. (Optional) Produce routing labels
Use the /bulk-shipments/{bulk-shipment-id}/routing-labels endpoint to reserve an identifier for use on the routing label and produce a printable PDF.
If you do not need to print routing labels until the whole shipment is registered this is not necessary.
3. (Optional) Book the shipping for the individual parcels/letters contained in the bulk shipment
Using the booking-api book shipping for the individual parcels or letters contained in this bulk shipment placing the reserved CMR ID into the consignments[0].references.consolidatedShipmentId field.
4. Register the bulk-shipment and produce labels
Use the /bulk-shipments/{bulk-shipment-id} endpoint to register the bulk-shipment providing all the necessary metadata to fill out the Waybill and Routing labels for each of the pallets, the API response contains links to the PDF
representation of these labels.
Lifetime of reserved id
Unused bulk-shipment-ids will be deleted after 1 year.
Pallet types
Valid pallet types are:
EUR_PALLETSOTHER_PALLETSOTHER_LOAD_CARRIER
Service types
Service types are identified by their 4 digit codes:
0332: Business Parcel Bulk0334: Express Nordic 09:00 Bulk0342: PickUp Parcel Bulk0344: Parcel Locker0349: Home Delivery Parcel0336: Business Pallet0370: Bring Parcel Connect0345: Home Delivery Mailbox3584: Letter pallet
Endpoints
- Base URL
https://api.bring.com/bulksplit/v1- OpenAPI document
- https://api.bring.com/bulksplit/v1/openapi
| Usage | Method | Endpoint |
|---|---|---|
| Reserve a bulk shipment id | POST |
/bulk-shipment-ids
|
| Register bulk shipment for reserved shipment-id | POST |
/bulk-shipments/{bulk-shipment-id}
|
| Reserve a routing label id and produce label | POST |
/bulk-shipments/{bulk-shipment-id}/routing-labels
|
| List available terminals | GET |
/terminals
|
Reserve a bulk shipment id
- POST
-
https://api.bring.com/bulksplit/v1/bulk-shipment-ids
Request
header parameters
-
X-Bring-Test-Indicator -
- Description
- No effect on this endpoint at the current time.
- Type
- string
Body schema
Media type: application/json
-
customerNumberRequired - Customer numberstring
-
Required
- Required if not using pre-reserved shipment numberobject
-
-
addressLine1Required - Sender's address line 1string
-
addressLine2 - Sender's address line 2string
-
cityRequired - Sender's citystring
-
countryCodeRequired - Sender's country codestring
-
nameRequired - Sender's namestring
-
postalCodeRequired - Sender's postal codestring
-
senderReference - Sender's referencestring
-
-
terminalIdRequired - Recipient terminal IDstring
Responses
201 Successfully reserved a bulk shipment ID
Schema
Media type: application/json
-
bulkShipmentIdRequired - Reserved bulk shipment IDstring
Request examples
{
"customerNumber": 1234567890,
"senderParty": {
"addressLine1": "Sender street 42",
"city": "Copenhagen",
"countryCode": "DK",
"name": "Bulky Sender",
"postalCode": 1234
},
"terminalId": "NO_OSLO_4"
}Response examples
{
"bulkShipmentId": "CS059102945NO"
}Register bulk shipment for reserved shipment-id
- POST
-
https://api.bring.com/bulksplit/v1/bulk-shipments/{bulk-shipment-id}
Request
path parameters
-
bulk-shipment-idRequired -
- Description
- Bulk shipment ID
- Type
- string
header parameters
-
X-Bring-Test-Indicator -
- Description
- If set to "true" indicates that this request is a test, otherwise the request is treated as real. If set all validations will be performed and labels will be generated but the booking will not be sent to the underlying systems.
- Type
- string
Body schema
Media type: application/json
- Required if shipment is crossing customs borderobject
-
-
numEurCertificatesRequired - Number of EUR certificatesinteger
-
numExportNotificationsRequired - Number of export notificationsinteger
-
numInvoicesRequired - Number of invoicesinteger
-
-
Required
- array of objects
-
palletTypeRequired - Type of palletstring
-
routingNumber - Routing number of the palletstring
servicesRequired- List of servicesarray of strings
-
- string
-
-
totalWeightKgRequired - Total weight of the pallet in kilogramsinteger
-
-
routingLabelsType - Indication of whether to produce routing labels at this time or not. ROUTING or NONE, defaults to ROUTING.string
-
shippingDateTimeRequired - Scheduled pickup datestring <date-time>
-
waybillType - Type of waybill to produce for the shipment. CMR or NONE, defaults to CMR.string
Responses
200 Successfully booked bulk shipment
Schema
Media type: application/json
-
bulkShipmentIdRequired - Bulk shipment IDstring
-
routingLabelsUrl - URL to the routing labelsstring <uri>
-
waybillUrl - URL to the waybill documentstring <uri>
Request examples
{
"customsDocuments": {
"numEurCertifications": 2,
"numExportNotifications": 3,
"numInvoices": 3
},
"pallets": [
{
"palletType": "EUR_PALLETS",
"routingNumber": "CS128103952NO",
"services": [
"0342",
"0345"
],
"totalWeightKg": 200
}
],
"routingLabelsType": "NONE",
"shippingDateTime": "2025-10-10T13:00:00+02:00",
"waybillType": "NONE"
}{
"pallets": [
{
"palletType": "EUR_PALLETS",
"services": [
"0342",
"0345"
],
"totalWeightKg": 200
}
],
"shippingDateTime": "2025-10-10T13:00:00+02:00"
}{
"pallets": [
{
"palletType": "EUR_PALLETS",
"routingNumber": "CS128103952NO",
"services": [
"0342",
"0345"
],
"totalWeightKg": 200
}
],
"shippingDateTime": "2025-10-10T13:00:00+02:00"
}Response examples
{
"bulkShipmentId": "CS059102945NO",
"routingLabelsUrl": "https://api.bring.com/labels/id/6eaeab58-da7e-4ce4-a1ce-b07607245e07.pdf",
"waybillUrl": "https://api.bring.com/labels/id/c1c65ccc-99fe-4aad-90a3-08546d99e3b8.pdf"
}Reserve a routing label id and produce label
- POST
-
https://api.bring.com/bulksplit/v1/bulk-shipments/{bulk-shipment-id}/routing-labels
Request
path parameters
-
bulk-shipment-idRequired -
- Description
- Bulk shipment ID
- Type
- string
header parameters
-
X-Bring-Test-Indicator -
- Description
- No effect on this endpoint at the current time.
- Type
- string
Responses
201 Successfully reserved a routing number
Schema
Media type: application/json
-
bulkShipmentIdRequired - Reserved bulk shipment IDstring
-
routingLabelIdRequired - The routing number represented on the labelstring
-
routingLabelUrlRequired - URL to the routing labelstring <uri>
Response examples
{
"bulkShipmentId": "CS059102945NO",
"routingLabelUrl": "https://api.bring.com/labels/id/6eaeab58-da7e-4ce4-a1ce-b07607245e07.pdf",
"routingNumber": "CS128103952NO"
}List available terminals
- GET
-
https://api.bring.com/bulksplit/v1/terminals
Responses
200 Successfully list all terminals
Schema
Media type: application/json
-
Required
- array of objects
-
addressLine1Required - First address line of the terminalstring
-
addressLine2Required - Second address line of the terminalstring
-
cityRequired - Terminal citystring
-
countryCodeRequired - Terminal countrystring
-
idRequired - Terminal Id for use when registering bulk shipmentstring
-
nameRequired - Name of the terminalstring
-
postalCodeRequired - Terminal post codestring
-
Response examples
{
"terminals": [
{
"addressLine1": "Alfasetvegen 24",
"addressLine2": null,
"city": "Oslo",
"countryCode": "NO",
"id": "NO_OSLO_4",
"name": "Logistikksenter Oslo",
"postalCode": 20
},
{
"addressLine1": "Södra Stigamovägen 9A",
"addressLine2": null,
"city": "Jönköping",
"countryCode": "SE",
"id": "SE_JONKOPING_24",
"name": "Bring",
"postalCode": 55650
}
]
}