ERP API documentation
Version v1

Welcome

This document describes a set of API that are used as a Facade in front of ERP connectors

  • [CONDITIONS OF USE]
  • [GENERAL TERMS OF SALES]

Change Log

  • [07-06-2019] / Update JWT token documentation
  • [07-02-2018] / Release Notes:
  • Availabilities API Reference
  • ShippingPlans API Reference
  • Orders API Reference

Test connection

Test that your connector is reachable

/test-connection get

get /test-connection

Secured by JWE->JWS->JWT

Documentations

HTTP status code 200

Empty, just returns a 200 HTTP Code if reached

HTTP status code 400

The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

Body

Media type: application/json

Type: object

Properties

  • messages: required (array of items)

Example:

{
  "messages": [
    "items[0].index must not be blank"
  ]
}

HTTP status code 401

The request has not been applied because it lacks valid authentication credentials for the target resource.

HTTP status code 403

The server understood the request but refuses to authorize it.

HTTP status code 404

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

HTTP status code 415

The origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource.

HTTP status code 500

The server encountered an unexpected condition that prevented it from fulfilling the request.

HTTP status code 503

The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

HTTP status code 504

The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server it needed to access in order to complete the request.

Secured by JWE->JWS->JWT

Headers

  • Authorization: required (string)

    Used to authenticate on the API

    Example:

    Bearer eyJjdHkiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..yIknbSWJh1JMTe1Pen7hRw.Zh1PAAgzr1Yx9rzLqoR3RfZzb6MgcFXPpIlOBjvJgZIjk8BcFZ6Y_E9fxNPFfLGeJXfO_yu4InY_FPqRcYfZfZ_AE2i7dXADh38P1hhzJGtGPNAm1WnzR1y_-ZErEUffMcW94TsZIrYtb9t0xXBgNoQoUsmjdiXpVnX202XdQEb__QC8xntu6-EtWl33gBxnj1H3RRZq_UxRXdCrFu_EFQJgoTOYuM-fpk-hzHqYT18.ZtUUy6h1vXtckECtYPGhAw
    

Availabilities API Reference

Availabilities for parts

/availabilities/search post

post /availabilities/search

Search availabilities for a set of parts

Secured by JWE->JWS->JWT

Documentations

Body

Media type: application/json

Type: object

Properties

  • items: required (array of items)

    Items: items

    • index: required (string)
    • quantity: (integer)
    • part: required (object)
      • identifier: required (object)
        • tecdoc: (object)
          • partNumber: required (string)
          • manufacturerId: required (string)
        • external: (object)
          • partNumber: required (string)

Example:

{
    "items":[
        {
            "index":"f79a98d5-6ff1-4a28-b00c-2f7d3fb46054",
            "quantity": 2,
            "part":{
                "identifier":{
                      "tecdoc":{
                          "partNumber":"1234",
                          "manufacturerId":"0013"
                      },
                      "external":{
                          "partNumber":"1234WALKER"
                      }
                }
            }
        }
    ]
}

HTTP status code 200

Body

Media type: application/json

Type: object

Properties

  • items: required (array of items)

    Items: items

    • index: required (string)
    • quantity: (int)
    • part: required (object)
      • identifier: required (object)
        • tecdoc: (object)
          • partNumber: required (string)
          • manufacturerId: required (string)
        • external: (object)
          • partNumber: required (string)
    • pricing: (object)
      • netPrice: required (number)
      • publicPrice: (number)
      • currency: required (string)
      • vat: (number)
      • corePrice: (number)
      • promotion: (object)
        • externalId: required (string)
      • fees: (array of items)

        Items: items

        • label: required (string)
        • price: required (number)
    • availabilities: required (object)
      • externalPrimaryWarehouseId: required (string)

        The externalPrimaryWarehouseId field is required if the warehouses array is empty

      • warehouses: required (array of items)

        Items: items

        • availableQuantity: required (integer)
    • availabilityExternalInfo: (object)
      • link: (string)
      • description: (string)

Example:

{
    "items":[
        {
            "index":"f79a98d5-6ff1-4a28-b00c-2f7d3fb46054",
            "quantity": 0,
            "part":{
                "identifier":{
                    "external":{
                        "partNumber":"1234WALKER"
                    }
                }
            },
            "pricing":{
                "netPrice":204.25,
                "publicPrice":215,
                "currency":"EUR",
                "vat":0.2,
                "corePrice":120,
                "promotion": {
                    "externalId": "Promo2018"
                },
                "fees":[
                    {
                        "label":"ecotaxe",
                        "price":2.94
                    }
                ]
            },
            "availabilities":{
                "externalPrimaryWarehouseId": "68",
                "warehouses":[
                    {
                        "externalId":"68",
                        "externalName":"Milano",
                        "isPrimary":true,
                        "availableQuantity":10,
                        "delivery":{
                            "information": "In 2 hours"
                        },
                        "hideStock":true
                    },
                    {
                        "externalId":"24",
                        "externalName":"Roma",
                        "availableQuantity":3,
                        "hideStock":false
                    },
                    {
                        "externalId":"44",
                        "externalName":"Torino",
                        "availableQuantity":10,
                        "hideStock":false
                    }
                ]
            },
            "availabilityExternalInfo":{
              "link":"http://www.externalavailability.com",
              "description":"Decription of the external availability"
            }
        }
    ]
}

HTTP status code 400

The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

Body

Media type: application/json

Type: object

Properties

  • messages: required (array of items)

Example:

{
  "messages": [
    "items[0].index must not be blank"
  ]
}

HTTP status code 401

The request has not been applied because it lacks valid authentication credentials for the target resource.

HTTP status code 403

The server understood the request but refuses to authorize it.

HTTP status code 404

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

HTTP status code 415

The origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource.

HTTP status code 500

The server encountered an unexpected condition that prevented it from fulfilling the request.

HTTP status code 503

The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

HTTP status code 504

The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server it needed to access in order to complete the request.

Secured by JWE->JWS->JWT

Headers

  • Authorization: required (string)

    Used to authenticate on the API

    Example:

    Bearer eyJjdHkiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..yIknbSWJh1JMTe1Pen7hRw.Zh1PAAgzr1Yx9rzLqoR3RfZzb6MgcFXPpIlOBjvJgZIjk8BcFZ6Y_E9fxNPFfLGeJXfO_yu4InY_FPqRcYfZfZ_AE2i7dXADh38P1hhzJGtGPNAm1WnzR1y_-ZErEUffMcW94TsZIrYtb9t0xXBgNoQoUsmjdiXpVnX202XdQEb__QC8xntu6-EtWl33gBxnj1H3RRZq_UxRXdCrFu_EFQJgoTOYuM-fpk-hzHqYT18.ZtUUy6h1vXtckECtYPGhAw
    

ShippingPlans API Reference

Shipping plans for parts

/shipping-plans/search post

post /shipping-plans/search

Search shipping plans for a set of parts

Secured by JWE->JWS->JWT

Documentations

Body

Media type: application/json

Type: object

Properties

  • items: required (array of items)

    Items: items

    • index: required (string)
    • isUrgent: (boolean)
    • requestedQuantity: required (integer)
    • part: required (object)
      • identifier: required (object)
        • tecdoc: (object)
          • partNumber: required (string)
          • manufacturerId: required (string)
        • external: (object)
          • partNumber: required (string)
  • forcePrimaryWarehouse: required (boolean)

Example:

{
    "items":[
        {
            "index":"ba4fce1c-e261-4ff6-a92c-23038a5e146a",
            "isUrgent": true,
            "requestedQuantity":17,
            "part":{
                "identifier":{
                    "external":{
                        "partNumber":"1234WALKER"
                    }
                }
            }
        }
    ],
    "forcePrimaryWarehouse": false
}

HTTP status code 200

Body

Media type: application/json

Type: object

Properties

  • items: required (array of items)

    Items: items

    • index: required (string)
    • part: (object)
      • identifier: required (object)
        • tecdoc: (object)
          • partNumber: required (string)
          • manufacturerId: required (string)
        • external: (object)
          • partNumber: required (string)
    • pricing: required (object)
      • netPrice: required (number)
      • publicPrice: (number)
      • currency: required (string)
      • vat: (number)
      • corePrice: (number)
      • promotion: (object)
        • externalId: required (string)
      • fees: (array of items)

        Items: items

        • label: required (string)
        • price: required (number)
    • shippingPlans: required (object)
      • requestedQuantity: required (integer)
      • backOrderQuantity: required (integer)
      • externalPrimaryWarehouseId: required (string)

        The externalPrimaryWarehouseId field is required if the warehouses array is empty

      • warehouses: required (array of items)

        Items: items

        • externalId: required (string)
        • externalName: required (string)
        • isPrimary: (boolean)
        • delivery: (object)
          • information: (string)
        • hideStock: (boolean)
        • availableQuantity: required (integer)
        • dispatchQuantity: required (integer)

Example:

{
    "items":[
        {
            "index":"ba4fce1c-e261-4ff6-a92c-23038a5e146a",
            "part":{
                "identifier":{
                    "external":{
                        "partNumber":"1234WALKER"
                    }
                }
            },
            "pricing":{
                "netPrice":204.25,
                "publicPrice":215,
                "currency":"EUR",
                "vat":0.2,
                "corePrice":120,
                "promotion": {
                    "externalId": "Promo2018"
                },
                "fees":[
                    {
                        "label":"ecotaxe",
                        "price":2.94
                    }
                ]
            },
            "shippingPlans":{
                "requestedQuantity": 17,
                "externalPrimaryWarehouseId":"68",
                "backOrderQuantity": 2,
                "warehouses":[
                    {
                        "externalId":"68",
                        "externalName":"Milano",
                        "isPrimary":true,
                        "availableQuantity":10,
                        "dispatchQuantity":10,
                        "delivery":{
                            "information": "In 2 hours"
                        },
                        "hideStock":true
                    },
                    {
                        "externalId":"24",
                        "externalName":"Roma",
                        "availableQuantity":3,
                        "dispatchQuantity":3,
                        "hideStock":false
                    },
                    {
                        "externalId":"44",
                        "externalName":"Torino",
                        "availableQuantity":2,
                        "dispatchQuantity":2,
                        "hideStock":false
                    }
                ]
            }
        }
    ]
}

HTTP status code 400

The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

Body

Media type: application/json

Type: object

Properties

  • messages: required (array of items)

Example:

{
  "messages": [
    "items[0].index must not be blank"
  ]
}

HTTP status code 401

The request has not been applied because it lacks valid authentication credentials for the target resource.

HTTP status code 403

The server understood the request but refuses to authorize it.

HTTP status code 404

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

HTTP status code 415

The origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource.

HTTP status code 500

The server encountered an unexpected condition that prevented it from fulfilling the request.

HTTP status code 503

The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

HTTP status code 504

The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server it needed to access in order to complete the request.

Secured by JWE->JWS->JWT

Headers

  • Authorization: required (string)

    Used to authenticate on the API

    Example:

    Bearer eyJjdHkiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..yIknbSWJh1JMTe1Pen7hRw.Zh1PAAgzr1Yx9rzLqoR3RfZzb6MgcFXPpIlOBjvJgZIjk8BcFZ6Y_E9fxNPFfLGeJXfO_yu4InY_FPqRcYfZfZ_AE2i7dXADh38P1hhzJGtGPNAm1WnzR1y_-ZErEUffMcW94TsZIrYtb9t0xXBgNoQoUsmjdiXpVnX202XdQEb__QC8xntu6-EtWl33gBxnj1H3RRZq_UxRXdCrFu_EFQJgoTOYuM-fpk-hzHqYT18.ZtUUy6h1vXtckECtYPGhAw
    

Orders API Reference

Orders for parts and warehouses

/orders post

post /orders

Create an order to the ERP

Secured by JWE->JWS->JWT

Documentations

Body

Media type: application/json

Type: object

Properties

  • orderNumber: required (string)
  • orderComment: (string)
  • shipping: required (object)
    • type: required (string)
    • address: required (object)
      • name: (string)
      • street: (string)
      • complements: (string)
      • city: (string)
      • zipCode: (string)
      • region: (string)
      • country: (string)
  • items: required (array of items)

    Items: items

    • index: required (string)
    • isUrgent: required (boolean)
    • part: required (object)
      • identifier: required (object)
        • tecdoc: (object)
          • partNumber: required (string)
          • manufacturerId: required (string)
        • external: (object)
          • partNumber: required (string)
    • vehicle: (object)
      • brandLabel: (string)
      • modelLabel: (string)
      • versionLabel: (string)
      • versionFromDate: (string)
      • versionToDate: (string)
      • versionBody: (string)
      • engineCode: (string)
      • vin: (string)
      • fuel: (string)
      • plateNumber: (string)
    • pricing: required (object)
      • netPrice: required (number)
      • publicPrice: (number)
      • currency: required (string)
      • vat: (number)
      • corePrice: (number)
      • promotion: (object)
        • externalId: required (string)
      • fees: (array of items)

        Items: items

        • label: required (string)
        • price: required (number)
    • warehouses: required (array of items)

      Items: items

      • externalId: required (string)
      • orderedQuantity: required (integer)
  • operator: required (object)
    • email: required (string)
    • firstName: required (string)
    • lastName: required (string)
  • internalPurchaseOrderNumber: (string)
  • shippingFees: (number)
  • customer: (object)
    • companyName: required (string)
    • vatIdentifier: required (string)
    • email: required (string)
    • phone: (string)
    • billingAddress: required (object)
      • name: (string)
      • street: (string)
      • complements: (string)
      • city: (string)
      • zipCode: (string)
      • region: (string)
      • country: (string)
  • cardPayment: (object)
    • status: required (string)
    • transactionId: required (string)
    • transactionAmount: required (number)
    • commission: required (number)
    • payoutSuccess: required (boolean)
  • preCheckoutFees: (array of items)

    Items: items

    • name: required (string)
    • externalPartNumber: required (string)
    • value: required (number)

Example:

{
  "orderNumber": "O3917.1234567",
  "orderComment": "This is an emergency, need this in the morning. Thx.",
  "shipping": {
    "type": "COUNTER",
    "address": {
      "name": "Jacquie",
      "street": "8 Avenue de la République",
      "complements": "Bâtiment A",
      "city": "Paris",
      "zipCode": "75000",
      "region": "Île de France",
      "country": "FRA"
    }
  },
  "items": [
    {
      "index": "815682e4-24c4-4c77-a70e-1bb10640ca6b",
      "isUrgent": true,
      "part": {
        "identifier": {
          "tecdoc": {
            "partNumber": "1234",
            "manufacturerId": "0013"
          },
          "external": {
            "partNumber": "1234WALKER"
          }
        }
      },
      "vehicle": {
        "brandLabel": "ALFA ROMEO",
        "modelLabel": "145",
        "versionLabel": "2.0 Twin Spark Q.V iE",
        "versionFromDate": "1996-10",
        "versionToDate": "1999-02",
        "versionBody": "Multispace, 5 P.",
        "engineCode": "AR67204",
        "vin": "",
        "fuel": "B",
        "plateNumber": "TE001ST"
      },
      "pricing": {
        "netPrice":204.25,
        "publicPrice":215,
        "currency":"EUR",
        "vat":0.2,
        "corePrice":120,
        "promotion": {
          "externalId": "Promo2018"
        },
        "fees":[
          {
            "label":"ecotaxe",
            "price":2.94
          }
        ]
      },
      "warehouses": [
        {
          "externalId": "68",
          "orderedQuantity": 12
        },
        {
          "externalId": "24",
          "orderedQuantity": 3
        },
        {
          "externalId": "44",
          "orderedQuantity": 2
        }
      ]
    },
    {
      "index": "91ec6dcb-69ed-4d2d-95fd-93e9ac190b4e",
      "isUrgent": false,
      "part": {
        "identifier": {
          "external": {
            "partNumber": "5678WALKER"
          }
        }
      },
      "pricing": {
        "netPrice": 10,
        "publicPrice": 20
      },
      "warehouses": [
        {
          "externalId": "68",
          "orderedQuantity": 10
        }
      ]
    }
  ],
  "operator": {
    "email": "operator@email.com",
    "firstName": "ope",
    "lastName": "rator"
  },
  "internalPurchaseOrderNumber": "0041989162",
  "customer": {
    "companyName": "Jacquie Company Name",
    "vatIdentifier": "1234567890",
    "email": "jacquie@yopmail.com",
    "phone": "0787458541",
    "billingAddress": {
      "name": "Jacquie",
      "street": "8 Avenue de la République",
      "complements": "Bâtiment A",
      "city": "Paris",
      "zipCode": "75000",
      "region": "Île de France",
      "country": "France"
    }
  },
  "preCheckoutFees": [
    {
      "name": "additionalFee1",
      "externalPartNumber": "00001",
      "value": 20.02
    }
  ],
  "shippingFees": 5.11,
  "cardPayment": {
    "status": "succeeded",
    "transactionId": "76756",
    "transactionAmount": 265.09,
    "commission": 1.02,
    "payoutSuccess": true
  }
}

HTTP status code 200

Body

Media type: application/json

Type: object

Properties

  • items: required (array of items)

    Items: items

    • externalOrderId: required (string)
    • externalWarehouseId: (string)
    • externalOrderNumber: (string)
    • externalOrderDate: (string)

      Some ERP use it as part of a unique order id. Should be parse as a string and never modified

    • lines: required (array of items)

      Items: items

      • index: required (string)
      • externalLineNumber: required (string)

Example:

{
    "items":[
        {
            "externalOrderId":"ABCD",
            "externalOrderNumber":"1234",
            "externalOrderDate":"2018-01-16",
            "externalWarehouseId":"68",
            "lines": [
                {
                    "index": "815682e4-24c4-4c77-a70e-1bb10640ca6b",
                    "externalLineNumber": "1"
                },
                {
                    "index": "91ec6dcb-69ed-4d2d-95fd-93e9ac190b4e",
                    "externalLineNumber": "2"
                }
            ]
        },
        {
            "externalOrderId":"EFGH",
            "externalOrderNumber":"6789",
            "externalOrderDate":"2018-01-16",
            "externalWarehouseId":"24",
            "lines": [
                {
                    "index": "815682e4-24c4-4c77-a70e-1bb10640ca6b",
                    "externalLineNumber": "1"
                }
            ]
        },
        {
            "externalOrderId":"IJKL",
            "externalOrderNumber":"0ABC",
            "externalOrderDate":"2018-01-16",
            "externalWarehouseId":"44",
            "lines": [
                {
                    "index": "815682e4-24c4-4c77-a70e-1bb10640ca6b",
                    "externalLineNumber": "1"
                }
            ]
        }
    ]
}

HTTP status code 400

The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

Body

Media type: application/json

Type: object

Properties

  • messages: required (array of items)

Example:

{
  "messages": [
    "items[0].index must not be blank"
  ]
}

HTTP status code 401

The request has not been applied because it lacks valid authentication credentials for the target resource.

HTTP status code 403

The server understood the request but refuses to authorize it.

HTTP status code 404

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

HTTP status code 415

The origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource.

HTTP status code 500

The server encountered an unexpected condition that prevented it from fulfilling the request.

HTTP status code 503

The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

HTTP status code 504

The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server it needed to access in order to complete the request.

Secured by JWE->JWS->JWT

Headers

  • Authorization: required (string)

    Used to authenticate on the API

    Example:

    Bearer eyJjdHkiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..yIknbSWJh1JMTe1Pen7hRw.Zh1PAAgzr1Yx9rzLqoR3RfZzb6MgcFXPpIlOBjvJgZIjk8BcFZ6Y_E9fxNPFfLGeJXfO_yu4InY_FPqRcYfZfZ_AE2i7dXADh38P1hhzJGtGPNAm1WnzR1y_-ZErEUffMcW94TsZIrYtb9t0xXBgNoQoUsmjdiXpVnX202XdQEb__QC8xntu6-EtWl33gBxnj1H3RRZq_UxRXdCrFu_EFQJgoTOYuM-fpk-hzHqYT18.ZtUUy6h1vXtckECtYPGhAw
    

/orders/{externalOrderId} get

get /orders/{externalOrderId}

Search orders for a given external order number

Secured by JWE->JWS->JWT

Documentations

URI Parameters

  • externalOrderId: required (string)

    Example:

    1234

Query Parameters

  • externalOrderDate: (string)

    Example:

    2003-12-12

HTTP status code 200

Body

Media type: application/json

Type: object

Properties

  • items: required (array of items)

    Items: items

    • externalLineNumber: required (string)
    • externalWarehouseId: (string)
    • orderedQuantity: required (integer)
    • cancelledQuantity: required (integer)
    • externalStatus: (string)
    • part: (object)
      • identifier: required (object)
        • tecdoc: (object)
          • partNumber: required (string)
          • manufacturerId: required (string)
        • external: (object)
          • partNumber: required (string)
    • pricing: (object)
      • netPrice: required (number)
      • publicPrice: (number)
      • currency: required (string)
      • vat: (number)
      • corePrice: (number)
      • promotion: (object)
        • externalId: required (string)
      • fees: (array of items)

        Items: items

        • label: required (string)
        • price: required (number)
    • description: (string)
    • parcels: required (array of items)

      Items: items

      • externalId: required (string)
      • quantity: required (integer)
      • shipper: (string)
      • shippingDate: (string)
      • comment: (string)
      • deliverySlipNumber: (string)
      • trackingId: (string)

Example:

{
    "items":[
        {
            "externalLineNumber":"1",
            "externalWarehouseId":"68",
            "orderedQuantity":12,
            "cancelledQuantity":2,
            "externalStatus": "partially_shipped",
            "parcels":[
                {
                    "externalId":"130231A",
                    "shipper":"La posta",
                    "shippingDate":"2018-01-18T13:31:31",
                    "comment": "Urgent",
                    "quantity": 7,
                    "deliverySlipNumber": "VL02/VL03",
                    "trackingId": "UA-000000-2"
                }
            ]
        },
        {
            "externalLineNumber":"1",
            "externalWarehouseId":"24",
            "orderedQuantity":3,
            "cancelledQuantity":0,
            "parcels":[]
        },
        {
            "externalLineNumber":"1",
            "externalWarehouseId":"44",
            "orderedQuantity":2,
            "cancelledQuantity":2,
            "parcels":[]
        },
        {
            "externalLineNumber": "2",
            "externalWarehouseId":"68",
            "orderedQuantity":10,
            "cancelledQuantity":5,
            "part":{
                "identifier":{
                    "external":{
                        "partNumber":"1234WALKER"
                    }
                }
            },
            "pricing":{
                "netPrice":204.25,
                "publicPrice":215,
                "currency":"EUR",
                "vat":0.2,
                "corePrice":120,
                "promotion": {
                    "externalId": "Promo2018"
                },
                "fees":[
                    {
                        "label":"ecotaxe",
                        "price":2.94
                    }
                ]
            },
            "description": "Renault clio III rear break",
            "parcels": []
        }
    ]
}

HTTP status code 400

The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

Body

Media type: application/json

Type: object

Properties

  • messages: required (array of items)

Example:

{
  "messages": [
    "items[0].index must not be blank"
  ]
}

HTTP status code 401

The request has not been applied because it lacks valid authentication credentials for the target resource.

HTTP status code 403

The server understood the request but refuses to authorize it.

HTTP status code 404

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

HTTP status code 415

The origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource.

HTTP status code 500

The server encountered an unexpected condition that prevented it from fulfilling the request.

HTTP status code 503

The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

HTTP status code 504

The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server it needed to access in order to complete the request.

Secured by JWE->JWS->JWT

Headers

  • Authorization: required (string)

    Used to authenticate on the API

    Example:

    Bearer eyJjdHkiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..yIknbSWJh1JMTe1Pen7hRw.Zh1PAAgzr1Yx9rzLqoR3RfZzb6MgcFXPpIlOBjvJgZIjk8BcFZ6Y_E9fxNPFfLGeJXfO_yu4InY_FPqRcYfZfZ_AE2i7dXADh38P1hhzJGtGPNAm1WnzR1y_-ZErEUffMcW94TsZIrYtb9t0xXBgNoQoUsmjdiXpVnX202XdQEb__QC8xntu6-EtWl33gBxnj1H3RRZq_UxRXdCrFu_EFQJgoTOYuM-fpk-hzHqYT18.ZtUUy6h1vXtckECtYPGhAw
    

Returns API Reference

Returns for parts

/returns post

post /returns

Create an order return

Secured by JWE->JWS->JWT

Documentations

Body

Media type: application/json

Type: object

Properties

  • orderNumber: required (string)

    The parts-advisor order number

  • returnNumber: required (string)

    The parts-advisor return number

  • returnDate: required (string)

    The return date (yyyy-MM-dd)

  • orders: required (array of items)

    Items: items

    • externalId: required (string)

      The order identifier in the ERP

    • externalDate: required (string)

      Order date (yyyy-MM-dd)

  • items: required (array of items)

    Items: items

    • index: required (string)

      Technical index of the item

    • part: required (object)
      • identifier: required (object)
        • tecdoc: (object)
          • partNumber: required (string)
          • manufacturerId: required (string)
        • external: (object)
          • partNumber: required (string)
    • returnedQuantity: required (integer)

      The quantity to return for this line

    • comment: (string)

      The comment set by the buyer

    • reason: required (one of NON_COMPLIANT, DAMAGED, DEFECTIVE, DELIVERY_DELAY)

      The return reason

Example:

{
  "orderNumber": "O3940.1234567",
  "returnNumber": "R1_O3940.1234567",
  "returnDate": "2018-04-04",
  "orders": [
    {
      "externalId": "01234",
      "externalDate": "2018-04-03"
    },
    {
      "externalId": "56789",
      "externalDate": "2018-04-03"
    }
  ],
  "items": [
    {
      "index": "815682e4-24c4-4c77-a70e-1bb10640ca6a",
      "part":{
        "identifier":{
          "tecdoc":{
            "partNumber":"1234",
            "manufacturerId":"0013"
          },
          "external":{
            "partNumber":"1234WALKER"
          }
        }
      },
      "returnedQuantity": 1,
      "comment": "This part is damaged",
      "reason": "DAMAGED"
    },
    {
      "index": "815682e4-24c4-4c77-a70e-1bb10640ca6b",
      "part":{
        "identifier":{
          "tecdoc": {
            "partNumber": "1234",
            "manufacturerId": "0013"
          },
          "external":{
            "partNumber":"1234WALKER"
          }
        }
      },
      "returnedQuantity": 7,
      "comment": "This is not the requested part",
      "reason": "NON_COMPLIANT"
    }
  ]
}

HTTP status code 200

Body

Media type: application/json

Type: object

Properties

  • items: required (array of items)

    Items: items

    • index: required (string)

      Technical index of the item

    • externalReturnDate: required (string)

      The return date in the ERP

    • externalReturnId: required (string)

      The return technical identifier in the ERP

    • externalReturnNumber: required (string)

      The return functional identifier in the ERP

    • externalReturnLineNumber: required (string)

      The part identifier in the ERP

Example:

{
  "items": [
    {
      "index": "815682e4-24c4-4c77-a70e-1bb10640ca6a",
      "externalReturnDate": "2018-04-04",
      "externalReturnId": "123456789",
      "externalReturnNumber": "RETURN-123456789",
      "externalReturnLineNumber": "alpha"
    },
    {
      "index": "815682e4-24c4-4c77-a70e-1bb10640ca6b",
      "externalReturnDate": "2018-04-04",
      "externalReturnId": "123456789",
      "externalReturnNumber": "RETURN-123456789",
      "externalReturnLineNumber": "beta"
    }
  ]
}

HTTP status code 400

The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

Body

Media type: application/json

Type: object

Properties

  • messages: required (array of items)

Example:

{
  "messages": [
    "items[0].index must not be blank"
  ]
}

HTTP status code 401

The request has not been applied because it lacks valid authentication credentials for the target resource.

HTTP status code 403

The server understood the request but refuses to authorize it.

HTTP status code 404

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

HTTP status code 415

The origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource.

HTTP status code 500

The server encountered an unexpected condition that prevented it from fulfilling the request.

HTTP status code 503

The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

HTTP status code 504

The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server it needed to access in order to complete the request.

Secured by JWE->JWS->JWT

Headers

  • Authorization: required (string)

    Used to authenticate on the API

    Example:

    Bearer eyJjdHkiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..yIknbSWJh1JMTe1Pen7hRw.Zh1PAAgzr1Yx9rzLqoR3RfZzb6MgcFXPpIlOBjvJgZIjk8BcFZ6Y_E9fxNPFfLGeJXfO_yu4InY_FPqRcYfZfZ_AE2i7dXADh38P1hhzJGtGPNAm1WnzR1y_-ZErEUffMcW94TsZIrYtb9t0xXBgNoQoUsmjdiXpVnX202XdQEb__QC8xntu6-EtWl33gBxnj1H3RRZq_UxRXdCrFu_EFQJgoTOYuM-fpk-hzHqYT18.ZtUUy6h1vXtckECtYPGhAw
    

/returns/{externalReturnId} get

get /returns/{externalReturnId}

Search returns for a given external return number

Secured by JWE->JWS->JWT

Documentations

URI Parameters

  • externalReturnId: required (string)

    Example:

    1234

Query Parameters

  • externalReturnDate: (string)

    Example:

    2003-12-12

HTTP status code 200

Body

Media type: application/json

Type: object

Properties

  • items: required (array of items)

    Items: items

    • externalReturnLineNumber: required (string)
    • status: required (one of ACCEPTED, REFUSED, SUBMITTED)
    • refusalType: (one of DAMAGED_PRODUCT, ALREADY_USED_PRODUCT, WRONG_PRODUCT, OTHER)
    • refusalReason: (string)
    • closed: (boolean)
    • externalReturnPricingInfo: (object)
      • recoveryValue: required (string)
      • creditNoteNumber: required (string)

Example:

{
  "items": [
    {
      "externalReturnLineNumber": "alpha",
      "status": "ACCEPTED",
      "closed": true,
      "externalReturnPricingInfo":
      {
        "recoveryValue": "RECOVERYVALUE",
        "creditNoteNumber": "CREDITNOTENUMBER",
      }
    },
    {
      "externalReturnLineNumber": "beta",
      "status": "REFUSED",
      "refusalType": "ALREADY_USED_PRODUCT",
      "refusalReason": "Already used"
    }
  ]
}

HTTP status code 400

The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

Body

Media type: application/json

Type: object

Properties

  • messages: required (array of items)

Example:

{
  "messages": [
    "items[0].index must not be blank"
  ]
}

HTTP status code 401

The request has not been applied because it lacks valid authentication credentials for the target resource.

HTTP status code 403

The server understood the request but refuses to authorize it.

HTTP status code 404

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

HTTP status code 415

The origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource.

HTTP status code 500

The server encountered an unexpected condition that prevented it from fulfilling the request.

HTTP status code 503

The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

HTTP status code 504

The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server it needed to access in order to complete the request.

Secured by JWE->JWS->JWT

Headers

  • Authorization: required (string)

    Used to authenticate on the API

    Example:

    Bearer eyJjdHkiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..yIknbSWJh1JMTe1Pen7hRw.Zh1PAAgzr1Yx9rzLqoR3RfZzb6MgcFXPpIlOBjvJgZIjk8BcFZ6Y_E9fxNPFfLGeJXfO_yu4InY_FPqRcYfZfZ_AE2i7dXADh38P1hhzJGtGPNAm1WnzR1y_-ZErEUffMcW94TsZIrYtb9t0xXBgNoQoUsmjdiXpVnX202XdQEb__QC8xntu6-EtWl33gBxnj1H3RRZq_UxRXdCrFu_EFQJgoTOYuM-fpk-hzHqYT18.ZtUUy6h1vXtckECtYPGhAw
    

Pre-Checkout API Reference

This verb is used to provide the connector the whole content of the check-out page and get in return the shipping information, possibly modified by the connector.

/precheckout post

post /precheckout

Pre-Checkout

Secured by JWE->JWS->JWT

Documentations

Body

Media type: application/json

Type: object

Properties

  • shipping: required (array of items)

    Items: items

    • type: required (string)
    • address: required (object)
      • name: (string)
      • street: (string)
      • complements: (string)
      • city: (string)
      • zipCode: (string)
      • region: (string)
      • country: (string)
  • cartLines: required (array of items)

    Items: items

    • part: required (object)
      • identifier: required (object)
        • tecdoc: (object)
          • partNumber: required (string)
          • manufacturerId: required (string)
        • external: (object)
          • partNumber: required (string)
    • requestedQuantity: required (integer)
    • pricing: required (object)
      • netPrice: required (number)
      • publicPrice: (number)
      • currency: required (string)
      • vat: (number)
      • corePrice: (number)
      • promotion: (object)
        • externalId: required (string)
      • fees: (array of items)

        Items: items

        • label: required (string)
        • price: required (number)

Example:

{
   "shipping":[
      {
         "type":"COUNTER",
         "address":{
            "name":"Jacquie",
            "street":"8 Avenue de la République",
            "complements":"Bâtiment A",
            "city":"Paris",
            "zipCode":"75000",
            "region":"Ile de France",
            "country":"FRA"
         }
      },
      {
         "type":"USER",
         "address":{
            "name":"Jacquie",
            "street":"8 Avenue de la République",
            "complements":"Bâtiment A",
            "city":"Paris",
            "zipCode":"75000",
            "region":"Ile de France",
            "country":"FRA"
         }
      }
   ],
   "cartLines":[
      {
         "part":{
            "identifier":{
               "kromeda":{
                  "partNumber":"16783",
                  "manufacturerId":"059",
                  "manufacturerLabel":"FEBI"
               },
               "tecdoc":{
                  "partNumber":"16783",
                  "manufacturerId":"0101"
               },
               "external":{
                  "partNumber":"Kit plaquettes avant"
               }
            },
            "description":"Kit de plaquettes de frein, frein à disque"
         },
         "requestedQuantity":20,
         "pricing":{
            "netPrice":28.0,
            "publicPrice":28.0,
            "currency":"EUR",
            "vat":0.22,
            "corePrice":2.8,
            "promotion":{
               "externalId":"12345"
            },
            "fees":[
               {
                  "label": "first fee in request",
                  "price": 1.5
               },
               {
                  "label": "second fee in request",
                  "price": 2.5
               }
            ]
         }
      }
   ]
}

HTTP status code 200

Body

Media type: application/json

Type: object

Properties

  • shipping: required (array of items)

    Items: items

    • type: required (string)
    • address: required (object)
      • name: (string)
      • street: (string)
      • complements: (string)
      • city: (string)
      • zipCode: (string)
      • region: (string)
      • country: (string)
  • additionalFields: (object)
    • isUrgent: (boolean)
    • sellerMessage: (object)
      • message: required (string)
      • type: required (integer)
      • blockCheckout: (boolean)
      • url: (string)
    • pickDeliveryRound: (array of items)

      Items: items

      • roundId: required (string)
      • roundLabel: required (string)
    • deliveryDate: (string)
    • billingType: (array of items)

      Items: items

      • billingTypeId: required (string)
      • label: required (string)
    • additionalFees: (array of items)

      Items: items

      • name: required (string)
      • externalPartNumber: required (string)
      • value: required (number)

Example:

{
    "shipping": [
        {
            "type": "COUNTER",
            "address": {
                "name": "Jacquie",
                "street": "8 Avenue de la République",
                "complements": "Bâtiment A",
                "city": "Paris",
                "zipCode": "75000",
                "region": "Ile de France",
                "country": "FRA"
            }
        },
        {
            "type": "USER",
            "address": {
                "name": "Jacquie",
                "street": "8 Avenue de la Republique",
                "complements": "Batiment A",
                "city": "Paris",
                "zipCode": "75000",
                "region": "Ile de France",
                "country": "FRA"
            }
        }
    ],
    "additionalFields": {
        "isUrgent": true,
        "sellerMessage": {
            "message": "Attention, vous allez dépasser votre limite de crédit avec cette commande (le type de message servira à indiquer côté front si c'est un message d'information, de warning, d'erreur: avec un code couleur différent). Cliquez sur le lien suivant pour en savoir plus",
            "type": 1,
            "blockCheckout": false,
            "url": "http://www.moreinfo.com/1234"
        },
        "pickDeliveryRound": [
            {
                "roundId": "12345",
                "roundLabel": "tournée de 11h"
            },
            {
                "roundId": "6789",
                "roundLabel": "tournée de 16h"
            }
        ],
        "deliveryDate": "01/04/2019",
        "billingType": [
            {
                "billingTypeId": "1",
                "label": "Fattura"
            },
            {
                "billingTypeId": "2",
                "label": "Bolla"
            }
        ],
        "additionalFees": [
            {
                "name": "first additional fee in response",
                "externalPartNumber": "123456789",
                "value": 20.0
            },
            {
                "name": "second additional fee in response",
                "externalPartNumber": "123454357",
                "value": 15.0
            }
        ]
    }
}

HTTP status code 400

The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

Body

Media type: application/json

Type: object

Properties

  • messages: required (array of items)

Example:

{
  "messages": [
    "items[0].index must not be blank"
  ]
}

HTTP status code 401

The request has not been applied because it lacks valid authentication credentials for the target resource.

HTTP status code 403

The server understood the request but refuses to authorize it.

HTTP status code 404

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

HTTP status code 415

The origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource.

HTTP status code 500

The server encountered an unexpected condition that prevented it from fulfilling the request.

HTTP status code 503

The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

HTTP status code 504

The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server it needed to access in order to complete the request.

Secured by JWE->JWS->JWT

Headers

  • Authorization: required (string)

    Used to authenticate on the API

    Example:

    Bearer eyJjdHkiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..yIknbSWJh1JMTe1Pen7hRw.Zh1PAAgzr1Yx9rzLqoR3RfZzb6MgcFXPpIlOBjvJgZIjk8BcFZ6Y_E9fxNPFfLGeJXfO_yu4InY_FPqRcYfZfZ_AE2i7dXADh38P1hhzJGtGPNAm1WnzR1y_-ZErEUffMcW94TsZIrYtb9t0xXBgNoQoUsmjdiXpVnX202XdQEb__QC8xntu6-EtWl33gBxnj1H3RRZq_UxRXdCrFu_EFQJgoTOYuM-fpk-hzHqYT18.ZtUUy6h1vXtckECtYPGhAw