View on GitHub

easitrace

« Back to Contents

Movement Services | RMIS

RMIS (Red Meat Industry Services) is the Movement Service for livestock in South Africa.

Overview

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

RMIS supports 8 transaction capabilities:

Transaction Type Capability Description
MOV-OFF Movement Off Record movement of animals off a property
MOV-ON Movement On Record movement of animals onto a property
MOV-IN Incoming Movements Retrieve incoming movements at a property
REG Register Register animals at a property
RET Retag Update animal tag information
UPDATEMOV-ON Update Movement On Update details of a movement arrival
UPDATEMOV-OFF Update Movement Off Update details of a movement departure
MOV-ON-DEL Reject Movement On Reject/cancel an incoming movement

Sections

Field Keys: Generic vs Specific

RMIS 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:

{
  "fields": {
    "Departure.Identifier": "1234567890123"
  }
}
{
  "fields": {
    "RMIS.Departure.Gln": "1234567890123"
  }
}

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


Movement Off

Record movement of animals off a property. This transaction notifies RMIS when animals leave a holding.

Fields

Required:

Note: The count of animals sent cannot be specified during initial MOV-OFF submission. Use UPDATEMOV-OFF to update this value after movement is recorded.

Animal Requirements

Example Transaction

{
  "reference": "RMIS-MOV-OFF-001",
  "transactionDate": "2024-03-10T10:30:00Z",
  "type": "MOV-OFF",
  "serviceTag": "RMIS",
  "speciesCode": "C",
  "propertyIdentifier": "1234567890123",
  "fields": {
    "RMIS.Departure.Gln": "1234567890123",
    "RMIS.Destination.Gln": "9876543210123",
    "RMIS.Departure.Date": "2024-03-10",
    "RMIS.Departure.Latitude": "-33.865143",
    "RMIS.Departure.Longitude": "151.209900"
  },
  "animals": [
    {
      "rfid": "982000123456789",
      "visual": "UK100015401645"
    },
    {
      "rfid": "982000123456790",
      "visual": "UK100015501619"
    }
  ],
  "untaggedAnimals": []
}

For more information about submitting Transactions see Submitting transactions.


Movement On

Record movement of animals onto a property. This transaction notifies RMIS when animals arrive at a holding.

Fields

Required:

Optional:

Animal Requirements

Example Transaction

{
  "reference": "RMIS-MOV-ON-001",
  "transactionDate": "2024-03-10T14:30:00Z",
  "type": "MOV-ON",
  "serviceTag": "RMIS",
  "speciesCode": "C",
  "propertyIdentifier": "9876543210123",
  "fields": {
    "RMIS.Destination.Gln": "9876543210123",
    "RMIS.Destination.ArrivalDate": "2024-03-10",
    "RMIS.Destination.DeceasedCount": "0",
    "RMIS.Destination.Latitude": "-33.865143",
    "RMIS.Destination.Longitude": "151.209900"
  },
  "animals": [
    {
      "rfid": "982000123456789",
      "visual": "UK100015401645"
    },
    {
      "rfid": "982000123456790",
      "visual": "UK100015501619"
    }
  ],
  "untaggedAnimals": []
}

For more information about submitting Transactions see Submitting transactions.


Incoming Movements

Retrieve a list of incoming movements at a property. This transaction queries RMIS for movements that are expected to arrive at 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": "RMIS-INCOMING-001",
  "transactionDate": "2024-03-10T10:30:00Z",
  "type": "MOV-IN",
  "serviceTag": "RMIS",
  "speciesCode": "C",
  "propertyIdentifier": "9876543210123",
  "fields": {},
  "animals": [],
  "untaggedAnimals": []
}

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.


Register Animals

Register animals at a property. This transaction records new animals in the RMIS system.

Fields

Required:

Animal Requirements

Example Transaction

{
  "reference": "RMIS-REGISTER-001",
  "transactionDate": "2024-03-10T10:30:00Z",
  "type": "REG",
  "serviceTag": "RMIS",
  "speciesCode": "C",
  "propertyIdentifier": "1234567890123",
  "fields": {
    "RMIS.RequestingGln": "1234567890123"
  },
  "animals": [
    {
      "rfid": "982000123456789",
      "visual": "UK100015401645"
    },
    {
      "rfid": "982000123456790",
      "visual": "UK100015501619"
    }
  ],
  "untaggedAnimals": []
}

For more information about submitting Transactions see Submitting transactions.


Retag Animals

Update tag information for animals. This transaction records when animal tags are changed or replaced.

Fields

No transaction-level fields are required. All information is provided at the animal level.

Animal Requirements

Example Transaction

{
  "reference": "RMIS-RETAG-001",
  "transactionDate": "2024-03-10T10:30:00Z",
  "type": "RET",
  "serviceTag": "RMIS",
  "speciesCode": "C",
  "propertyIdentifier": "1234567890123",
  "fields": {},
  "animals": [
    {
      "rfid": "982000123456789",
      "newRfid": "982000987654321",
      "visual": "UK100015401645",
      "newVisual": "UK100015401999"
    }
  ],
  "untaggedAnimals": []
}

For more information about submitting Transactions see Submitting transactions.


Update Movements

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

Optional:

Example Transaction

{
  "reference": "RMIS-UPD-MOV-OFF-001",
  "transactionDate": "2024-03-10T15:00:00Z",
  "type": "UPDATEMOV-OFF",
  "serviceTag": "RMIS",
  "speciesCode": "C",
  "propertyIdentifier": "1234567890123",
  "fields": {
    "RMIS.Departure.CountSent": "50",
    "RMIS.Destination.DeceasedCount": "2"
  },
  "animals": [],
  "untaggedAnimals": []
}

UPDATEMOV-ON

Update details of a movement on transaction.

Fields

Optional:

Example Transaction

{
  "reference": "RMIS-UPD-MOV-ON-001",
  "transactionDate": "2024-03-10T15:00:00Z",
  "type": "UPDATEMOV-ON",
  "serviceTag": "RMIS",
  "speciesCode": "C",
  "propertyIdentifier": "9876543210123",
  "fields": {
    "RMIS.Destination.DeceasedCount": "1",
    "RMIS.Destination.ExpectedCount": "50"
  },
  "animals": [],
  "untaggedAnimals": []
}

For more information about submitting Transactions see Submitting transactions.


Reject Movement On

Reject or cancel an incoming movement. This transaction notifies RMIS that an expected arrival is being rejected.

Fields

No fields are required for rejection.

Example Transaction

{
  "reference": "RMIS-MOV-ON-DEL-001",
  "transactionDate": "2024-03-10T15:30:00Z",
  "type": "MOV-ON-DEL",
  "serviceTag": "RMIS",
  "speciesCode": "C",
  "propertyIdentifier": "9876543210123",
  "fields": {},
  "animals": [],
  "untaggedAnimals": []
}

For more information about submitting Transactions see Submitting transactions.


Supported Species

RMIS supports the following species:


Property Identifier Format

RMIS uses GLN (Global Location Number) as the property identifier format.

Format: 13 digits
Example: 1234567890123

All GLN values in RMIS transactions must be exactly 13 digits.


Authentication Requirements

RMIS requires the following credentials:

The system can authenticate using either:

  1. API Key + Property Password for each transaction
  2. Pre-configured Service Authentication Token

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