View on GitHub

easitrace

« Back to Contents

Movement Services | ARAMS

ARAMS (Animal Reporting and Movement Service) is the Movement Service for sheep and livestock in England. Easitrace supports both Farm and Abattoir operations through separate service tags.

Overview

This document covers the transaction types and capabilities available through Easitrace for ARAMS.

ARAMS supports two service variants:

Farm Service (ARAMS-FARM)

The Farm service handles movements of animals to and from farm properties.

Capabilities:

Transaction Type Capability Description
MOV-OFF Movement Off Record movement of animals off a farm
UPDATEMOV-OFF Update Movement Off Update details of a movement departure
MOV-ON Movement On Record movement of animals arriving at a farm
UPDATEMOV-ON Update Movement On Update details of a movement arrival
MOV-IN Get Incoming Movements Retrieve incoming movements expected at a farm

Abattoir Service (ARAMS-ABATTOIR)

The Abattoir service handles movements of animals to and from abattoir facilities.

Capabilities:

Transaction Type Capability Description
MOV-ON Movement On Record movement of animals arriving at abattoir
UPDATEMOV-ON Update Movement On Update details of a movement arrival
MOV-CANCEL Cancel Movement Cancel an incoming movement
MOV-IN Get Incoming Movements Retrieve incoming movements expected at abattoir

Sections


Field Keys: Generic vs Specific

ARAMS transactions use a dual-key field system to support both backward compatibility and cross-service consistency.

What are Generic and Specific Keys?

Why Both Exist

This dual-key approach allows:

  1. Cross-Service Consistency: Application developers can use the same generic key names regardless of which movement service they’re integrating with
  2. Backward Compatibility: Existing integrations using specific keys continue to work
  3. Future-Proofing: New services can be added without breaking existing code

How It Works for API Consumers

When submitting a transaction, you can use either the generic key or the specific key in the fields object. The system automatically maps between them.

Example - Both are equivalent (Farm Service):

{
  "fields": {
    "Movement.WithinYourBusiness": "Y"
  }
}
{
  "fields": {
    "ARAMS.Farm.Sheep.Movement.WithinYourBusiness": "Y"
  }
}

For more details on the field system, see Transaction Fields Documentation.


FARM SERVICE TRANSACTIONS

Movement Off

Record movement of animals off a farm. This transaction notifies ARAMS when animals leave a holding.

Fields

Required:

Generic Key Specific Key Type Format Description
Movement.WithinYourBusiness ARAMS.Farm.Sheep.Movement.WithinYourBusiness Boolean Y/N Whether movement is within same business
Departure.Identifier ARAMS.Farm.Sheep.Departure.Location String CPH Location departing from (CPH format: XX/XXX/XXXX)
Departure.PostCode ARAMS.Farm.Sheep.Departure.PostCode String Post code Post code of departure location
Departure.Date ARAMS.Farm.Sheep.Departure.Date DateTime YYYY-MM-DD Date animals departed
Destination.IsSeparationUnit ARAMS.Farm.Sheep.Movement.DestinationSeparationUnit Boolean Y/N Whether destination is a separation unit
Destination.Identifier ARAMS.Farm.Sheep.Destination.Location String CPH Destination CPH
Destination.PostCode ARAMS.Farm.Sheep.Destination.PostCode String Post code Post code of destination location

Optional:

Generic Key Specific Key Type Format Description
Movement.LoadingDate ARAMS.Farm.Sheep.Movement.LoadingDate DateTime YYYY-MM-DD Date animals were loaded
Movement.ExpectedDuration ARAMS.Farm.Sheep.Movement.ExpectedDuration String Free text Expected duration of journey
Arrival.Date ARAMS.Farm.Sheep.Movement.Arrival.Date DateTime YYYY-MM-DD Expected arrival date
Arrival.UnloadingDate ARAMS.Farm.Sheep.Movement.Arrival.UnloadingDate DateTime YYYY-MM-DD Expected unloading date
ReceivingLocationTypeName ARAMS.Farm.Sheep.ReceivingLocationTypeName String Free text Type of receiving location
Haulier.Type ARAMS.Farm.Sheep.Movement.Haulier.Type String Free text Type of haulier (e.g., “Haulier”)
Haulier.CompanyName ARAMS.Farm.Sheep.Movement.Haulier.HaulageCompany String Free text Haulage company name
Haulier.RegistrationNumber ARAMS.Farm.Sheep.Movement.Haulier.VehicleRegistration String Free text Vehicle registration number
Haulier.AuthorisationNumber ARAMS.Farm.Sheep.Movement.Haulier.AuthorisationNumber String Free text Haulier authorisation number
Haulier.DriverName ARAMS.Farm.Sheep.Movement.Haulier.Name String Free text Haulier/driver name
Haulier.PhoneNumber ARAMS.Farm.Sheep.Movement.Haulier.PhoneNumber String Phone Haulier phone number
Fci.Satisfied ARAMS.Farm.Sheep.Movement.SatisfiesFCI Boolean Y/N Whether movement satisfies FCI requirements
RecordingServiceExtra ARAMS.Farm.Sheep.RecordingServiceExtra String Free text Additional recording service information

Animal Requirements

Example Transaction

Using Specific Keys:

{
  "reference": "ARAMS-MOV-OFF-001",
  "transactionDate": "2024-03-15T10:30:00Z",
  "type": "MOV-OFF",
  "serviceTag": "ARAMS-FARM",
  "speciesCode": "S",
  "propertyIdentifier": "08/050/0046",
  "fields": {
    "ARAMS.Farm.Sheep.Movement.WithinYourBusiness": "Y",
    "ARAMS.Farm.Sheep.Departure.Location": "08/050/0046",
    "ARAMS.Farm.Sheep.Departure.PostCode": "TF6 6JT",
    "ARAMS.Farm.Sheep.Departure.Date": "2024-03-15",
    "ARAMS.Farm.Sheep.Movement.DestinationSeparationUnit": "N",
    "ARAMS.Farm.Sheep.Destination.Location": "35/121/0016",
    "ARAMS.Farm.Sheep.Destination.PostCode": "TF6 5EF",
    "ARAMS.Farm.Sheep.Movement.Haulier.Type": "Haulier",
    "ARAMS.Farm.Sheep.Movement.Haulier.HaulageCompany": "ABC Transport",
    "ARAMS.Farm.Sheep.Movement.Haulier.VehicleRegistration": "AB21 XYZ",
    "ARAMS.Farm.Sheep.Movement.Haulier.AuthorisationNumber": "HA123456"
  },
  "animals": [
    {
      "rfid": "826590066101017",
      "visual": "UK100015401645",
      "breedCode": "1",
      "sexCode": "F"
    },
    {
      "rfid": "826590066101018",
      "visual": "UK100015401646",
      "breedCode": "1",
      "sexCode": "M"
    }
  ],
  "untaggedAnimals": []
}

Using Generic Keys:

{
  "reference": "ARAMS-MOV-OFF-002",
  "transactionDate": "2024-03-15T11:00:00Z",
  "type": "MOV-OFF",
  "serviceTag": "ARAMS-FARM",
  "speciesCode": "S",
  "propertyIdentifier": "08/050/0046",
  "fields": {
    "Movement.WithinYourBusiness": "Y",
    "Departure.Identifier": "08/050/0046",
    "Departure.PostCode": "TF6 6JT",
    "Departure.Date": "2024-03-15",
    "Destination.IsSeparationUnit": "N",
    "Destination.Identifier": "35/121/0016",
    "Destination.PostCode": "TF6 5EF",
    "Haulier.Type": "Haulier",
    "Haulier.CompanyName": "ABC Transport",
    "Haulier.RegistrationNumber": "AB21 XYZ"
  },
  "animals": [
    {
      "rfid": "826590066101017",
      "visual": "UK100015401645"
    }
  ],
  "untaggedAnimals": []
}

Requirements and Notes

For more information about submitting Transactions see Submitting transactions.


Movement On

Record movement of animals arriving at a farm. This transaction confirms animals have arrived at the receiving holding.

Fields

Required:

Generic Key Specific Key Type Format Description
Movement.WithinYourBusiness ARAMS.Farm.Sheep.Movement.WithinYourBusiness Boolean Y/N Whether movement is within same business
Departure.Identifier ARAMS.Farm.Sheep.Departure.Location String CPH Location animals departed from (CPH format)
Departure.PostCode ARAMS.Farm.Sheep.Departure.PostCode String Post code Post code of departure location
Departure.Date ARAMS.Farm.Sheep.Departure.Date DateTime YYYY-MM-DD Date animals departed
Destination.IsSeparationUnit ARAMS.Farm.Sheep.Movement.DestinationSeparationUnit Boolean Y/N Whether destination is a separation unit
Destination.Identifier ARAMS.Farm.Sheep.Destination.Location String CPH Destination CPH (receiving location)
Destination.PostCode ARAMS.Farm.Sheep.Destination.PostCode String Post code Post code of destination location

Optional:

Generic Key Specific Key Type Format Description
Movement.LoadingDate ARAMS.Farm.Sheep.Movement.LoadingDate DateTime YYYY-MM-DD Loading date at origin
Movement.ExpectedDuration ARAMS.Farm.Sheep.Movement.ExpectedDuration String Free text Journey duration
Arrival.Date ARAMS.Farm.Sheep.Movement.Arrival.Date DateTime YYYY-MM-DD Arrival date at destination
Arrival.UnloadingDate ARAMS.Farm.Sheep.Movement.Arrival.UnloadingDate DateTime YYYY-MM-DD Unloading date at destination
Arrival.AnimalsReceivedCount ARAMS.Farm.Sheep.Movement.Arrival.AnimalsReceivedCount Integer Count Number of animals received
Arrival.KeeperNotChanged ARAMS.Farm.Sheep.Movement.Arrival.KeeperNotChanged Boolean Y/N Whether keeper has not changed
Haulier.Type ARAMS.Farm.Sheep.Movement.Haulier.Type String Free text Type of haulier
Haulier.CompanyName ARAMS.Farm.Sheep.Movement.Haulier.HaulageCompany String Free text Haulage company name
Haulier.RegistrationNumber ARAMS.Farm.Sheep.Movement.Haulier.VehicleRegistration String Free text Vehicle registration
Haulier.AuthorisationNumber ARAMS.Farm.Sheep.Movement.Haulier.AuthorisationNumber String Free text Haulier authorisation
Haulier.DriverName ARAMS.Farm.Sheep.Movement.Haulier.Name String Free text Driver name
Haulier.PhoneNumber ARAMS.Farm.Sheep.Movement.Haulier.PhoneNumber String Phone Phone number
Fci.Satisfied ARAMS.Farm.Sheep.Movement.SatisfiesFCI Boolean Y/N FCI requirement satisfied
MatchingIdentifier ARAMS.Farm.Sheep.Movement.MatchingIdentifier Long ID ARAMS Movement ID to confirm
RecordingServiceExtra ARAMS.Farm.Sheep.RecordingServiceExtra String Free text Additional information

Animal Requirements

Example Transaction

{
  "reference": "ARAMS-MOV-ON-001",
  "transactionDate": "2024-03-15T14:30:00Z",
  "type": "MOV-ON",
  "serviceTag": "ARAMS-FARM",
  "speciesCode": "S",
  "propertyIdentifier": "35/121/0016",
  "fields": {
    "ARAMS.Farm.Sheep.Movement.WithinYourBusiness": "Y",
    "ARAMS.Farm.Sheep.Departure.Location": "08/050/0046",
    "ARAMS.Farm.Sheep.Departure.PostCode": "TF6 6JT",
    "ARAMS.Farm.Sheep.Departure.Date": "2024-03-15",
    "ARAMS.Farm.Sheep.Movement.DestinationSeparationUnit": "N",
    "ARAMS.Farm.Sheep.Destination.Location": "35/121/0016",
    "ARAMS.Farm.Sheep.Destination.PostCode": "TF6 5EF",
    "ARAMS.Farm.Sheep.Movement.Arrival.Date": "2024-03-15",
    "ARAMS.Farm.Sheep.Movement.Arrival.UnloadingDate": "2024-03-15",
    "ARAMS.Farm.Sheep.Movement.Arrival.AnimalsReceivedCount": "2"
  },
  "animals": [
    {
      "rfid": "826590066101017",
      "visual": "UK100015401645"
    },
    {
      "rfid": "826590066101018",
      "visual": "UK100015401646"
    }
  ],
  "untaggedAnimals": []
}

Requirements and Notes

For more information about submitting Transactions see Submitting transactions.


Incoming Movements (Farm)

Retrieve a list of incoming movements expected at a farm property. This transaction queries ARAMS for movements in transit to the specified location.

Results for this transaction can be obtained via GET /api/properties/{id}/transactions/{transactionId}/historical API. It will return an array of movements, each with details in a fields property.

Fields

Optional:

Example Transaction

{
  "reference": "ARAMS-INCOMING-001",
  "transactionDate": "2024-03-15T10:30:00Z",
  "type": "MOV-IN",
  "serviceTag": "ARAMS-FARM",
  "speciesCode": "S",
  "propertyIdentifier": "35/121/0016",
  "fields": {},
  "animals": [],
  "untaggedAnimals": []
}

Requirements and Notes

Once the transaction succeeds, the results can be queried by providing the transaction id to GET /api/properties/{id}/transactions/{transactionId}/historical API.

For more information about submitting Transactions see Submitting transactions.


Update Movements (Farm)

Update details of previously submitted movements. This allows you to modify information about a movement after it has been submitted.

UPDATEMOV-OFF

Update details of a movement off transaction.

Fields

All fields from MOV-OFF are supported and can be updated. See Movement Off for complete field list.

The propertyIdentifier in the request header should reference the originating property.

Example Transaction

{
  "reference": "ARAMS-UPD-MOV-OFF-001",
  "transactionDate": "2024-03-15T15:00:00Z",
  "type": "UPDATEMOV-OFF",
  "serviceTag": "ARAMS-FARM",
  "speciesCode": "S",
  "propertyIdentifier": "08/050/0046",
  "fields": {
    "ARAMS.Farm.Sheep.Movement.Haulier.Type": "Haulier",
    "ARAMS.Farm.Sheep.Movement.Haulier.AuthorisationNumber": "HA654321",
    "ARAMS.Farm.Sheep.Movement.Haulier.Name": "John Smith",
    "ARAMS.Farm.Sheep.Movement.SatisfiesFCI": true
  },
  "animals": [],
  "untaggedAnimals": []
}

UPDATEMOV-ON

Update details of a movement on transaction.

Fields

All fields from MOV-ON are supported and can be updated. See Movement On for complete field list.

The propertyIdentifier in the request header should reference the receiving property.

Example Transaction

{
  "reference": "ARAMS-UPD-MOV-ON-001",
  "transactionDate": "2024-03-15T15:30:00Z",
  "type": "UPDATEMOV-ON",
  "serviceTag": "ARAMS-FARM",
  "speciesCode": "S",
  "propertyIdentifier": "35/121/0016",
  "fields": {
    "ARAMS.Farm.Sheep.Movement.Arrival.UnloadingDate": "2024-03-15",
    "ARAMS.Farm.Sheep.Movement.Arrival.AnimalsReceivedCount": "2",
    "ARAMS.Farm.Sheep.Movement.Arrival.KeeperNotChanged": "Y"
  },
  "animals": [],
  "untaggedAnimals": []
}

Requirements and Notes

For more information about submitting Transactions see Submitting transactions.


ABATTOIR SERVICE TRANSACTIONS

Movement On (Abattoir)

Record movement of animals arriving at an abattoir facility. This transaction notifies ARAMS when animals arrive for slaughter.

Fields

Required:

Generic Key Specific Key Type Format Description
Departure.Date ARAMS.Abattoir.Sheep.Departure.Date DateTime YYYY-MM-DD Date animals departed from farm
MoveToCPRC ARAMS.Abattoir.Sheep.Movement.MoveToCPRC Boolean Y/N Whether to move animals to CPRC
Keeper.CPH ARAMS.Abattoir.Sheep.Movement.Keeper.CPH String CPH Farm/keeper CPH
Keeper.Address ARAMS.Abattoir.Sheep.Movement.Keeper.Address String Address Keeper’s address
Keeper.PostCode ARAMS.Abattoir.Sheep.Movement.Keeper.PostCode String Post code Keeper’s post code
Keeper.FirstName ARAMS.Abattoir.Sheep.Movement.Keeper.FirstName String Free text Keeper’s first name
Keeper.Surname ARAMS.Abattoir.Sheep.Movement.Keeper.Surname String Free text Keeper’s surname
Arrival.Date ARAMS.Abattoir.Sheep.Movement.Arrival.Date DateTime YYYY-MM-DD Date animals arrived at abattoir

Optional:

Generic Key Specific Key Type Format Description
Movement.ExpectedDuration ARAMS.Abattoir.Sheep.Movement.ExpectedDuration String Free text Expected journey duration
Movement.LoadingDate ARAMS.Abattoir.Sheep.Movement.LoadingDate DateTime YYYY-MM-DD Loading date at origin
Haulier.Type ARAMS.Abattoir.Sheep.Movement.Haulier.Type String Free text Type of haulier
Haulier.CompanyName ARAMS.Abattoir.Sheep.Movement.Haulier.HaulageCompany String Free text Haulage company name
Haulier.RegistrationNumber ARAMS.Abattoir.Sheep.Movement.Haulier.VehicleRegistration String Free text Vehicle registration
Haulier.AuthorisationNumber ARAMS.Abattoir.Sheep.Movement.Haulier.AuthorisationNumber String Free text Haulier authorisation
Haulier.DriverName ARAMS.Abattoir.Sheep.Movement.Haulier.Name String Free text Driver name
Haulier.PhoneNumber ARAMS.Abattoir.Sheep.Movement.Haulier.PhoneNumber String Phone Phone number
Fci.Satisfied ARAMS.Abattoir.Sheep.Movement.SatisfiesFCI Boolean Y/N FCI requirement satisfied
Arrival.TotalAnimalsReceived ARAMS.Abattoir.Sheep.Movement.Arrival.TotalAnimalsReceived Integer Count Total animals received
Arrival.UnloadingDate ARAMS.Abattoir.Sheep.Movement.Arrival.UnloadingDate DateTime YYYY-MM-DD Unloading date at abattoir
MatchingIdentifier ARAMS.Abattoir.Sheep.Movement.MatchingIdentifier String ID ARAMS Movement ID to confirm

Animal Requirements

Example Transaction

{
  "reference": "ARAMS-ABATTOIR-MOV-ON-001",
  "transactionDate": "2024-03-16T08:00:00Z",
  "type": "MOV-ON",
  "serviceTag": "ARAMS-ABATTOIR",
  "speciesCode": "S",
  "propertyIdentifier": "08/050/0100",
  "fields": {
    "ARAMS.Abattoir.Sheep.Departure.Date": "2024-03-15",
    "ARAMS.Abattoir.Sheep.Movement.MoveToCPRC": true,
    "ARAMS.Abattoir.Sheep.Movement.Keeper.CPH": "08/050/0046",
    "ARAMS.Abattoir.Sheep.Movement.Keeper.Address": "Farm House, Main Lane",
    "ARAMS.Abattoir.Sheep.Movement.Keeper.PostCode": "TF6 6JT",
    "ARAMS.Abattoir.Sheep.Movement.Keeper.FirstName": "John",
    "ARAMS.Abattoir.Sheep.Movement.Keeper.Surname": "Smith",
    "ARAMS.Abattoir.Sheep.Movement.Arrival.Date": "2024-03-16",
    "ARAMS.Abattoir.Sheep.Movement.Arrival.TotalAnimalsReceived": "2",
    "ARAMS.Abattoir.Sheep.Movement.Arrival.UnloadingDate": "2024-03-16",
    "ARAMS.Abattoir.Sheep.Movement.Haulier.Type": "Haulier",
    "ARAMS.Abattoir.Sheep.Movement.Haulier.HaulageCompany": "ABC Transport"
  },
  "animals": [
    {
      "rfid": "826590066101017",
      "visual": "UK100015401645"
    },
    {
      "rfid": "826590066101018",
      "visual": "UK100015401646"
    }
  ],
  "untaggedAnimals": []
}

Requirements and Notes

For more information about submitting Transactions see Submitting transactions.


Cancel Movement

Cancel an incoming movement at an abattoir. This transaction notifies ARAMS that an expected arrival should be cancelled.

Fields

Required:

Generic Key Specific Key Type Format Description
MatchingIdentifier ARAMS.Abattoir.Sheep.Movement.MatchingIdentifier Long ID ARAMS Movement ID to cancel

Example Transaction

{
  "reference": "ARAMS-MOV-CANCEL-001",
  "transactionDate": "2024-03-16T09:00:00Z",
  "type": "MOV-CANCEL",
  "serviceTag": "ARAMS-ABATTOIR",
  "speciesCode": "S",
  "propertyIdentifier": "08/050/0100",
  "fields": {
    "ARAMS.Abattoir.Sheep.Movement.MatchingIdentifier": "123456789"
  },
  "animals": [],
  "untaggedAnimals": []
}

Requirements and Notes

For more information about submitting Transactions see Submitting transactions.


Incoming Movements (Abattoir)

Retrieve a list of incoming movements expected at an abattoir facility. This transaction queries ARAMS for movements in transit to the facility.

Results for this transaction can be obtained via GET /api/properties/{id}/transactions/{transactionId}/historical API. It will return an array of movements, each with details in a fields property.

Fields

Optional:

Example Transaction

{
  "reference": "ARAMS-ABATTOIR-INCOMING-001",
  "transactionDate": "2024-03-16T08:30:00Z",
  "type": "MOV-IN",
  "serviceTag": "ARAMS-ABATTOIR",
  "speciesCode": "S",
  "propertyIdentifier": "08/050/0100",
  "fields": {},
  "animals": [],
  "untaggedAnimals": []
}

Requirements and Notes

Once the transaction succeeds, the results can be queried by providing the transaction id to GET /api/properties/{id}/transactions/{transactionId}/historical API.

For more information about submitting Transactions see Submitting transactions.


Update Movements (Abattoir)

Update details of previously submitted abattoir movements.

UPDATEMOV-ON

Update details of a movement on transaction at an abattoir.

Fields

Generic Key Specific Key Type Format Description
Id ARAMS.Abattoir.Sheep.Movement.Id Long ID ARAMS Movement ID to update (Required)

All other fields from MOV-ON are supported and can be updated. See Movement On (Abattoir) for complete field list.

Example Transaction

{
  "reference": "ARAMS-ABATTOIR-UPD-MOV-ON-001",
  "transactionDate": "2024-03-16T10:00:00Z",
  "type": "UPDATEMOV-ON",
  "serviceTag": "ARAMS-ABATTOIR",
  "speciesCode": "S",
  "propertyIdentifier": "08/050/0100",
  "fields": {
    "ARAMS.Abattoir.Sheep.Movement.Id": "123456789",
    "ARAMS.Abattoir.Sheep.Movement.Arrival.UnloadingDate": "2024-03-16",
    "ARAMS.Abattoir.Sheep.Movement.Arrival.TotalAnimalsReceived": "2",
    "ARAMS.Abattoir.Sheep.Movement.SatisfiesFCI": true
  },
  "animals": [],
  "untaggedAnimals": []
}

Requirements and Notes

For more information about submitting Transactions see Submitting transactions.


Supported Species

ARAMS currently supports the following species in both Farm and Abattoir services:

Additional species support may be added in future versions.


Property Identifier Format

ARAMS uses CPH (County Parish Holding) as the property identifier format.

Format: XX/XXX/XXXX (two digits / three digits / four digits)
Example: 08/050/0046
Regular Expression: ^[0-9]{2}/[0-9]{3}/[0-9]{4}$

All CPH values in ARAMS transactions must follow this exact format:


Authentication Requirements

ARAMS requires the following credentials:

For Farm Service (ARAMS-FARM):

For Abattoir Service (ARAMS-ABATTOIR):

The system can authenticate using either:

  1. Username + Password for each transaction
  2. Pre-configured Service Authentication Token

Test Environment

ARAMS provides a test environment for development and testing:

Farm Test Portal: https://test.arams.co.uk/fsportal/account/login.aspx

Abattoir Test Portal: https://test.arams.co.uk/importal/account/login.aspx

Test Account Registration: https://test.arams.co.uk/Register/Registration.aspx

Important Notes on Test Accounts

For more details, see ARAMS Authentication Guide or Services Authentication.