Skip to main content

EMCS API service guide

Learn how to use the Excise Movement Control System (EMCS) API with your software.

API overview

The EMCS API is based on REST principles.

The endpoints accept data in XML format, and return data in XML wrapped in JSON.

The API uses standard HTTP error response codes.

Use the EMCS API to:

  • submit movement information to the Excise Movement and Control System (EMCS)
  • retrieve information about movements

API status

This version of the EMCS API:

  • is in the beta phase
  • is currently ready for testing
  • will not be ready for use in production until EMCS FS 4.0 goes live. In the meantime, you should continue to use the SOAP EMCS API.

Getting started

Using EMCS API for the first time

If you are new to the EMCS API, you should follow these steps:

Migrating from an earlier version

If you are migrating from the old SOAP EMCS API, you should read:

Using the Developer Hub

When you have completed the relevant steps above, you should follow these steps:

  1. If you haven’t already, sign up for an HMRC developer account, activate it by email, and sign in).
  2. Learn about the user-restricted authentication used by the API.
  3. Create an application in our sandbox environment.
  4. Add your subscription to this API to your application software.
  5. Use the Create Test User API to create one or more test users for your sandbox application. You should follow the instructions in the testing guide for creating a test user.

Use the Developer Hub to:

  • add your production application
  • subscribe it to the APIs you want to integrate with
  • apply for production credentials and agree to our terms of use

We’ll check your application, which takes up to 10 working days.

Making API requests

Before sending any requests to EMCS API, you should ensure that you are using the following in your software:

  • the correct URL for the environment and API version number
  • the correct header contents and payload information, contained in the EMCS API reference


These endpoints are available to use:

Terms of use

Your application must comply with our terms of use. You must accept the terms of use before we issue your application’s production credentials.