enfore Sales Orders API (0.4.5)

Download OpenAPI specification:Download

enfore API for managing sales orders

Sales Order Drafts

A sales order draft is a draft object that can, once all data has been provided, be converted into a sales order.

During the shopping process, a sales order draft is used to hold the "not yet final" basket that is built-up at the register/online store by scanning/adding items and other information (e.g., customer name).

Iterate over sales order drafts.

Returns sales order drafts, sorted in ascending order by creation order date and time.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

query Parameters
from
required
string <date-time>

Defines the time starting from which objects are to be returned. Objects with exactly this date are also returned - this means that the start of a left-closed interval is defined. Timestamp in UTC. The date-time notation as defined by RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt), section 5.6, with the "Z" as time-offset. For example, 2017-07-21T17:32:28.123Z

to
required
string <date-time>

Defines the time up to which objects are to be returned. Objects with exactly this date are not returned - this means that the end of a right-open interval is defined. Timestamp in UTC. The date-time notation as defined by RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt), section 5.6, with the "Z" as time-offset. For example, 2017-07-21T17:32:28.123Z

limit
integer <int64> [ 1 .. 5000 ]

Max number of objects to be returned per page. Note that both the items as well as the problems arrays of the query response count towards this number to allow a simple, consistent paging over all items (and problems) of a given timeframe. If not given, defaults to 200.

offset
integer <int64> >= 0

Offset of items and problems of where to start the next page. Similar to limit and offset in SQL, one would obtain the second page with limit=10&offset=10. Note that this paging with limit and offset is within a time interval that is specified with from and to. If not given, defaults to 0.

sales_channel_id
string

When specified, only sales order drafts for the specified sales channel are returned.

number
string

When specified, only sales order drafts with the specified number are returned.

Responses

200

Data successfully returned

400

Invalid parameters were sent by the client

403

Credentials missing or not sufficient

get/org/{org-id}/sales-order-drafts

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "problems":
    []
}

Create a new sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

Request Body schema: application/json
additional_invoice_information
Array of objects (AdditionalInvoiceInformation)
sales_channel
required
string

The ID of the sales channel that the order was created on/received from

Responses

200

Sales order draft is successfully created.

400

Bad request, for example request body is not SalesOrderDraft.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Specified data is semantically incorrect.

post/org/{org-id}/sales-order-drafts

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "additional_invoice_information":
    [
    ],
  • "sales_channel": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "number": "string",
  • "additional_invoice_information":
    [
    ],
  • "sales_channel": "string"
}

Load a sales order draft by its identifier.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

Responses

200

Sales order draft is successfully returned

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Failure on converting resource to API format

get/org/{org-id}/sales-order-drafts/{sales-order-draft-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "number": "string",
  • "additional_invoice_information":
    [
    ],
  • "sales_channel": "string"
}

Delete a sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

Responses

204

Sales order draft info was successfully deleted.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

delete/org/{org-id}/sales-order-drafts/{sales-order-draft-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}

Response samples

Content type
application/problem+json
Copy
Expand all Collapse all
{}

Update a sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

Request Body schema: application/json
@type
required
string
Default: "SalesOrderDraftFinalizationRequest"

Responses

204

Sales order draft was successfully updated.

400

Bad request, for example request body is not SalesOrderDraftUpdateRequest.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

patch/org/{org-id}/sales-order-drafts/{sales-order-draft-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "@type": "SalesOrderDraftFinalizationRequest"
}

Response samples

Content type
application/problem+json
Copy
Expand all Collapse all
{}

Sales Order Drafts: Customer

The customer of a sales order draft

Get the customer information of a sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

Responses

200

Customer info is successfully returned

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Failure on converting resource to API format

get/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/customer

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/customer

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "individual": "string",
  • "individual_name": "string",
  • "organization": "string",
  • "organization_name": "string",
  • "invoice_address":
    {
    },
  • "contact_address":
    {
    },
  • "contact_email": "user@example.com",
  • "contact_phone": "string"
}

Update the customer information of a sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

Request Body schema: application/json
individual
string [ 1 .. 256 ] characters

The ID of the individual contact that placed the order.

individual_name
string

The name of the individual contact that placed the order.

organization
string [ 1 .. 256 ] characters

The ID of the organization contact on whose behalf the order was placed.

organization_name
string

The name of the organization contact on whose behalf the order was placed.

invoice_address
object (Address)

An address of a location/destination

contact_address
object (Address)

An address of a location/destination

contact_email
string <email>
contact_phone
string <phone>

Responses

200

Customer info is successfully updated.

400

Bad request, for example request body is not SalesOrderDraftCustomerInformation.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Specified data is semantically incorrect.

put/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/customer

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/customer

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "individual": "string",
  • "individual_name": "string",
  • "organization": "string",
  • "organization_name": "string",
  • "invoice_address":
    {
    },
  • "contact_address":
    {
    },
  • "contact_email": "user@example.com",
  • "contact_phone": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "individual": "string",
  • "individual_name": "string",
  • "organization": "string",
  • "organization_name": "string",
  • "invoice_address":
    {
    },
  • "contact_address":
    {
    },
  • "contact_email": "user@example.com",
  • "contact_phone": "string"
}

Remove the customer information from a sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

Responses

204

Customer info was successfully deleted.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

delete/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/customer

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/customer

Response samples

Content type
application/problem+json
Copy
Expand all Collapse all
{}

Sales Order Drafts: Items

The items of a sales order draft

Iterate over the items of a sales order draft.

Returns items of the specified sales order draft, sorted in ascending order by creation order date and time.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

query Parameters
from
required
string <date-time>

Defines the time starting from which objects are to be returned. Objects with exactly this date are also returned - this means that the start of a left-closed interval is defined. Timestamp in UTC. The date-time notation as defined by RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt), section 5.6, with the "Z" as time-offset. For example, 2017-07-21T17:32:28.123Z

to
required
string <date-time>

Defines the time up to which objects are to be returned. Objects with exactly this date are not returned - this means that the end of a right-open interval is defined. Timestamp in UTC. The date-time notation as defined by RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt), section 5.6, with the "Z" as time-offset. For example, 2017-07-21T17:32:28.123Z

limit
integer <int64> [ 1 .. 5000 ]

Max number of objects to be returned per page. Note that both the items as well as the problems arrays of the query response count towards this number to allow a simple, consistent paging over all items (and problems) of a given timeframe. If not given, defaults to 200.

offset
integer <int64> >= 0

Offset of items and problems of where to start the next page. Similar to limit and offset in SQL, one would obtain the second page with limit=10&offset=10. Note that this paging with limit and offset is within a time interval that is specified with from and to. If not given, defaults to 0.

Responses

200

Data successfully returned

400

Invalid parameters were sent by the client

403

Credentials missing or not sufficient

get/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/items

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/items

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "problems":
    []
}

Add a new item to a sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

Request Body schema: application/json
product
required
string

The ID of the product that is being sold.

lot
string

The ID of the lot that the sold products belong to.

quantity
required
object (Quantity)

A Quantity represents a quantity value (i.e., a unit and an amount), for example "3 pcs" or "2.5 kg".

depending_items
Array of objects (SalesOrderItemDependency)

List of items that depend on this item.

An item depends on another item, if it cannot exist alone. There are different types of dependencies, therefore each element in the list is a pair of the id of the depending item and the type of the dependency.

price
object (SalesOrderDraftItemPrice)

The set of information defining the price of a single item. Given price can be net or gross. If the price is defined it is treated as fixed (manual) price and overrides any price defined by the product. In that case no price calculation will be performed, though markups or discounts might be calculated and applied.

additional_invoice_information
Array of objects (AdditionalInvoiceInformation)

Responses

200

Item is successfully created.

400

Bad request, for example request body is not SalesOrderDraftItem.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Specified data is semantically incorrect.

post/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/items

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/items

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "product": "string",
  • "lot": "string",
  • "quantity":
    {
    },
  • "depending_items":
    [
    ],
  • "price":
    {
    },
  • "additional_invoice_information":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "product": "string",
  • "lot": "string",
  • "quantity":
    {
    },
  • "depending_items":
    [
    ],
  • "price":
    {
    },
  • "additional_invoice_information":
    [
    ]
}

Load an item of a sales order draft.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

item-id
required
string

ID of the item

Responses

200

Item is successfully returned

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Failure on converting resource to API format

get/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/items/{item-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/items/{item-id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "product": "string",
  • "lot": "string",
  • "quantity":
    {
    },
  • "depending_items":
    [
    ],
  • "price":
    {
    },
  • "additional_invoice_information":
    [
    ]
}

Update an item of a sales order draft.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

item-id
required
string

ID of the item

Request Body schema: application/json
product
required
string

The ID of the product that is being sold.

lot
string

The ID of the lot that the sold products belong to.

quantity
required
object (Quantity)

A Quantity represents a quantity value (i.e., a unit and an amount), for example "3 pcs" or "2.5 kg".

depending_items
Array of objects (SalesOrderItemDependency)

List of items that depend on this item.

An item depends on another item, if it cannot exist alone. There are different types of dependencies, therefore each element in the list is a pair of the id of the depending item and the type of the dependency.

price
object (SalesOrderDraftItemPrice)

The set of information defining the price of a single item. Given price can be net or gross. If the price is defined it is treated as fixed (manual) price and overrides any price defined by the product. In that case no price calculation will be performed, though markups or discounts might be calculated and applied.

additional_invoice_information
Array of objects (AdditionalInvoiceInformation)

Responses

200

Item is successfully updated.

400

Bad request, for example request body is not SalesOrderDraftItem.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Specified data is semantically incorrect.

put/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/items/{item-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/items/{item-id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "product": "string",
  • "lot": "string",
  • "quantity":
    {
    },
  • "depending_items":
    [
    ],
  • "price":
    {
    },
  • "additional_invoice_information":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "product": "string",
  • "lot": "string",
  • "quantity":
    {
    },
  • "depending_items":
    [
    ],
  • "price":
    {
    },
  • "additional_invoice_information":
    [
    ]
}

Remove an item from a sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

item-id
required
string

ID of the item

Responses

204

Item was successfully deleted.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

delete/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/items/{item-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/items/{item-id}

Response samples

Content type
application/problem+json
Copy
Expand all Collapse all
{}

Sales Order Drafts: Pickups

The pickups of a sales order draft

Iterate over the pickup fulfillments of a sales order draft.

Returns pickups of the specified sales order draft, sorted in ascending order by creation order date and time.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

Responses

200

Data successfully returned

400

Invalid parameters were sent by the client

403

Credentials missing or not sufficient

get/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/pickups

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/pickups

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "problems":
    []
}

Add a new pickup to a sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

Request Body schema: application/json
items
required
Array of strings

The IDs of the items that are part of the pickup.

Those items must be part of the same SalesOrderDraft that the SalesOrderDraftPickup belongs to.

pickup_location
object (PickupLocation)
pickup_time_range
object (TimeRange)
pager_number
string

The number/identifier of a paging device for notification of the pickup

collector_information
object (PickupCollectorInformation)

Responses

200

Pickup is successfully created.

400

Bad request, for example request body is not SalesOrderDraftPickups.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Specified data is semantically incorrect (eg., references non-existing item).

post/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/pickups

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/pickups

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "pickup_location":
    {
    },
  • "pickup_time_range":
    {
    },
  • "pager_number": "string",
  • "collector_information":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "items":
    [
    ],
  • "pickup_location":
    {
    },
  • "pickup_time_range":
    {
    },
  • "pager_number": "string",
  • "collector_information":
    {
    }
}

Load a pickup of a sales order draft.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

pickup-id
required
string

ID of the pickup

Responses

200

Pickup is successfully returned

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Failure on converting resource to API format

get/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/pickups/{pickup-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/pickups/{pickup-id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "items":
    [
    ],
  • "pickup_location":
    {
    },
  • "pickup_time_range":
    {
    },
  • "pager_number": "string",
  • "collector_information":
    {
    }
}

Update a pickup of a sales order draft.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

pickup-id
required
string

ID of the pickup

Request Body schema: application/json
items
required
Array of strings

The IDs of the items that are part of the pickup.

Those items must be part of the same SalesOrderDraft that the SalesOrderDraftPickup belongs to.

pickup_location
object (PickupLocation)
pickup_time_range
object (TimeRange)
pager_number
string

The number/identifier of a paging device for notification of the pickup

collector_information
object (PickupCollectorInformation)

Responses

200

Pickup is successfully updated.

400

Bad request, for example request body is not SalesOrderDraftPickup.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Specified data is semantically incorrect (eg., references non-existing item).

put/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/pickups/{pickup-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/pickups/{pickup-id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "pickup_location":
    {
    },
  • "pickup_time_range":
    {
    },
  • "pager_number": "string",
  • "collector_information":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "items":
    [
    ],
  • "pickup_location":
    {
    },
  • "pickup_time_range":
    {
    },
  • "pager_number": "string",
  • "collector_information":
    {
    }
}

Remove a pickup from a sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

pickup-id
required
string

ID of the pickup

Responses

204

Pickup was successfully deleted.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

delete/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/pickups/{pickup-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/pickups/{pickup-id}

Response samples

Content type
application/problem+json
Copy
Expand all Collapse all
{}

Sales Order Drafts: Deliveries

The deliveries of a sales order draft

Iterate over the delivery fulfillments of a sales order draft.

Returns deliveries the specified sales order draft, sorted in ascending order by creation order date and time.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

Responses

200

Data successfully returned

400

Invalid parameters were sent by the client

403

Credentials missing or not sufficient

get/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/deliveries

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/deliveries

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "problems":
    []
}

Add a new delivery to a sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

Request Body schema: application/json
items
required
Array of strings

The IDs of the items that are part of the delivery.

Those items must be part of the same SalesOrderDraft that the SalesOrderDraftDelivery belongs to.

delivery_address
object (Address)

An address of a location/destination

delivery_time_range
object (TimeRange)
recipient_information
object (DeliveryRecipientInformation)
shipping_location
string

The ID of the service location from which the shipment will go out.

shipping_service
string

The shipment service ID to be used for the delivery shipment

Responses

200

Delivery is successfully created.

400

Bad request, for example request body is not SalesOrderDraftDelivery.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Specified data is semantically incorrect (eg., references non-existing item).

post/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/deliveries

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/deliveries

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "delivery_address":
    {
    },
  • "delivery_time_range":
    {
    },
  • "recipient_information":
    {
    },
  • "shipping_location": "string",
  • "shipping_service": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "items":
    [
    ],
  • "delivery_address":
    {
    },
  • "delivery_time_range":
    {
    },
  • "recipient_information":
    {
    },
  • "shipping_location": "string",
  • "shipping_service": "string"
}

Load a delivery of a sales order draft.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

delivery-id
required
string

ID of the delivery

Responses

200

Delivery is successfully returned

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Failure on converting resource to API format

get/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/deliveries/{delivery-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/deliveries/{delivery-id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "items":
    [
    ],
  • "delivery_address":
    {
    },
  • "delivery_time_range":
    {
    },
  • "recipient_information":
    {
    },
  • "shipping_location": "string",
  • "shipping_service": "string"
}

Update a delivery of a sales order draft.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

delivery-id
required
string

ID of the delivery

Request Body schema: application/json
items
required
Array of strings

The IDs of the items that are part of the delivery.

Those items must be part of the same SalesOrderDraft that the SalesOrderDraftDelivery belongs to.

delivery_address
object (Address)

An address of a location/destination

delivery_time_range
object (TimeRange)
recipient_information
object (DeliveryRecipientInformation)
shipping_location
string

The ID of the service location from which the shipment will go out.

shipping_service
string

The shipment service ID to be used for the delivery shipment

Responses

200

Delivery is successfully updated.

400

Bad request, for example request body is not SalesOrderDraftDelivery.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Specified data is semantically incorrect (eg., references non-existing item).

put/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/deliveries/{delivery-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/deliveries/{delivery-id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "delivery_address":
    {
    },
  • "delivery_time_range":
    {
    },
  • "recipient_information":
    {
    },
  • "shipping_location": "string",
  • "shipping_service": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "items":
    [
    ],
  • "delivery_address":
    {
    },
  • "delivery_time_range":
    {
    },
  • "recipient_information":
    {
    },
  • "shipping_location": "string",
  • "shipping_service": "string"
}

Remove a delivery from a sales order draft

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-draft-id
required
string

ID of the sales order draft

delivery-id
required
string

ID of the delivery

Responses

204

Delivery was successfully deleted.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

delete/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/deliveries/{delivery-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-order-drafts/{sales-order-draft-id}/deliveries/{delivery-id}

Response samples

Content type
application/problem+json
Copy
Expand all Collapse all
{}

Sales Orders

A sales order is the seller-side representation of a customer's request to purchase one or multiple items.

A sales order is created when the checkout process for a basket has been completed. At that point, the items to be purchased, the customer and the necessary contact, fulfillment, and payment information have been collected.

Returns sales orders

Returns sales orders for the specified interval, sorted in ascending order by order date and time.

Since our platform was built as a distributed system, we are subject to the laws of the "Eventual consistency" model. This means that time periods close to the present may be unstable and could contain new items if the same time interval is queried again.

We therefore recommend that intervals that are close to the present time should be re-requested and verified at a later time.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

query Parameters
from
required
string <date-time>

Defines the time starting from which objects are to be returned. Objects with exactly this date are also returned - this means that the start of a left-closed interval is defined. Timestamp in UTC. The date-time notation as defined by RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt), section 5.6, with the "Z" as time-offset. For example, 2017-07-21T17:32:28.123Z

to
required
string <date-time>

Defines the time up to which objects are to be returned. Objects with exactly this date are not returned - this means that the end of a right-open interval is defined. Timestamp in UTC. The date-time notation as defined by RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt), section 5.6, with the "Z" as time-offset. For example, 2017-07-21T17:32:28.123Z

limit
integer <int64> [ 1 .. 5000 ]

Max number of objects to be returned per page. Note that both the items as well as the problems arrays of the query response count towards this number to allow a simple, consistent paging over all items (and problems) of a given timeframe. If not given, defaults to 200.

offset
integer <int64> >= 0

Offset of items and problems of where to start the next page. Similar to limit and offset in SQL, one would obtain the second page with limit=10&offset=10. Note that this paging with limit and offset is within a time interval that is specified with from and to. If not given, defaults to 0.

sales_channel_id
string

When specified, only sales orders for the specified sales channel are returned.

number
string

When specified, only sales orders with the specified number are returned.

status
Array of strings (SalesOrderStatus)
Items Enum: "NEW" "CONFIRMED" "REJECTED" "IN_PROCESS" "COMPLETED" "CANCELED" "ON_HOLD"

When specified, only sales orders with one of the specified status values are returned.

Responses

200

Data successfully returned

400

Invalid parameters were sent by the client

403

Credentials missing or not sufficient

get/org/{org-id}/sales-orders

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-orders

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "problems":
    []
}

Create a new sales order (from a sales order draft) Deprecated

This endpoint is deprecated and will be removed in the future.

Sales orders cannot be created via this API but only via the enforePOS client UI.

Use PATCH /org/{org-id}/sales-order-drafts/{sales-order-draft-id} with a SalesOrderDraftFinalizationRequest to finalize a sales order draft so it can be opened and checked out via the enforePOS client.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

Request Body schema: application/json

The "ID" of the sales order draft that is to be converted to a sales order

string

Responses

200

Sales order is successfully created.

400

Bad request, for example request body is not the ID for a SalesOrderDraft.

403

Credentials missing or not sufficient

404

Resource(s) not found or invalid identifier

422

Specified data is semantically incorrect.

post/org/{org-id}/sales-orders

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-orders

Request samples

Content type
application/json
Copy
Expand all Collapse all
"string"

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "number": "string",
  • "sales_channel": "string",
  • "additional_invoice_information":
    [
    ],
  • "transaction_date_and_time": "2025-03-25T16:57:48Z",
  • "status": "NEW",
  • "customer_information":
    {
    },
  • "items":
    [
    ],
  • "fulfillment_information":
    {
    },
  • "invoice_information":
    {
    },
  • "invoices":
    [
    ],
  • "discounts":
    [
    ]
}

Load a sales order by its identifier

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-id
required
string

ID of the sales order

Responses

200

Sales order is successfully returned

403

Credentials missing or not sufficient

404

Sales order not found or invalid identifier

422

Failure on converting resource to API format

get/org/{org-id}/sales-orders/{sales-order-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-orders/{sales-order-id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "number": "string",
  • "sales_channel": "string",
  • "additional_invoice_information":
    [
    ],
  • "transaction_date_and_time": "2025-03-25T16:57:48Z",
  • "status": "NEW",
  • "customer_information":
    {
    },
  • "items":
    [
    ],
  • "fulfillment_information":
    {
    },
  • "invoice_information":
    {
    },
  • "invoices":
    [
    ],
  • "discounts":
    [
    ]
}

Update the status of a sales order

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

sales-order-id
required
string

ID of the sales order

Request Body schema: text/plain
string (SalesOrderStatus)
Enum: "NEW" "CONFIRMED" "REJECTED" "IN_PROCESS" "COMPLETED" "CANCELED" "ON_HOLD"

Responses

200

Sales order status is successfully updated.

400

Bad request, for example request body is not SalesOrderStatus.

403

Credentials missing or not sufficient

404

Sales order not found or invalid identifier

422

Specified status is incompatible with the current status.

put/org/{org-id}/sales-orders/{sales-order-id}/status

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/sales-orders/{sales-order-id}/status

Response samples

Content type
application/problem+json
Copy
Expand all Collapse all
{}

Fulfillments

Fulfillments

  • tracks how customer gets the sold items
  • pickups & deliveries (but not "over the counter")
  • automatically created when SO is created and contains items that need to be picked up or delivered
  • separate resources, not subresources of sales order (but linked from SO)

Returns pickups

Returns pickups for the specified interval, sorted in ascending order by creation date and time.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

query Parameters
from
required
string <date-time>

Defines the time starting from which objects are to be returned. Objects with exactly this date are also returned - this means that the start of a left-closed interval is defined. Timestamp in UTC. The date-time notation as defined by RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt), section 5.6, with the "Z" as time-offset. For example, 2017-07-21T17:32:28.123Z

to
required
string <date-time>

Defines the time up to which objects are to be returned. Objects with exactly this date are not returned - this means that the end of a right-open interval is defined. Timestamp in UTC. The date-time notation as defined by RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt), section 5.6, with the "Z" as time-offset. For example, 2017-07-21T17:32:28.123Z

limit
integer <int64> [ 1 .. 5000 ]

Max number of objects to be returned per page. Note that both the items as well as the problems arrays of the query response count towards this number to allow a simple, consistent paging over all items (and problems) of a given timeframe. If not given, defaults to 200.

offset
integer <int64> >= 0

Offset of items and problems of where to start the next page. Similar to limit and offset in SQL, one would obtain the second page with limit=10&offset=10. Note that this paging with limit and offset is within a time interval that is specified with from and to. If not given, defaults to 0.

sales_order_id
string

When specified, only pickups for the specified sales order are returned.

pickup_number
string

When specified, only pickups with the specified pickup number are returned.

pager_number
string

When specified, only pickups with the specified pager number are returned.

pickup_location_id
string

When specified, only pickups for the specified pickup location are returned.

status
Array of strings (PickupStatus)
Items Enum: "PENDING" "PREPARED" "PICKED_UP" "CANCELED"

When specified, only pickups with one of the specified status values are returned.

Responses

200

Data successfully returned

400

Invalid parameters were sent by the client

403

Credentials missing or not sufficient

get/org/{org-id}/fulfillments/pickups

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/fulfillments/pickups

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "problems":
    []
}

Load a pickup fulfillment.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

pickup-id
required
string

The identifier of the pickup

Responses

200

Pickup is successfully returned

403

Credentials missing or not sufficient

404

Pickup not found or invalid identifier

422

Failure on converting resource to API format

get/org/{org-id}/fulfillments/pickups/{pickup-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/fulfillments/pickups/{pickup-id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "status": "PENDING",
  • "items":
    [
    ],
  • "pickup_number": "string",
  • "pickup_location":
    {
    },
  • "pickup_time_range":
    {
    },
  • "pager_number": "string",
  • "collector_information":
    {
    }
}

Update the status of a pickup fulfillment.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

pickup-id
required
string

The identifier of the pickup

Request Body schema: text/plain
string (PickupStatus)
Enum: "PENDING" "PREPARED" "PICKED_UP" "CANCELED"

Responses

200

Pickup status is successfully updated.

400

Bad request, for example malformed request body.

403

Credentials missing or not sufficient

404

Pickup not found or invalid identifier

422

Specified status is incompatible with the current status of the pickup.

put/org/{org-id}/fulfillments/pickups/{pickup-id}/status

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/fulfillments/pickups/{pickup-id}/status

Response samples

Content type
application/problem+json
Copy
Expand all Collapse all
{}

Returns deliveries

Returns deliveries for the specified interval, sorted in ascending order by creation date and time.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

query Parameters
from
required
string <date-time>

Defines the time starting from which objects are to be returned. Objects with exactly this date are also returned - this means that the start of a left-closed interval is defined. Timestamp in UTC. The date-time notation as defined by RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt), section 5.6, with the "Z" as time-offset. For example, 2017-07-21T17:32:28.123Z

to
required
string <date-time>

Defines the time up to which objects are to be returned. Objects with exactly this date are not returned - this means that the end of a right-open interval is defined. Timestamp in UTC. The date-time notation as defined by RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt), section 5.6, with the "Z" as time-offset. For example, 2017-07-21T17:32:28.123Z

limit
integer <int64> [ 1 .. 5000 ]

Max number of objects to be returned per page. Note that both the items as well as the problems arrays of the query response count towards this number to allow a simple, consistent paging over all items (and problems) of a given timeframe. If not given, defaults to 200.

offset
integer <int64> >= 0

Offset of items and problems of where to start the next page. Similar to limit and offset in SQL, one would obtain the second page with limit=10&offset=10. Note that this paging with limit and offset is within a time interval that is specified with from and to. If not given, defaults to 0.

sales_order_id
string

When specified, only deliveries for the specified sales order are returned.

shipping_location_id
string

When specified, only deliveries for the specified shipping location are returned.

shipping_service_id
string

When specified, only deliveries for the specified shipping service are returned.

status
Array of strings (DeliveryStatus)
Items Enum: "PENDING" "PREPARED" "SHIPPED" "RECEIVED" "CANCELED"

When specified, only deliveries with one of the specified status values are returned.

Responses

200

Data successfully returned

400

Invalid parameters were sent by the client

403

Credentials missing or not sufficient

get/org/{org-id}/fulfillments/deliveries

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/fulfillments/deliveries

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "problems":
    []
}

Load a delivery fulfillment.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

delivery-id
required
string

The identifier of the delivery

Responses

200

Delivery is successfully returned

403

Credentials missing or not sufficient

404

Delivery not found or invalid identifier

422

Failure on converting resource to API format

get/org/{org-id}/fulfillments/deliveries/{delivery-id}

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/fulfillments/deliveries/{delivery-id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "status": "PENDING",
  • "items":
    [
    ],
  • "delivery_address":
    {
    },
  • "delivery_time_range":
    {
    },
  • "recipient_information":
    {
    },
  • "shipping_location": "string",
  • "shipping_service": "string"
}

Update the status of a delivery fulfillment.

path Parameters
org-id
required
string

ID of the organization whose data is being accessed.

delivery-id
required
string

The identifier of the delivery

Request Body schema: text/plain
string (DeliveryStatus)
Enum: "PENDING" "PREPARED" "SHIPPED" "RECEIVED" "CANCELED"

Responses

200

Delivery status is successfully updated.

400

Bad request, for example malformed request body.

403

Credentials missing or not sufficient

404

Delivery not found or invalid identifier

422

Specified status is incompatible with the current status of the pickup.

put/org/{org-id}/fulfillments/deliveries/{delivery-id}/status

Production

https://external.apis.enfore.com/salesorders/org/{org-id}/fulfillments/deliveries/{delivery-id}/status

Response samples

Content type
application/problem+json
Copy
Expand all Collapse all
{}