hmrc / domain

Micro-library for typing and validating UK tax identifiers

Version Matrix

domain

Build Status Download

Micro-library for typing and validating UK tax identifiers.

Identifier Types

Types are provided for many common tax identifiers, such as:

JSON handling

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

Installing

Add the following to your SBT build:

resolvers += Resolver.bintrayRepo("hmrc", "releases")

libraryDependencies += "uk.gov.hmrc" % "domain" % "[INSERT VERSION]"

Use versions >=2.11.0 for Java 7 and Play json 2.3.x

License

This code is open source software licensed under the Apache 2.0 License.