« All modules

eCommerce Orders

Order connector for eCommerce and Dropship integrations. Both connector types use this same endpoint and payload. See the Sending Orders guide for the full integration flow.

Filters on list endpoints are URL path segments, not query strings — see Conventions. The Swagger tester works best for JSON body endpoints.
Both Dropship and eCommerce connector types use this endpoint with an identical payload. The only difference is where the invoice goes: Dropship connectors bill the preconfigured dropshipper contact; eCommerce connectors bill the client in the order. See Sending Orders for the full step-by-step integration guide, payload reference, and webhook formats.
GET /connector/{connector_id}/order/list/ List orders

Returns a paginated list of orders imported through a connector.

Filters are passed as URL path segments. Example: /connector/7/order/list/id:123/page:2/.

Supported filters: id, minid, page.

Parameters

NameInTypeRequiredDescription
connector_id path integer yes BOCP connector ID.

Responses

StatusDescription
200 Paginated list of orders. Each item includes linked sales receipts, invoices, and AWBs.
401 Missing or invalid Basic Auth credentials.
POST /connector/{connector_id}/order/{order_id}/ Submit a new order

Creates a new order in BOCP from the connector. The {order_id} URL segment must equal order_unique_id in the body — a mismatch returns 400.

DropShip vs eCommerce: Both connector types use this same endpoint and payload. The difference is in invoice issuance: for DropShip connectors the invoice is issued to the dropshipper's preconfigured BOCP contact; for eCommerce connectors the invoice goes directly to the client supplied in the order.

Authentication: HTTP Basic with credentials tied to this specific connector. The API user cannot access other connectors.

Webhook notifications (BOCP → partner): BOCP POSTs JSON to your configured notification URL on three events. Your endpoint must return HTTP 200 to acknowledge; HTTP 4xx closes the notification permanently; any other code retries periodically.

*Status change:* {"order_unique_id":"...","notification_type":"status","status_text":"..."}

*Invoice issued:* {"notification_type":"invoice","invoice_number":"...","invoice_date":"...","invoice_series":"...","invoice_total":0.0,"invoice_currency":"RON","invoice_total_RON":0.0,"invoice_url_html":"...","invoice_url_pdf":"..."}

*AWB issued:* {"notification_type":"awb","awb_number":"...","awb_packet_count":1,"weight":1.5,"shipping_payer":"...","cash_on_delivery":0.0,"cash_on_delivery_currency":"RON","delivery_country":"Romania","declared_value":0.0,"awb_url_pdf":"..."}

Product push (same URL): the identical notification URL also receives product-catalog pushes — BOCPRAPI is wired as a regular push destination (like Shopify, GoMag, ...), not a passive feed, so GET .../products/ no longer needs to be polled on a schedule. Every push carries the CURRENT full product state (not a diff), using the same field names as GET .../products/. See the *Sending Orders* guide, section "Product push (catalog changes)", for the full field list.

*New / republished:* notification_type="product_published". *Field, stock or price change:* notification_type="product_update". *Disconnected / deleted:* notification_type="product_unpublished"{"notification_type":"product_unpublished","cod_produs":"..."}. Single packet per product for now.

Parameters

NameInTypeRequiredDescription
connector_id path integer yes BOCP connector ID assigned when the connector was created.
order_id path string yes Partner-side order identifier. Must match `order_unique_id` in the body.

Request body (JSON)

See schema in the OpenAPI spec.

Responses

StatusDescription
200 Order accepted. Response `data` contains `BOCP_order_id`, plus `notices` and `errors` arrays.
400 Request is malformed or a required field is missing / invalid.
401 Missing or invalid Basic Auth credentials.
PUT /connector/{connector_id}/order/{order_id}/ Update an existing order

Updates an order previously submitted via POST. All body fields are optional except order_unique_id. Only fields present in the body are updated:

- items — if present, fully replaces all existing order items.
- client — if present, updates client data.
- order_status, order_cancelled — always updateable individually without sending the full payload.

Parameters

NameInTypeRequiredDescription
connector_id path integer yes
order_id path string yes

Request body (JSON)

See schema in the OpenAPI spec.

Responses

StatusDescription
200 OK — response uses the shared envelope.
400 Request is malformed or a required field is missing / invalid.
401 Missing or invalid Basic Auth credentials.
404 The requested resource does not exist.
GET /connector/{connector_id}/products/ Read the product catalog (pull feed)

Returns the products published to this connector, so you can obtain the product code used in order items and keep stock/prices in sync.

Only products published to this connector (from *Product Catalogue* in BOCP) are returned — there is no push; you pull the current list on demand. The response has the same shape as /product/list/, so a single parser handles both. Prices and stock reflect the connector's configured working point.

Filters are passed as URL path segments. Example: /connector/7/products/include:images/page:2/.

Supported filters: page, format (json|xml|csv), code (single product by code/barcode), modifiedafter:YYYY-MM-DD HH:MM:SS (incremental sync), include:images,properties, magazia_id (override pricing/stock working point).

Use cod_produs from each item as the code when building orders.

Parameters

NameInTypeRequiredDescription
connector_id path integer yes BOCP connector ID assigned when the connector was created.

Responses

StatusDescription
200 Paginated list of the products published to this connector.
401 Missing or invalid Basic Auth credentials.
404 The requested resource does not exist.
GET /connector/{connector_id}/config/ Read the connector configuration

Returns the connector's current configuration so your integration knows what to expect when it sends orders: which automations will run (sale issue, invoicing, proforma, AWB), how products sync in both directions, and how order events map to statuses.

Read-only — a GET never changes any setting.

Option fields are exported as an object with three keys so you can also see what values are possible:

{"value": "a", "label": "AUTOMAT: ...", "options": {"a": "AUTOMAT: ...", "m": "MANUAL: ..."}}

Settings that fall back to an account-wide default when not set per connector also carry a source key (connector or global).

Response groups (data):

- connector — id, site domain, type, active flag, order API URL, configured order_event_notification_url.
- products — auto-import into the ERP (autoimport_into_erp, import_mode: all | ordered_only | only_categories_with_autoimport), update options (update product code in ERP, disconnect multiple connections, group products, fields updated from the site), the sub-inventory where new products are created, and push (product push active, products_feed_url, and product_change_notify_url — the same URL as order_event_notification_url; BOCP pushes the full current product state there on publish/update/unpublish, same as any other push destination).
- order_processing — order confirmation method (automatic/manual), the working point where orders are auto-processed, action on order import (reserve stock / issue sale / ...), next-day scheduling hour, weekdays skipped for sale issue, cancel/return actions, ignored validation errors and statuses, repeated-order block threshold.
- invoicing — preferred invoice series, auto-issue trigger and stock condition, payment methods excluded from auto-invoicing, only-if-paid flag, e-mail auto-send.
- proforma — proforma series and the payment methods / status that trigger it.
- awb — AWB auto-issue mode and stock condition, latest issue hour, skipped weekdays.
- status_sync — the event → external status mapping used when BOCP pushes status changes back to your site.

Parameters

NameInTypeRequiredDescription
connector_id path integer yes BOCP connector ID assigned when the connector was created.

Responses

StatusDescription
200 The connector configuration, grouped by area.
401 Missing or invalid Basic Auth credentials.
404 The requested resource does not exist.

This page is generated from openapi.json.