openapi: 3.0.3
info:
title: 'Obypay public API'
description: 'Obypay public API'
version: 1.0.0
servers:
-
url: 'https://public-api.obypay.pro'
paths:
/api/v1/me:
get:
summary: 'Get account data'
operationId: getAccountData
description: ''
parameters: []
responses:
200:
description: 'Product in stock'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
location:
address:
address: '2 rue tutu'
zipcode: '02000'
city: Truc
country: FR
id: LXlgVPQ6YF
identification: '12343'
name: 'Restaurant du coin'
phone: '0647562364'
company:
address:
address_line_1: ''
address_line_2: '2 rue tutu'
zipcode: '02000'
city: Truc
country: FR
id: 65202297ad79358c12090af4
identification: '12345678900015'
name: 'Société Lala SARL'
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
location:
type: object
properties:
address:
type: object
properties:
address:
type: string
example: '2 rue tutu'
zipcode:
type: string
example: '02000'
city:
type: string
example: Truc
country:
type: string
example: FR
id:
type: string
example: LXlgVPQ6YF
identification:
type: string
example: '12343'
name:
type: string
example: 'Restaurant du coin'
phone:
type: string
example: '0647562364'
company:
type: object
properties:
address:
type: object
properties:
address_line_1:
type: string
example: ''
address_line_2:
type: string
example: '2 rue tutu'
zipcode:
type: string
example: '02000'
city:
type: string
example: Truc
country:
type: string
example: FR
id:
type: string
example: 65202297ad79358c12090af4
identification:
type: string
example: '12345678900015'
name:
type: string
example: 'Société Lala SARL'
tags:
- 'Administrative API'
/api/v1/auth/tokens/renew:
post:
summary: 'Renew an existing token'
operationId: renewAnExistingToken
description: ''
parameters: []
responses:
200:
description: 'Token renew'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
token: abcdefgh|ijklmnopqrstuvwxyz0123456789
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
token:
type: string
example: abcdefgh|ijklmnopqrstuvwxyz0123456789
400:
description: "Can't delete current token"
content:
application/json:
schema:
type: object
example:
status: 400
code: 'Bad Request'
errors:
- "Can't delete record"
properties:
status:
type: integer
example: 400
code:
type: string
example: 'Bad Request'
errors:
type: array
example:
- "Can't delete record"
items:
type: string
404:
description: 'Unknown token'
content:
application/json:
schema:
type: object
example:
status: 404
code: 'Not Found'
errors:
- 'Unknown record'
properties:
status:
type: integer
example: 404
code:
type: string
example: 'Not Found'
errors:
type: array
example:
- 'Unknown record'
items:
type: string
tags:
- 'Auth API'
/api/v1/exports/revenue:
get:
summary: 'Export daily revenue data as CSV file.'
operationId: exportDailyRevenueDataAsCSVFile
description: ''
parameters: []
responses:
200:
description: 'CSV file streamed successfully'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
message: 'CSV file streamed successfully.'
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
message:
type: string
example: 'CSV file streamed successfully.'
403:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Data generation not allowed for some locations'
type: object
example:
status: 403
code: 'Not Allowed'
errors:
- 'Data generation is not enabled for the following locations: LocationName'
properties:
status:
type: integer
example: 403
code:
type: string
example: 'Not Allowed'
errors:
type: array
example:
- 'Data generation is not enabled for the following locations: LocationName'
items:
type: string
-
description: 'Not authorized to access data for some locations'
type: object
example:
status: 403
code: 'Not Allowed'
errors:
- 'You are not authorized to export data for the following locations: LocationName'
properties:
status:
type: integer
example: 403
code:
type: string
example: 'Not Allowed'
errors:
type: array
example:
- 'You are not authorized to export data for the following locations: LocationName'
items:
type: string
406:
description: 'Invalid Content-Type header'
content:
application/json:
schema:
type: object
example:
status: 406
code: 'Not Acceptable'
errors:
- 'Incorrect Content-Type header. Please set Content-Type: text/csv to download the .csv file.'
properties:
status:
type: integer
example: 406
code:
type: string
example: 'Not Acceptable'
errors:
type: array
example:
- 'Incorrect Content-Type header. Please set Content-Type: text/csv to download the .csv file.'
items:
type: string
tags:
- 'Exports API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date in the format Y-m-d. Must be a date before or equal to 2025-12-07.'
example: '2002-01-13'
nullable: false
end_date:
type: string
description: 'Must be a valid date in the format Y-m-d. Must be a date before or equal to 2025-12-07. Must be a date after or equal to start_date.'
example: '2056-06-05'
nullable: false
location_ids:
type: array
description: 'The _id of an existing record in the UserPro table.'
example:
- eaque
items:
type: string
required:
- start_date
- end_date
/api/v1/inventories:
post:
summary: 'Upload full inventory'
operationId: uploadFullInventory
description: "You can upload your inventory\n\n"
parameters: []
responses: { }
tags:
- 'Inventory API'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
config:
type: object
description: ''
example: []
nullable: false
properties:
lang:
type: string
description: ''
example: fr
nullable: false
enum:
- fr
required:
- lang
modifiers:
type: array
description: ''
example:
- []
items:
type: object
properties:
id:
type: string
description: ''
example: harum
nullable: false
label:
type: string
description: ''
example: aut
nullable: false
min:
type: integer
description: 'Must be at least 0.'
example: 49
nullable: false
max:
type: integer
description: 'Must be at least 1.'
example: 57
nullable: false
multiple:
type: boolean
description: ''
example: true
nullable: false
items:
type: array
description: ''
example:
- []
items:
type: object
properties:
id:
type: string
description: ''
example: reiciendis
nullable: false
label:
type: string
description: ''
example: odit
nullable: false
max:
type: integer
description: 'Must be at least 1.'
example: 13
nullable: false
prices:
type: array
description: ''
example: null
items:
type: object
properties:
type:
type: string
description: ''
example: delivery
nullable: false
enum:
- onsite
- takeaway
- delivery
value:
type: integer
description: ''
example: 3
nullable: false
required:
- type
- value
required:
- id
- label
- max
required:
- id
- label
- min
- max
- multiple
- items
containers:
type: array
description: ''
example:
- []
items:
type: object
properties:
id:
type: string
description: ''
example: magnam
nullable: false
label:
type: string
description: ''
example: aut
nullable: false
items:
type: object
description: ''
example: []
nullable: false
properties: { }
required:
- id
- label
- items
pagers:
type: array
description: ''
example:
- []
items:
type: object
properties:
id:
type: string
description: ''
example: similique
nullable: false
label:
type: string
description: ''
example: reiciendis
nullable: false
color:
type: string
description: ''
example: veniam
nullable: false
type:
type: string
description: ''
example: paper
nullable: false
enum:
- paper
- all
- device
required:
- id
- label
- color
- type
tagsets:
type: array
description: ''
example:
- []
items:
type: object
properties:
id:
type: string
description: ''
example: aut
nullable: false
label:
type: string
description: ''
example: temporibus
nullable: false
items:
type: array
description: ''
example:
- []
items:
type: object
properties:
id:
type: string
description: ''
example: dolores
nullable: false
label:
type: string
description: ''
example: rerum
nullable: false
picture:
type: string
description: 'Must be a valid URL.'
example: 'http://www.hill.com/mollitia-fugit-vel-corporis-odio-laborum.html'
nullable: false
required:
- id
- label
required:
- id
- label
- items
products:
type: array
description: ''
example:
- []
items:
type: object
properties:
description:
type: string
description: 'Must not be greater than 500 characters.'
example: 'Odio et provident similique similique.'
nullable: false
id:
type: string
description: ''
example: ducimus
nullable: false
label:
type: string
description: ''
example: numquam
nullable: false
prices:
type: array
description: ''
example:
- []
items:
type: object
properties:
type:
type: string
description: ''
example: delivery
nullable: false
enum:
- onsite
- takeaway
- delivery
value:
type: integer
description: ''
example: 2
nullable: false
vat_rate:
type: string
description: 'Must be at least 0 characters. Must not be greater than 1 character.'
example: m
nullable: false
required:
- type
- value
- vat_rate
size:
type: object
description: ''
example: null
nullable: false
properties:
unit:
type: string
description: ''
example: g
nullable: false
enum:
- unit
- cl
- dl
- l
- g
- kg
value:
type: string
description: 'Must be at least 0 characters. Must not be greater than 5000 characters.'
example: vyvl
nullable: false
required:
- unit
- value
types:
type: object
description: ''
example: []
nullable: false
properties: { }
level:
type: integer
description: ''
example: 5
nullable: false
picture:
type: string
description: 'Must be a valid URL.'
example: 'http://www.barton.com/ut-natus-provident-atque-iusto-omnis-tempora-id'
nullable: false
modifiers:
type: object
description: ''
example: null
nullable: false
properties: { }
pager_id:
type: string
description: ''
example: et
nullable: false
tagsets:
type: array
description: ''
example: null
items:
type: object
properties:
id:
type: string
description: ''
example: molestiae
nullable: false
items:
type: object
description: ''
example: null
nullable: false
properties: { }
required:
- id
weekly_schedule:
type: array
description: ''
example: null
items:
type: object
properties:
day:
type: integer
description: 'Must be at least 0. Must not be greater than 6.'
example: 1
nullable: false
openings:
type: array
description: ''
example: null
items:
type: object
properties:
from:
type: string
description: 'Must match the regex /[0-9]{2}:[0-9]{2}/.'
example: '12:51'
nullable: false
to:
type: string
description: 'Must match the regex /[0-9]{2}:[0-9]{2}/.'
example: '36:82'
nullable: false
required:
- id
- label
- prices
- types
productsets:
type: array
description: ''
example:
- []
items:
type: object
properties:
id:
type: string
description: ''
example: dolor
nullable: false
label:
type: string
description: ''
example: ducimus
nullable: false
prices:
type: array
description: ''
example:
- []
items:
type: object
properties:
type:
type: string
description: ''
example: delivery
nullable: false
enum:
- onsite
- takeaway
- delivery
value:
type: integer
description: ''
example: 2
nullable: false
vat_rate:
type: string
description: 'Must be at least 0 characters. Must not be greater than 1 character.'
example: x
nullable: false
required:
- type
- value
- vat_rate
types:
type: object
description: ''
example: []
nullable: false
properties: { }
level:
type: integer
description: ''
example: 14
nullable: false
picture:
type: string
description: 'Must be a valid URL.'
example: 'http://ryan.com/corrupti-maiores-ipsum-sint-qui-sit.html'
nullable: false
weekly_schedule:
type: array
description: ''
example: null
items:
type: object
properties:
day:
type: integer
description: 'Must be at least 0. Must not be greater than 6.'
example: 5
nullable: false
openings:
type: array
description: ''
example: null
items:
type: object
properties:
from:
type: string
description: 'Must match the regex /[0-9]{2}:[0-9]{2}/.'
example: '69:88'
nullable: false
to:
type: string
description: 'Must match the regex /[0-9]{2}:[0-9]{2}/.'
example: '23:46'
nullable: false
steps:
type: array
description: ''
example:
- []
items:
type: object
properties:
id:
type: string
description: ''
example: sint
nullable: false
label:
type: string
description: ''
example: ut
nullable: false
min:
type: integer
description: 'Must be at least 1. Must not be greater than 20.'
example: 17
nullable: false
max:
type: integer
description: 'Must be at least 1. Must not be greater than 20.'
example: 2
nullable: false
free:
type: integer
description: 'Must be at least 0. Must not be greater than 20.'
example: 3
nullable: false
items:
type: array
description: ''
example: null
items:
type: object
properties:
id:
type: string
description: ''
example: corrupti
nullable: false
extra_price:
type: integer
description: ''
example: 1
nullable: false
required:
- id
- extra_price
required:
- id
- label
- min
- max
- free
required:
- id
- label
- types
- steps
menus:
type: array
description: ''
example:
- []
items:
type: object
properties:
id:
type: string
description: ''
example: illum
nullable: false
label:
type: string
description: ''
example: aut
nullable: false
families:
type: array
description: ''
example:
- []
items:
type: object
properties:
id:
type: string
description: ''
example: animi
nullable: false
label:
type: string
description: ''
example: harum
nullable: false
families:
type: array
description: ''
example:
- []
items:
type: object
properties:
id:
type: string
description: ''
example: dolores
nullable: false
label:
type: string
description: ''
example: veniam
nullable: false
families:
type: array
description: ''
example:
- []
items:
type: object
properties: { id: { type: string, description: '', example: fugit, nullable: false }, label: { type: string, description: '', example: possimus, nullable: false }, items: { type: array, description: '', example: [[]], items: { type: object, properties: { id: { type: string, description: '', example: veniam, nullable: false }, type: { type: string, description: '', example: products, nullable: false, enum: [products, productsets, containers] }, prices: { type: array, description: '', example: null, items: { type: object, properties: { type: { type: string, description: '', example: delivery, nullable: false, enum: [onsite, takeaway, delivery] }, value: { type: integer, description: '', example: 9, nullable: false }, vat_rate: { type: string, description: 'Must be at least 0 characters. Must not be greater than 1 character.', example: l, nullable: false } }, required: [type, value, vat_rate] } } }, required: [id, type] } } }
required: [id, label]
required:
- id
- label
- families
required:
- id
- label
- families
required:
- id
- label
- families
get:
summary: 'Download full inventory'
operationId: downloadFullInventory
description: 'You can download your last successful inventory'
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
status: 401
code: Unauthenticated
errors:
- Unauthenticated.
properties:
status:
type: integer
example: 401
code:
type: string
example: Unauthenticated
errors:
type: array
example:
- Unauthenticated.
items:
type: string
tags:
- 'Inventory API'
/api/v1/stocks/products:
post:
summary: 'Manage batch of products stock'
operationId: manageBatchOfProductsStock
description: 'You can manage stock state for a batch of products'
parameters: []
responses:
200:
description: 'Product batch processed'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
data:
-
id: '4084'
in_stock: true
-
id: '705'
in_stock: true
-
id: '7762'
in_stock: true
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
data:
type: array
example:
-
id: '4084'
in_stock: true
-
id: '705'
in_stock: true
-
id: '7762'
in_stock: true
items:
type: object
properties:
id:
type: string
example: '4084'
in_stock:
type: boolean
example: true
tags:
- 'Inventory API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
state:
type: string
description: ''
example: out-of-stock
nullable: false
enum:
- in-stock
- out-of-stock
ids:
type: array
description: 'List of product ids to update.'
example:
- '4084'
- '705'
- '7762'
items:
type: string
required:
- state
- ids
'/api/v1/stocks/products/{id}':
post:
summary: 'Manage single product stock'
operationId: manageSingleProductStock
description: 'You can manage stock state for a single product'
parameters: []
responses:
200:
description: 'Product stock state updated'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
id: CvhwGFNY3Z
in_stock: true
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
id:
type: string
example: CvhwGFNY3Z
in_stock:
type: boolean
example: true
404:
description: 'Product not found'
content:
application/json:
schema:
type: object
example:
status: 404
code: 'Not Found'
errors:
- 'Unknown record'
properties:
status:
type: integer
example: 404
code:
type: string
example: 'Not Found'
errors:
type: array
example:
- 'Unknown record'
items:
type: string
tags:
- 'Inventory API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
state:
type: string
description: ''
example: out-of-stock
nullable: false
enum:
- in-stock
- out-of-stock
required:
- state
parameters:
-
in: path
name: id
description: 'The id of the product.'
example: CvhwGFNY3Z
required: true
schema:
type: string
/api/v1/stocks/modifiers/items:
post:
summary: 'Manage batch of modifier items stock'
operationId: manageBatchOfModifierItemsStock
description: 'You can manage stock state for a batch of modifier items'
parameters: []
responses:
200:
description: 'Modifier item batch processed'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
data:
-
id: '4084'
in_stock: true
-
id: '705'
in_stock: true
-
id: '7762'
in_stock: true
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
data:
type: array
example:
-
id: '4084'
in_stock: true
-
id: '705'
in_stock: true
-
id: '7762'
in_stock: true
items:
type: object
properties:
id:
type: string
example: '4084'
in_stock:
type: boolean
example: true
tags:
- 'Inventory API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
state:
type: string
description: ''
example: out-of-stock
nullable: false
enum:
- in-stock
- out-of-stock
ids:
type: array
description: 'List of modifier item ids to update.'
example:
- 8L4DWdYahZ
- 8L4DWdYaha
- 8L4DWdYahd
items:
type: string
required:
- state
- ids
'/api/v1/stocks/modifiers/items/{id}':
post:
summary: 'Manage single modifier item stock'
operationId: manageSingleModifierItemStock
description: 'You can manage stock state for a single modifier item'
parameters: []
responses:
200:
description: 'Modifier item stock state updated'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
id: CvhwGFNY3Z
in_stock: true
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
id:
type: string
example: CvhwGFNY3Z
in_stock:
type: boolean
example: true
404:
description: 'Modifier item not found'
content:
application/json:
schema:
type: object
example:
status: 404
code: 'Not Found'
errors:
- 'Unknown record'
properties:
status:
type: integer
example: 404
code:
type: string
example: 'Not Found'
errors:
type: array
example:
- 'Unknown record'
items:
type: string
tags:
- 'Inventory API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
state:
type: string
description: ''
example: in-stock
nullable: false
enum:
- in-stock
- out-of-stock
required:
- state
parameters:
-
in: path
name: id
description: 'The id of the modifier item.'
example: 8L4DWdYahZ
required: true
schema:
type: string
/api/v1/stocks/productsets:
post:
summary: 'Manage batch of productsets stock'
operationId: manageBatchOfProductsetsStock
description: 'You can manage stock state for a batch of productsets'
parameters: []
responses:
200:
description: 'Productset batch processed'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
data:
-
id: '4084'
in_stock: true
-
id: '705'
in_stock: true
-
id: '7762'
in_stock: true
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
data:
type: array
example:
-
id: '4084'
in_stock: true
-
id: '705'
in_stock: true
-
id: '7762'
in_stock: true
items:
type: object
properties:
id:
type: string
example: '4084'
in_stock:
type: boolean
example: true
tags:
- 'Inventory API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
state:
type: string
description: ''
example: in-stock
nullable: false
enum:
- in-stock
- out-of-stock
ids:
type: array
description: 'List of productset ids to update.'
example:
- '21073'
- '19792'
- '17021'
items:
type: string
required:
- state
- ids
'/api/v1/stocks/productsets/{id}':
post:
summary: 'Manage single productset stock'
operationId: manageSingleProductsetStock
description: 'You can manage stock state for a single productset'
parameters: []
responses:
200:
description: 'Productset stock state updated'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
id: CvhwGFNY3Z
in_stock: true
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
id:
type: string
example: CvhwGFNY3Z
in_stock:
type: boolean
example: true
404:
description: 'Productset not found'
content:
application/json:
schema:
type: object
example:
status: 404
code: 'Not Found'
errors:
- 'Unknown record'
properties:
status:
type: integer
example: 404
code:
type: string
example: 'Not Found'
errors:
type: array
example:
- 'Unknown record'
items:
type: string
tags:
- 'Inventory API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
state:
type: string
description: ''
example: in-stock
nullable: false
enum:
- in-stock
- out-of-stock
required:
- state
parameters:
-
in: path
name: id
description: 'The id of the productset.'
example: HzsKRTLKXo
required: true
schema:
type: string
/api/v1/master/data-generation/toggle:
post:
summary: 'Toggle data generation activation for userPro locations.'
operationId: toggleDataGenerationActivationForUserProLocations
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Data generation updated'
type: object
example:
status: 200
code: OK
data:
message: 'Data generation activation updated successfully.'
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
message:
type: string
example: 'Data generation activation updated successfully.'
-
description: 'No changes applied'
type: object
example:
status: 200
code: OK
data:
message: 'No changes were applied, or the specified locations are not associated with this master account.'
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
message:
type: string
example: 'No changes were applied, or the specified locations are not associated with this master account.'
403:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
status: 403
code: Unauthorized
errors:
- 'You are not allowed to perform this action.'
properties:
status:
type: integer
example: 403
code:
type: string
example: Unauthorized
errors:
type: array
example:
- 'You are not allowed to perform this action.'
items:
type: string
tags:
- 'Master API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
location_ids:
type: array
description: 'The _id of an existing record in the UserPro table.'
example:
- doloremque
items:
type: string
enable:
type: boolean
description: ''
example: true
nullable: false
required:
- location_ids
- enable
/api/v1/master/data-generation/locations:
get:
summary: 'Get locations with data generation enabled for a Master.'
operationId: getLocationsWithDataGenerationEnabledForAMaster
description: ''
parameters: []
responses:
200:
description: 'List of locations with data generation enabled'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
message: 'Data generation activation updated successfully.'
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
message:
type: string
example: 'Data generation activation updated successfully.'
403:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
status: 403
code: Unauthorized
errors:
- 'You are not allowed to perform this action.'
properties:
status:
type: integer
example: 403
code:
type: string
example: Unauthorized
errors:
type: array
example:
- 'You are not allowed to perform this action.'
items:
type: string
tags:
- 'Master API'
/api/v1/notifications/listeners:
post:
summary: 'Create a listener'
operationId: createAListener
description: ''
parameters: []
responses:
201:
description: 'Listener created'
content:
application/json:
schema:
type: object
example:
status: 201
code: Created
data:
created_at: '2024-02-26T13:26:54+00:00'
events:
- order.created
- order.ready
- order.delivered
- order.canceled
id: 65dc919e67743a65790b1342
updated_at: '2024-02-26T13:26:54+00:00'
url: 'https://api.docker.localhost/webhooks'
properties:
status:
type: integer
example: 201
code:
type: string
example: Created
data:
type: object
properties:
created_at:
type: string
example: '2024-02-26T13:26:54+00:00'
events:
type: array
example:
- order.created
- order.ready
- order.delivered
- order.canceled
items:
type: string
id:
type: string
example: 65dc919e67743a65790b1342
updated_at:
type: string
example: '2024-02-26T13:26:54+00:00'
url:
type: string
example: 'https://api.docker.localhost/webhooks'
422:
description: 'Request error'
content:
application/json:
schema:
type: object
example:
status: 422
code: Failed
errors:
- 'The events field is required.'
properties:
status:
type: integer
example: 422
code:
type: string
example: Failed
errors:
type: array
example:
- 'The events field is required.'
items:
type: string
tags:
- 'Notification API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
events:
type: array
description: 'List of events to subscribe to.'
example:
- order.created
- order.ready
- order.delivered
- order.canceled
items:
type: string
enum:
- order.created
- order.ready
- order.delivered
- order.canceled
url:
type: string
description: 'The url to call.'
example: 'https://example.com/webhooks'
nullable: false
required:
- events
- url
get:
summary: 'Get all listeners'
operationId: getAllListeners
description: ''
parameters: []
responses:
200:
description: 'Listeners retrieved'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
data:
-
created_at: '2024-02-26T13:25:25+00:00'
events:
- order.created
- order.ready
- order.delivered
- order.canceled
id: 65dc91453558bb04eb03ae92
updated_at: '2024-02-26T13:25:25+00:00'
url: 'https://api.docker.localhost/webhooks'
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
data:
type: array
example:
-
created_at: '2024-02-26T13:25:25+00:00'
events:
- order.created
- order.ready
- order.delivered
- order.canceled
id: 65dc91453558bb04eb03ae92
updated_at: '2024-02-26T13:25:25+00:00'
url: 'https://api.docker.localhost/webhooks'
items:
type: object
properties:
created_at:
type: string
example: '2024-02-26T13:25:25+00:00'
events:
type: array
example:
- order.created
- order.ready
- order.delivered
- order.canceled
items:
type: string
id:
type: string
example: 65dc91453558bb04eb03ae92
updated_at:
type: string
example: '2024-02-26T13:25:25+00:00'
url:
type: string
example: 'https://api.docker.localhost/webhooks'
tags:
- 'Notification API'
'/api/v1/notifications/listeners/{id}':
get:
summary: 'Get a listener'
operationId: getAListener
description: ''
parameters: []
responses:
200:
description: 'Listener retrieved'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
created_at: '2024-02-26T13:26:54+00:00'
events:
- order.created
- order.ready
- order.delivered
- order.canceled
id: 65dc919e67743a65790b1342
updated_at: '2024-02-26T13:26:54+00:00'
url: 'https://api.docker.localhost/webhooks'
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
created_at:
type: string
example: '2024-02-26T13:26:54+00:00'
events:
type: array
example:
- order.created
- order.ready
- order.delivered
- order.canceled
items:
type: string
id:
type: string
example: 65dc919e67743a65790b1342
updated_at:
type: string
example: '2024-02-26T13:26:54+00:00'
url:
type: string
example: 'https://api.docker.localhost/webhooks'
tags:
- 'Notification API'
put:
summary: 'Update a listener'
operationId: updateAListener
description: ''
parameters: []
responses:
200:
description: 'Listener updated'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
created_at: '2024-02-26T13:26:54+00:00'
events:
- order.created
- order.ready
- order.delivered
- order.canceled
id: 65dc919e67743a65790b1342
updated_at: '2024-02-26T13:26:54+00:00'
url: 'https://api.docker.localhost/webhooks'
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
created_at:
type: string
example: '2024-02-26T13:26:54+00:00'
events:
type: array
example:
- order.created
- order.ready
- order.delivered
- order.canceled
items:
type: string
id:
type: string
example: 65dc919e67743a65790b1342
updated_at:
type: string
example: '2024-02-26T13:26:54+00:00'
url:
type: string
example: 'https://api.docker.localhost/webhooks'
tags:
- 'Notification API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
events:
type: array
description: 'List of events to subscribe to.'
example:
- order.created
- order.ready
- order.delivered
- order.canceled
items:
type: string
enum:
- order.created
- order.ready
- order.delivered
- order.canceled
url:
type: string
description: 'The url to call.'
example: 'https://example.com/webhooks'
nullable: false
required:
- events
- url
delete:
summary: 'Delete a listener'
operationId: deleteAListener
description: ''
parameters: []
responses:
204:
description: 'Listener deleted'
tags:
- 'Notification API'
parameters:
-
in: path
name: id
description: 'The id of the listener.'
example: 65dc91453558bb04eb03ae92
required: true
schema:
type: string
'/api/v1/orders/{id}':
get:
summary: 'Get an order detail'
operationId: getAnOrderDetail
description: ''
parameters: []
responses:
200:
description: 'Order found'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
clickandcollect: true
clickandcollect_pickup_at: '2023-10-23T16:00:00+00:00'
created_at: '2023-10-23T15:35:00+00:00'
comment: ''
currency: EUR
currency_symbol: €
customer:
anonymous: true
company_name: null
email: anonymous-obs9xt5cQF@obypay.com
firstname: anonymous
id: ANON-obs9xt5cQF
lang: fr
lastname: anonymous
phone: null
due_at: '2023-10-23T16:00:00+00:00'
environment: consumer-device
id: obs9xt5cQF
number: 20231023-2
number_short: '2'
pagers:
yMfoIh5Y1T: '12'
price: 26.4
price_paid: 26.4
payment:
amount: 26.4
created_at: '2023-10-23T15:35:00+00:00'
currency: EUR
currency_symbol: €
id: 653692a4093117be530559c4
orders:
- obs9xt5cQF
sources:
-
amount: 10.41
id: 1
paid: true
remaining_amount: 10.41
slug: card
-
amount: 15.99
id: 5
paid: true
remaining_amount: 15.99
slug: trd
status: paid
updated_at: '2023-10-24T15:42:03+00:00'
with_payment: true
products:
-
discounted: false
id: HzsKRTLKXo
name: 'Menu burger'
price: 13
price_without_discount: 13
quantity: 1
steps:
-
id: jv65LjnVkU
name: Dessert
products:
-
discounted: false
id: gAidXnqmmV
modifiers: []
name: Glaces
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
discounted: false
id: 1PZavMCp5h
modifiers: []
name: Cookie
pager: yMfoIh5Y1T
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: fAk1UBE3yC
name: boissons
products:
-
discounted: false
id: vjAadvBbkG
modifiers: []
name: biere
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: drN9gdMdTx
name: test
products:
-
discounted: false
id: yXmisbMpbk
modifiers:
-
id: J7pPhzccno
name: 'Extra burger'
items:
- { id: Mq8DE993Ah, name: 'Extra 2', quantity: 1, price: 0, external_reference: Mq8DE993Ah }
external_reference: J7pPhzccno
name: 'Cheese Burger'
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
type: menu
vat_rate: 0.1
-
discounted: false
id: 04HvtXgWVM
modifiers: []
name: Soupe
price: 3
price_without_discount: 3
quantity: 1
type: product
vat_rate: 0.1
-
discounted: false
id: xomnPFPCMW
modifiers:
-
id: 1haz1UnzaH
name: sauces
items:
-
id: YTwAr4hnMP
name: vinaigrette
quantity: 1
price: 0
external_reference: YTwAr4hnMP
external_reference: 1haz1UnzaH
-
id: 4bxdGKuzAs
name: Sauces
items:
-
id: YtyYef9Wbb
name: 'Sambal Hot Sauce'
quantity: 2
price: 0
external_reference: YtyYef9Wbb
external_reference: 4bxdGKuzAs
-
id: Md1hekAmXe
name: Parfums
items:
-
id: 8L4DWdYahZ
name: Chocolat
quantity: 1
price: 1.2
external_reference: 8L4DWdYahZ
external_reference: Md1hekAmXe
name: 'Sorbet/glace 2'
price: 4
price_without_discount: 4
quantity: 2
type: product
vat_rate: 0.1
seats: 1
status: delivered
takeaway: onsite
tip: 0
updated_at: '2023-10-24T04:00:56+00:00'
with_payment: true
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
clickandcollect:
type: boolean
example: true
clickandcollect_pickup_at:
type: string
example: '2023-10-23T16:00:00+00:00'
created_at:
type: string
example: '2023-10-23T15:35:00+00:00'
comment:
type: string
example: ''
currency:
type: string
example: EUR
currency_symbol:
type: string
example: €
customer:
type: object
properties:
anonymous:
type: boolean
example: true
company_name:
type: string
example: null
email:
type: string
example: anonymous-obs9xt5cQF@obypay.com
firstname:
type: string
example: anonymous
id:
type: string
example: ANON-obs9xt5cQF
lang:
type: string
example: fr
lastname:
type: string
example: anonymous
phone:
type: string
example: null
due_at:
type: string
example: '2023-10-23T16:00:00+00:00'
environment:
type: string
example: consumer-device
id:
type: string
example: obs9xt5cQF
number:
type: string
example: 20231023-2
number_short:
type: string
example: '2'
pagers:
type: object
properties:
yMfoIh5Y1T:
type: string
example: '12'
price:
type: number
example: 26.4
price_paid:
type: number
example: 26.4
payment:
type: object
properties:
amount:
type: number
example: 26.4
created_at:
type: string
example: '2023-10-23T15:35:00+00:00'
currency:
type: string
example: EUR
currency_symbol:
type: string
example: €
id:
type: string
example: 653692a4093117be530559c4
orders:
type: array
example:
- obs9xt5cQF
items:
type: string
sources:
type: array
example:
-
amount: 10.41
id: 1
paid: true
remaining_amount: 10.41
slug: card
-
amount: 15.99
id: 5
paid: true
remaining_amount: 15.99
slug: trd
items:
type: object
properties:
amount:
type: number
example: 10.41
id:
type: integer
example: 1
paid:
type: boolean
example: true
remaining_amount:
type: number
example: 10.41
slug:
type: string
example: card
status:
type: string
example: paid
updated_at:
type: string
example: '2023-10-24T15:42:03+00:00'
with_payment:
type: boolean
example: true
products:
type: array
example:
-
discounted: false
id: HzsKRTLKXo
name: 'Menu burger'
price: 13
price_without_discount: 13
quantity: 1
steps:
-
id: jv65LjnVkU
name: Dessert
products:
-
discounted: false
id: gAidXnqmmV
modifiers: []
name: Glaces
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
discounted: false
id: 1PZavMCp5h
modifiers: []
name: Cookie
pager: yMfoIh5Y1T
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: fAk1UBE3yC
name: boissons
products:
-
discounted: false
id: vjAadvBbkG
modifiers: []
name: biere
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: drN9gdMdTx
name: test
products:
-
discounted: false
id: yXmisbMpbk
modifiers:
- { id: J7pPhzccno, name: 'Extra burger', items: [{ id: Mq8DE993Ah, name: 'Extra 2', quantity: 1, price: 0, external_reference: Mq8DE993Ah }], external_reference: J7pPhzccno }
name: 'Cheese Burger'
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
type: menu
vat_rate: 0.1
-
discounted: false
id: 04HvtXgWVM
modifiers: []
name: Soupe
price: 3
price_without_discount: 3
quantity: 1
type: product
vat_rate: 0.1
-
discounted: false
id: xomnPFPCMW
modifiers:
-
id: 1haz1UnzaH
name: sauces
items:
-
id: YTwAr4hnMP
name: vinaigrette
quantity: 1
price: 0
external_reference: YTwAr4hnMP
external_reference: 1haz1UnzaH
-
id: 4bxdGKuzAs
name: Sauces
items:
-
id: YtyYef9Wbb
name: 'Sambal Hot Sauce'
quantity: 2
price: 0
external_reference: YtyYef9Wbb
external_reference: 4bxdGKuzAs
-
id: Md1hekAmXe
name: Parfums
items:
-
id: 8L4DWdYahZ
name: Chocolat
quantity: 1
price: 1.2
external_reference: 8L4DWdYahZ
external_reference: Md1hekAmXe
name: 'Sorbet/glace 2'
price: 4
price_without_discount: 4
quantity: 2
type: product
vat_rate: 0.1
items:
type: object
properties:
discounted:
type: boolean
example: false
id:
type: string
example: HzsKRTLKXo
name:
type: string
example: 'Menu burger'
price:
type: integer
example: 13
price_without_discount:
type: integer
example: 13
quantity:
type: integer
example: 1
steps:
type: array
example:
-
id: jv65LjnVkU
name: Dessert
products:
-
discounted: false
id: gAidXnqmmV
modifiers: []
name: Glaces
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
discounted: false
id: 1PZavMCp5h
modifiers: []
name: Cookie
pager: yMfoIh5Y1T
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: fAk1UBE3yC
name: boissons
products:
-
discounted: false
id: vjAadvBbkG
modifiers: []
name: biere
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: drN9gdMdTx
name: test
products:
-
discounted: false
id: yXmisbMpbk
modifiers: [{ id: J7pPhzccno, name: 'Extra burger', items: [{ id: Mq8DE993Ah, name: 'Extra 2', quantity: 1, price: 0, external_reference: Mq8DE993Ah }], external_reference: J7pPhzccno }]
name: 'Cheese Burger'
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
items:
type: object
properties:
id:
type: string
example: jv65LjnVkU
name:
type: string
example: Dessert
products:
type: array
example:
- { discounted: false, id: gAidXnqmmV, modifiers: [], name: Glaces, price: 0, price_without_discount: null, quantity: 1, type: product, vat_rate: null }
- { discounted: false, id: 1PZavMCp5h, modifiers: [], name: Cookie, pager: yMfoIh5Y1T, price: 0, price_without_discount: null, quantity: 1, type: product, vat_rate: null }
items:
type: object
properties: { discounted: { type: boolean, example: false }, id: { type: string, example: gAidXnqmmV }, modifiers: { type: array, example: [] }, name: { type: string, example: Glaces }, price: { type: integer, example: 0 }, price_without_discount: { type: string, example: null }, quantity: { type: integer, example: 1 }, type: { type: string, example: product }, vat_rate: { type: string, example: null } }
type:
type: string
example: menu
vat_rate:
type: number
example: 0.1
seats:
type: integer
example: 1
status:
type: string
example: delivered
takeaway:
type: string
example: onsite
tip:
type: integer
example: 0
updated_at:
type: string
example: '2023-10-24T04:00:56+00:00'
with_payment:
type: boolean
example: true
404:
description: 'Order not found'
content:
application/json:
schema:
type: object
example:
status: 404
code: 'Not Found'
errors:
- 'Unknown record'
properties:
status:
type: integer
example: 404
code:
type: string
example: 'Not Found'
errors:
type: array
example:
- 'Unknown record'
items:
type: string
422:
description: 'Request error'
content:
application/json:
schema:
type: object
example:
status: 422
code: Failed
errors:
- 'The selected with is invalid.'
properties:
status:
type: integer
example: 422
code:
type: string
example: Failed
errors:
type: array
example:
- 'The selected with is invalid.'
items:
type: string
tags:
- 'Order API'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
with:
type: array
description: 'List of extra fields to add to response.'
example:
- customer
- payment
- products
items:
type: string
enum:
- customer
- payment
- products
parameters:
-
in: path
name: id
description: 'The id of the order.'
example: obs9xt5cQF
required: true
schema:
type: string
'/api/v1/orders/{id}/states/{state}':
post:
summary: 'Update an order state'
operationId: updateAnOrderState
description: ''
parameters: []
responses:
200:
description: 'Order found'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
clickandcollect: true
clickandcollect_pickup_at: '2023-10-23T16:00:00+00:00'
created_at: '2023-10-23T15:35:00+00:00'
comment: ''
currency: EUR
currency_symbol: €
customer:
anonymous: true
company_name: null
email: anonymous-obs9xt5cQF@obypay.com
firstname: anonymous
id: ANON-obs9xt5cQF
lang: fr
lastname: anonymous
phone: null
due_at: '2023-10-23T16:00:00+00:00'
environment: consumer-device
id: obs9xt5cQF
number: 20231023-2
number_short: '2'
pagers:
yMfoIh5Y1T: '12'
price: 26.4
price_paid: 26.4
payment:
amount: 26.4
created_at: '2023-10-23T15:35:00+00:00'
currency: EUR
currency_symbol: €
id: 653692a4093117be530559c4
orders:
- obs9xt5cQF
sources:
-
amount: 10.41
id: 1
paid: true
remaining_amount: 10.41
slug: card
-
amount: 15.99
id: 5
paid: true
remaining_amount: 15.99
slug: trd
status: paid
updated_at: '2023-10-24T15:42:03+00:00'
with_payment: true
products:
-
discounted: false
id: HzsKRTLKXo
name: 'Menu burger'
price: 13
price_without_discount: 13
quantity: 1
steps:
-
id: jv65LjnVkU
name: Dessert
products:
-
discounted: false
id: gAidXnqmmV
modifiers: []
name: Glaces
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
discounted: false
id: 1PZavMCp5h
modifiers: []
name: Cookie
pager: yMfoIh5Y1T
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: fAk1UBE3yC
name: boissons
products:
-
discounted: false
id: vjAadvBbkG
modifiers: []
name: biere
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: drN9gdMdTx
name: test
products:
-
discounted: false
id: yXmisbMpbk
modifiers:
-
id: J7pPhzccno
name: 'Extra burger'
items:
- { id: Mq8DE993Ah, name: 'Extra 2', quantity: 1, price: 0, external_reference: Mq8DE993Ah }
external_reference: J7pPhzccno
name: 'Cheese Burger'
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
type: menu
vat_rate: 0.1
-
discounted: false
id: 04HvtXgWVM
modifiers: []
name: Soupe
price: 3
price_without_discount: 3
quantity: 1
type: product
vat_rate: 0.1
-
discounted: false
id: xomnPFPCMW
modifiers:
-
id: 1haz1UnzaH
name: sauces
items:
-
id: YTwAr4hnMP
name: vinaigrette
quantity: 1
price: 0
external_reference: YTwAr4hnMP
external_reference: 1haz1UnzaH
-
id: 4bxdGKuzAs
name: Sauces
items:
-
id: YtyYef9Wbb
name: 'Sambal Hot Sauce'
quantity: 2
price: 0
external_reference: YtyYef9Wbb
external_reference: 4bxdGKuzAs
-
id: Md1hekAmXe
name: Parfums
items:
-
id: 8L4DWdYahZ
name: Chocolat
quantity: 1
price: 1.2
external_reference: 8L4DWdYahZ
external_reference: Md1hekAmXe
name: 'Sorbet/glace 2'
price: 4
price_without_discount: 4
quantity: 2
type: product
vat_rate: 0.1
seats: 1
status: delivered
takeaway: onsite
tip: 0
updated_at: '2023-10-24T04:00:56+00:00'
with_payment: true
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
clickandcollect:
type: boolean
example: true
clickandcollect_pickup_at:
type: string
example: '2023-10-23T16:00:00+00:00'
created_at:
type: string
example: '2023-10-23T15:35:00+00:00'
comment:
type: string
example: ''
currency:
type: string
example: EUR
currency_symbol:
type: string
example: €
customer:
type: object
properties:
anonymous:
type: boolean
example: true
company_name:
type: string
example: null
email:
type: string
example: anonymous-obs9xt5cQF@obypay.com
firstname:
type: string
example: anonymous
id:
type: string
example: ANON-obs9xt5cQF
lang:
type: string
example: fr
lastname:
type: string
example: anonymous
phone:
type: string
example: null
due_at:
type: string
example: '2023-10-23T16:00:00+00:00'
environment:
type: string
example: consumer-device
id:
type: string
example: obs9xt5cQF
number:
type: string
example: 20231023-2
number_short:
type: string
example: '2'
pagers:
type: object
properties:
yMfoIh5Y1T:
type: string
example: '12'
price:
type: number
example: 26.4
price_paid:
type: number
example: 26.4
payment:
type: object
properties:
amount:
type: number
example: 26.4
created_at:
type: string
example: '2023-10-23T15:35:00+00:00'
currency:
type: string
example: EUR
currency_symbol:
type: string
example: €
id:
type: string
example: 653692a4093117be530559c4
orders:
type: array
example:
- obs9xt5cQF
items:
type: string
sources:
type: array
example:
-
amount: 10.41
id: 1
paid: true
remaining_amount: 10.41
slug: card
-
amount: 15.99
id: 5
paid: true
remaining_amount: 15.99
slug: trd
items:
type: object
properties:
amount:
type: number
example: 10.41
id:
type: integer
example: 1
paid:
type: boolean
example: true
remaining_amount:
type: number
example: 10.41
slug:
type: string
example: card
status:
type: string
example: paid
updated_at:
type: string
example: '2023-10-24T15:42:03+00:00'
with_payment:
type: boolean
example: true
products:
type: array
example:
-
discounted: false
id: HzsKRTLKXo
name: 'Menu burger'
price: 13
price_without_discount: 13
quantity: 1
steps:
-
id: jv65LjnVkU
name: Dessert
products:
-
discounted: false
id: gAidXnqmmV
modifiers: []
name: Glaces
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
discounted: false
id: 1PZavMCp5h
modifiers: []
name: Cookie
pager: yMfoIh5Y1T
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: fAk1UBE3yC
name: boissons
products:
-
discounted: false
id: vjAadvBbkG
modifiers: []
name: biere
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: drN9gdMdTx
name: test
products:
-
discounted: false
id: yXmisbMpbk
modifiers:
- { id: J7pPhzccno, name: 'Extra burger', items: [{ id: Mq8DE993Ah, name: 'Extra 2', quantity: 1, price: 0, external_reference: Mq8DE993Ah }], external_reference: J7pPhzccno }
name: 'Cheese Burger'
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
type: menu
vat_rate: 0.1
-
discounted: false
id: 04HvtXgWVM
modifiers: []
name: Soupe
price: 3
price_without_discount: 3
quantity: 1
type: product
vat_rate: 0.1
-
discounted: false
id: xomnPFPCMW
modifiers:
-
id: 1haz1UnzaH
name: sauces
items:
-
id: YTwAr4hnMP
name: vinaigrette
quantity: 1
price: 0
external_reference: YTwAr4hnMP
external_reference: 1haz1UnzaH
-
id: 4bxdGKuzAs
name: Sauces
items:
-
id: YtyYef9Wbb
name: 'Sambal Hot Sauce'
quantity: 2
price: 0
external_reference: YtyYef9Wbb
external_reference: 4bxdGKuzAs
-
id: Md1hekAmXe
name: Parfums
items:
-
id: 8L4DWdYahZ
name: Chocolat
quantity: 1
price: 1.2
external_reference: 8L4DWdYahZ
external_reference: Md1hekAmXe
name: 'Sorbet/glace 2'
price: 4
price_without_discount: 4
quantity: 2
type: product
vat_rate: 0.1
items:
type: object
properties:
discounted:
type: boolean
example: false
id:
type: string
example: HzsKRTLKXo
name:
type: string
example: 'Menu burger'
price:
type: integer
example: 13
price_without_discount:
type: integer
example: 13
quantity:
type: integer
example: 1
steps:
type: array
example:
-
id: jv65LjnVkU
name: Dessert
products:
-
discounted: false
id: gAidXnqmmV
modifiers: []
name: Glaces
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
discounted: false
id: 1PZavMCp5h
modifiers: []
name: Cookie
pager: yMfoIh5Y1T
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: fAk1UBE3yC
name: boissons
products:
-
discounted: false
id: vjAadvBbkG
modifiers: []
name: biere
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
-
id: drN9gdMdTx
name: test
products:
-
discounted: false
id: yXmisbMpbk
modifiers: [{ id: J7pPhzccno, name: 'Extra burger', items: [{ id: Mq8DE993Ah, name: 'Extra 2', quantity: 1, price: 0, external_reference: Mq8DE993Ah }], external_reference: J7pPhzccno }]
name: 'Cheese Burger'
price: 0
price_without_discount: null
quantity: 1
type: product
vat_rate: null
items:
type: object
properties:
id:
type: string
example: jv65LjnVkU
name:
type: string
example: Dessert
products:
type: array
example:
- { discounted: false, id: gAidXnqmmV, modifiers: [], name: Glaces, price: 0, price_without_discount: null, quantity: 1, type: product, vat_rate: null }
- { discounted: false, id: 1PZavMCp5h, modifiers: [], name: Cookie, pager: yMfoIh5Y1T, price: 0, price_without_discount: null, quantity: 1, type: product, vat_rate: null }
items:
type: object
properties: { discounted: { type: boolean, example: false }, id: { type: string, example: gAidXnqmmV }, modifiers: { type: array, example: [] }, name: { type: string, example: Glaces }, price: { type: integer, example: 0 }, price_without_discount: { type: string, example: null }, quantity: { type: integer, example: 1 }, type: { type: string, example: product }, vat_rate: { type: string, example: null } }
type:
type: string
example: menu
vat_rate:
type: number
example: 0.1
seats:
type: integer
example: 1
status:
type: string
example: delivered
takeaway:
type: string
example: onsite
tip:
type: integer
example: 0
updated_at:
type: string
example: '2023-10-24T04:00:56+00:00'
with_payment:
type: boolean
example: true
404:
description: 'Order not found'
content:
application/json:
schema:
type: object
example:
status: 404
code: 'Not Found'
errors:
- 'Unknown record'
properties:
status:
type: integer
example: 404
code:
type: string
example: 'Not Found'
errors:
type: array
example:
- 'Unknown record'
items:
type: string
422:
description: 'Request error'
content:
application/json:
schema:
type: object
example:
status: 422
code: Failed
errors:
- 'The selected with is invalid.'
properties:
status:
type: integer
example: 422
code:
type: string
example: Failed
errors:
type: array
example:
- 'The selected with is invalid.'
items:
type: string
tags:
- 'Order API'
parameters:
-
in: path
name: id
description: 'The id of the order.'
example: obs9xt5cQF
required: true
schema:
type: string
-
in: path
name: state
description: 'The new state of the order.'
example: '"ready"'
required: true
schema:
type: string
/api/v1/webextensions/link:
post:
summary: 'Create a webextension link'
operationId: createAWebextensionLink
description: ''
parameters: []
responses:
200:
description: 'Existing Webextension link retrieved'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
id: 6687f9e6788bd47a45009b42
order_id: abcdef
link: 'https://domain.tld/82701d25c6d75c91f3c0cd00464a98bc5e13f628/fr?integration=generic&location_id=oUxkeGLhDg&order_id=abcdef'
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
id:
type: string
example: 6687f9e6788bd47a45009b42
order_id:
type: string
example: abcdef
link:
type: string
example: 'https://domain.tld/82701d25c6d75c91f3c0cd00464a98bc5e13f628/fr?integration=generic&location_id=oUxkeGLhDg&order_id=abcdef'
201:
description: 'Webextension link created'
content:
application/json:
schema:
type: object
example:
status: 201
code: Created
data:
id: 6687f9e6788bd47a45009b42
order_id: abcdef
link: 'https://domain.tld/82701d25c6d75c91f3c0cd00464a98bc5e13f628/fr?integration=generic&location_id=oUxkeGLhDg&order_id=abcdef'
properties:
status:
type: integer
example: 201
code:
type: string
example: Created
data:
type: object
properties:
id:
type: string
example: 6687f9e6788bd47a45009b42
order_id:
type: string
example: abcdef
link:
type: string
example: 'https://domain.tld/82701d25c6d75c91f3c0cd00464a98bc5e13f628/fr?integration=generic&location_id=oUxkeGLhDg&order_id=abcdef'
tags:
- 'Order API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
order:
type: object
description: ''
example: []
nullable: false
properties:
amount:
type: integer
description: 'Must be at least 0. Must not be greater than 500000.'
example: 8
nullable: false
id:
type: string
description: ''
example: dicta
nullable: false
discounts:
type: array
description: ''
example: null
items:
type: object
properties:
amount:
type: integer
description: 'Must be at least 0. Must not be greater than 500000.'
example: 3
nullable: false
id:
type: string
description: 'Must not be greater than 30 characters.'
example: qdkifto
nullable: false
label:
type: string
description: 'Must not be greater than 50 characters.'
example: mirhhvuqecvrbc
nullable: false
required:
- amount
- id
- label
lines:
type: array
description: ''
example:
- []
items:
type: object
properties:
label:
type: string
description: ''
example: doloribus
nullable: false
line_id:
type: string
description: ''
example: numquam
nullable: false
product_id:
type: string
description: ''
example: atque
nullable: false
quantity:
type: integer
description: 'Must be at least 1. Must not be greater than 100.'
example: 4
nullable: false
unit_price:
type: integer
description: 'Must be at least 0. Must not be greater than 500000.'
example: 22
nullable: false
modifiers:
type: array
description: ''
example: null
items:
type: object
properties:
label:
type: string
description: ''
example: ipsam
nullable: false
product_id:
type: string
description: ''
example: tenetur
nullable: false
quantity:
type: integer
description: 'Must be at least 1. Must not be greater than 100.'
example: 24
nullable: false
unit_price:
type: integer
description: 'Must be at least 0. Must not be greater than 500000.'
example: 11
nullable: false
required:
- label
- product_id
- quantity
- unit_price
required:
- label
- line_id
- product_id
- quantity
- unit_price
transactions:
type: array
description: ''
example: null
items:
type: object
properties:
label:
type: string
description: ''
example: corrupti
nullable: false
amount:
type: number
description: 'Must be at least 0.'
example: 63
nullable: false
required:
- label
- amount
required:
- amount
- id
- lines
loyalty:
type: object
description: ''
example: []
nullable: false
properties:
id:
type: string
description: 'Must be 46 characters.'
example: jxwjvnrechppnpkxrbacqrqdmdjeocfiajbppdzyfjiych
nullable: false
required:
- order
/api/v1/payments/instruments:
get:
summary: 'Display instruments'
operationId: displayInstruments
description: 'Display configured instruments'
parameters: []
responses:
200:
description: 'Payment instruments found'
content:
application/json:
schema:
type: object
example:
status: 200
code: OK
data:
pos:
card: pos_card
lunchvoucher: pos_lunchvoucher
online:
card: online_card
wallet: online_wallet
bancontact: online_bancontact
lunchvoucher: online_lunchvoucher
intercard: online_intercard
bankroll: online_bankroll
epro: online_epro
properties:
status:
type: integer
example: 200
code:
type: string
example: OK
data:
type: object
properties:
pos:
type: object
properties:
card:
type: string
example: pos_card
lunchvoucher:
type: string
example: pos_lunchvoucher
online:
type: object
properties:
card:
type: string
example: online_card
wallet:
type: string
example: online_wallet
bancontact:
type: string
example: online_bancontact
lunchvoucher:
type: string
example: online_lunchvoucher
intercard:
type: string
example: online_intercard
bankroll:
type: string
example: online_bankroll
epro:
type: string
example: online_epro
tags:
- 'Payment API'
post:
summary: 'Update instruments'
operationId: updateInstruments
description: 'Map your instruments to Obypay instruments in order to flag every payment made correctly'
parameters: []
responses: { }
tags:
- 'Payment API'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
pos:
type: object
description: ''
example: []
nullable: false
properties:
card:
type: string
description: ''
example: rerum
nullable: false
lunchvoucher:
type: string
description: ''
example: esse
nullable: false
required:
- card
- lunchvoucher
online:
type: object
description: ''
example: []
nullable: false
properties:
card:
type: string
description: ''
example: labore
nullable: false
wallet:
type: string
description: ''
example: dolore
nullable: false
bancontact:
type: string
description: ''
example: omnis
nullable: false
lunchvoucher:
type: string
description: ''
example: quia
nullable: false
intercard:
type: string
description: ''
example: eaque
nullable: false
bankroll:
type: string
description: ''
example: aut
nullable: false
epro:
type: string
description: ''
example: eos
nullable: false
required:
- card
- wallet
- bancontact
- lunchvoucher
- intercard
- bankroll
- epro
required:
- pos
- online
tags:
-
name: 'Administrative API'
description: ''
-
name: 'Auth API'
description: "\nManage your access token"
-
name: 'Exports API'
description: "\nManage data exports"
-
name: 'Inventory API'
description: ''
-
name: 'Master API'
description: "\nManage master-level operations"
-
name: 'Notification API'
description: "\n