❓ Dúvida
Como registrar um aditivo de serviço via API no sistema ContractPlus.
A API responsável por realizar o lançamento contratual é:
/api/contractAdditives/additivesService
Exemplo de JSON a ser preenchido:
{
"CompanyId": 1,
"AdditiveType": "SERVICE",
"TypeId": 3,
"ContractId": 4930,
"CardCode": "F00002",
"CardName": "FORNECEDOR 123",
"Lines": [
{
"ContractId": 4930,
"ItemCode": "SER000018",
"ItemName": "Item Medição",
"Quantity": "10.00",
"PriceUnit": 123.12,
"LineTotal": "1231.20",
"LineTotalBalance": "1231.20",
"BillingType": 1,
"MeasureUnitId": "Und",
"RecurrenceType": 1,
"MeasurementById": 1,
"UsageId": "3",
"DueDateBase": "2025-08-01T00:00:00",
"BirthdayDate": "2026-06-20T00:00:00",
"InstallmentsTotal": 0,
"Installments": []
},
{
"ContractId": 4930,
"ItemCode": "SER000018",
"ItemName": "Item Medição",
"Quantity": "10.00",
"PriceUnit": 123.12,
"LineTotal": "1231.20",
"LineTotalBalance": "1231.20",
"BillingType": 1,
"MeasureUnitId": "Und",
"RecurrenceType": 1,
"MeasurementById": 2,
"UsageId": "3",
"DueDateBase": "2025-08-01T00:00:00",
"BirthdayDate": "2026-06-20T00:00:00",
"InstallmentsTotal": 0,
"Installments": []
},
{
"ContractId": 4930,
"ItemCode": "SER000018",
"ItemName": "Item Medição",
"Quantity": "10.00",
"PriceUnit": 123.12,
"LineTotal": "1231.20",
"LineTotalBalance": "1231.20",
"BillingType": 1,
"MeasureUnitId": "Und",
"RecurrenceType": 1,
"MeasurementById": 3,
"UsageId": "3",
"DueDateBase": "2025-08-01T00:00:00",
"BirthdayDate": "2026-06-20T00:00:00",
"InstallmentsTotal": 0,
"Installments": []
},
{
"ContractId": 4930,
"ItemCode": "SER000016",
"ItemName": "Item Parcelado",
"Quantity": "10.00",
"PriceUnit": 123.12,
"LineTotal": "1231.20",
"LineTotalBalance": "1231.20",
"BillingType": 2,
"MeasureUnitId": "Und",
"RecurrenceType": 2,
"MeasurementById": 1,
"UsageId": "3",
"DueDateBase": "2025-08-01T00:00:00",
"BirthdayDate": "2026-06-20T00:00:00",
"InstallmentsTotal": 10,
"Installments": [
{
"Sequence": 1,
"ItemCode": "SER000016",
"ItemName": "Item Parcelado",
"DueDate": "2025-08-30T00:00:00",
"DateBilling": "2025-08-25T00:00:00",
"DocTotal": 123.12
},
{
"Sequence": 2,
"ItemCode": "SER000016",
"ItemName": "Item Parcelado",
"DueDate": "2025-09-30T00:00:00",
"DateBilling": "2025-09-25T00:00:00",
"DocTotal": 123.12
},
{
"Sequence": 3,
"ItemCode": "SER000016",
"ItemName": "Item Parcelado",
"DueDate": "2025-10-30T00:00:00",
"DateBilling": "2025-10-25T00:00:00",
"DocTotal": 123.12
},
{
"Sequence": 4,
"ItemCode": "SER000016",
"ItemName": "Item Parcelado",
"DueDate": "2025-11-30T00:00:00",
"DateBilling": "2025-11-25T00:00:00",
"DocTotal": 123.12
},
{
"Sequence": 5,
"ItemCode": "SER000016",
"ItemName": "Item Parcelado",
"DueDate": "2025-12-30T00:00:00",
"DateBilling": "2025-12-25T00:00:00",
"DocTotal": 123.12
},
{
"Sequence": 6,
"ItemCode": "SER000016",
"ItemName": "Item Parcelado",
"DueDate": "2026-01-30T00:00:00",
"DateBilling": "2026-01-25T00:00:00",
"DocTotal": 123.12
},
{
"Sequence": 7,
"ItemCode": "SER000016",
"ItemName": "Item Parcelado",
"DueDate": "2026-03-02T00:00:00",
"DateBilling": "2026-03-25T00:00:00",
"DocTotal": 123.12
},
{
"Sequence": 8,
"ItemCode": "SER000016",
"ItemName": "Item Parcelado",
"DueDate": "2026-03-30T00:00:00",
"DateBilling": "2026-03-25T00:00:00",
"DocTotal": 123.12
},
{
"Sequence": 9,
"ItemCode": "SER000016",
"ItemName": "Item Parcelado",
"DueDate": "2026-04-30T00:00:00",
"DateBilling": "2026-04-25T00:00:00",
"DocTotal": 123.12
},
{
"Sequence": 10,
"ItemCode": "SER000016",
"ItemName": "Item Parcelado",
"DueDate": "2026-05-30T00:00:00",
"DateBilling": "2026-05-25T00:00:00",
"DocTotal": 123.12
}
]
},
{
"ContractId": 4930,
"ItemCode": "SER000017",
"ItemName": "Item Recorrente",
"Quantity": "10.00",
"PriceUnit": 123.12,
"LineTotal": "1231.20",
"LineTotalBalance": "12312.00",
"BillingType": 3,
"MeasureUnitId": "Und",
"RecurrenceType": 2,
"MeasurementById": 1,
"UsageId": "3",
"DueDateBase": "2025-08-01T00:00:00",
"BirthdayDate": "2026-06-20T00:00:00",
"InstallmentsTotal": 10,
"Installments": [
{
"ItemCode": "SER000017",
"ItemName": "Item Recorrente",
"DocTotal": 1231.2,
"DueDate": "2025-08-30T00:00:00",
"Sequence": 1,
"DateBilling": "2025-08-25T00:00:00"
},
{
"ItemCode": "SER000017",
"ItemName": "Item Recorrente",
"DocTotal": 1231.2,
"DueDate": "2025-09-30T00:00:00",
"Sequence": 2,
"DateBilling": "2025-09-25T00:00:00"
},
{
"ItemCode": "SER000017",
"ItemName": "Item Recorrente",
"DocTotal": 1231.2,
"DueDate": "2025-10-30T00:00:00",
"Sequence": 3,
"DateBilling": "2025-10-25T00:00:00"
},
{
"ItemCode": "SER000017",
"ItemName": "Item Recorrente",
"DocTotal": 1231.2,
"DueDate": "2025-11-30T00:00:00",
"Sequence": 4,
"DateBilling": "2025-11-25T00:00:00"
},
{
"ItemCode": "SER000017",
"ItemName": "Item Recorrente",
"DocTotal": 1231.2,
"DueDate": "2025-12-30T00:00:00",
"Sequence": 5,
"DateBilling": "2025-12-25T00:00:00"
},
{
"ItemCode": "SER000017",
"ItemName": "Item Recorrente",
"DocTotal": 1231.2,
"DueDate": "2026-01-30T00:00:00",
"Sequence": 6,
"DateBilling": "2026-01-25T00:00:00"
},
{
"ItemCode": "SER000017",
"ItemName": "Item Recorrente",
"DocTotal": 1231.2,
"DueDate": "2026-03-02T00:00:00",
"Sequence": 7,
"DateBilling": "2026-02-25T00:00:00"
},
{
"ItemCode": "SER000017",
"ItemName": "Item Recorrente",
"DocTotal": 1231.2,
"DueDate": "2026-03-30T00:00:00",
"Sequence": 8,
"DateBilling": "2026-03-25T00:00:00"
},
{
"ItemCode": "SER000017",
"ItemName": "Item Recorrente",
"DocTotal": 1231.2,
"DueDate": "2026-04-30T00:00:00",
"Sequence": 9,
"DateBilling": "2026-04-25T00:00:00"
},
{
"ItemCode": "SER000017",
"ItemName": "Item Recorrente",
"DocTotal": 1231.2,
"DueDate": "2026-05-30T00:00:00",
"Sequence": 10,
"DateBilling": "2026-05-25T00:00:00"
}
]
},
{
"ContractId": 4930,
"ItemCode": "SER000020",
"ItemName": "Item Parcelado Medido",
"Quantity": "10.00",
"PriceUnit": 123.12,
"LineTotal": "1231.20",
"LineTotalBalance": "12312.00",
"BillingType": 5,
"MeasureUnitId": "Und",
"RecurrenceType": 2,
"MeasurementById": 1,
"UsageId": "3",
"DueDateBase": "2025-08-01T00:00:00",
"BirthdayDate": "2026-06-20T00:00:00",
"InstallmentsTotal": 10,
"Installments": [
{
"Sequence": 1,
"ItemCode": "SER000020",
"ItemName": "Item Parcelado Medido",
"DueDate": "2025-08-30T00:00:00",
"DateBilling": "2025-08-25T00:00:00",
"DocTotal": 1231.20
},
{
"Sequence": 2,
"ItemCode": "SER000020",
"ItemName": "Item Parcelado Medido",
"DueDate": "2025-09-30T00:00:00",
"DateBilling": "2025-09-25T00:00:00",
"DocTotal": 1231.20
},
{
"Sequence": 3,
"ItemCode": "SER000020",
"ItemName": "Item Parcelado Medido",
"DueDate": "2025-10-30T00:00:00",
"DateBilling": "2025-10-25T00:00:00",
"DocTotal": 1231.20
},
{
"Sequence": 4,
"ItemCode": "SER000020",
"ItemName": "Item Parcelado Medido",
"DueDate": "2025-11-30T00:00:00",
"DateBilling": "2025-11-25T00:00:00",
"DocTotal": 1231.20
},
{
"Sequence": 5,
"ItemCode": "SER000020",
"ItemName": "Item Parcelado Medido",
"DueDate": "2025-12-30T00:00:00",
"DateBilling": "2025-12-25T00:00:00",
"DocTotal": 1231.20
},
{
"Sequence": 6,
"ItemCode": "SER000020",
"ItemName": "Item Parcelado Medido",
"DueDate": "2026-01-30T00:00:00",
"DateBilling": "2026-01-25T00:00:00",
"DocTotal": 1231.20
},
{
"Sequence": 7,
"ItemCode": "SER000020",
"ItemName": "Item Parcelado Medido",
"DueDate": "2026-03-02T00:00:00",
"DateBilling": "2026-02-25T00:00:00",
"DocTotal": 1231.20
},
{
"Sequence": 8,
"ItemCode": "SER000020",
"ItemName": "Item Parcelado Medido",
"DueDate": "2026-03-30T00:00:00",
"DateBilling": "2026-03-25T00:00:00",
"DocTotal": 1231.20
},
{
"Sequence": 9,
"ItemCode": "SER000020",
"ItemName": "Item Parcelado Medido",
"DueDate": "2026-04-30T00:00:00",
"DateBilling": "2026-04-25T00:00:00",
"DocTotal": 1231.20
},
{
"Sequence": 10,
"ItemCode": "SER000020",
"ItemName": "Item Parcelado Medido",
"DueDate": "2026-05-30T00:00:00",
"DateBilling": "2026-05-25T00:00:00",
"DocTotal": 1231.20
}
]
}
]
}🛠️ Procedimento
Para realizar o lançamento do contrato:
No campo Request body, informe o JSON preenchido.
Execute a API.
Se o processo for realizado com sucesso, será retornado o código: "201 - O aditivo foi lançado com sucesso" e o JSON será retornado no campo Response body.
📝 Índice de Códigos
Codigo 201 → O aditivo foi lançado com sucesso: Este código é acompanhando do JSON do aditivo inserido.
Código 401 → Usuário não autorizado: O usuário não possui autorização e/ou licença de utilização.
Código 409 → Confito de informações: Este código é acompanhado do campo e valor conflitante.
Código 500 → Erro interno no servidor: Indica que ocorreu uma falha inesperada durante o processamento da requisição no servidor.
📝 Campos do Aditivo de Serviço
Principais (Obrigatórios)
CompanyId → Empresa vinculada
AdditiveType → Tipo do aditivo (ex.: SERVICE)
TypeId → Tipo interno de classificação do aditivo
ContractId → Identificador do contrato relacionado
CardCode → Código do parceiro (Fornecedor)
CardName → Nome do parceiro (Fornecedor)
Estrutura de Linhas (Obrigatórias)
Cada aditivo deve conter uma ou mais linhas, representando os itens vinculados.
ContractId → Identificador do contrato vinculado
ItemCode → Código do item de serviço/produto
ItemName → Nome do item
Quantity → Quantidade contratada
PriceUnit → Valor unitário
LineTotal → Valor total da linha
LineTotalBalance → Saldo total da linha
BillingType → Tipo de faturamento (1 = Medição, 2 = Parcelado, 3 = Recorrente, 5 = Parcelado Medido)
MeasureUnitId → Unidade de medida (ex.: UND)
RecurrenceType → Tipo de recorrência (ex.: 1 = Não se aplica, 2 = Mensal, 3 = Anual)
MeasurementById → Forma de medição (ex.: 1 = Valor, 2 = Percentual, 3 = Quantidade)
UsageId → Utilização (ex.: 3 = Compra Comercial)
DueDateBase → Data base de vencimento
BirthdayDate → Data de aniversário
Considerada em todos os tipos de faturamento, exceto quando o faturamento é do tipo calculado.
Utilizada em faturamentos recorrentes e parcelados medidos, servindo de base para o cálculo da quantidade de parcelas.
Obrigatória como informação da data de reajuste.
InstallmentsTotal → Total de parcelas (Obrigatório para o faturamento parcelado)
Installments → Lista de parcelas, cada uma com:
Sequence → Nº da parcela
ItemCode → Código do item
ItemName → Nome do item
DueDate → Data de vencimento da parcela
DateBilling → Data de faturamento da parcela
DocTotal → Valor da parcela