API: custom shipping methods

This REST API endpoint allows you to create custom shipping methods.

GET /api/shipping_methods

This method returns existing shipping methods list.

Resource URL

https://app.snipcart.com/api/shipping_methods

Headers

Name Value Required? Description
Accept application/json Yes Our API only accepts application/json content type, so you must always specify Accept: application/json header on each request you make.

Example request

curl -H "Accept: application/json" \
    https://app.snipcart.com/api/shipping_methods
    -u {API_KEY}:

Example response

[
  {
    "name": "International shipping",
    "guaranteedEstimatedDelivery": {
      "minimumDaysForDelivery": 10,
      "maximumDaysForDelivery": null
    },
    "location": {
      "country": null,
      "province": null
    },
    "rates": [
      {
        "cost": 20,
        "weight": {
          "to": 1000
        }
      },
      {
        "cost": 30,
        "weight": {
          "from": 1000,
          "to": 2000
        }
      },
      {
        "cost": 60,
        "weight": {
          "from": 3000
        }
      }
    ],
    "id": "e4aba83a-8ff5-41f1-b9f6-a3e3aea3fdde",
    "creationDate": "2017-04-04T15:04:53.377Z",
    "modificationDate": "2017-04-04T15:04:53.377Z"
  },
  {
    "postalCodeRegex": "G1K.*",
    "name": "Local shipping",
    "guaranteedEstimatedDelivery": {
      "minimumDaysForDelivery": 2,
      "maximumDaysForDelivery": null
    },
    "location": {
      "country": "CA",
      "province": "QC"
    },
    "rates": [
      {
        "cost": 0,
        "weight": {
          "to": 1000
        }
      },
      {
        "cost": 5,
        "weight": {
          "from": 1000,
          "to": 2000
        }
      },
      {
        "cost": 7.5,
        "weight": {
          "from": 2000
        }
      }
    ],
    "id": "1391ecc9-3f1b-4a85-bc8e-beb745e4c6d2",
    "creationDate": "2017-04-04T15:06:31.967Z",
    "modificationDate": "2017-04-04T15:06:31.967Z"
  },
  {
    "postalCodeRegex": "G1K.*",
    "name": "Domestic shipping",
    "guaranteedEstimatedDelivery": {
      "minimumDaysForDelivery": 5,
      "maximumDaysForDelivery": null
    },
    "location": {
      "country": "CA",
      "province": null
    },
    "rates": [
      {
        "cost": 5,
        "weight": {
          "to": 1000
        }
      },
      {
        "cost": 10,
        "weight": {
          "from": 1000,
          "to": 2000
        }
      },
      {
        "cost": 20,
        "weight": {
          "from": 2000
        }
      }
    ],
    "id": "0222da02-ab21-4c4c-ad4e-c06f89f3c966",
    "creationDate": "2017-04-04T15:05:42.873Z",
    "modificationDate": "2017-04-04T15:05:42.873Z"
  }
]

GET /api/shipping_methods/{id}

This method returns a specific shipping method information.

Resource URL

https://app.snipcart.com/api/shipping_methods/{id}

URL Parameters

Name Required? Type Description
id Yes guid The shipping method unique identifier.

Headers

Name Value Required? Description
Accept application/json Yes Our API only accepts application/json content type, so you must always specify Accept: application/json header on each request you make.

Example request

curl -H "Accept: application/json" \
    https://app.snipcart.com/api/shipping_methods/0222da02-ab21-4c4c-ad4e-c06f89f3c966
    -u {API_KEY}:

Example response

{
  "postalCodeRegex": "G1K.*",
  "name": "Domestic shipping",
  "guaranteedEstimatedDelivery": {
    "minimumDaysForDelivery": 5,
    "maximumDaysForDelivery": null
  },
  "location": {
    "country": "CA",
    "province": null
  },
  "rates": [
    {
      "cost": 5,
      "weight": {
        "to": 1000
      }
    },
    {
      "cost": 10,
      "weight": {
        "from": 1000,
        "to": 2000
      }
    },
    {
      "cost": 20,
      "weight": {
        "from": 2000
      }
    }
  ],
  "id": "0222da02-ab21-4c4c-ad4e-c06f89f3c966",
  "creationDate": "2017-04-04T15:05:42.873Z",
  "modificationDate": "2017-04-04T15:05:42.873Z"
}

POST /api/shipping_methods

This method allows you to create a custom shipping method.

Resource URL

https://app.snipcart.com/api/shipping_methods

Headers

Name Value Required? Description
Accept application/json Yes Our API only accepts application/json content type, so you must always specify Accept: application/json header on each request you make.
Content-Type application/json Yes Specifies the content type of the request body.

Custom shipping method parameters

Name Required Type Description
name Yes string The shipping method name
location No object The location where the shipping method is available. Can be specified with country and province properties. You must use country code and province code. Example:
{ "country": "CA", "province": "QC" }
If location is not specified, the shipping method will be offered for any shipping address.
guaranteedEstimatedDelivery No object The number of estimated days for delivery. Example:
{ "minimumDaysForDelivery": 1, "maximumDaysForDelivery": 5 }
You can set only the minimum or maximum value if needed.
rates Yes object[] The rates associated to this shipping method. Refer to the next section to define a rate object.

Rate parameters

Name Required Type Description
cost Yes decimal The cost of the shipping rate. Must be a valid decimal value.
weight No object The weight range that the rate is applicable to. Example:
{ "from": 10, "to": 100 }
The unit must be specified in grams. If not specified, the shipping rate will be available regardless of the order total weight.
location No object If specified, the rate will be available only if the order shipping address matches the location. Example: { "country": "CA", "province": "QC" }

Request payload example

{
  "postalCodeRegex": "G1K.*",
  "name": "Domestic shipping",
  "guaranteedEstimatedDelivery": {
    "minimumDaysForDelivery": 5,
    "maximumDaysForDelivery": null
  },
  "location": {
    "country": "CA",
    "province": null
  },
  "rates": [
    {
      "cost": 5,
      "weight": {
        "to": 1000
      }
    },
    {
      "cost": 10,
      "weight": {
        "from": 1000,
        "to": 2000
      }
    },
    {
      "cost": 20,
      "weight": {
        "from": 2000
      }
    }
  ]
}

Response example

{
  "postalCodeRegex": "G1K.*",
  "name": "Domestic shipping",
  "guaranteedEstimatedDelivery": {
    "minimumDaysForDelivery": 5,
    "maximumDaysForDelivery": null
  },
  "location": {
    "country": "CA",
    "province": null
  },
  "rates": [
    {
      "cost": 5,
      "weight": {
        "to": 1000
      }
    },
    {
      "cost": 10,
      "weight": {
        "from": 1000,
        "to": 2000
      }
    },
    {
      "cost": 20,
      "weight": {
        "from": 2000
      }
    }
  ],
  "id": "0222da02-ab21-4c4c-ad4e-c06f89f3c966",
  "creationDate": "2017-04-04T15:05:42.873Z",
  "modificationDate": "2017-04-04T15:05:42.873Z"
}

PUT /api/shipping_methods/{id}

This method allows you to update an existing custom shipping method.

Resource URL

https://app.snipcart.com/api/shipping_methods/{id}

URL Parameters

Name Required? Type Description
id Yes guid The shipping method unique identifier.

Headers

Name Value Required? Description
Accept application/json Yes Our API only accepts application/json content type, so you must always specify Accept: application/json header on each request you make.
Content-Type application/json Yes Specifies the content type of the request body.

Custom shipping method parameters

Name Required Type Description
name Yes string The shipping method name
location No object The location where the shipping method is available. Can be specified with country and province properties. You must use country code and province code. Example:
{ "country": "CA", "province": "QC" }
If location is not specified, the shipping method will be offered for any shipping address.
guaranteedEstimatedDelivery No object The number of estimated days for delivery. Example:
{ "minimumDaysForDelivery": 1, "maximumDaysForDelivery": 5 }
You can set only the minimum or maximum value if needed.
rates Yes object[] The rates associated to this shipping method. Refer to the next section to define a rate object.

Rate parameters

Name Required Type Description
cost Yes decimal The cost of the shipping rate. Must be a valid decimal value.
weight No object The weight range that the rate is applicable to. Example:
{ "from": 10, "to": 100 }
The unit must be specified in grams. If not specified, the shipping rate will be available regardless of the order total weight.
location No object If specified, the rate will be available only if the order shipping address matches the location. Example: { "country": "CA", "province": "QC" }

Request payload example

{
  "id": "0222da02-ab21-4c4c-ad4e-c06f89f3c966",
  "postalCodeRegex": "G1K.*",
  "name": "Domestic shipping",
  "guaranteedEstimatedDelivery": {
    "minimumDaysForDelivery": 5,
    "maximumDaysForDelivery": null
  },
  "location": {
    "country": "CA",
    "province": null
  },
  "rates": [
    {
      "cost": 5,
      "weight": {
        "to": 1000
      }
    },
    {
      "cost": 10,
      "weight": {
        "from": 1000,
        "to": 2000
      }
    },
    {
      "cost": 20,
      "weight": {
        "from": 2000
      }
    }
  ]
}

Response example

{
  "postalCodeRegex": "G1K.*",
  "name": "Domestic shipping",
  "guaranteedEstimatedDelivery": {
    "minimumDaysForDelivery": 5,
    "maximumDaysForDelivery": null
  },
  "location": {
    "country": "CA",
    "province": null
  },
  "rates": [
    {
      "cost": 5,
      "weight": {
        "to": 1000
      }
    },
    {
      "cost": 10,
      "weight": {
        "from": 1000,
        "to": 2000
      }
    },
    {
      "cost": 20,
      "weight": {
        "from": 2000
      }
    }
  ],
  "id": "0222da02-ab21-4c4c-ad4e-c06f89f3c966",
  "creationDate": "2017-04-04T15:05:42.873Z",
  "modificationDate": "2017-04-04T15:10:42.873Z"
}

DELETE /api/shipping_methods/{id}

This method allows you to delete a custom shipping method. When successful it returns a 204 No Content response with an empty body.

Resource URL

https://app.snipcart.com/api/shipping_methods/{id}

URL Parameters

Name Required? Type Description
id Yes guid The shipping method unique identifier.

Headers

Name Value Required? Description
Accept application/json Yes Our API only accepts application/json content type, so you must always specify Accept: application/json header on each request you make.

Was this article helpful?