Address check using WooCommerce REST API

Note #

  • WooCommerce Store API‘ and ‘WooCommerce REST API‘ will be used synonymously.
  • When viewing example links in this document, remember that the ‘wpovernight.local‘ part must be replaced by your own site’s domain.

Activate WooCommerce REST API #

Path: WooCommerce > Settings > Advanced > REST API.

Our postcode checker plugin uses the WooCommerce REST API in order to provide address validation functionality via REST API.

  • Generate a REST API key at WooCommerce > Settings > Advanced > REST API > Add key button.


  • Set the user of the key to any user with admin access.
  • After the key is created, it is important to remember the Consumer key and Consumer secret – since those 2 credentials are used in order to perform authentication using:
    • Basic authorization
    • OAuth 1.0 authorization

Enable Postcode Checker REST API endpoint #

Path: WooCommerce > Postcode Checker > Enable REST API endpoint.

This setting will be disabled by default.

Samples #

Compatible softwareFile
Insomnia, Postmanrest-collection-v1.3.json

rest-collection-v1.3.json file (Postman used):

{
	"info": {
		"_postman_id": "f4da27fd-38ab-4b3b-b65f-344660878dc3",
		"name": "WooCommerce Postcode Checker API",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "4754164"
	},
	"item": [
		{
			"name": "Check postcode",
			"request": {
				"auth": {
					"type": "oauth1",
					"oauth1": [
						{
							"key": "consumerSecret",
							"value": "",
							"type": "string"
						},
						{
							"key": "consumerKey",
							"value": "",
							"type": "string"
						},
						{
							"key": "signatureMethod",
							"value": "HMAC-SHA1",
							"type": "string"
						},
						{
							"key": "version",
							"value": "1.0",
							"type": "string"
						},
						{
							"key": "addParamsToHeader",
							"value": false,
							"type": "boolean"
						},
						{
							"key": "addEmptyParamsToSign",
							"value": false,
							"type": "boolean"
						}
					]
				},
				"method": "GET",
				"header": [],
				"url": {
					"raw": "http://wpovernight.local/wp-json/wc/wpo/wcpc/v1/wc-postcode-checker?house_number=30&postcode=2012ES",
					"protocol": "http",
					"host": [
						"wpovernight",
						"local"
					],
					"path": [
						"wp-json",
						"wc",
						"wpo",
						"wcpc",
						"v1",
						"wc-postcode-checker"
					],
					"query": [
						{
							"key": "house_number",
							"value": "30"
						},
						{
							"key": "postcode",
							"value": "2012ES"
						}
					]
				}
			},
			"response": []
		}
	]
}

Check address #

GET

http://wpovernight.local/wp-json/wc/wpo/wcpc/v1/wc-postcode-checker?house_number=30&postcode=2012ES

JSON response example:

{
	"address": 
	{
		"postcode": "2012ES",
		"housenumber": "30",
		"housenumber_suffix": "",
		"street": "Julianastraat",
		"city": "Haarlem",
		"data": 
		{
			"street": "Julianastraat",
			"city": "Haarlem"
		}
	}
}

Body form data:

ParameterTypeDescription
house_numberstringHouse number
postcodestringPostcode number


Troubleshooting #

  • If you get the following error, try changing the authorization scheme from ‘OAuth 1.0‘ to ‘Basic‘.
{
	"code": "woocommerce_rest_authentication_error",
	"message": "Invalid signature - provided signature does not match.",
	"data": {
		"status": 401
	}
}