Micro-library for typing and validating UK tax identifiers.
Types are provided for many common tax identifiers, such as:
- Employment Reference (EmpRef)
- National Insurance Number (NINO)
- Unique Taxpayer References (UTR) - Self Assessment, Corporation Tax, Annual Tax on Enveloped Dwellings
- Unique Agent Reference (UAR)
- Vehicle Registration Number (VRN)
- Agents - Code, UserId, PAYE Reference
Reads
and Writes
have been provided for Play's JSON library for all identifiers, and format validation is present for
some. JSON objects with multiple tax identifiers as properties can be serialized or deserialized to a
TaxIds:
import play.api.libs.json._
import uk.gov.hmrc.domain._
implicit val format = TaxIds.format(TaxIds.defaultSerialisableIds :_*)
val input =
"""{
|"nino": "NM439088A",
|"sautr": "some-sa-utr"
}""".stripMargin
val taxIds = Json.parse(input).as[TaxIds]
taxIds.nino // Some(NM439088A)
taxIds.saUtr // Some(some-sa-utr)
taxIds.ctUtr // None
Add the following to your SBT build:
resolvers += Resolver.bintrayRepo("hmrc", "releases")
libraryDependencies += "uk.gov.hmrc" % "domain" % "x.x.x"
This code is open source software licensed under the Apache 2.0 License.