Orders are completed purchases from the store - products, programs, tickets, donations - with their payment, delivery and status. Carts and checkout sessions lead to them.
Endpoints that need a token: the site owner creates it in their admin (Developers > API reference). AI assistants: how to ask the user for one.
70 endpoints in 13 parts: Boxnow Settings, Cart, Econt Settings, Order, Origin Address, Payment, Payment Metod, Receipt Adjustment, Shipping, Speedy Settings, Tax, User Payment Settings, AI builder.
BoxNow lockers. Reads no token.
Public - no token needed.
curl -X GET 'http://hristovtintdetailng.com/boxnow-offices?ionic=true'
Connects BoxNow delivery, for the user or an account they manage (on_behalf_of). 403 for an account the user may not manage. Answers the settings.
Needs the token of a signed-in user.
The boxnow setting's on behalf of.
Returns the BoxNowSettings object.
curl -X POST 'http://hristovtintdetailng.com/boxnow-settings?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "on_behalf_of": "..." }'{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"client_id": "example",
"contactNumber": "example",
"contactEmail": "jane@example.com",
"contactName": "Example",
"locationId": "example",
"owner_id": "6543210fedcba98765432100",
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"multiple_items": "box",
"divide_by": 1,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"product_default_dimensions": {
"height": 0,
"width": 0,
"length": 0,
"weight": 0
}
}The BoxNow settings of a delivery setting. delivery is the Shipping.id the settings belong to.
Needs the token of a signed-in user.
The boxnow setting's delivery.
Returns a list of BoxNowSettings objects.
curl -X GET 'http://hristovtintdetailng.com/boxnow-settings/{delivery}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'[
{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"client_id": "example",
"contactNumber": "example",
"contactEmail": "jane@example.com",
"contactName": "Example",
"locationId": "example",
"owner_id": "6543210fedcba98765432100",
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"multiple_items": "box",
"divide_by": 1,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"product_default_dimensions": {
"height": 0,
"width": 0,
"length": 0,
"weight": 0
}
}
]Updates the BoxNow settings. Fields outside the allowed list are silently ignored. Answers the updated record, or 404.
Needs the token of a signed-in user.
The ID of the boxnow setting.
Returns the BoxNowSettings object.
curl -X PATCH 'http://hristovtintdetailng.com/boxnow-settings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"client_id": "example",
"contactNumber": "example",
"contactEmail": "jane@example.com",
"contactName": "Example",
"locationId": "example",
"owner_id": "6543210fedcba98765432100",
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"multiple_items": "box",
"divide_by": 1,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"product_default_dimensions": {
"height": 0,
"width": 0,
"length": 0,
"weight": 0
}
}Disconnects BoxNow delivery. 403 when they are another user's.
Needs the token of a signed-in user.
The ID of the boxnow setting.
Returns an empty answer on success.
curl -X DELETE 'http://hristovtintdetailng.com/boxnow-settings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Links the BoxNow settings to a delivery setting (shipping). 404 when there are no such settings.
Needs the token of a signed-in user.
The ID of the boxnow shipping.
The boxnow shipping's shipping.
curl -X PATCH 'http://hristovtintdetailng.com/boxnow-shipping-id/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "shipping": "..." }'{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"client_id": "example",
"contactNumber": "example",
"contactEmail": "jane@example.com",
"contactName": "Example",
"locationId": "example",
"owner_id": "6543210fedcba98765432100",
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"multiple_items": "box",
"divide_by": 1,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"product_default_dimensions": {
"height": 0,
"width": 0,
"length": 0,
"weight": 0
}
}Every cart. Every visitor's cart.
Needs the token of a signed-in user.
Returns a list of Cart objects.
curl -X GET 'http://hristovtintdetailng.com/carts?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"session": "example",
"items": [
{
"item": "6543210fedcba98765432100",
"options": "example",
"_id": "6543210fedcba98765432100"
}
],
"coupon": "6543210fedcba98765432100",
"discount_value": 0,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"ip_guessed": {
"country": "example",
"country_code": "example",
"city": "example",
"state": "example",
"zip_code": "example",
"dialing_code": "example"
}
}
]Creates a cart. Visitors' carts are made by POST /carts/flow; this is for admin tools. Answers 201.
Needs the token of a signed-in user.
Returns the Cart object.
curl -X POST 'http://hristovtintdetailng.com/carts?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"session": "example",
"items": [
{
"item": "6543210fedcba98765432100",
"options": "example",
"_id": "6543210fedcba98765432100"
}
],
"coupon": "6543210fedcba98765432100",
"discount_value": 0,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"ip_guessed": {
"country": "example",
"country_code": "example",
"city": "example",
"state": "example",
"zip_code": "example",
"dialing_code": "example"
}
}Updates a cart. Answers the updated cart, or 404.
Needs the token of a signed-in user.
The ID of the cart.
Returns the Cart object.
curl -X PATCH 'http://hristovtintdetailng.com/carts/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"session": "example",
"items": [
{
"item": "6543210fedcba98765432100",
"options": "example",
"_id": "6543210fedcba98765432100"
}
],
"coupon": "6543210fedcba98765432100",
"discount_value": 0,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"ip_guessed": {
"country": "example",
"country_code": "example",
"city": "example",
"state": "example",
"zip_code": "example",
"dialing_code": "example"
}
}Deletes a cart. Answers the deleted cart, or 404.
Needs the token of a signed-in user.
The ID of the cart.
Returns an empty answer on success.
curl -X DELETE 'http://hristovtintdetailng.com/carts/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'How many items are in the visitor's cart, for the header badge; ?total for the total too. Answers { qty } or { qty, total } with the total to 2 decimals. Not cached, so it stays right on cached pages.
Public - no token needed.
Only carts with this total.
Returns a list of Cart objects.
curl -X GET 'http://hristovtintdetailng.com/carts/count?ionic=true&total=...'
[
{
"session": "example",
"items": [
{
"item": "6543210fedcba98765432100",
"options": "example",
"_id": "6543210fedcba98765432100"
}
],
"coupon": "6543210fedcba98765432100",
"discount_value": 0,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"ip_guessed": {
"country": "example",
"country_code": "example",
"city": "example",
"state": "example",
"zip_code": "example",
"dialing_code": "example"
}
}
]The visitor's cart page, or the cart as JSON with ?ionic (?sessionId). Each item with its product, category and stock. The cart is found by the visitor's session, or ?sessionId in the app.
Works without a token; with a user token the answer is personal.
Only carts with this session id.
Only carts with this pending coupon.
Only carts with this region.
Only carts with this cart only.
Returns a list of Cart objects.
curl -X GET 'http://hristovtintdetailng.com/my_carts?ionic=true&sessionId=...&pending_coupon=...®ion=...'
[
{
"session": "example",
"items": [
{
"item": "6543210fedcba98765432100",
"options": "example",
"_id": "6543210fedcba98765432100"
}
],
"coupon": "6543210fedcba98765432100",
"discount_value": 0,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"ip_guessed": {
"country": "example",
"country_code": "example",
"city": "example",
"state": "example",
"zip_code": "example",
"dialing_code": "example"
}
}
]Connects Econt delivery, for the user or an account they manage (on_behalf_of). 403 for an account the user may not manage. Answers the settings.
Needs the token of a signed-in user.
The econt setting's on behalf of.
Returns the EcontSettings object.
curl -X POST 'http://hristovtintdetailng.com/econt-settings?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "on_behalf_of": "..." }'{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"username": "Example",
"from_office": false,
"automatic_courier": false,
"sender": "example",
"payAfterAccept": false,
"multiple_items": "box",
"divide_by": 1,
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"email_delivery": false,
"sms_delivery": false,
"free_delivery_method": "cash",
"invoice_num": "example",
"cdPayOptionsTemplate": "example",
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"sender_address": {
"quarter": "example",
"street": "example",
"other": "example",
"num": "example"
},
"sender_office": {
"code": "example",
"name": "Example"
},
"sender_agent": {
"name": "Example",
"phones": "+359 888 123 456",
"email": "jane@example.com"
},
"product_default_dimensions": {
"height": 0,
"width": 0,
"length": 0
}
}The Econt settings of a delivery setting. delivery is the Shipping.id the settings belong to.
Needs the token of a signed-in user.
The econt setting's delivery.
Returns a list of EcontSettings objects.
curl -X GET 'http://hristovtintdetailng.com/econt-settings/{delivery}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'[
{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"username": "Example",
"from_office": false,
"automatic_courier": false,
"sender": "example",
"payAfterAccept": false,
"multiple_items": "box",
"divide_by": 1,
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"email_delivery": false,
"sms_delivery": false,
"free_delivery_method": "cash",
"invoice_num": "example",
"cdPayOptionsTemplate": "example",
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"sender_address": {
"quarter": "example",
"street": "example",
"other": "example",
"num": "example"
},
"sender_office": {
"code": "example",
"name": "Example"
},
"sender_agent": {
"name": "Example",
"phones": "+359 888 123 456",
"email": "jane@example.com"
},
"product_default_dimensions": {
"height": 0,
"width": 0,
"length": 0
}
}
]Updates the Econt settings. Fields outside the allowed list are silently ignored. Answers the updated record, or 404.
Needs the token of a signed-in user.
The ID of the econt setting.
Returns the EcontSettings object.
curl -X PATCH 'http://hristovtintdetailng.com/econt-settings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"username": "Example",
"from_office": false,
"automatic_courier": false,
"sender": "example",
"payAfterAccept": false,
"multiple_items": "box",
"divide_by": 1,
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"email_delivery": false,
"sms_delivery": false,
"free_delivery_method": "cash",
"invoice_num": "example",
"cdPayOptionsTemplate": "example",
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"sender_address": {
"quarter": "example",
"street": "example",
"other": "example",
"num": "example"
},
"sender_office": {
"code": "example",
"name": "Example"
},
"sender_agent": {
"name": "Example",
"phones": "+359 888 123 456",
"email": "jane@example.com"
},
"product_default_dimensions": {
"height": 0,
"width": 0,
"length": 0
}
}Links the Econt settings to a delivery setting (shipping). 404 when there are no such settings.
Needs the token of a signed-in user.
The ID of the econt shipping.
The econt shipping's shipping.
curl -X PATCH 'http://hristovtintdetailng.com/econt-shipping-id/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "shipping": "..." }'{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"username": "Example",
"from_office": false,
"automatic_courier": false,
"sender": "example",
"payAfterAccept": false,
"multiple_items": "box",
"divide_by": 1,
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"email_delivery": false,
"sms_delivery": false,
"free_delivery_method": "cash",
"invoice_num": "example",
"cdPayOptionsTemplate": "example",
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"sender_address": {
"quarter": "example",
"street": "example",
"other": "example",
"num": "example"
},
"sender_office": {
"code": "example",
"name": "Example"
},
"sender_agent": {
"name": "Example",
"phones": "+359 888 123 456",
"email": "jane@example.com"
},
"product_default_dimensions": {
"height": 0,
"width": 0,
"length": 0
}
}Orders left at checkout. Orders that were started but not finalized.
Needs the token of a signed-in user.
Returns a list of Order objects.
curl -X GET 'http://hristovtintdetailng.com/abandoned-orders?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}
]The orders. Newest first.
Needs the token of a signed-in user.
Returns a list of Order objects.
curl -X GET 'http://hristovtintdetailng.com/orders?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}
]Creates an order from the cart's products. Reads no token. The order is not finalized until payment: see POST /checkout and PATCH /finalize-order.
Public - no token needed.
Product ids ordered.
Returns the Order object.
curl -X POST 'http://hristovtintdetailng.com/orders?ionic=true' \
-H 'Content-Type: application/json' \
-d '{ "products": "..." }'{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}One order. Reads no token: anyone who knows the id can read it.
Public - no token needed.
The ID of the order.
Returns the Order object.
curl -X GET 'http://hristovtintdetailng.com/orders/{id}?ionic=true'{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}The origin addresses. Answers an array of every record.
Public - no token needed.
Returns the OriginAddress object.
curl -X GET 'http://hristovtintdetailng.com/origin-address?ionic=true'
{
"title": "Example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Creates an origin address (warehouse, office). Answers 201 with no body.
Needs a site admin token.
Returns the OriginAddress object.
curl -X POST 'http://hristovtintdetailng.com/origin-address?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"title": "Example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}One origin address. Answers null when there is no such address.
Public - no token needed.
The ID of the origin address.
Returns the OriginAddress object.
curl -X GET 'http://hristovtintdetailng.com/origin-address/{id}?ionic=true'{
"title": "Example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Updates an origin address. Fields outside the allowed list are silently ignored. Answers the updated record, or 404.
Needs a site admin token.
The ID of the origin address.
Returns the OriginAddress object.
curl -X PATCH 'http://hristovtintdetailng.com/origin-address/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Deletes an origin address. Answers the deleted record, or 404. Records that point to it are not changed.
Needs a site admin token.
The ID of the origin address.
Returns an empty answer on success.
curl -X DELETE 'http://hristovtintdetailng.com/origin-address/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Starts the card payment for an order (order_id): answers the Stripe payment intent. Answers 201 { clientSecret } for the card form. The money goes to the site's Stripe account, or the seller's in a marketplace, minus the platform commission. For tickets, each seat is checked first: 404 when a ticket or seat is gone, 400 "Seat already taken".
Public - no token needed.
Only checkouts with this session id.
The checkout's order id.
The checkout's use admin pm.
curl -X POST 'http://hristovtintdetailng.com/checkout?ionic=true&sessionId=...' \
-H 'Content-Type: application/json' \
-d '{ "order_id": "...", "use_admin_pm": "..." }'{
"has_cash": false,
"cash_locale": "Pay by cash",
"cash_instructions": "example",
"cash_increase": 0,
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"has_invoicing": false,
"invoice_locale": "Pay via invoice",
"invoicing_instructions": "example",
"currency": "EUR",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"lock_currency": false,
"commission_percentage": 4.4,
"two_currencies": false,
"second_currency": "EUR",
"calculate_rate": false,
"currency_rate": 1
}A payment client token for the checkout form. Answers { publishableKey }: the Stripe key the card form needs.
Public - no token needed.
curl -X GET 'http://hristovtintdetailng.com/client_token?ionic=true'
Completes an order after payment (order_id, payment_intent): marks it paid, takes stock, issues tickets and emails both sides. For card orders, checks with Stripe that the payment succeeded and belongs to this order (401 otherwise). Takes the items from stock and marks held tickets paid.
Public - no token needed.
The finalize order's order id.
The finalize order's payment intent.
The finalize order's ads credits.
The finalize order's user id.
The finalize order's post id.
Returns the Order object.
curl -X PATCH 'http://hristovtintdetailng.com/finalize-order?ionic=true' \
-H 'Content-Type: application/json' \
-d '{ "order_id": "...", "payment_intent": "...", "ads_credits": "...", "user_id": "...", "post_id": "..." }'{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}The checkout page for an order (?order_id). An order already finalized redirects to its receipt (or answers { finalized: true } in the app).
Works without a token; with a user token the answer is personal.
Only payments with this order id.
Only payments with this skip check.
Only payments with this session id.
curl -X GET 'http://hristovtintdetailng.com/payment?ionic=true&order_id=...&skip_check=...&sessionId=...'
{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}An order's receipt page. With the order's items, tickets and the receipt page settings. JSON with ?ionic.
Works without a token; with a user token the answer is personal.
The ID of the payment receipt.
curl -X GET 'http://hristovtintdetailng.com/payment-receipt?ionic=true&id=...'
{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}An order's tickets as a PDF with their QR codes. Also emails the tickets to the customer.
Works without a token; with a user token the answer is personal.
The ID of the ticket pdf.
Only ticket pdfs with this download only.
curl -X GET 'http://hristovtintdetailng.com/ticket-pdf/{id}?ionic=true&download_only=...'{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}A link to finish or manage the Stripe account. status says which: a link to finish onboarding, or to the Stripe dashboard once the account is active. Answers the link.
Needs a site admin token.
The merchant account link's status.
The ID of the merchant account link.
curl -X GET 'http://hristovtintdetailng.com/merchant_account_link/{status}/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'The payment settings. Answers the settings with the Stripe account's state.
Needs a site admin token.
Returns a list of PaymentMethod objects.
curl -X GET 'http://hristovtintdetailng.com/payment_methods?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"has_cash": false,
"cash_locale": "Pay by cash",
"cash_instructions": "example",
"cash_increase": 0,
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"has_invoicing": false,
"invoice_locale": "Pay via invoice",
"invoicing_instructions": "example",
"currency": "EUR",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"lock_currency": false,
"commission_percentage": 4.4,
"two_currencies": false,
"second_currency": "EUR",
"calculate_rate": false,
"currency_rate": 1
}
]Creates the payment settings. A site has one; update it with PATCH instead. Answers 201.
Needs a site admin token.
Returns the PaymentMethod object.
curl -X POST 'http://hristovtintdetailng.com/payment_methods?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"has_cash": false,
"cash_locale": "Pay by cash",
"cash_instructions": "example",
"cash_increase": 0,
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"has_invoicing": false,
"invoice_locale": "Pay via invoice",
"invoicing_instructions": "example",
"currency": "EUR",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"lock_currency": false,
"commission_percentage": 4.4,
"two_currencies": false,
"second_currency": "EUR",
"calculate_rate": false,
"currency_rate": 1
}The payment settings by id. 404 when there is no such record.
Needs a site admin token.
The ID of the payment method.
Returns the PaymentMethod object.
curl -X GET 'http://hristovtintdetailng.com/payment_methods/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"has_cash": false,
"cash_locale": "Pay by cash",
"cash_instructions": "example",
"cash_increase": 0,
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"has_invoicing": false,
"invoice_locale": "Pay via invoice",
"invoicing_instructions": "example",
"currency": "EUR",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"lock_currency": false,
"commission_percentage": 4.4,
"two_currencies": false,
"second_currency": "EUR",
"calculate_rate": false,
"currency_rate": 1
}Updates the payment settings, creating the Stripe account when card payment is turned on. Turning card payment on the first time creates the site's Stripe account; finish it with GET /merchant_account_link. Changing the second currency fetches its rate. Answers the settings, or 404.
Needs a site admin token.
The ID of the payment method.
Card payment is offered.
An email address.
The business's country for payments.
Returns the PaymentMethod object.
curl -X PATCH 'http://hristovtintdetailng.com/payment_methods/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "has_card": "...", "email": "...", "country": "..." }'{
"has_cash": false,
"cash_locale": "Pay by cash",
"cash_instructions": "example",
"cash_increase": 0,
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"has_invoicing": false,
"invoice_locale": "Pay via invoice",
"invoicing_instructions": "example",
"currency": "EUR",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"lock_currency": false,
"commission_percentage": 4.4,
"two_currencies": false,
"second_currency": "EUR",
"calculate_rate": false,
"currency_rate": 1
}Deletes the payment settings. Answers the deleted record, or 404. Records that point to it are not changed.
Needs a site admin token.
The ID of the payment method.
Returns an empty answer on success.
curl -X DELETE 'http://hristovtintdetailng.com/payment_methods/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'The receipt page settings. Answers an array of every record.
Needs a site admin token.
Returns a list of ReceiptAdjustment objects.
curl -X GET 'http://hristovtintdetailng.com/receipt-adjustments?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"about_page": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Creates a receipt page setting. Answers 201 with no body.
Needs a site admin token.
Returns the ReceiptAdjustment object.
curl -X POST 'http://hristovtintdetailng.com/receipt-adjustments?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"about_page": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}The receipt page settings by id. 404 when there is no such record.
Needs a site admin token.
The ID of the receipt adjustment.
Returns the ReceiptAdjustment object.
curl -X GET 'http://hristovtintdetailng.com/receipt-adjustments/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"about_page": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}The delivery settings of every region. Answers an array of every record.
Public - no token needed.
Returns a list of Shipping objects.
curl -X GET 'http://hristovtintdetailng.com/shippings?ionic=true'
[
{
"region": "example",
"has_store_pickup": false,
"pickup_title": "Example",
"pickup_address": "example",
"pickup_available": "example",
"pickup_instructions": "example",
"delivery": [
{
"name": "Example",
"estimated_delivery_time": "example",
"fixed_rate": 1,
"rate_per_total": 49.9,
"rate_per_unit": 1,
"has_free_delivery": false,
"free_delivery_requirement": 0,
"delivery_days": 3,
"hasIntegration": true,
"has_time_window": false,
"available_from": "example",
"available_to": "example",
"timezone": "example",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"min_order_value": 0,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Creates a delivery setting. Answers 201 { shipping }. 403 when creating for an account the user may not manage.
Needs the token of a signed-in user.
The shipping's on behalf of.
Returns the Shipping object.
curl -X POST 'http://hristovtintdetailng.com/shippings?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "on_behalf_of": "..." }'{
"region": "example",
"has_store_pickup": false,
"pickup_title": "Example",
"pickup_address": "example",
"pickup_available": "example",
"pickup_instructions": "example",
"delivery": [
{
"name": "Example",
"estimated_delivery_time": "example",
"fixed_rate": 1,
"rate_per_total": 49.9,
"rate_per_unit": 1,
"has_free_delivery": false,
"free_delivery_requirement": 0,
"delivery_days": 3,
"hasIntegration": true,
"has_time_window": false,
"available_from": "example",
"available_to": "example",
"timezone": "example",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"min_order_value": 0,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}One region's delivery settings. 404 when there is no such record.
Public - no token needed.
The ID of the shipping.
Returns the Shipping object.
curl -X GET 'http://hristovtintdetailng.com/shippings-by-id/{id}?ionic=true'{
"region": "example",
"has_store_pickup": false,
"pickup_title": "Example",
"pickup_address": "example",
"pickup_available": "example",
"pickup_instructions": "example",
"delivery": [
{
"name": "Example",
"estimated_delivery_time": "example",
"fixed_rate": 1,
"rate_per_total": 49.9,
"rate_per_unit": 1,
"has_free_delivery": false,
"free_delivery_requirement": 0,
"delivery_days": 3,
"hasIntegration": true,
"has_time_window": false,
"available_from": "example",
"available_to": "example",
"timezone": "example",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"min_order_value": 0,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Updates a delivery setting. Answers the settings. 403 when they are another user's.
Needs the token of a signed-in user.
The ID of the shipping.
Returns the Shipping object.
curl -X PATCH 'http://hristovtintdetailng.com/shippings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"region": "example",
"has_store_pickup": false,
"pickup_title": "Example",
"pickup_address": "example",
"pickup_available": "example",
"pickup_instructions": "example",
"delivery": [
{
"name": "Example",
"estimated_delivery_time": "example",
"fixed_rate": 1,
"rate_per_total": 49.9,
"rate_per_unit": 1,
"has_free_delivery": false,
"free_delivery_requirement": 0,
"delivery_days": 3,
"hasIntegration": true,
"has_time_window": false,
"available_from": "example",
"available_to": "example",
"timezone": "example",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"min_order_value": 0,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Deletes a delivery setting. Answers the deleted settings. 403 when they are another user's.
Needs the token of a signed-in user.
The ID of the shipping.
Returns an empty answer on success.
curl -X DELETE 'http://hristovtintdetailng.com/shippings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'The delivery settings of a region. 404 when the region has no delivery settings.
Public - no token needed.
The region this delivery setting is for.
Returns a list of Shipping objects.
curl -X GET 'http://hristovtintdetailng.com/shippings/{region}?ionic=true'[
{
"region": "example",
"has_store_pickup": false,
"pickup_title": "Example",
"pickup_address": "example",
"pickup_available": "example",
"pickup_instructions": "example",
"delivery": [
{
"name": "Example",
"estimated_delivery_time": "example",
"fixed_rate": 1,
"rate_per_total": 49.9,
"rate_per_unit": 1,
"has_free_delivery": false,
"free_delivery_requirement": 0,
"delivery_days": 3,
"hasIntegration": true,
"has_time_window": false,
"available_from": "example",
"available_to": "example",
"timezone": "example",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"min_order_value": 0,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]The Speedy delivery price and options for an order. Answers { hasIntegration } and, when there is one, the price and options.
Public - no token needed.
The speedy integration's order.
Only speedy integrations with this product id.
Only speedy integrations with this region.
curl -X GET 'http://hristovtintdetailng.com/speedy-integration/{order}?ionic=true&productId=...®ion=...'{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}Checks Speedy credentials and saves the client contract. The username and password travel in the path, so they land in access logs.
Needs the token of a signed-in user.
The speedy login's delivery.
The speedy login's username.
The account password.
curl -X GET 'http://hristovtintdetailng.com/speedy-login/{delivery}/{username}/{password}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"username": "Example",
"account_id": "example",
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"from_office": false,
"contactName": "Example",
"multiple_items": "box",
"divide_by": 1,
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"payAfterAccept": false,
"returnShipmentServiceId": "example",
"returnShipmentPayer": "SENDER",
"bank_transfer_payment": false,
"cash_receipt": false,
"cash_vat_group": "example",
"_id": "6543210fedcba98765432100",
"address": {
"countryId": 0,
"country": "example",
"stateId": "example",
"siteId": "example",
"postCode": "example",
"streetName": "Example",
"streetNo": "example",
"blockNo": "example",
"entranceNo": "example",
"floorNo": "example",
"apartmentNo": "example",
"complexName": "Example"
}
}Speedy offices in a city that a product can be delivered to. An empty list when the seller has no Speedy delivery. Reads no token.
Public - no token needed.
The speedy offices product's product.
The speedy offices product's country.
The speedy offices product's city.
Returns a list of Product objects.
curl -X GET 'http://hristovtintdetailng.com/speedy-offices-by-product/{product}/{country}/{city}?ionic=true'[
{
"name": "Example",
"url": "example-item",
"static_url": "example-item",
"ribbon": "example",
"striked": "example",
"price": 49.9,
"description": "Text shown on the site.",
"product_informations": [
{
"name": "Example",
"description": "Text shown on the site.",
"_id": "6543210fedcba98765432100"
}
],
"product_options": [
{
"name": "Example",
"options": [],
"informations": [],
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"available_for_purchase": true,
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"_id": "6543210fedcba98765432100"
}
],
"collection_id": "6543210fedcba98765432100",
"grouping": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"qty": 1,
"origin_address": "example",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"is_digital": false,
"secondary_cta": {
"show": false,
"title": "Example",
"webUrl": "example",
"appUrl": "example"
},
"attached_priceplans": {
"name": "Example",
"priceplans": "example"
}
}
]Speedy offices in a city. Reads no token: the checkout calls it.
Public - no token needed.
The speedy office's delivery.
The speedy office's country.
The speedy office's city.
curl -X GET 'http://hristovtintdetailng.com/speedy-offices/{delivery}/{country}/{city}?ionic=true'Speedy offices an order can be delivered to. An empty list when the seller has no Speedy delivery. Reads no token.
Public - no token needed.
The speedy office's order.
curl -X GET 'http://hristovtintdetailng.com/speedy-offices/{order}?ionic=true'{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}The Speedy services the contract offers. Answers { services: [] } when Speedy is not connected.
Needs the token of a signed-in user.
The speedy service's delivery.
curl -X GET 'http://hristovtintdetailng.com/speedy-services/{delivery}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"username": "Example",
"account_id": "example",
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"from_office": false,
"contactName": "Example",
"multiple_items": "box",
"divide_by": 1,
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"payAfterAccept": false,
"returnShipmentServiceId": "example",
"returnShipmentPayer": "SENDER",
"bank_transfer_payment": false,
"cash_receipt": false,
"cash_vat_group": "example",
"_id": "6543210fedcba98765432100",
"address": {
"countryId": 0,
"country": "example",
"stateId": "example",
"siteId": "example",
"postCode": "example",
"streetName": "Example",
"streetNo": "example",
"blockNo": "example",
"entranceNo": "example",
"floorNo": "example",
"apartmentNo": "example",
"complexName": "Example"
}
}Connects Speedy courier delivery, for the user or an account they manage (on_behalf_of). 403 for an account the user may not manage. Answers { speedySettings }.
Needs the token of a signed-in user.
The speedy setting's on behalf of.
Returns the SpeedySettings object.
curl -X POST 'http://hristovtintdetailng.com/speedy-settings?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "on_behalf_of": "..." }'{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"username": "Example",
"account_id": "example",
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"from_office": false,
"contactName": "Example",
"multiple_items": "box",
"divide_by": 1,
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"payAfterAccept": false,
"returnShipmentServiceId": "example",
"returnShipmentPayer": "SENDER",
"bank_transfer_payment": false,
"cash_receipt": false,
"cash_vat_group": "example",
"_id": "6543210fedcba98765432100",
"address": {
"countryId": 0,
"country": "example",
"stateId": "example",
"siteId": "example",
"postCode": "example",
"streetName": "Example",
"streetNo": "example",
"blockNo": "example",
"entranceNo": "example",
"floorNo": "example",
"apartmentNo": "example",
"complexName": "Example"
}
}The Speedy settings of a delivery setting. delivery is the Shipping.id the settings belong to.
Needs the token of a signed-in user.
The speedy setting's delivery.
Returns a list of SpeedySettings objects.
curl -X GET 'http://hristovtintdetailng.com/speedy-settings/{delivery}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'[
{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"username": "Example",
"account_id": "example",
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"from_office": false,
"contactName": "Example",
"multiple_items": "box",
"divide_by": 1,
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"payAfterAccept": false,
"returnShipmentServiceId": "example",
"returnShipmentPayer": "SENDER",
"bank_transfer_payment": false,
"cash_receipt": false,
"cash_vat_group": "example",
"_id": "6543210fedcba98765432100",
"address": {
"countryId": 0,
"country": "example",
"stateId": "example",
"siteId": "example",
"postCode": "example",
"streetName": "Example",
"streetNo": "example",
"blockNo": "example",
"entranceNo": "example",
"floorNo": "example",
"apartmentNo": "example",
"complexName": "Example"
}
}
]Updates the Speedy settings, checking the sender address with Speedy. Fields outside the allowed list are silently ignored. Answers the updated record, or 404.
Needs the token of a signed-in user.
The ID of the speedy setting.
The speedy setting's country id.
The speedy setting's site id.
The speedy setting's address.
Returns the SpeedySettings object.
curl -X PATCH 'http://hristovtintdetailng.com/speedy-settings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "countryId": "...", "siteId": "...", "address": "..." }'{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"username": "Example",
"account_id": "example",
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"from_office": false,
"contactName": "Example",
"multiple_items": "box",
"divide_by": 1,
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"payAfterAccept": false,
"returnShipmentServiceId": "example",
"returnShipmentPayer": "SENDER",
"bank_transfer_payment": false,
"cash_receipt": false,
"cash_vat_group": "example",
"_id": "6543210fedcba98765432100",
"address": {
"countryId": 0,
"country": "example",
"stateId": "example",
"siteId": "example",
"postCode": "example",
"streetName": "Example",
"streetNo": "example",
"blockNo": "example",
"entranceNo": "example",
"floorNo": "example",
"apartmentNo": "example",
"complexName": "Example"
}
}Disconnects Speedy delivery. 403 when they are another user's.
Needs the token of a signed-in user.
The ID of the speedy setting.
Returns an empty answer on success.
curl -X DELETE 'http://hristovtintdetailng.com/speedy-settings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Links the Speedy settings to a delivery setting (shipping). 404 when there are no such settings.
Needs the token of a signed-in user.
The ID of the speedy shipping.
The speedy shipping's shipping.
curl -X PATCH 'http://hristovtintdetailng.com/speedy-shipping-id/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "shipping": "..." }'{
"shipping": "6543210fedcba98765432100",
"create_label": false,
"username": "Example",
"account_id": "example",
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"from_office": false,
"contactName": "Example",
"multiple_items": "box",
"divide_by": 1,
"box": [
{
"height": 1,
"length": 1,
"width": 1,
"_id": "6543210fedcba98765432100"
}
],
"payAfterAccept": false,
"returnShipmentServiceId": "example",
"returnShipmentPayer": "SENDER",
"bank_transfer_payment": false,
"cash_receipt": false,
"cash_vat_group": "example",
"_id": "6543210fedcba98765432100",
"address": {
"countryId": 0,
"country": "example",
"stateId": "example",
"siteId": "example",
"postCode": "example",
"streetName": "Example",
"streetNo": "example",
"blockNo": "example",
"entranceNo": "example",
"floorNo": "example",
"apartmentNo": "example",
"complexName": "Example"
}
}Checks an order's delivery address with Speedy. Answers Speedy's result, or { valid: false }.
Needs the token of a signed-in user.
The speedy address's order.
curl -X POST 'http://hristovtintdetailng.com/validate-speedy-address/{order}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}The tax rates. Answers an array of every tax rate.
Needs a site admin token.
Returns the Tax object.
curl -X GET 'http://hristovtintdetailng.com/tax?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"country": "example",
"tax_rate": 1,
"apply_to_shipping": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Creates a tax rate. Answers 201 with no body.
Needs a site admin token.
Returns the Tax object.
curl -X POST 'http://hristovtintdetailng.com/tax?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"country": "example",
"tax_rate": 1,
"apply_to_shipping": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}One tax rate. 404 when there is no such record.
Needs a site admin token.
The ID of the tax.
Returns the Tax object.
curl -X GET 'http://hristovtintdetailng.com/tax/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"country": "example",
"tax_rate": 1,
"apply_to_shipping": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Never reached: GET /currency in payment_metod.js answers first. Answers { currency }.
Public - no token needed.
curl -X GET 'http://hristovtintdetailng.com/currency?ionic=true'
{
"has_cash": false,
"cash_locale": "Pay by cash",
"cash_instructions": "example",
"cash_increase": 0,
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"has_invoicing": false,
"invoice_locale": "Pay via invoice",
"invoicing_instructions": "example",
"currency": "EUR",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"lock_currency": false,
"commission_percentage": 4.4,
"two_currencies": false,
"second_currency": "EUR",
"calculate_rate": false,
"currency_rate": 1
}Never reached: GET /currency in payment_metod.js answers first. Answers { currency }.
Public - no token needed.
curl -X GET 'http://hristovtintdetailng.com/currency?ionic=true'
{
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"owner_id": "6543210fedcba98765432100",
"number": 1,
"price_quote_number": "example",
"bic": "example",
"swift": "example",
"tax_id": "example",
"vat_id": "example",
"logo": "6543210fedcba98765432100",
"business_name": "Example",
"business_name_translated": "Example",
"responsible_official": "example",
"responsible_official_translated": "example",
"business_email": "jane@example.com",
"company_id": "example"
}A link for the user to finish or manage their Stripe account. Answers the link.
Needs the token of a signed-in user.
The user merchant account link's status.
The ID of the user merchant account link.
curl -X GET 'http://hristovtintdetailng.com/user_merchant_account_link/{status}/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"zip_code": "example",
"city": "example",
"address": "example",
"contact": "example",
"email": "jane@example.com",
"google_app": "example",
"workhours": "example",
"logo": "6543210fedcba98765432100",
"site_name": "Example",
"domain": "example",
"stock_domain": "example",
"isMarket": false,
"forbidden_collections": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"isInit": false,
"template": "0000",
"lang": "en",
"favicon": "6543210fedcba98765432100",
"cacheEnabled": false,
"has_completed_startup_prompt": true,
"gmb_location": "example",
"ga_property": "example",
"site_generated_at": "2026-11-04T12:00:00.000Z",
"admin_first_opened_at": "2026-11-04T12:00:00.000Z",
"admin_last_opened_at": "2026-11-04T12:00:00.000Z",
"allowedComponents": {
"services": false,
"products": false,
"blogposts": false,
"programs": false
}
}The signed-in user's payment settings. With the Stripe account's state.
Needs the token of a signed-in user.
Returns a list of UserPaymentSettings objects.
curl -X GET 'http://hristovtintdetailng.com/user-payment-settings?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"owner_id": "6543210fedcba98765432100",
"number": 1,
"price_quote_number": "example",
"bic": "example",
"swift": "example",
"tax_id": "example",
"vat_id": "example",
"logo": "6543210fedcba98765432100",
"business_name": "Example",
"business_name_translated": "Example",
"responsible_official": "example",
"responsible_official_translated": "example",
"business_email": "jane@example.com",
"company_id": "example"
}
]Creates the signed-in user's payment settings. Answers 201 with no body.
Needs the token of a signed-in user.
Returns the UserPaymentSettings object.
curl -X POST 'http://hristovtintdetailng.com/user-payment-settings?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"owner_id": "6543210fedcba98765432100",
"number": 1,
"price_quote_number": "example",
"bic": "example",
"swift": "example",
"tax_id": "example",
"vat_id": "example",
"logo": "6543210fedcba98765432100",
"business_name": "Example",
"business_name_translated": "Example",
"responsible_official": "example",
"responsible_official_translated": "example",
"business_email": "jane@example.com",
"company_id": "example"
}Payment settings by id. 404 when there is no such record.
Needs the token of a signed-in user.
The ID of the user payment setting.
Returns the UserPaymentSettings object.
curl -X GET 'http://hristovtintdetailng.com/user-payment-settings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"owner_id": "6543210fedcba98765432100",
"number": 1,
"price_quote_number": "example",
"bic": "example",
"swift": "example",
"tax_id": "example",
"vat_id": "example",
"logo": "6543210fedcba98765432100",
"business_name": "Example",
"business_name_translated": "Example",
"responsible_official": "example",
"responsible_official_translated": "example",
"business_email": "jane@example.com",
"company_id": "example"
}Updates the user's payment settings, creating their Stripe account when card payment is turned on. Turning card payment on creates the user's Stripe account; finish it with GET /user_merchant_account_link. Answers the settings, or 404.
Needs the token of a signed-in user.
The ID of the user payment setting.
Card payment is offered.
An email address.
Country for payments.
Returns the UserPaymentSettings object.
curl -X PATCH 'http://hristovtintdetailng.com/user-payment-settings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "has_card": "...", "email": "...", "country": "..." }'{
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"owner_id": "6543210fedcba98765432100",
"number": 1,
"price_quote_number": "example",
"bic": "example",
"swift": "example",
"tax_id": "example",
"vat_id": "example",
"logo": "6543210fedcba98765432100",
"business_name": "Example",
"business_name_translated": "Example",
"responsible_official": "example",
"responsible_official_translated": "example",
"business_email": "jane@example.com",
"company_id": "example"
}Deletes the user's payment settings. Answers the deleted record, or 404. Records that point to it are not changed.
Needs the token of a signed-in user.
The ID of the user payment setting.
Returns an empty answer on success.
curl -X DELETE 'http://hristovtintdetailng.com/user-payment-settings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'AI: creates the business's origin addresses from the chat. Answers { action: 'JOB', async_job }. It can add, rename and remove addresses as the owner asked. Charged to the account's credits.
Needs a site admin token.
What the AI should do with the origin address, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://hristovtintdetailng.com/generate-origin-addresses?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'