{
  "iface": "futoin.xfer.types",
  "version": "1.0",
  "ftn3rev": "1.7",
  "imports": [
    "futoin.types:1.0",
    "futoin.currency.types:1.0"
  ],
  "types": {
    "AccountID": "UUIDB64",
    "AccountHolderID": "UUIDB64",
    "AccountExternalID": {
      "type": "string",
      "minlen": 1,
      "maxlen": 64
    },
    "AccountHolderExternalID": {
      "type": "string",
      "minlen": 1,
      "maxlen": 128
    },
    "AccountAlias": {
      "type": "string",
      "minlen": 1,
      "maxlen": 20
    },
    "Amount": {
      "type": "string",
      "regex": "^[0-9]{1,39}(\\.[0-9]{1,39})?$"
    },
    "Balance": {
      "type": "string",
      "regex": "^-?[0-9]{1,39}(\\.[0-9]{1,39})?$"
    },
    "XferID": "UUIDB64",
    "XferExtID": {
      "type": "string",
      "minlen": 1,
      "maxlen": 32
    },
    "XferExtInfo": "map",
    "Reason": {
      "type": "string",
      "maxlen": 128
    },
    "LimitGroup": {
      "type": "string",
      "regex": "^[a-zA-Z0-9_-]{1,32}$"
    },
    "LimitDomain": {
      "type": "enum",
      "items": [
        "Retail",
        "Deposits",
        "Payments",
        "Gaming",
        "Misc",
        "Personnel"
      ]
    },
    "LimitAmount": "Amount",
    "LimitCount": {
      "type": "integer",
      "min": 0
    },
    "LimitValue": [
      "LimitAmount",
      "LimitCount"
    ],
    "LimitValues": {
      "type": "map",
      "elemtype": "LimitValue"
    },
    "Fee": {
      "type": "map",
      "fields": {
        "rel_account": "AccountID",
        "currency": "CurrencyCode",
        "amount": "Amount",
        "reason": "Reason"
      }
    },
    "XferTimestamp": {
      "type": "string",
      "regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
    },
    "XferType": {
      "type": "enum",
      "items": [
        "Deposit",
        "Withdrawal",
        "Purchase",
        "Refund",
        "PreAuth",
        "Bet",
        "Win",
        "Bonus",
        "ReleaseBonus",
        "CancelBonus",
        "Fee",
        "Settle",
        "Generic"
      ]
    }
  }
}