Mirakl Stores API
The Stores API from Mirakl — 5 operation(s) for stores.
The Stores API from Mirakl — 5 operation(s) for stores.
openapi: 3.1.0
info:
description: '{% partial file="/partial-content/product/connect-channel-platform/rest/connect/openapi-description.md" /%}'
title: Mirakl Connect Channel Platform APIs Carriers Stores API
version: ''
servers:
- description: Connect Channel Platform API
url: https://miraklconnect.com/api/channel-platform
tags:
- name: Stores
paths:
/api/shops/documents:
get:
description: '<div class="extension-title">Description</div>
You must specify at least one of the following parameters: <code>shop_ids</code>, <code>updated_since</code>
<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: At each display of a page that includes documents from a store (for example: during the KYC process)</div>
<div class="max-call-frequency">Maximum usage: At each display of a page that includes documents from a store (for example: during the KYC process)</div>
</div>'
operationId: S30
parameters:
- description: A list of shop identifiers
explode: true
in: query
name: shop_ids
required: false
schema:
type: string
style: form
- description: True to include deleted documents, false to remove them
explode: true
in: query
name: include_deleted
required: false
schema:
type: boolean
default: false
style: form
- description: Retrieve shop documents modified at or after this date. The time period cannot exceed 90 days
explode: true
in: query
name: updated_since
required: false
schema:
type: string
format: date-time
style: form
responses:
'200':
content:
application/json:
examples:
application/json-0:
summary: Example with business values (application/json)
value:
shop_documents:
- date_deleted: null
date_uploaded: '2019-03-27T14:43:06Z'
file_name: legal.jpeg
id: 2002
shop_id: 2000
type: LEGAL_DOC
- date_deleted: null
date_uploaded: '2019-03-27T14:44:07Z'
file_name: card.jpeg
id: 2004
shop_id: 2000
type: ID_CARD
total_count: 2
application/json-auto:
summary: Complete example with value types (application/json)
value:
shop_documents:
- date_deleted: '2023-03-28T09:34:42Z'
date_uploaded: '2023-03-28T09:34:42Z'
file_name: string
id: 0
shop_id: 0
type: string
total_count: 0
schema:
type: object
$ref: '#/components/schemas/S30_Response_200'
description: OK
security:
- Operator-Bearer-Token: []
- OAuth-2: []
summary: S30 - List shop's documents
tags:
- Stores
post:
description: '<div class="extension-title">Description</div>
Document filenames must be distinct and there can be only one file per document type.<br/>Only documents of the following types are supported: csv, doc, docx, gif, html, jpeg, latex, mp4, odp, odc, odg, ods, odt, pdf, png, pps, ppsx, ppt, pptx, quicktime, rtf, text, tiff, xls, xlsx, xml, zip<br/><span class=''red''>You can upload a maximum of 50 business documents for each shop. These documents are not order related documents.</span>
<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: At each business document upload to a shop</div>
<div class="max-call-frequency">Maximum usage: 50 business documents per call</div>
<div class="extension-title">Read More</div>
<ul><li><a href="https://help.mirakl.com/bundle/customers/page/topics/Mirakl/mmp/Operator/manage_docs/manage_order_and_seller_docs/manage_order_and_seller_documents.html">More context</a></li></ul></div>'
operationId: S32
parameters: []
requestBody:
content:
multipart/form-data:
examples:
multipart/form-data-auto:
summary: Complete example with value types (multipart/form-data)
value:
files:
- string
shop_documents:
shop_documents:
- file_name: string
type_code: string
shop_id: 0
schema:
type: object
properties:
files:
type: array
description: Files to upload
items:
type: string
format: binary
shop_documents:
$ref: '#/components/schemas/S32_Request_MultipartFormData_ShopDocuments'
description: A descriptor associated to the files
shop_id:
type: integer
format: int64
description: the shop identifier to add the documents to
required:
- files
- shop_documents
- shop_id
responses:
'200':
content:
application/json:
examples:
application/json-0:
summary: Example with business values (application/json)
value:
errors_count: 1
shop_documents:
- errors:
- code: valid_shop_document.type
field: type_code
message: Unable to retrieve document's type from the given code
input:
file_name: proof-of-identity-38294.pdf
type_code: IDENTIFICATION_DOCUMENTX
application/json-auto:
summary: Complete example with value types (application/json)
value:
documents:
- errors:
- code: string
field: string
message: string
errors_count: 0
schema:
type: object
$ref: '#/components/schemas/S32_Response_200'
description: OK
security:
- Operator-Bearer-Token: []
- OAuth-2: []
summary: S32 - Upload business documents to associate with a shop
tags:
- Stores
x-codeSamples:
- lang: cURL
source: "curl -i -X POST \\\n https://your-instance.mirakl.net/api/shops/documents \\\n -H 'Content-Type: multipart/form-data' \\\n -F 'files=@path/to/file' \\\n -F 'shop_documents=\"{\\\"shop_documents\\\":[{\\\"file_name\\\":\\\"string\\\",\\\"type_code\\\":\\\"string\\\"}]}\";type=application/json' \\\n -F 'shop_id=\"0\";type=application/json'\n"
/api/shops/documents/download:
get:
description: "<div class=\"extension-title\">Description</div>\n\n <ul> <li><span class='red'>It is mandatory to specify either the <code>shop_ids</code> or the <code>document_ids</code>.</span></li> <li>If a list of document identifiers is specified only these documents are downloaded. <ul> <li>If more than one document id is specified, the documents will be wrapped in a ZIP archive</li> <li>If only one document id is specified the document will not be zipped</li> </ul> </li> <li> If a list of shop identifiers is specified, all documents from those shops are downloaded.<br/> Use a list of shop document type codes to retrieve specific types from those shops.<br/> In this case, the output of the API will always be a ZIP archive even if there is only one document to retrieve. </li></ul><p>When documents are retrieved, they're wrapped into a ZIP archive except when only one document id is specified. The tree structure of this archive is as follow:</p><pre>\ndocuments-timestamp.zip\n|\n|__ shop_id_x/\n| |__ foo.txt\n| |__ bar.txt\n| |__ baz.pdf\n|\n|__ shop_id_y/\n| |__ image.png\n| |__ image(1).png\n</pre><p>Returns a <code>404</code> if at least one document id, one shop id or one document type code is invalid</p>\n\n<div class=\"api-description-extension\">\n<div class=\"extension-title\">Call Frequency</div>\n\n<div class=\"recommended-call-frequency\">Recommended usage: After each S30 call, when you want to download documents from a store</div>\n<div class=\"max-call-frequency\">Maximum usage: After each S30 call, when you want to download documents from a store</div>\n<div class=\"extension-title\">Read More</div>\n\n<ul><li><a href=\"https://help.mirakl.com/bundle/customers/page/topics/Mirakl/mmp/Operator/manage_docs/manage_order_and_seller_docs/manage_order_and_seller_documents.html\">More context</a></li></ul></div>"
operationId: S31
parameters:
- description: A list of shop identifiers (separated by a comma). It is mandatory to specify either the <code>shop_ids</code> or the <code>document_ids</code>
explode: true
in: query
name: shop_ids
required: false
schema:
type: string
style: form
- description: A list of document identifiers (separated by a comma). It is mandatory to specify either the <code>shop_ids</code> or the <code>document_ids</code>
explode: true
in: query
name: document_ids
required: false
schema:
type: string
style: form
- description: A list of document type codes (separated by a comma)
explode: true
in: query
name: type_codes
required: false
schema:
type: string
style: form
responses:
'200':
content:
application/octet-stream:
examples:
application/octet-stream-auto:
summary: Complete example with value types (application/octet-stream)
value: string
schema:
type: string
format: binary
description: OK
security:
- Operator-Bearer-Token: []
- OAuth-2: []
summary: S31 - Download documents for one or multiple shops
tags:
- Stores
/api/shops/documents/{document_id}:
delete:
description: '<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: At each document deletion from one store</div>
<div class="max-call-frequency">Maximum usage: At each document deletion from one store</div>
<div class="extension-title">Read More</div>
<ul><li><a href="https://help.mirakl.com/bundle/customers/page/topics/Mirakl/mmp/Operator/manage_docs/manage_order_and_seller_docs/manage_order_and_seller_documents.html">More context</a></li></ul></div>'
operationId: S33
parameters:
- description: Document identifier to delete
explode: false
in: path
name: document_id
required: true
schema:
type: integer
format: int64
style: simple
responses:
'204':
description: No Content
security:
- Operator-Bearer-Token: []
- OAuth-2: []
summary: S33 - Delete a shop document
tags:
- Stores
/api/account:
get:
description: '<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: Once per day</div>
<div class="max-call-frequency">Maximum usage: Once per day</div>
</div>'
operationId: A01
parameters:
- description: Use this parameter when your user has access to several shops. If not specified, the shop_id from your default shop will be used.
explode: true
in: query
name: shop_id
required: false
schema:
type: integer
format: int64
style: form
responses:
'200':
content:
application/json:
examples:
application/json-0:
summary: Example with business values (application/json)
value:
applicable_taxes:
- code: TAXDEFAULT
fee_types:
- COMMISSION
- SUBSCRIPTION
- ADDITIONAL_FEES
label: ShopTax.TAXDEFAULT.label
approval_delay: 33
approval_rate: 1
banner: https://url.mirakl.net/mmp/media/shop-banner/2000
channels:
- US
closed_from: '2019-07-31T22:00:00Z'
closed_to: '2019-08-31T21:59:59Z'
contact_informations:
city: New York
civility: Mr
country: USA
email: shop@mail.com
fax: 213-509-6997
firstname: John
lastname: Doe
phone: 213-509-6995
phone_secondary: 213-509-6996
state: Manhattan
street1: 30, Prince Street
street2: 1st floor
web_site: https://www.mirakl.com
zip_code: NY 10012
currency_iso_code: USD
date_created: '2019-03-25T14:34:03Z'
default_billing_information:
corporate_information:
company_registration_name: ACME SHOP
company_registration_number: '01234567'
default_language: en_US
fiscal_information:
tax_identification_country: USA
tax_identification_number: XXX-XX-XXXX
id: a83c1170-f8cb-45a1-aa4a-affe809d6c64
registration_address:
city: New York
country_iso_code: USA
state: New York
street_1: 30, Prince Street
street_2: null
zip_code: NY 10012
description: Games seller
domains:
- PRODUCT
evaluations_count: 3
free_shipping: false
grade: 4
is_professional: true
kyc:
reason: Missing information
status: REFUSED
last_updated_date: '2019-03-28T09:28:59Z'
logo: https://url.mirakl.net/mmp/media/shop-logo/2000
model: MARKETPLACE
offers_count: 234
order_messages_response_delay: 76
orders_count: 7
payment_details:
paid_balance: -170.06
payable_balance: -259.2
pending_balance: 512.84
reserve_balance: 0
reserve_target: 0
sub_balances:
- paid: -170.06
pay_out_psp_code: NOT_SPECIFIED
payable: -259.2
pending: 512.84
payment_info:
'@type': ABA
bank_account_number: 000123456789123
bank_city: New York
bank_name: Bank of America
bank_street: 115 W 42nd St
bank_zip: NY 10036 US
bic: BOFAUS3NXXX
owner: John Doe
routing_number: '789456124'
payment_method_mandatory: true
premium: true
pro_details:
corporate_name: ACME SHOP
identification_number: '01234567'
tax_identification_number: XXX-XX-XXXX
producer_identifiers:
- epr_category_code: FR-DEA
producer_id: FR123456_89ABCD
- epr_category_code: DE-WEEE
producer_id: PRODUCERID1
recycling_policy: 'When we deliver your new item, we’ll take your old one away for you. Appliance recycling: this service is available through our home delivery service. Recycling electronic items in-store: if you have an old electronic item, we can safely recycle these items in-store, for free'
return_policy: "Any product return must be the subject of a formal agreement between the Seller and Purchaser. Any product returned without this agreement shall be held on behalf of the Purchaser and shall not give rise to the granting of any credit note. Claims must be received by shop within 8 days of the delivery of the goods. Subsequently to this delay, no claims shall be accepted. Once this delay has expired, should the client not have addressed their claim in writing to shop, the client is deemed to have accepted the product.\r\nWarranties that cover the delivered goods only apply within the framework of their intended use. Defects and damage resulting from natural wear, faulty assembly or maintenance, as well as modification of the products that was not intended or specified by the Seller are excluded from the warranty. Goods must be returned in their original packaging and as new, the cost and risks of returning the goods being borne by the Purchaser. Once the returned goods have been received and inspected, shop shall send the Purchaser a credit note corresponding to the amount of the original invoice, after deduction of any compensation or expenses which arise from any reconditioning work deemed necessary. This sum is credited to the account that the Purchaser has opened with the shop."
shipping:
lead_time_to_ship: 2
shipping_country: USA
shippings:
- additional_fields:
- code: productid
type: STRING
value: EAN123456789
shipping_free_amount: 550
shipping_type_code: EXP
shipping_type_label: Express
shipping_type_standard_code: CU_ADD-EXP
shipping_zone_code: DOM2
shipping_zone_label: Domestic 2
- additional_fields:
- code: osi
type: STRING
value: 5 articles per box
shipping_free_amount: 550
shipping_type_code: EXP
shipping_type_label: Express
shipping_type_standard_code: CU_ADD-EXP
shipping_zone_code: INT1
shipping_zone_label: International 1
- additional_fields:
- code: osi
type: STRING
value: 'One article per box '
- code: osi1
type: STRING
value: Five articles per box
- code: productid
type: STRING
value: EAN12345678
shipping_free_amount: 570
shipping_type_code: STD
shipping_type_label: Standard
shipping_type_standard_code: CU_ADD-STD
shipping_zone_code: DOM1
shipping_zone_label: Domestic 1
shop_additional_fields:
- code: accounting-phone
type: STRING
value: 213-509-6995
- code: customer-care-phone
type: STRING
value: 213-509-6996
- code: recruitment
type: LIST
value: Opt-In
shop_id: 2000
shop_name: ACME SHOP
shop_state: OPEN
suspension_type: null
application/json-auto:
summary: Complete example with value types (application/json)
value:
applicable_taxes:
- code: string
fee_types:
- COMMISSION
label: string
approval_delay: 0
approval_rate: 0
banner: string
billing_info:
bank_city: string
bank_name: string
bank_street: string
bic: string
iban: string
owner: string
zip_code: string
channels:
- string
closed_from: '2023-03-28T09:34:42Z'
closed_to: '2023-03-28T09:34:42Z'
contact_informations:
city: string
civility: string
country: string
email: string
fax: string
firstname: string
lastname: string
phone: string
phone_secondary: string
state: string
street1: string
street2: string
web_site: string
zip_code: string
currency_iso_code: AED
date_created: '2023-03-28T09:34:42Z'
default_billing_information:
corporate_information:
company_registration_name: string
company_registration_number: string
complementary_information:
business_activity_code: string
company_registration_city: string
company_registration_province: string
company_shareholders: SINGLE
is_in_liquidation: true
legal_form: string
share_capital: 0
share_capital_currency: AED
sole_trader: true
electronic_address: string
phone_number: string
default_language: string
fiscal_information:
local_tax_number: string
tax_identification_country: AFG
tax_identification_number: string
fiscal_representative:
city: string
civility: string
company_registration_name: string
company_registration_number: string
country_iso_code: AFG
first_name: string
last_name: string
local_tax_number: string
state: string
street_1: string
street_2: string
zip_code: string
id: string
personal_information:
birth_city: string
birth_country: AFG
birth_date: string
civility: string
first_name: string
last_name: string
registration_address:
city: string
country_iso_code: AFG
state: string
street_1: string
street_2: string
zip_code: string
description: string
domains:
- PRODUCT
dropship:
retail_pricing_edition_enabled: true
evaluations_count: 0
free_shipping: true
grade: 0
is_professional: true
kyc:
reason: string
status: PENDING_SUBMISSION
last_updated_date: '2023-03-28T09:34:42Z'
logo: string
model: MARKETPLACE
offers_count: 0
order_messages_response_delay: 0
orders_count: 0
payment_details:
paid_balance: 0
payable_balance: 0
pending_balance: 0
reserve_balance: 0
reserve_target: 0
sub_balances:
- paid: 0
pay_out_psp_code: NOT_SPECIFIED
payable: 0
pending: 0
payment_info:
'@type': IBAN
owner: string
payment_method_mandatory: true
premium: true
pro_details:
VAT_number: string
corporate_name: string
identification_number: string
tax_identification_number: string
producer_identifiers:
- epr_category_code: FR-AGROPACK
producer_id: string
recycling_policy: string
return_policy: string
shipping:
lead_time_to_ship: 0
shipping_country: string
shipping_types:
- string
shipping_zones:
- string
shippings:
- additional_fields:
- code: string
type: STRING
shipping_free_amount: 0
shipping_type_code: string
shipping_type_label: string
shipping_type_standard_code: string
shipping_zone_code: string
shipping_zone_label: string
shop_additional_fields:
- code: string
type: STRING
shop_id: 0
shop_name: string
shop_state: OPEN
specific_billing_informations:
- corporate_information:
company_registration_name: string
company_registration_number: string
complementary_information:
business_activity_code: string
company_registration_city: string
company_registration_province: string
company_shareholders: SINGLE
is_in_liquidation: true
legal_form: string
share_capital: 0
share_capital_currency: AED
sole_trader: true
electronic_address: string
phone_number: string
fiscal_information:
local_tax_number: string
tax_identification_country: AFG
tax_identification_number: string
fiscal_representative:
city: string
civility: string
company_registration_name: string
company_registration_number: string
country_iso_code: AFG
first_name: string
last_name: string
local_tax_number: string
state: string
street_1: string
street_2: string
zip_code: string
id: string
personal_information:
birth_city: string
birth_country: AFG
birth_date: string
civility: string
first_name: string
last_name: string
registration_address:
city: string
country_iso_code: AFG
state: string
street_1: string
street_2: string
zip_code: string
suspension_type: MANUAL
schema:
type: object
$ref: '#/components/schemas/A01_Response_200'
description: OK
security:
- Shop-API-Key:
- ROLE_SHOP_ADMIN
- ROLE_PARTNER_SHOP_READ
summary: A01 - Get shop information
tags:
- Stores
put:
description: '<div class="extension-title">Description</div>
Depending on the operator''s configuration, some fields might not be editable.
<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: At each information update</div>
<div class="max-call-frequency">Maximum usage: Once per day</div>
</div>'
operationId: A02
parameters:
- description: Use this parameter when your user has access to several shops. If not specified, the shop_id from your default shop will be used.
explode: true
in: query
name: shop_id
required: false
schema:
type: integer
format: int64
style: form
requestBody:
content:
application/json:
examples:
application/json-0:
summary: Update shop account
value:
address:
city: New York
civility: Mr
country: USA
firstname: Doe
lastname: John
phone: 213-509-6996
phone_secondary: 213-509-6995
state: Manhattan
street1: 30, Prince Street
street2: 1st floor
zip_code: NY 10012
channels:
- US
closed_from: '2025-03-20T16:42:21Z'
closed_to: '2026-03-20T16:42:21Z'
description: This is the description of this seller
email: my-store@example.com
fax: 0245875499
is_professional: true
payment_info:
'@type': IBAN
bank_name: CACE
bic: AGRIFRPPXX2
iban: FR6031047696713027315572590
owner: John Doe
pro_details:
corporate_name: Mirakl Inc.
identification_number: '44268625900078'
tax_identification_number: FR939383
producer_identifiers:
- epr_category_code: FR-DEA
producer_id: FR123456_89ABCD
- epr_category_code: DE-WEEE
producer_id: PRO
# --- truncated at 32 KB (196 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mirakl/refs/heads/main/openapi/mirakl-stores-api-openapi.yml