openapi: 3.1.0
info:
title: Convelio Public Shipping API
version: '2.0'
contact:
name: Convelio API Team
email: api@convelio.com
url: https://www.convelio.com
termsOfService: https://www.convelio.com/fr/termes/
license:
name: MIT
url: https://www.convelio.com/fr/termes/
description: '**This document describes the current version (2.0) of the Shipping API.**
The Convelio API is organized around REST. Our API has predictable resource-oriented urls, accept and return json-encoded requests and
responses. It also use standard HTTP response codes, authentication, and verbs.
You can use the Convelio API in sandbox mode, which does not affect your live data or interact with the live api.
The API key you use to authenticate the request determine whether the request is live mode or sandbox mode.
# API key
Convelio authenticates your API requests using your account’s API key. If you do not include your key when making an API request,
or use one that is incorrect, Convelio returns an error.
Your API key has a *Secret* type, prefixed by *sk*, and should be kept confidential and only stored on your own servers.
Your account’s secret API key can perform any API request to Convelio without restriction.
There are also two **modes** for your API key: *live* and *test*.
- *live* key can only be used on our production server.
- *test* key can only be used on our sandbox server.
Example of key by modes
| **Type** \\ **Mode** | Test | Live |
|---------------------|-----------------------------------|-----------------------------------|
| Secret | REDACTED_STRIPE_KEY | REDACTED_STRIPE_KEY |
Obtaining your API key
To get your API key, please send your request at api@convelio.com.'
x-logo:
url: public/assets/icons/convelio-black-spaced.svg
altText: Convelio logo
servers:
- url: https://api.sandbox.convelio.com/v2
description: Sandbox
- url: https://api.convelio.com/v2
description: Production
security:
- secret_token: []
tags:
- name: shipping
x-displayName: Shipping API
description: Shipping API allow you to request a shipping estimate from our system
paths:
/shipping/estimate/price:
post:
summary: Shipment estimation
description: Use this endpoint to obtain a first estimation for a shipment.
operationId: estimateShippingPrice
tags:
- shipping
security:
- secret_token: []
parameters:
- $ref: '#/components/parameters/currency-code'
- $ref: '#/components/parameters/json-content-type'
- $ref: '#/components/parameters/accept'
requestBody:
$ref: '#/components/requestBodies/estimate-price'
responses:
'200':
description: Shipment rate estimation
content:
application/json:
schema:
$ref: '#/components/schemas/price'
'401':
$ref: '#/components/responses/unauthorized'
'422':
$ref: '#/components/responses/unprocessable-entity'
description: No shipment estimation available for given request / ValidationFailed
'500':
$ref: '#/components/responses/internal-server-error'
/shipping/quote:
post:
summary: Request a quote
description: Get a quote from Convelio. An operations representative will get in contact with you if necessary.
operationId: createShippingQuote
tags:
- shipping
security:
- secret_token: []
parameters:
- $ref: '#/components/parameters/currency-code'
- $ref: '#/components/parameters/json-content-type'
- $ref: '#/components/parameters/accept'
requestBody:
$ref: '#/components/requestBodies/quote'
responses:
'201':
description: Quote created
content:
application/json:
schema:
$ref: '#/components/schemas/quote'
'400':
$ref: '#/components/responses/bad-request'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'422':
$ref: '#/components/responses/unprocessable-entity'
'500':
$ref: '#/components/responses/internal-server-error'
/shipping/quote/{quoteId}:
parameters:
- $ref: '#/components/parameters/quote-id'
- $ref: '#/components/parameters/json-content-type'
- $ref: '#/components/parameters/accept'
get:
summary: Get quote
description: Retrieve a quote by its ID.
operationId: getShippingQuote
tags:
- shipping
security:
- secret_token: []
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/quote'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not-found'
'422':
$ref: '#/components/responses/unprocessable-entity'
'500':
$ref: '#/components/responses/internal-server-error'
/shipping/order:
post:
summary: Create an Order
description: Create an order for given Quote ID.
operationId: createShippingOrder
tags:
- shipping
security: []
parameters:
- $ref: '#/components/parameters/currency-code'
- $ref: '#/components/parameters/json-content-type'
- $ref: '#/components/parameters/accept'
requestBody:
$ref: '#/components/requestBodies/order'
responses:
'201':
description: Order Created
content:
application/json:
schema:
$ref: '#/components/schemas/order'
'400':
$ref: '#/components/responses/bad-request'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'422':
$ref: '#/components/responses/unprocessable-entity'
'500':
$ref: '#/components/responses/internal-server-error'
components:
schemas:
multi-part-item:
title: MultiPartItem
description: Item consisting of multiple parts
type: object
additionalProperties: false
allOf:
- $ref: '#/components/schemas/item.base'
- properties:
parts:
type: array
description: Item parts
minItems: 1
items:
$ref: '#/components/schemas/part'
required:
- parts
price:
title: Price
x-tags:
- Models
readOnly: true
properties:
currency_code:
type: string
title: Money
description: Shipping estimate price's currency code. Accepted currencies are EUR, USD and GBP.
example: EUR
vat_excluded_amount:
type: integer
description: 'Amount is a positive integer or zero. Estimated price of the shipping excluding taxes. A positive integer representing the
price of the quote in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100,
a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount
value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
'
example: 10000
vat_included_amount:
type: integer
description: 'Amount is a positive integer or zero. Estimated price of the shipping including taxes. A positive integer representing the
price of the quote in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100,
a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount
value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
'
example: 12000
vat_amount:
type: integer
description: 'Amount is a positive integer or zero. Estimated price of the taxes. A positive integer representing the
price of the quote in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100,
a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount
value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
'
example: 2000
insurance_amount:
type: integer
description: 'Amount is a positive integer or zero. Estimated price of the insurance including taxes. A positive integer representing the
price of the quote in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100,
a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount
value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
'
example: 700
desired-packing:
title: DesiredPacking
x-tags:
- Enums
description: 'Leave empty by default.
- masterpack: Convelio will soft-wrap the item and place it into a cardboard box.'
type: string
enum:
- masterpack
- cardboard_box_stdo_c1
- cardboard_box_stdo_c2
- cardboard_box_stdo_c3
- cardboard_box_stdo_c4
- cardboard_box_stdo_c5
- cardboard_box_stdo_c6
- cardboard_box_stdo_fp1
- cardboard_box_stdo_fp2
- cardboard_box_stdo_t1
- cardboard_box_stdo_j1
- cardboard_box_stdo_j2
- cardboard_box_stdo_f1
- cardboard_box_stdo_largetube
- cardboard_box_stdo_2c1
- cardboard_box_stdo_3c1
- cardboard_box_stdo_2c2
- cardboard_box_stdo_3c2
- cardboard_box_stdo_2c3
- cardboard_box_stdo_3c3
- cardboard_box_stdo_2c4
- cardboard_box_stdo_3c4
- cardboard_box_stdo_2c5
- cardboard_box_stdo_3c5
- cardboard_box_stdo_2c6
- cardboard_box_stdo_3c6
- cardboard_box_stdo_2fp1
- cardboard_box_stdo_3fp1
- cardboard_box_stdo_2fp2
- cardboard_box_stdo_3fp2
- woodcrate_nsdp_pp
- woodcrate_nsdp_g
- woodcrate_nsdp_ppg
- woodcrate_nsdp_cw
- woodcrate_nsdp_tf
- woodcrate_nsdp_tfw
- woodcrate_nsdp_af
- woodcrate_nsdo_scs
- woodcrate_nsdo_scl
delivery:
title: Delivery
type: object
description: Delivery details.
properties:
type:
$ref: '#/components/schemas/delivery-type'
address:
$ref: '#/components/schemas/address'
contact:
$ref: '#/components/schemas/contact'
company_name:
type: string
maxLength: 255
description: Delivery company name.
example: Company Name LTD
additional_info:
type: string
example: Additional information regarding the delivery.
description: Additional information regarding the delivery.
required:
- type
- address
part:
title: ItemPart
description: Item consisting of multiple parts
type: object
allOf:
- $ref: '#/components/schemas/dimension'
- type: object
properties:
description:
type: string
maxLength: 255
example: Table legs
quantity:
type: integer
default: 1
description: Item quantity.
minimum: 1
multipleOf: 1
required:
- description
- quantity
contract-insurance:
title: ContractInsurance
description: You can add an Ad Valorem insurance that will compensate your prejudice in the event of damage, theft or loss (up to the declared value of your items and shipping costs, in case of total loss).
type: boolean
default: false
order-create:
title: RequestBodyCreateShippingOrder
type: object
properties:
quote_id:
type: string
example: 123e4567-e89b-12d3-a456-426614174000
description: Quote ID, which is the base of the Order
format: uuid
billing_details:
description: Required when no default billing details are set. Please, contact Convelio.
$ref: '#/components/schemas/billing-details'
required:
- vat_number
customer_reference_number:
type: string
maxLength: 255
example: REF123456
required:
- quote_id
phone:
title: Phone
type: string
maxLength: 255
examples:
- '+442033188673'
- +44 2 033 188 673
- +44 20 33 18 86 73
- 44;2033188673;gb
description: "Phone number with following formats:\n\n- **International E.164 formats**:
\n Example: `+33123123123` or `+33 1 23 12 31 23`\n - `+33`: Country code with a `+` prefix\n - `123123123`: Local phone number\n\n Spaces between digits are supported, but cleaned on our side.
\n\n- **Format with country code, local number, and country ISO2 code**:
\n Example: `33;12312313;fr`\n - `33`: Country code (international dialing code)\n - `12312313`: Local phone number\n - `fr`: Country `ISO 3166-1 alpha-2` code (France in this example)\n\n The parts are separated by semicolons (`;`)."
item-type:
title: ItemType
description: 'Available options:
- fine_art.painting: Fine art painting
- fine_art.picture: Fine art picture
- fine_art.sculpture: Fine art sculpture
- fine_art.installation: Fine art installation
- furniture.chair: Furniture chair
- furniture.armchair: Furniture armchair
- furniture.sofa: Furniture sofa, bed or daybed
- furniture.cabinet: Furniture sideboard, cabinet or chest of drawers
- furniture.mirror: Furniture mirror
- furniture.table: Furniture table
- lamp.chandelier: Lamp chandelier
- lamp.sconce: Lamp sconce
- lamp.table: Table lamp
- decorative.rug: Rug, carpet, tapestry or textile art
- decorative.ceramics: Ceramics
- decorative.tableware: Tableware
- decorative.clock: Clock or barometer
- decorative.artefact: Artefact or "object of vertu"
- collectibles.jersey: Clothing
- collectibles.sneakers: Sneakers
- collectibles.helmet: Helmet
- other.other: Items of another nature
- other.jewelry: Jewelry
- other.watch: Watch
- other.book_or_manuscript: Book or manuscript
- other.handbag: Handbag
Deprecated values (still accepted for backward compatibility, remapped server-side to `other.other`):
- fine_art.other
- furniture.other
- lamp.other
- decorative.other
- collectibles.other'
type: string
default: other.other
item-materials:
title: ItemMaterials
description: 'Available options:
- glass: Glass, crystal or mirror
- stone: Marble, other natural stone and composites
- ceramic: Ceramic, porcelain, terracotta, and earthenware
- plaster_concrete: Concrete, plaster, and cement-like materials
- resin: Resins, plastics and polymers
- none: The item does not contain any of the other materials
- ornate_frame: The frame is ornate or fragile
- framed_glass: Framed with glass
- unframed: Unframed
- lacquered: Lacquered surface
- stackable: The item can be stacked
- dismountable: The item can be dismounted
- dismountable_top: Removable top
- dismountable_shade: Removable lampshade
- lightbulbs: The item contains lightbulbs
- glass_stone_top: The item has a glass or stone top
- rolled_in_plastic: Rolled and plastic-wrapped
- can_be_rolled: The item can be rolled
- can_be_folded: The item can be folded
- hinged: The item is hinged
- horizontal: Must travel flat
- pastel: The item is a pastel
- protruding: Raised or protruding areas
- wet: The item is wet (e.g. fresh paint)
**Invalid values will be matched to `none`**
Deprecated / remapped values: some legacy values are still accepted but are
remapped server-side to the new characteristics depending on the item type:
- For paintings and pictures, `glass` is remapped to `framed_glass`.
- For tables and cabinets, `glass` and `stone` are remapped to `glass_stone_top`.
**Allowed characteristics per item type.** Only the values listed for the item''s
`type` apply. A value sent for a type that does not allow it is dropped (or
remapped where noted above); `none` is always accepted.
- `fine_art.painting`: ornate_frame, wet, protruding, unframed, framed_glass, horizontal, hinged
- `fine_art.picture`: ornate_frame, unframed, framed_glass, horizontal, hinged, pastel
- `fine_art.sculpture`, `fine_art.installation`: glass, stone, ceramic, plaster_concrete, resin
- `furniture.chair`, `furniture.sofa`: glass, plaster_concrete, resin, lacquered, stackable
- `furniture.armchair`: glass, plaster_concrete, resin, lacquered
- `furniture.table`, `furniture.cabinet`: glass_stone_top, lacquered, dismountable_top
- `furniture.mirror`: glass, ornate_frame, horizontal
- `lamp.chandelier`: glass, stone, ceramic, plaster_concrete, resin, dismountable, lightbulbs
- `lamp.sconce`: glass, stone, ceramic, plaster_concrete, resin, lightbulbs
- `lamp.table`: glass, stone, ceramic, plaster_concrete, resin, dismountable_shade, lightbulbs
- `decorative.rug`: rolled_in_plastic, can_be_rolled, can_be_folded
- `decorative.ceramics`: ceramic
- `decorative.tableware`: ceramic, plaster_concrete, resin
- `decorative.clock`: glass, stone
- `decorative.artefact`, `other.other`: glass, stone, ceramic, plaster_concrete, resin
- `collectibles.jersey`, `collectibles.sneakers`, `collectibles.helmet`, `other.jewelry`, `other.watch`, `other.handbag`, `other.book_or_manuscript`: `none` only (no characteristics)'
type: array
items:
type: string
example:
- stone
- glass
http-error:
title: HttpError
x-tags:
- Error responses
description: 'The error model for the API follow the Content-Type **application/problem+json** defined by the [IETF RFC 7807](https://tools.ietf.org/html/rfc7807).
Description of the errors:
- Bad Request (400): The URL requested is not valid.
- Unauthorized (401): Token not found.
- Forbidden (403): You are authenticated but not allowed to execute the action.
- Not Found (404): Page not found.
- Unprocessable Entity (422): The server was unable to process the request.
- Internal Server Error (500): There is an internal problem on our server.
- Service Unavailable (503): The server is not ready to handle the request.
'
type: object
properties:
type:
type: string
example: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
description: 'A URL to a page with more details regarding the problem.
The primary identifier for the problem.
It''s typically an absolute URL that leads to an HTML page containing human-readable documentation regarding the problem.'
title:
type: string
description: Short human-readable summary of the problem.
example: Forbidden
status:
type: integer
description: 'The HTTP status code.
It''s always the same as the status code in the HTTP header.
It''s only included for the convenience of the consumer.'
example: 403
minimum: 100
detail:
type: string
description: Human-readable description of this specific problem.
example: Forbidden
required:
- type
- title
- status
- detail
quote-status:
title: Quote Status
x-tags:
- Enums
description: '- created: The API successfully returned an instant shipping price and the quote has been created in Convelio''s system.
- processing: The API could not return an instant shipping price for some reason (geography, over-sized item, high commercial value) and Convelio''s Operational team is working on providing a Custom Quote within 24h.'
readOnly: true
type: string
enum:
- created
- processing
pickup:
title: Pickup
type: object
properties:
company_name:
type: string
maxLength: 255
example: Company Name LTD
description: The company name.
address:
$ref: '#/components/schemas/address'
contacts:
type: array
description: Pickup contact details.
minItems: 1
items:
$ref: '#/components/schemas/contact'
items:
type: array
description: Pickup items.
minItems: 1
items:
oneOf:
- $ref: '#/components/schemas/item'
- $ref: '#/components/schemas/multi-part-item'
additional_info:
type: string
example: Additional information regarding the pickup.
description: Additional information regarding the pickup.
required:
- items
- address
delivery-type:
title: DeliveryType
x-tags:
- Enums
description: 'Delivery options for the shipment. 2 possible values:
- curbside: Our drivers will unload the items and deliver them in front of the building at the scheduled time.
- white_glove: Our drivers will unload, unpack, check and install the product in the chosen room at the scheduled time. For a white-glove delivery, all the packages must fit in the staircase or in the elevator.
- front_door_with_signature: delivery like `white_glove` with mandatory signature (only for jewelry or watch items)'
type: string
enum:
- curbside
- white_glove
- front_door_with_signature
default: curbside
currency-code:
title: CurrencyCode
type: string
description: The currency code, according to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)
enum:
- EUR
- USD
- GBP
default: EUR
shipment-estimation:
title: RequestBodyShipmentEstimation
type: object
properties:
delivery:
$ref: '#/components/schemas/delivery'
shipping_speed:
$ref: '#/components/schemas/speed-shipment-estimation'
direct_label_request:
$ref: '#/components/schemas/direct-label-request'
contract_insurance:
$ref: '#/components/schemas/contract-insurance'
pickups:
type: array
items:
$ref: '#/components/schemas/pickup'
required:
- delivery
http-unprocessable-entity-error:
title: HttpUnprocessableEntityError
x-tags:
- Error responses
type: object
allOf:
- $ref: '#/components/schemas/http-error'
- properties:
status:
example: 422
validation_messages:
type: object
description: Validation messages are only returned when your request have a body and the body is invalid.
properties:
'{field_name}':
type: object
description: 'The name of the field which is wrong in your request. Example: "delivery_type"'
properties:
'{error_title}':
type: string
description: 'The title of the error. Example: "deliveryTypeInvalid"'
example: 'Invalid delivery type. Valid values are: curbside, white_glove'
required:
- '{field_name}'
commercial-value:
title: CommercialValue
description: Item commercial value.
type: object
required:
- amount
- currency_code
properties:
amount:
type: integer
minimum: 0
description: Item commercial value amount. The amount is a positive integer or zero. A positive integer representing the price of the quote in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
example: 15000
currency_code:
$ref: '#/components/schemas/currency-code'
billing-details:
title: BillingDetails
type: object
properties:
address:
$ref: '#/components/schemas/address'
name:
type: string
maxLength: 255
example: Art center
email:
type: string
maxLength: 255
format: email
example: art@center.org
phone:
$ref: '#/components/schemas/phone'
vat_number:
type: string
maxLength: 255
example: GB12345697
customer_reference_number:
type: string
maxLength: 255
example: REF123456
eori_number:
type: string
maxLength: 255
example: DE 1234567890 8
required:
- name
- email
- phone
- address
item.base:
title: ItemBase
type: object
properties:
name:
type: string
maxLength: 255
example: Vase ming
description:
type: string
maxLength: 255
example: Vase ming XIV
quantity:
type: integer
default: 1
description: Item quantity.
minimum: 1
multipleOf: 1
current_packing:
$ref: '#/components/schemas/packing-type'
desired_packing:
$ref: '#/components/schemas/desired-packing'
measurement_system:
$ref: '#/components/schemas/measurement-system'
default: metric
type:
$ref: '#/components/schemas/item-type'
materials:
$ref: '#/components/schemas/item-materials'
value:
$ref: '#/components/schemas/commercial-value'
required:
- value
- current_packing
- description
dimension:
title: Dimension
type: object
properties:
length:
type: integer
description: Item length in cm or inch, depending on the measurement system used.
example: 100
multipleOf: 1
minimum: 1
height:
type: integer
description: Item height in cm or inch, depending on the measurement system used.
example: 100
multipleOf: 1
minimum: 1
width:
type: integer
description: Item width in cm or inch, depending on the measurement system used.
example: 100
multipleOf: 1
minimum: 1
weight:
type: integer
description: Item weight in kg or lbs, depending on the measurement system used.
example: 100
multipleOf: 1
minimum: 1
required:
- length
- height
- width
contact:
title: Contact
x-tags:
- Models
type: object
description: ''
properties:
first_name:
type: string
maxLength: 255
example: John
description: Contact's first name.
last_name:
type: string
maxLength: 255
example: Doe
description: Contact's last name.
email:
type: string
format: email
maxLength: 255
example: john.doe@exemple.com
description: Contact's main email.
phone:
$ref: '#/components/schemas/phone'
additional_emails:
type: array
description: Contact's additional email addresses.
items:
type: string
format: email
additional_phones:
type: array
description: Contact's additional phone numbers.
items:
$ref: '#/components/schemas/phone'
required:
- first_name
- last_name
- email
- phone
direct-label-request:
title: DirectLabelRequest
x-tags:
- Enums
description: 'Direct label request.
Possible values:
- cheapest_option: API will return direct label prices if available and if direct label is the cheapest option.
- direct_label_only: API will always consider the direct label option if available and return direct label prices accordingly.
- direct_label_excluded: API will never consider the direct label option and therefore will never return direct label prices.'
type: string
enum:
- cheapest_option
- direct_label_only
- direct_label_excluded
default: cheapest_option
address:
title: Address
x-tags:
- Models
type: object
properties:
street:
type: string
maxLength: 255
description: Address's street.
example: 42 rue des allees
city:
type: string
maxLength: 255
example: Paris
description: Address's city.
state:
type: string
maxLength: 255
example: Ile-de-france
description: Address's state.
postcode:
type: string
maxLength: 255
example: '75004'
description: Address's postcode.
country_code:
$ref: '#/components/schemas/country-code'
required:
- country_code
item:
title: Item
x-tags:
- Models
type: object
description: Shipment Item
additionalProperties: false
allOf:
- $ref: '#/components/schemas/item.base'
- $ref: '#/components/schemas/dimension'
quote-create:
title: RequestBodyCreateShippingQuote
type: object
properties:
delivery:
$ref: '#/components/schemas/delivery'
required:
- contact
shipping_speed:
$ref: '#/components/schemas/shipping-speed'
direct_label_request:
$ref: '#/components/schemas/direct-label-request'
contract_insurance:
$ref: '#/components/schemas/contract-insurance'
pickups:
type: array
items:
$ref: '#/components/schemas/pickup'
required:
- contacts
customer_email:
type: string
maxLength: 255
description: Add a customer email address to receive the quote by email.
format: email
example: person@example.com
customer_reference_number:
type: string
maxLength: 255
additional_info:
type: string
maxLength: 8000
required:
- delivery
- shipping_speed
- pickups
speed-shipment-estimation:
title: ShippingSpeedShipmentEstimation
x-tags:
- Enums
description: 'Freight speed.
Possible values:
- regular speed: Our standard air freight speed option.'
type: string
enum:
- regular_speed
default: regular_speed
packing-type:
title: PackingType
x-tags:
- Enums
description: '- not_packed: Your product is not protected by any kind of bubble warp or cardboard.
- wood_crated: Your product is fully covered in bubble warp and fragile corners are covered with cardboard. Also, you placed adapted protections inside the wooden crate to prevent your product from moving too much and to protect it even further. Last but not least, the wood crate is put on pallet.'
type: string
enum:
- not_packed
- wood_crated
order:
title: Order
x-tags:
- Models
description: ''
type: object
properties:
id:
description: Order ID.
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
order_reference_number:
type: string
example: CVO-288
contract_insurance:
$ref: '#/components/schemas/contract-insurance'
shipping_speed:
$ref: '#/components/schemas/shipping-speed'
pickups:
type: array
items:
$ref: '#/components/schemas/pickup'
delivery:
$ref: '#/components/schemas/delivery'
price:
$ref: '#/components/schemas/price'
billing_details:
$ref: '#/components/schemas/billing-details'
tracking_link:
type: string
format: uri
description: Link to follow the progress of the shipping order.
example: https://tracking.convelio.com/example
dashboard_order_link:
type: string
format: uri
description: Link to see the details of the shipping order.
example: https://web.convelio.com/dashboard/order/288
customer_reference_number:
type: string
description: Customer/partner provided reference number.
maxLength: 255
example: REF123456
shipping-speed:
title: ShippingSpeed
x-tags:
- Enums
description: 'Freight speed.
Possible values:
- regular_speed: Our standard air freight speed option.
- express: After our standard-service pick up and packing, your goods take our priority flights and will be delivered in a shorter time.'
type: string
enum:
- regular_speed
- express
country-code:
title: CountryCode
x-tags:
- Enums
description: 'The country code according to
[iso-3166-1-alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
'
type: string
example: FR
enum:
- AD
- AE
- AF
- AG
- AI
- AL
- AM
- AO
- AQ
- AR
- AS
- AT
- AU
- AW
- AX
- AZ
- BA
- BB
- BD
- BE
- BF
- BG
- BH
- BI
- BJ
- BL
- BM
- BN
- BO
- BQ
- BR
- BS
- BT
- BV
- BW
- BY
- BZ
- CA
- CC
- CD
- CF
- CG
- CH
- CI
- CK
- CL
- CM
- CN
- CO
- CR
- CU
- CV
- CW
- CX
- CY
- CZ
- DE
- DJ
- DK
- DM
- DO
- DZ
- EC
- EE
- EG
- EH
- ER
- ES
- ET
- FI
- FJ
- FK
- FM
- FO
- FR
- GA
- GB
- GD
- GE
- GF
- GG
- GH
- GI
- GL
- GM
- GN
- GP
- GQ
- GR
- GS
- GT
- GU
- GW
- GY
- HK
- HM
- HN
- HR
- HT
- HU
- ID
- IE
- IL
- IM
- IN
- IO
- IQ
- IR
- IS
- IT
- JE
- JM
- JO
- JP
- KE
- KG
- KH
- KI
- KM
- KN
- KP
- KR
- KW
- KY
- KZ
- LA
- LB
- LC
- LI
- LK
- LR
- LS
- LT
- LU
- LV
- LY
- MA
- MC
- MD
- ME
- MF
- MG
- MH
- MK
- ML
- MM
- MN
- MO
- MP
- MQ
- MR
- MS
- MT
- MU
- MV
- MW
- MX
- MY
- MZ
- NA
- NC
- NE
- NF
- NG
- NI
- NL
- 'NO'
- NP
- NR
- NU
- NZ
- OM
- PA
- PE
- PF
- PG
- PH
- PK
- PL
- PM
- PN
- PR
- PS
- PT
- PW
- PY
- QA
- RE
- RO
- RS
- RU
- RW
- SA
- SB
- SC
- SD
- SE
- SG
- SH
- SI
- SJ
- SK
- SL
- SM
- SN
- SO
- SR
- SS
- ST
- SV
- SX
- SY
- SZ
- TC
- TD
- TF
- TG
- TH
- TJ
- TK
- TL
- TM
- TN
- TO
- TR
- TT
- TV
- TW
- TZ
- UA
- UG
- UM
- US
- UY
- UZ
- VA
- VC
- VE
- VG
- VI
- VN
- VU
- WF
- WS
- YE
- YT
- ZA
- ZM
- ZW
quote:
title: Quote
x-tags:
- Models
type: object
properties:
id:
type: string
format: uuid
description: ID of the Quote.
example: 123e4567-e89b-12d3-a456-426614174000
readOnly: true
quote_reference_number:
type: string
description: This QVO number is a direct reference to the quote and is used to communicate with Convelio's operational and support teams.
example: QVO-001
readOnly: true
shipping_speed:
$ref: '#/components/schemas/shipping-speed'
direct_label_request:
$ref: '#/components/schemas/direct-label-request'
delivery:
$ref: '#/components/schemas/delivery'
pickups:
type: array
items:
$ref: '#/components/schemas/pickup'
share_link:
type: string
description: Instant quote sharelink.
format: uri
example: https://web.convelio.com/sharelinkencoded
contract_insurance:
$ref: '#/components/schemas/contract-insurance'
customer_email:
type: string
maxLength: 255
description: Add a customer email address to receive the quote by email.
format: email
example: person@example.com
price:
$ref: '#/components/schemas/price'
status:
$ref: '#/components/schemas/quote-status'
customer_reference_number:
type: string
maxLength: 255
example: CRN123456789
additional_info:
type: string
maxLength: 8000
example: Additional information for customs.
measurement-system:
title: MeasurementSystem
description: Unit system used for the pickup.
type: string
enum:
- us
- metric
requestBodies:
estimate-price:
content:
application/json:
schema:
$ref: '#/components/schemas/shipment-estimation'
application/vnd.convelio-shipping.v2+json:
schema:
$ref: '#/components/schemas/shipment-estimation'
order:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/order-create'
application/vnd.convelio-shipping.v2+json:
schema:
$ref: '#/components/schemas/order-create'
quote:
content:
application/json:
schema:
$ref: '#/components/schemas/quote-create'
application/vnd.convelio-shipping.v2+json:
schema:
$ref: '#/components/schemas/quote-create'
parameters:
quote-id:
name: quoteId
description: Quote ID
in: path
schema:
type: string
required: true
json-content-type:
name: Content-Type
description: Content-Type header should be sent and should be `application/vnd.convelio-shipping.v2+json`
in: header
schema:
type: string
enum:
- application/json
- application/vnd.convelio-shipping.v2+json
default: application/json
accept:
description: Accept header should be sent and should be `application/json`
name: Accept
in: header
schema:
type: string
enum:
- '*/*'
- application/json
default: application/json
currency-code:
name: currency
description: Currency to use for the response. Accepted currencies are EUR, USD and GBP.
in: query
schema:
$ref: '#/components/schemas/currency-code'
responses:
bad-request:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/http-error'
example:
type: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
title: Bad Request
status: 400
detail: Bad Request.
internal-server-error:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/http-error'
example:
type: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
title: Internal Server Error
status: 500
detail: There is an internal problem on our server.
unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/http-error'
example:
type: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
title: Unauthorized
status: 401
detail: Token not found.
forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/http-error'
example:
type: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
title: Forbidden
status: 403
detail: You are authenticated but not allowed to execute the action.
unprocessable-entity:
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/http-unprocessable-entity-error'
example:
type: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
title: Unprocessable Entity
status: 422
detail: The server was unable to process the request.
validation_messages:
'{field_name}':
'{error_title}': 'Invalid delivery type. Valid values are: curbside, white_glove'
not-found:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/http-error'
example:
type: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
title: Not Found
status: 404
detail: Page not found.
securitySchemes:
convelio_signature:
name: X-Convelio-signature
description: An HMAC SHA256 signature created with the body data and the API secret token.
in: header
type: apiKey
secret_token:
name: Authorization
type: apiKey
in: header
description: token
x-convelio-example: token {{secret_token}}
x-convelio-sensitive: true
x-tagGroups:
- name: Endpoints
tags:
- shipping
- webhook
- name: Schemas
tags:
- Error responses
- Models
- Enums
- name: Resources
tags:
- api-status-page