Red Tractor
Overview
The Red Tractor (UK) API operates as a set of rest API's that can be queried against in order to receive information on the current red tractor assurance status/validity of a locations storage facilities.
API Docs
The primary location of the red tractor documentation is Red Tractor Xure API. We make use of the Authentication and Tracking API's within this integration.
Certificates
The response value contains a set of certificates based on the query context, the API currently supports query by postcode and by holding number.
{
"CheckDate": "2022-03-07T12:45:37.697+00:00",
"Certificates": [
{
"TaggedSite": "Shires Farms",
"TaggedSiteIdentifier": "1ACOH2UMWR.BK2DB39GZMYUU",
"TaggedSiteReference": null,
"TaggedSitePostcode": "MK16 8LF",
"TaggedSiteCountry": "United Kingdom",
"Scheme": "RT Crops",
"SchemeIdentifier": "0349EQH8NH.16LGK2EH7S03C",
"MembershipNumber": "71251",
"MembershipStatus": "Current",
"Certifier": "Lloyd's Register",
"CertifierIdentifier": "000HK277ZW.AX8YUZ1CKM4N",
"CertificateIdentifier": "2RRVTHNXTS.AP9HWY0UAEKRM",
"CertificateStatus": "Valid",
"CertificateStatusDetail": "FULL",
"CertificateExpiryDate": "2022-08-31T00:00:00.000+01:00",
"CertificateEnterprises": [
{ "Enterprise": "Cereals", "EnterpriseIdentifier": "000IL3890W.16LGLIFDMWAT0" },
{ "Enterprise": "Wheat", "EnterpriseIdentifier": "000IL3890W.16LGLIIWWAUUA" },
{ "Enterprise": "Barley", "EnterpriseIdentifier": "000IL3890W.16LGLIJ6XZOUD" },
{ "Enterprise": "REDII Compliant", "EnterpriseIdentifier": "1QQUSGMWSS.0TAG2VPYQ70HJ" },
{ "Enterprise": "NUTS2 UKJ1", "EnterpriseIdentifier": "1QQUSGMWSS.0VQ2FJXRYIK1Q" },
{ "Enterprise": "Long-term storage", "EnterpriseIdentifier": "2RRVTHNXTS.CDSTU11TXD62J" },
{ "Enterprise": "Short-term storage", "EnterpriseIdentifier": "2RRVTHNXTS.CDSUZS7KKDO3N" }
],
"CertifiedSites": [
{
"SiteName": "Shires Farms",
"SiteAddress": "Quarry Hall Farm",
"SitePostcode": "MK16 8LF",
"SiteCountry": null,
"IsPrimary": true,
"SiteIdentifiers": [{ "Identifier": "03/160/0019", "IdentifierType": "holdingno" }]
}
],
"RTCropsOwnerNumber": null,
"RTCropsContractorNumber": null,
"GrainStoresReported": true,
"GrainStores": [
{
"SiteName": "Shires Farms",
"SitePostcode": "MK16 8LF",
"StoreName": "Main store",
"StoreType": "LongTerm",
"StoreLocation": "52.10518 N, 0.745368 W"
},
{
"SiteName": "Shires Farms",
"SitePostcode": "MK16 8LF",
"StoreName": "Top Shed",
"StoreType": "ShortTerm",
"StoreLocation": "52.10475 N, 0.744314 W"
}
]
}
]
}
We take this information and process it into a generic form that can be more easily consumed by our API's and clients
The service returns simply the CertificateIdentifier; CertificateStatus if it is Valid or Grace; the CertifiedSites array
Consuming The Library
With Postcode lookup
import { RedTractorLookup, RedTractorSchemeAssurance } from '@hectare/platform.integrations.red-tractor'
const rt = await new RedTractorSchemeAssurance()
const query: RedTractorLookup = {
country: <ISO3CountryCode>,
postcode: <validPostcode>
}
await rt.retrieve(query)
With Holding number lookup
import { RedTractorLookup, RedTractorSchemeAssurance } from '@hectare/platform.integrations.red-tractor'
const rt = await new RedTractorSchemeAssurance()
const query: RedTractorLookup = {
country: <ISO3CountryCode>,
handlingNumber: <validHandlingNumber>,
postcode: <validPostcode> //optional
}
await rt.retrieve(query)