Débitos Dependentes, Distintos e Obrigatórios

São campos retornados na consulta de débitos veiculares e cada um tem uma regra de negócio específica que impacta como os débitos da consulta realizada serão liquidados.

Débitos Dependentes (dependsOn)

É uma listagem de débitos que devem ser pagos em conjunto.

Exemplo: ao pagar um Licenciamento, todas as multas do mesmo ano devem ser pagas em conjunto.

{
  "type": "debts",
  "transactionId": 1223498475,
  "clientRequestId": "teste hml 20221017 01",
  "vehicle": {
    "uf": SP,
    "document": null,
    "licensePlate": "EGU6916",
    "renavam": "00111514142"
 },
  "debts": [
    {
      "id": "17BD43F1-E345-4A43-BFFF-0952CA7A3FAB",
      "amount": 136.99,
      "title": "Infração de Trânsito",
      "description": "Trans. local/hor. n/permitido p/reg. estab. p/veíc. exceto cam./ônibus - 5B3022271 - Guia: 173622147",
      "dueDate": "2022-04-18T00:00:00",
      "expirationDate": null,
      "hasDiscount": false,
      "isExpired": false,
      "type": "ticket",
      "year": null,
      "required": false,
      "dependsOn": [],
      "distinct": []
    },
    {
      "id": "B8E1F87B-E2A7-483B-8BAF-977291B2A3CC",
      "amount": 144.86,
      "title": "Licenciamento",
      "description": "Licenciamento 2022",
      "dueDate": null,
      "expirationDate": null,
      "hasDiscount": false,
      "isExpired": false,
      "type": "licensing",
      "year": 2022,
      "required": null,
      "dependsOn": [
        "17BD43F1-E345-4A43-BFFF-0952CA7A3FAB"
      ],
      "distinct": []
    }
  ]
}

Caso você deixe algum débito que seja dependente de fora da solicitação de pagamento a API retornará um erro. Veja o exemplo de retorno:

{
  "transactionId": 9391165,
  "message": "Existem débitos dependentes que devem ser pagos juntos ao débito informado",
  "execute": "2022-09-30 14:41:56",
  "errorCode": "815"
}

Débitos Distintos (distinct)

É uma listagem de débitos que não podem ser pagos em conjunto.

Exemplo: É comum em casos em que a cota única e as cotas parceladas de um mesmo IPVA são apresentadas na mesma pesquisa.

{
  "type": "debts",
  "transactionId": 816575527,
  "clientRequestId": "teste hml 20221017 02",
   "vehicle": { 
    "uf": DF,
    "document": "00123456789",
    "licensePlate": "DIS9865",
    "renavam": "01203988813"
  },
  "debts": [
    {
      "id": "2D377399-CF39-4407-99F5-7553A2D77C44",
      "amount": 206.86,
      "title": "Infração a Vencer - CJ00729123",
      "description": "CJ00729123 - Infração de Trânsito",
      "dueDate": "2022-09-30T00:00:00",
      "expirationDate": "2022-09-30T00:00:00",
      "hasDiscount": true,
      "isExpired": false,
      "type": "ticket",
      "year": null,
      "required": false,
      "dependsOn": [],
      "distinct": []
    },
    {
      "id": "E9B42A19-7E70-4E86-98A6-82B6EECC8EE4",
      "amount": 5.23,
      "title": "Seguro Obrigatório 2022",
      "description": "Seguro Obritatório 2022",
      "dueDate": null,
      "expirationDate": "2022-09-30T00:00:00",
      "hasDiscount": false,
      "isExpired": true,
      "type": "insurance",
      "year": 2022,
      "required": false,
      "dependsOn": [],
      "distinct": [
        "312D6A5F-2B5A-4694-84DA-F640FC01CC74"
      ]
    },
    {
      "id": "312D6A5F-2B5A-4694-84DA-F640FC01CC74",
      "amount": 1009.36,
      "title": "Licenciamento 2022",
      "description": "Licenciamento 2022",
      "dueDate": null,
      "expirationDate": "2022-09-30T00:00:00",
      "hasDiscount": false,
      "isExpired": true,
      "type": "licensing",
      "year": 2022,
      "required": false,
      "dependsOn": [],
      "distinct": [
        "E9B42A19-7E70-4E86-98A6-82B6EECC8EE4"
      ]
    }
  ]
 
}

Caso você solicite o pagamento de um débito que não deve ser pago junto com outro, a API retornará um erro. Veja o exemplo de retorno:

{
  "transactionId": 9391167,
  "message": "Existem débitos que não podem ser pagos em conjunto",
  "execute": "2022-09-30 14:40:56",
  "errorCode": "817"
}

Débitos Obrigatórios (required)

São débitos que obrigatoriamente devem ser pagos caso seja retornado na consulta.

{
  "type": "debts",
  "transactionId": 816575547,
  "clientRequestId": "teste hml 20221017 03",
  "vehicle": {
    "uf": DF,
 	  "document": "00123456789",
    "licensePlate": "REQ3941",
    "renavam": "01203988813"
     },
  "debts": [
    {
      "id": "87D4B252-1A3D-4918-A390-1C911424485B",
      "amount": 5.23,
      "title": "Seguro Obrigatório 2022",
      "description": "Seguro Obritatório 2022",
      "dueDate": null,
      "expirationDate": "2022-09-30T00:00:00",
      "hasDiscount": false,
      "isExpired": true,
      "type": "insurance",
      "year": 2022,
      "required": true,
      "dependsOn": [],
      "distinct": []
    },
    {
      "id": "577FE0F7-2143-4236-BBC3-7AD071409298",
      "amount": 1864.04,
      "title": "Licenciamento 2022",
      "description": "Licenciamento 2022",
      "dueDate": null,
      "expirationDate": "2022-09-30T00:00:00",
      "hasDiscount": false,
      "isExpired": true,
      "type": "licensing",
      "year": 2022,
      "required": false,
      "dependsOn": [],
      "distinct": []
    }
  ]
}

Caso você deixe de fora um débito obrigatório na solicitação de pagamento, a API retornará um erro. Vejo o exemplo de retorno:

{
  "transactionId": 815949758,
  "message": "Existem débitos obrigatórios que devem ser pagos",
  "execute": "2022-09-30 14:33:35",
  "errorCode": "816"
}