Platform Connector API Specification (1.0.0)
Download OpenAPI specification:Download
The Platform Connector API allows Bold to interact with your platform's customers, orders, and products. This specification file defines the expected server behavior of the Platform Connector Server. Bold applications require the endpoints listed here to be implemented in order to function properly.
Note: This specification is only for use with a Bold Platform Connector.
HMAC
An HMAC signature calculated from the current shared secret (created in the Bold Account Center) and the value of the X-HMAC-Timestamp header. For more information about verifying this signature, refer to Implement Platform Connector APIs.
Security Scheme Type | API Key |
---|---|
Header parameter name: | X-HMAC |
Verify Platform Connector Destination
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Responses
Response samples
- 200
{ }
Create Customer
Creates a customer in your platform.
The request body contains a complete customer entity, which is persistently stored on your platform.
A successful response contains the same customer, with its associated platform_id
and timestamps populated. The platform_id
is unique, because Bold applications use it to identify the customer and its fields. The returned platform_id
can be used in requests to other endpoints in this API.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Request Body schema: application/json
object (createCustomerRequestData) | |||||||||||||||
|
Responses
Request samples
- Payload
{- "data": {
- "customer": {
- "email": "user@example.com",
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555",
- "addresses": [
- {
- "address_type": "commercial",
- "address_use": "billing",
- "company": "Acme Corp.",
- "city": "Winnipeg",
- "country": "Canada",
- "country_code": "CA",
- "is_default": true,
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "province": "Manitoba",
- "province_code": "MB",
- "street_1": "123 North Road",
- "street_2": "string"
}
]
}
}
}
Response samples
- 201
- 500
{- "data": {
- "customer": {
- "addresses": [
- {
- "platform_id": "Address_456",
- "address_type": "commercial",
- "address_use": "billing",
- "company": "Acme Corp.",
- "city": "Winnipeg",
- "country": "Canada",
- "country_code": "CA",
- "is_default": true,
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "province": "Manitoba",
- "province_code": "MB",
- "street_1": "123 North Road",
- "street_2": "string"
}
], - "platform_created_at": "2019-08-24T14:15:22Z",
- "platform_updated_at": "2019-08-24T14:15:22Z",
- "platform_id": "Customer_123",
- "email": "user@example.com",
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555"
}
}
}
List Customers
Lists all customers that have made a purchase from your store.
Returns a page of customers for your store limited by limit
and paginated by cursor
. Customers are returned in ascending order of platform_id
. If a limit is not supplied or is invalid, then the default limit is used. If no cursor
is supplied, the first page of results is returned. Subsequent calls with each new cursor can be made for additional data in the dataset. If there is no following dataset, then the next
cursor should be empty.
Cursors have no requirements on how they are encoded, since they are opaque to the consumer. Each cursor should point to a location in the dataset. They can be supplied to subsequent calls for additional data in the dataset.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
query Parameters
limit | integer <int32> [ 1 .. 250 ] Default: 250 Maximum number of results to return per page. |
string Email used to filter the results. | |
cursor | string Cursor to obtain the next page of results. The value of the cursor will be taken directly from the response without any modifications. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Responses
Response samples
- 200
- 500
{- "data": {
- "customers": [
- {
- "addresses": [
- {
- "platform_id": "Address_456",
- "address_type": "commercial",
- "address_use": "billing",
- "company": "Acme Corp.",
- "city": "Winnipeg",
- "country": "Canada",
- "country_code": "CA",
- "is_default": true,
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "province": "Manitoba",
- "province_code": "MB",
- "street_1": "123 North Road",
- "street_2": "string"
}
], - "platform_created_at": "2019-08-24T14:15:22Z",
- "platform_updated_at": "2019-08-24T14:15:22Z",
- "platform_id": "Customer_123",
- "email": "user@example.com",
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555"
}
]
}, - "pagination": {
- "next": "dGVzdGluZ3Rlc3Rpbmd0ZXN0aW5n",
- "prev": "dW50ZXN0dW50ZXN0dW50ZXN0"
}
}
Delete Customer
Deletes a customer specified by platform_id
. The customer should be marked as deleted within the platform.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
platform_id required | string Unique identifier for the customer. Assigned by the platform. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Responses
Response samples
- 204
- 404
- 500
{ }
Update Customer
Updates a customer specified by platform_id
.
All fields of a customer object are replaced with the values provided in the request body. Fields omitted from the request body are ignored in the Customer
object.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
platform_id required | string Unique identifier for the customer. Assigned by the platform. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Request Body schema: application/json
object (updateCustomerRequestData) | |||||||||||||||
|
Responses
Request samples
- Payload
{- "data": {
- "customer": {
- "addresses": [
- {
- "address_type": "commercial",
- "address_use": "billing",
- "company": "Acme Corp.",
- "city": "Winnipeg",
- "country": "Canada",
- "country_code": "CA",
- "is_default": true,
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "province": "Manitoba",
- "province_code": "MB",
- "street_1": "123 North Road",
- "street_2": "string"
}
], - "email": "user@example.com",
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555"
}
}
}
Response samples
- 200
- 404
- 500
{- "data": {
- "customer": {
- "addresses": [
- {
- "platform_id": "Address_456",
- "address_type": "commercial",
- "address_use": "billing",
- "company": "Acme Corp.",
- "city": "Winnipeg",
- "country": "Canada",
- "country_code": "CA",
- "is_default": true,
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "province": "Manitoba",
- "province_code": "MB",
- "street_1": "123 North Road",
- "street_2": "string"
}
], - "platform_created_at": "2019-08-24T14:15:22Z",
- "platform_updated_at": "2019-08-24T14:15:22Z",
- "platform_id": "Customer_123",
- "email": "user@example.com",
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555"
}
}
}
Validate Customer JWT
Validates the JWT to determine if it is a valid token and corresponds to the provided customer. The JWT is used to authorize the frontend code to perform various actions on behalf of the customer.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
platform_id required | string Unique identifier for the customer. Assigned by the platform. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Request Body schema: application/json
object (customerValidateRequestData) | |||||||
|
Responses
Request samples
- Payload
{- "data": {
- "token_info": {
- "token": "your token value"
}
}
}
Response samples
- 200
- 404
- 500
{- "data": {
- "token_status": {
- "active": true
}
}
}
Create Address
Creates an address for a customer specified by platform_customer_id
.
The request body contains a complete address entity, which must be persistently stored on the platform. A successful response contains the same address, including its associated platform_id
and platform_customer_id
. These IDs must be unique amongst addresses, because Bold applications use them to identify the address for the customer. The returned platform_id
can be used in requests to other address endpoints in this API.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
platform_customer_id required | string Unique identifier for the customer. Assigned by the platform. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Request Body schema: application/json
object (createAddressRequestData) | |||||||||||||||||||||||||||||||||||
|
Responses
Request samples
- Payload
{- "data": {
- "address": {
- "address_type": "commercial",
- "address_use": "billing",
- "company": "Acme Corp.",
- "city": "Winnipeg",
- "country": "Canada",
- "country_code": "CA",
- "is_default": true,
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "province": "Manitoba",
- "province_code": "MB",
- "street_1": "123 North Road",
- "street_2": "string"
}
}
}
Response samples
- 201
- 404
- 500
{- "data": {
- "address": {
- "platform_id": "Address_456",
- "platform_customer_id": "Customer_123",
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}
}
}
Delete Address
Deletes an address. The address to be deleted is indicated by the platform_id
and platform_customer_id
. The address is marked as deleted.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
platform_customer_id required | string Unique identifier for the customer. Assigned by the platform. |
platform_id required | string Unique identifier for the address. Assigned by the platform. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Responses
Response samples
- 204
- 404
- 500
{ }
Update Address
Updates an address. The address to be updated is indicated by the platform_id
and platform_customer_id
.
All fields of an address object are replaced with the values provided in the request body. Fields omitted from the request body are ignored and unchanged in the Address
object.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
platform_customer_id required | string Unique identifier for the customer. Assigned by the platform. |
platform_id required | string Unique identifier for the address. Assigned by the platform. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Request Body schema: application/json
object (updateAddressRequestData) | |||||||||||||||||||||||||||||||||||
|
Responses
Request samples
- Payload
{- "data": {
- "address": {
- "address_type": "commercial",
- "address_use": "billing",
- "company": "Acme Corp.",
- "city": "Winnipeg",
- "country": "Canada",
- "country_code": "CA",
- "is_default": true,
- "first_name": "John",
- "last_name": "Doe",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "province": "Manitoba",
- "province_code": "MB",
- "street_1": "123 North Road",
- "street_2": "string"
}
}
}
Response samples
- 200
- 404
- 500
{- "data": {
- "address": {
- "platform_id": "Address_456",
- "platform_customer_id": "Customer_123",
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}
}
}
List Orders
Lists all orders made to a given store.
Returns a page of orders for a given store limited by limit
and paginated by cursor
. Orders are returned in ascending order of platform_id
. If a limit is not supplied or is invalid, then the default limit (250) is used. If no cursor
is supplied, this endpoint returns the first page of results. Subsequent calls with each new cursor can be made for additional data in the dataset. If there is no additional data in the dataset to return, then the next
cursor should be empty.
Cursors have no requirements on how they are encoded, since they are opaque to the consumer. Each cursor should point to a location in the dataset. They can be supplied to subsequent calls for additional data in the dataset.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
query Parameters
limit | integer <int32> [ 1 .. 250 ] Default: 250 Maximum number of results to return per page. |
cursor | string Cursor to obtain the next page of results. The value of the cursor will be taken directly from the response without any modifications. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Responses
Response samples
- 200
- 500
{- "data": {
- "orders": [
- {
- "platform_id": "string",
- "platform_updated_at": "2019-08-24T14:15:22Z",
- "shipping_addresses": [
- {
- "platform_id": "string",
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}
], - "billing_address": {
- "platform_id": "string",
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}, - "line_items": [
- {
- "platform_id": "string",
- "platform_product_id": "string",
- "platform_variant_id": "string",
- "cart_line_item_platform_id": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "title": "Shoes (long-laced classic)",
- "sku": "string",
- "url": "string",
- "image": "string",
- "quantity": 0,
- "grams": 0,
- "weight": 0,
- "weight_unit": "string",
- "taxable": true,
- "taxes": [
- {
- "amount": "string",
- "name": "Provincial Sales Tax",
- "rate": "0.07",
- "tag": "string"
}
], - "requires_shipping": true,
- "price_per_item": "string",
- "discount_per_item": "string",
- "total": "string",
- "subtotal": "string",
- "total_tax": "string",
- "discounted_subtotal": "string"
}
], - "payments": [
- {
- "platform_id": "string",
- "transactions": [
- {
- "platform_id": "string",
- "provider_transaction_id": "string",
- "amount": "string",
- "currency": "CAD",
- "status": "initial",
- "type": "authorization"
}
], - "description": "string",
- "provider": "stripe",
- "payment_method": "credit card",
- "currency": "CAD",
- "amount_planned": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "status": "string"
}
], - "placed_at": "2019-08-24T14:15:22Z",
- "order_number": "ORDER_XXYY1122",
- "platform_customer_id": "string",
- "shipping_method": "freight",
- "browser_ip": "127.0.0.1",
- "source": "POS",
- "created_via": "Bold Checkout",
- "locale": "en_US",
- "test": true,
- "notes": "string",
- "public_notes": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "shipping_subtotal": "string",
- "shipping_tax": "string",
- "shipping_taxes": [
- {
- "amount": "string",
- "name": "Provincial Sales Tax",
- "rate": "0.07",
- "tag": "string"
}
], - "discount": "string",
- "subtotal": "string",
- "subtotal_tax": "string",
- "total_tax": "string",
- "total": "string",
- "refunded_amount": "string",
- "currency": "CAD",
- "order_status": "active",
- "fulfillment_status": "pending",
- "financial_status": "held_for_review"
}
]
}, - "pagination": {
- "next": "dGVzdGluZ3Rlc3Rpbmd0ZXN0aW5n",
- "prev": "dW50ZXN0dW50ZXN0dW50ZXN0"
}
}
Create Order
Creates an order in the platform.
The request body contains a complete order entity, which is persistently stored on your platform.
A successful response contains the same order, with its associated platform_id
and timestamps populated. The platform_id
is unique, because Bold applications use it to identify the order and its fields. The returned platform_id
can be used in requests to other endpoints in this API.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Idempotency-Key | string The HTTP Idempotency request header field can be used to carry an idempotency key in order to make non-idempotent HTTP methods, such as POST or PATCH, fault-tolerant. |
Request Body schema: application/json
object (createOrderRequestData) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Responses
Request samples
- Payload
{- "data": {
- "order": {
- "shipping_addresses": [
- {
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}
], - "billing_address": {
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}, - "line_items": [
- {
- "platform_product_id": "string",
- "platform_variant_id": "string",
- "cart_line_item_platform_id": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "title": "Shoes (long-laced classic)",
- "sku": "string",
- "url": "string",
- "image": "string",
- "quantity": 0,
- "grams": 0,
- "weight": 0,
- "weight_unit": "string",
- "taxable": true,
- "taxes": [
- {
- "amount": "string",
- "name": "Provincial Sales Tax",
- "rate": "0.07",
- "tag": "string"
}
], - "requires_shipping": true,
- "price_per_item": "string",
- "discount_per_item": "string",
- "total": "string",
- "subtotal": "string",
- "total_tax": "string",
- "discounted_subtotal": "string"
}
], - "payments": [
- {
- "transactions": [
- {
- "platform_id": "string",
- "provider_transaction_id": "string",
- "amount": "string",
- "currency": "CAD",
- "status": "initial",
- "type": "authorization"
}
], - "description": "string",
- "provider": "string",
- "payment_method": "string",
- "currency": "string",
- "amount_planned": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "status": "string"
}
], - "order_number": "ORDER_XXYY1122",
- "platform_customer_id": "string",
- "shipping_method": "freight",
- "browser_ip": "127.0.0.1",
- "source": "POS",
- "created_via": "Bold Checkout",
- "locale": "en_US",
- "test": true,
- "notes": "string",
- "public_notes": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "shipping_subtotal": "string",
- "shipping_tax": "string",
- "shipping_taxes": [
- {
- "amount": "string",
- "name": "Provincial Sales Tax",
- "rate": "0.07",
- "tag": "string"
}
], - "discount": "string",
- "subtotal": "string",
- "subtotal_tax": "string",
- "total_tax": "string",
- "total": "string",
- "refunded_amount": "string",
- "currency": "CAD",
- "order_status": "active",
- "fulfillment_status": "pending",
- "financial_status": "held_for_review"
}
}
}
Response samples
- 201
- 500
{- "data": {
- "order": {
- "platform_id": "string",
- "platform_updated_at": "2019-08-24T14:15:22Z",
- "shipping_addresses": [
- {
- "platform_id": "string",
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}
], - "billing_address": {
- "platform_id": "string",
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}, - "line_items": [
- {
- "platform_id": "string",
- "platform_product_id": "string",
- "platform_variant_id": "string",
- "cart_line_item_platform_id": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "title": "Shoes (long-laced classic)",
- "sku": "string",
- "url": "string",
- "image": "string",
- "quantity": 0,
- "grams": 0,
- "weight": 0,
- "weight_unit": "string",
- "taxable": true,
- "taxes": [
- {
- "amount": "string",
- "name": "Provincial Sales Tax",
- "rate": "0.07",
- "tag": "string"
}
], - "requires_shipping": true,
- "price_per_item": "string",
- "discount_per_item": "string",
- "total": "string",
- "subtotal": "string",
- "total_tax": "string",
- "discounted_subtotal": "string"
}
], - "payments": [
- {
- "platform_id": "string",
- "transactions": [
- {
- "platform_id": "string",
- "provider_transaction_id": "string",
- "amount": "string",
- "currency": "CAD",
- "status": "initial",
- "type": "authorization"
}
], - "description": "string",
- "provider": "stripe",
- "payment_method": "credit card",
- "currency": "CAD",
- "amount_planned": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "status": "string"
}
], - "placed_at": "2019-08-24T14:15:22Z",
- "order_number": "ORDER_XXYY1122",
- "platform_customer_id": "string",
- "shipping_method": "freight",
- "browser_ip": "127.0.0.1",
- "source": "POS",
- "created_via": "Bold Checkout",
- "locale": "en_US",
- "test": true,
- "notes": "string",
- "public_notes": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "shipping_subtotal": "string",
- "shipping_tax": "string",
- "shipping_taxes": [
- {
- "amount": "string",
- "name": "Provincial Sales Tax",
- "rate": "0.07",
- "tag": "string"
}
], - "discount": "string",
- "subtotal": "string",
- "subtotal_tax": "string",
- "total_tax": "string",
- "total": "string",
- "refunded_amount": "string",
- "currency": "CAD",
- "order_status": "active",
- "fulfillment_status": "pending",
- "financial_status": "held_for_review"
}
}
}
Get Order
Retrieves an order that has been placed on your store by the specified platform_id
.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
platform_id required | string Unique identifier for the order. Assigned by the platform. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Responses
Response samples
- 200
- 404
- 500
{- "data": {
- "order": {
- "platform_id": "string",
- "platform_updated_at": "2019-08-24T14:15:22Z",
- "shipping_addresses": [
- {
- "platform_id": "string",
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}
], - "billing_address": {
- "platform_id": "string",
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}, - "line_items": [
- {
- "platform_id": "string",
- "platform_product_id": "string",
- "platform_variant_id": "string",
- "cart_line_item_platform_id": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "title": "Shoes (long-laced classic)",
- "sku": "string",
- "url": "string",
- "image": "string",
- "quantity": 0,
- "grams": 0,
- "weight": 0,
- "weight_unit": "string",
- "taxable": true,
- "taxes": [
- {
- "amount": "string",
- "name": "Provincial Sales Tax",
- "rate": "0.07",
- "tag": "string"
}
], - "requires_shipping": true,
- "price_per_item": "string",
- "discount_per_item": "string",
- "total": "string",
- "subtotal": "string",
- "total_tax": "string",
- "discounted_subtotal": "string"
}
], - "payments": [
- {
- "platform_id": "string",
- "transactions": [
- {
- "platform_id": "string",
- "provider_transaction_id": "string",
- "amount": "string",
- "currency": "CAD",
- "status": "initial",
- "type": "authorization"
}
], - "description": "string",
- "provider": "stripe",
- "payment_method": "credit card",
- "currency": "CAD",
- "amount_planned": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "status": "string"
}
], - "placed_at": "2019-08-24T14:15:22Z",
- "order_number": "ORDER_XXYY1122",
- "platform_customer_id": "string",
- "shipping_method": "freight",
- "browser_ip": "127.0.0.1",
- "source": "POS",
- "created_via": "Bold Checkout",
- "locale": "en_US",
- "test": true,
- "notes": "string",
- "public_notes": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "shipping_subtotal": "string",
- "shipping_tax": "string",
- "shipping_taxes": [
- {
- "amount": "string",
- "name": "Provincial Sales Tax",
- "rate": "0.07",
- "tag": "string"
}
], - "discount": "string",
- "subtotal": "string",
- "subtotal_tax": "string",
- "total_tax": "string",
- "total": "string",
- "refunded_amount": "string",
- "currency": "CAD",
- "order_status": "active",
- "fulfillment_status": "pending",
- "financial_status": "held_for_review"
}
}
}
Update Order
Updates an order specified by platform_id
.
All fields of an order object are replaced with the values provided in the request body. Fields omitted from the request body are ignored and are not updated in the Order
object.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
platform_id required | string Unique identifier for the order. Assigned by the platform. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Request Body schema: application/json
object (updateOrderRequestData) | |||||||||||||||||||||
|
Responses
Request samples
- Payload
{- "data": {
- "order": {
- "fulfillment_status": "pending",
- "financial_status": "held_for_review",
- "refunded_amount": "string",
- "notes": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "shipping_addresses": [
- {
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}
], - "subtotal": "string",
- "subtotal_tax": "string"
}
}
}
Response samples
- 200
- 404
- 500
{- "data": {
- "order": {
- "platform_id": "string",
- "platform_updated_at": "2019-08-24T14:15:22Z",
- "shipping_addresses": [
- {
- "platform_id": "string",
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}
], - "billing_address": {
- "platform_id": "string",
- "address_type": "billing",
- "first_name": "John",
- "last_name": "Doe",
- "street_1": "123 North Road",
- "street_2": "string",
- "city": "string",
- "province": "Manitoba",
- "country": "Canada",
- "country_code": "CA",
- "phone": "555-555-5555",
- "postal_code": "H0H 0H0",
- "email": "user@example.com",
- "province_code": "MB",
- "company": "Acme Corp."
}, - "line_items": [
- {
- "platform_id": "string",
- "platform_product_id": "string",
- "platform_variant_id": "string",
- "cart_line_item_platform_id": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "title": "Shoes (long-laced classic)",
- "sku": "string",
- "url": "string",
- "image": "string",
- "quantity": 0,
- "grams": 0,
- "weight": 0,
- "weight_unit": "string",
- "taxable": true,
- "taxes": [
- {
- "amount": "string",
- "name": "Provincial Sales Tax",
- "rate": "0.07",
- "tag": "string"
}
], - "requires_shipping": true,
- "price_per_item": "string",
- "discount_per_item": "string",
- "total": "string",
- "subtotal": "string",
- "total_tax": "string",
- "discounted_subtotal": "string"
}
], - "payments": [
- {
- "platform_id": "string",
- "transactions": [
- {
- "platform_id": "string",
- "provider_transaction_id": "string",
- "amount": "string",
- "currency": "CAD",
- "status": "initial",
- "type": "authorization"
}
], - "description": "string",
- "provider": "stripe",
- "payment_method": "credit card",
- "currency": "CAD",
- "amount_planned": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "status": "string"
}
], - "placed_at": "2019-08-24T14:15:22Z",
- "order_number": "ORDER_XXYY1122",
- "platform_customer_id": "string",
- "shipping_method": "freight",
- "browser_ip": "127.0.0.1",
- "source": "POS",
- "created_via": "Bold Checkout",
- "locale": "en_US",
- "test": true,
- "notes": "string",
- "public_notes": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "shipping_subtotal": "string",
- "shipping_tax": "string",
- "shipping_taxes": [
- {
- "amount": "string",
- "name": "Provincial Sales Tax",
- "rate": "0.07",
- "tag": "string"
}
], - "discount": "string",
- "subtotal": "string",
- "subtotal_tax": "string",
- "total_tax": "string",
- "total": "string",
- "refunded_amount": "string",
- "currency": "CAD",
- "order_status": "active",
- "fulfillment_status": "pending",
- "financial_status": "held_for_review"
}
}
}
Create Payment
Create a payment associated with a given order.
The request body contains a complete order entity, which must be persistently stored on the platform.
A successful response contains the same payment, with its associated platform_id
and timestamps populated. The platform_id
must be unique, because Bold applications use it to identify the payment and its fields. The returned platform_id
can be used in requests to other endpoints in this API.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
platform_id required | string Unique identifier for the order. Assigned by the platform. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Request Body schema: application/json
object (createPaymentRequestData) | |||||||||||||||||||||
|
Responses
Request samples
- Payload
{- "data": {
- "payment": {
- "transactions": [
- {
- "platform_id": "string",
- "provider_transaction_id": "string",
- "amount": "string",
- "currency": "CAD",
- "status": "initial",
- "type": "authorization"
}
], - "description": "string",
- "provider": "string",
- "payment_method": "string",
- "currency": "string",
- "amount_planned": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "status": "string"
}
}
}
Response samples
- 201
- 404
- 500
{- "data": {
- "payment": {
- "platform_id": "string",
- "transactions": [
- {
- "platform_id": "string",
- "provider_transaction_id": "string",
- "amount": "string",
- "currency": "CAD",
- "status": "initial",
- "type": "authorization"
}
], - "description": "string",
- "provider": "stripe",
- "payment_method": "credit card",
- "currency": "CAD",
- "amount_planned": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "status": "string"
}
}
}
Update Payment
Updates a payment associated with a specific order. Specify the payment by platform_id
and the order by order_platform_id
.
All fields of a payment object are replaced with the values provided in the request body. Fields omitted from the request body are ignored and are not updated in the Payment
object.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
order_platform_id required | string Unique identifier for the order. Assigned by the platform. |
platform_id required | string Unique identifier for the payment. Assigned by the platform. |
header Parameters
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
Request Body schema: application/json
object (updatePaymentRequestData) | |||||||||
|
Responses
Request samples
- Payload
{- "data": {
- "payment": {
- "transactions": [
- {
- "platform_id": "string",
- "provider_transaction_id": "string",
- "amount": "string",
- "currency": "CAD",
- "status": "initial",
- "type": "authorization"
}
], - "status": "string"
}
}
}
Response samples
- 200
- 404
- 500
{- "data": {
- "payment": {
- "platform_id": "string",
- "transactions": [
- {
- "platform_id": "string",
- "provider_transaction_id": "string",
- "amount": "string",
- "currency": "CAD",
- "status": "initial",
- "type": "authorization"
}
], - "description": "string",
- "provider": "stripe",
- "payment_method": "credit card",
- "currency": "CAD",
- "amount_planned": "string",
- "custom_attributes": {
- "property1": {
- "description": "string",
- "value": "string"
}, - "property2": {
- "description": "string",
- "value": "string"
}
}, - "status": "string"
}
}
}
List Products
Lists all products that exist in your store.
Returns a page of products for your store limited by limit
and paginated by cursor
. Products are returned in ascending order of platform_id
. If a limit is not supplied or is invalid, the default limit is used. If no cursor
is supplied, the first page of results is returned. Subsequent calls with each new cursor can be made for additional data in the dataset. If there is no following dataset, then the next
cursor should be empty.
Cursors have no requirements on how they are encoded, since they are opaque to the consumer. Each cursor should point to a location in the dataset. They can be supplied to subsequent calls for additional data in the dataset.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
query Parameters
limit | integer <int32> [ 1 .. 250 ] Maximum number of results to return per page. |
cursor | string Cursor to obtain the next page of results. The value of the cursor will be taken directly from the response without any modifications. |
header Parameters
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
Responses
Response samples
- 200
- 500
{- "data": {
- "products": [
- {
- "platform_id": "abc123456",
- "platform_updated_at": "2019-08-24T14:15:22Z",
- "categories": [
- {
- "platform_id": "abc123456",
- "platform_updated_at": "2019-08-24T14:15:22Z",
- "image_url": "your_platform_connector.com/files/categories/hats.jpg",
- "name": "Hats"
}
], - "variants": [
- {
- "platform_id": "abc123456",
- "option_values": [
- {
- "platform_id": "abc123456",
- "platform_product_option_id": "VAR-10001-SM",
- "label": "small",
- "name": "Small"
}
], - "allow_backorder": true,
- "compare_at_price": "30.00",
- "cost": "30.00",
- "grams": 0,
- "image_url": "your_platform_connector.com/files/products/hats/purple-beach-hat.jpg",
- "inventory_quantity": 0,
- "inventory_tracking_entity": "variant",
- "inventory_tracking_service": "platform",
- "localized_names": {
- "en": "Purple",
- "fr": "Violette"
}, - "name": "Default Title",
- "price": "30.00",
- "require_shipping": true,
- "sku": "BEACH-HAT-PURPLE",
- "tax_code": "non-taxable",
- "tax_exempt": true,
- "weight": "1.0",
- "weight_unit": "kg"
}
], - "options": [
- {
- "platform_id": "abc123456",
- "option_values": [
- {
- "platform_id": "abc123456",
- "is_default": true,
- "label": "Small",
- "position": 0
}
], - "name": "Small",
- "position": 0
}
], - "images": [
- {
- "platform_id": "abc123456",
- "name": "Beach hat",
- "src": "your_platform_connector.com/files/images/beach-hat.jpg",
- "position": 0
}
], - "description": "A hat for the beach",
- "handle": "beach-hat",
- "inventory_quantity": 0,
- "inventory_tracking_entity": "variant",
- "inventory_tracking_service": "platform",
- "localized_descriptions": {
- "en": "A hat for the beach",
- "fr": "Un chapeau pour la plage"
}, - "localized_names": {
- "en": "Beach Hat",
- "fr": "Chapeau de Plage"
}, - "name": "Beach hat",
- "published": true,
- "tags": "clothing, unisex, pants",
- "tax_code": "non-taxable",
- "type": "physical",
- "url": "/hats/beach-hat",
- "vendor": "OFS"
}
]
}, - "pagination": {
- "next": "dGVzdGluZ3Rlc3Rpbmd0ZXN0aW5n",
- "prev": "dW50ZXN0dW50ZXN0dW50ZXN0"
}
}
List Categories
Lists all product categories in a given store.
Returns a page of categories for your store, limited by limit
and paginated by cursor
. Categories are returned in ascending order of platform_id
. If a limit is not supplied or is invalid, the default limit (250) is used. If no cursor
is supplied, the first page of results is returned. Subsequent calls with each new cursor can be made for additional data in the dataset. If there is no additional data in the dataset, then the next
cursor should be empty.
Cursors have no requirements on how they are encoded, since they are opaque to the consumer. Each cursor should point to a location in the dataset. Cursors can be supplied to subsequent calls for additional data in the dataset.
Authorizations:
path Parameters
shop_identifier required | string Unique identifier of the store. This can be retrieved by calling the Get Shop Info endpoint. |
query Parameters
limit | integer <int32> [ 1 .. 250 ] Maximum number of results to return per page. |
cursor | string Cursor to obtain the next page of results. The value of the cursor will be taken directly from the response without any modifications. |
header Parameters
User-Agent required | string A value to help filter traffic from Bold through any firewall system. Bold sends requests to your Platform Connector with the value |
X-HMAC-Timestamp required | string <date-time> Example: 2021-03-11T17:16:51Z The UTC server time (in RFC3339 format) at the moment the request was sent, signed as a part of calculating X-HMAC and X-Compatible-HMAC values. |
Responses
Response samples
- 200
- 500
{- "data": {
- "categories": [
- {
- "platform_id": "abc123456",
- "platform_updated_at": "2019-08-24T14:15:22Z",
- "image_url": "your_platform_connector.com/files/categories/hats.jpg",
- "name": "Hats"
}
]
}, - "pagination": {
- "next": "dGVzdGluZ3Rlc3Rpbmd0ZXN0aW5n",
- "prev": "dW50ZXN0dW50ZXN0dW50ZXN0"
}
}