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
- Movement Off
- Movement On
- Incoming Movements
- Register Animals
- Retag Animals
- Update Movements
- Reject Movement On
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?
- Generic Keys: Standardized field identifiers that work across multiple movement services (e.g.,
Departure.Identifier,Destination.ArrivalDate) - Specific Keys: Service-specific field names used by RMIS API (e.g.,
RMIS.Departure.Gln,RMIS.Destination.ArrivalDate)
Why Both Exist
This dual-key approach allows:
- Cross-Service Consistency: Application developers can use the same generic key names regardless of which movement service they’re integrating with
- Backward Compatibility: Existing integrations using specific keys continue to work
- 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:
-
Generic Key:
Departure.Identifier
Specific Key:RMIS.Departure.Gln
Type: GLN (Global Location Number)
Format: 13 digits
Description: The GLN of the location from which animals are departing. -
Generic Key:
Destination.Identifier
Specific Key:RMIS.Destination.Gln
Type: GLN
Format: 13 digits
Description: The GLN of the location to which animals are moving. -
Generic Key:
Departure.Date
Specific Key:RMIS.Departure.Date
Type: Date
Format: YYYY-MM-DD
Description: The date when animals departed. -
Generic Key:
Departure.Latitude
Specific Key:RMIS.Departure.Latitude
Type: Decimal
Range: -90 to 90
Description: The latitude coordinate of the departure location. -
Generic Key:
Departure.Longitude
Specific Key:RMIS.Departure.Longitude
Type: Decimal
Range: -180 to 180
Description: The longitude coordinate of the departure location.
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
- At least one animal must be provided
- Each animal must have either
rfidorvisualidentifier (or both)
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:
-
Generic Key:
Destination.Identifier
Specific Key:RMIS.Destination.Gln
Type: GLN
Format: 13 digits
Description: The GLN of the location to which animals are arriving. -
Generic Key:
Destination.ArrivalDate
Specific Key:RMIS.Destination.ArrivalDate
Type: Date
Format: YYYY-MM-DD
Description: The date when animals arrived at the destination.
Optional:
-
Generic Key:
Destination.CountDeadOnArrival
Specific Key:RMIS.Destination.DeceasedCount
Type: Integer
Description: The count of animals that were dead on arrival. -
Generic Key:
Destination.Latitude
Specific Key:RMIS.Destination.Latitude
Type: Decimal
Range: -90 to 90
Description: The latitude coordinate of the destination location. -
Generic Key:
Destination.Longitude
Specific Key:RMIS.Destination.Longitude
Type: Decimal
Range: -180 to 180
Description: The longitude coordinate of the destination location.
Animal Requirements
- At least one animal must be provided
- Each animal must have either
rfidorvisualidentifier (or both)
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:
-
Generic Key:
Departure.Identifier
Specific Key:RMIS.Departure.Gln
Type: GLN
Description: Filter by departure location GLN (optional). -
Generic Key:
Departure.Date
Specific Key:RMIS.Departure.Date
Type: Date
Description: Filter by departure date (optional). -
Generic Key:
Departure.Latitude
Specific Key:RMIS.Departure.Latitude
Type: Decimal
Description: Latitude of departure location (optional). -
Generic Key:
Departure.Longitude
Specific Key:RMIS.Departure.Longitude
Type: Decimal
Description: Longitude of departure location (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:
- Generic Key:
Property.Identifier
Specific Key:RMIS.RequestingGln
Type: GLN
Format: 13 digits
Description: The GLN of the property where animals are being registered.
Animal Requirements
- At least one animal must be provided
- Each animal should have either
rfidorvisualidentifier (or both) - For cattle and sheep, additional details (breed, sex, birth date, etc.) should be provided in animal properties
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
- At least one animal must be provided
- Each animal must provide:
- RFID: The current RFID tag identifier
- NewRFID: The new RFID tag identifier (if updating RFID)
- Visual: The current visual tag identifier
- NewVisual: The new visual tag identifier (if updating visual)
- Both old and new values must be provided for at least one tag type (RFID or Visual)
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:
-
Generic Key:
Departure.CountSent
Specific Key:RMIS.Departure.CountSent
Type: Integer
Description: Update the count of animals that were sent. -
Generic Key:
Destination.CountDeadOnArrival
Specific Key:RMIS.Destination.DeceasedCount
Type: Integer
Description: Update the count of animals that died during transport. -
Generic Key:
Movement.ExpectedCount
Specific Key:RMIS.Destination.ExpectedCount
Type: Integer
Description: Update the expected count of animals.
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:
-
Generic Key:
Destination.CountDeadOnArrival
Specific Key:RMIS.Destination.DeceasedCount
Type: Integer
Description: Update the count of animals that were dead on arrival. -
Generic Key:
Departure.CountSent
Specific Key:RMIS.Departure.CountSent
Type: Integer
Description: Update the count of animals that were sent. -
Generic Key:
Movement.ExpectedCount
Specific Key:RMIS.Destination.ExpectedCount
Type: Integer
Description: Update the expected count of animals.
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:
- C - Cattle
- S - Sheep
- G - Goats
- P - Pigs
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:
- API Key (Subscription Key): Provided by RMIS service
- Participant Token (Property Password): Unique token for the property/GLN
The system can authenticate using either:
- API Key + Property Password for each transaction
- Pre-configured Service Authentication Token
For more details, see RMIS Authentication Guide or Services Authentication.