1. Informações Gerais


Especificação

Produto

 Microsiga Protheus

Módulo

 GCT

Segmento Executor

 Serviços

Projeto


IRM


Requisito


Subtarefa



2. Objetivo

Os serviços especificados neste documento serão consumidos pelo aplicativo Meus Contratos e tem por objetivo permitir ao usuário consultar os contratos e planilhas cadastrados na base Protheus de um smartphone ou tablet, bem como acompanhar, aprovar ou reprovar medições de contratos, desde que incluído na alçada de aprovação.

3. Definições de Serviços

Todos os serviços devem obedecer às boas práticas de implementação de APIs presentes no Guia de Implementação de APIs TOTVS.

Deve-se tomar um cuidado especial com os retornos da requisição, inserindo o status HTTP correto de acordo com o erro encontrado (não enviar um status http 200 em uma mensagem de erro, por exemplo).

3.1. GET /wscnta300/contracts

Retorna a lista de contratos disponíveis para consulta ao usuário logado, no formato indicado abaixo:

{
    "contracts" : [
        {
            "number" : "0192390283",
			"rev" : "1",
			"_type" : "2",
			"expiresIn": 3,
			"daysToFinish": 15,
            "startDate" : "20171103",
            "endDate" : "20180615",
			"readjustment": 1,
            "description" : "Contrato de Compra fixo",
			"departament": "Juridico",
            "situation":"05",
            "balance": {
                "symbol" : "R$",
                "total" : 43000.1,
            },
		   "current_value": {
      	 		"symbol" : "R$",
        		"total" : 60000,
   		 	},
        },
        {
            "number" : "1932736",
			"rev" : "3",
			"_type" : "1",
			"expiresIn": null,
			"daysToFinish": 134,
            "startDate" : "20170811",
            "endDate" : "20171223",
            "description" : "Outro Contrato",
			"departament": "Financeiro",
            "balance": {
                "symbol" : "USD",
                "total" : 58000,
            }
			"current_value": {
      	 		"symbol" : "R$",
        		"total" : 8000,
   		 	},
        }
    ],
	"contractsToExpire": 5
    "hasNext" : true
}

Descrição dos Campos:

Parâmetros aceitos:

Utilizados para fazer paginação.

A primeira página é a 1.

Se não for enviado um page, considerar a página 1.

Se não for passado um pageSize, considerar o tamanho de página como 10.

TODA requisição de lista deve retornar um atributo hasNext indicando se atingiu a última página ou não.

Exemplos (Supondo que existam 32 registros na base):

Deve suportar filtrar os resultados de acordo com alguns parâmetros:

3.2. GET /wscnta300/contracts/{contractID}/{rev}

Este serviço deve retornar somente um contrato, com os detalhes do mesmo. O contrato que deve ser retornado será indicado pelos parâmetros contractID e rev, presentes na URL da requisição.

Exemplo de chamada: GET /wscnta300/contracts/0192390283/1

Exemplo de retorno:

{
    "number" : "0192390283",
    "rev" : "1",
    "_type" : "1",
	"type_of_contract_id": "001",
	"type_of_contract_description": "fixo",
	"expiresIn": 3,
	"daysToFinish": 3, 
    "startDate" : "20171103",
    "endDate" : "20180615",
    "description" : "Contrato de Compra fixo",
	"manager":"Rodrigo",
	"managerId":"000001",
	"coin": 1,
	"department_description": "FINANCEIRO",
    "department_id": "000001",
    "situation":"05"
	"validity": "3 meses",
	"validity_quant": 90,
	"validity_unit": "1",
	"contract_approval_id": "000001",
	"contract_approval_description": "GRUPO 01",
	"measurement_approval_id": "000001",
	"measurement_approval_description": "GRUPO 01",
	"bail_type": "1",
	"retention_percentage": 5,
 	"payment_condition_id": "001",
	"payment_condition_description": "a vista",
    "class_id": "001",
    "class_description": "PIS",
	"object": "Prestação de serviço de limpeza",
	"clause": "Clausula do contrato",
	"justification": "Alteração de valor",
	"stoppage_id": "003",
	"stoppage_description": "falta de documentos",
	"end_stoppage": "20190615"
    "balance": {
        "symbol" : "R$",
        "total" : 43000.1,
    },
    "current_value": {
        "symbol" : "R$",
        "total_fixed" : 102000,
		"total_flex" : 25000,
		"sum_total": 127000,
    },
    "spreadsheets" : [
        {
            "number" : "0001",
			"type_id": "001",
			"type_description":"fixo c/ cronograma",
            "description" : "FIXO/FINANCEIRO",
            "related" : "GRUPO JLIMA",
			"reladet_id": "001",
			"related_unit": "01",
			"related_cnpj": "48.827.155/0001-22",
			"nextMeasurement": "09/2018",
			"index": "IGPM",
			"index_id": "001",
			"readjust_date":"20180725",
			"readjust_unit": "2",
			"readjust_mode": "1",
            "readjust_frequency": 20,
            "balance" : {
                "symbol" : "R$",
                "total" : 21000.1,
            },
			"current_value" : {
                "symbol" : "R$",
                "total" : 1000,
            },
			"itens":[
			{	
				"id":"0001",
				"productId":"00000002",
				"product": "Computador",
				"quantity": 10,
				"measured_quantity": 2;
				"unitary_value":{
					"symbol": "R$",
					"value":100,
				},
				"discont":5,
				"amount":{
					"symbol": R$, 
					"value": 995,
				},
				"accounting_apportionment":[
				{
					"cost_center": "Juridico",
					"percentage": 100,
					"accounting_account": "001",
					"accounting item": "02",
					"value_class": "03",
					"item": "01",
					"credit_entity_05":"0501"
					"debit_entity_05":"0502"
					"amount":{
						"symbol":"R$",,
						"value":995,
					},
				},
				]	
			}
			]
        },
        {
            "number" : "0002",
            "description" : "SERVIÇOS",
            "related" : "GRUPO JLIMA",
            "balance" : {
                "symbol" : "R$",
                "total" : 22000,
            }
        }
    ],
    "balanceHistory" : {
		"fixed": [ ["201701", 120, 120], ["201702", 120, 80], ["201703", 120, 0] ],
		"flex": [ ["201701", 120, 120], ["201702", 120, 80], ["201703", 120, 0] ],
		"projection_flex": true,
	}
}

Descrição dos Campos:

Parâmetros aceitos:

schedule: parâmetro booleano para solicitar o cronograma financeiro. default: false

3.3. GET /wscnta300/contracts/{contractID}/{rev}/spreadsheets/{spreadSheetNumber}/balances

Traz os saldos da planilha indicada pelo parâmetro spreadSheetNumber.

Exemplo de retorno:

{
    "competences": [
		["201701", 120, 120],
		["201702", 120, 120],
		["201703", 120, 80],
		["201704", 120, 30]
    ]
}

Descrição dos Campos:

3.4. GET /wscnta300/customers

Retorna a lista de clientes disponíveis para filtrar os contratos exibidos, no seguinte formato:

{
    "hasNext": true,
    "clients": [
        {
            "id": "0000001",
            "name": "TOTVS SA",
            "unit": "01"
        },
        {
            "id": "0000002",
            "name": "OUTRO CLIENTE",
            "unit": "01"
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.5. GET /wscnta300/suppliers

Retorna a lista de fornecedores disponíveis para filtrar os contratos exibidos, no seguinte formato:

{
    "hasNext": true,
    "suppliers": [
        {
            "id": "0000001",
            "name": "TOTVS SA",
            "unit": "01"
        },
        {
            "id": "0000002",
            "name": "OUTRO CLIENTE",
            "unit": "01"
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.6. GET /wscnta121/measurements

Retorna a lista de medições disponíveis para aprovação do usuário logado, no formato indicado abaixo:

{
    "measurements" : [
        {
            "number" : "297238",
            "contract" : {
                "number" : "0937491347",
                "rev" : "1"
            },
			"value" : {
				"symbol" : "R$",
				"total": 21000
			}
            "spreadsheet" : [{
        	        "number" : "3",
                    "description" : "FIXO/FINANCEIRO"
				    "items" : [
                	{
                  	  	"product_code" : "000001",
                   	 	"product_description" : "PRODUTO 1",
                    	"quantity" : 8,
						"discount" : "20,5 %",
                    	"unitary_value" : 16,
                    	"total_value" : 128,,
						"value_symbol" : "R$",
						"delivery_date" : "20171123"
                	}	,
                	{
                    	"product_code" : "000002",
                    	"product_description" : "OUTRO PRODUTO 2",
                    	"quantity" : 10,
                    	"unitary_value" : 1.3,
						"discount" : "0 %",
                    	"total_value" : 13,
						"value_symbol" : "R$",
						"delivery_date" : "20171123"
                	}
           		 ]
            }],
			"competence": "11/2017",
			"history" : [
				{
					"name" : "RODRIGO TOLEDO",
					"date" : "20171023",
					"justification" : ""
				}
			"key" : "000007000003001                                   "
			]
         }
    ],
	"hasNext": true
}

Descrição dos Campos:

Parâmetros aceitos, ao recebidos devem filtrar a lista de medições retornadas:

Parâmetros aceitos:

Utilizados para fazer paginação. Utilizar mecanismo igual ao do serviço de contratos.

Filtros aceitos:

3.7. PUT /wscnta121/measurements/{key}/approval_status

Este endpoint deverá efetuar a aprovação ou reprovação da medição por parte do usuário logado.

Ao ser requisitado, será enviado um payload junto à requisição, com o seguinte formato:

{
    "approval_status" : false,
    "justification" : "Justificativa"
}

Campos do payload da requisição:

O retorno da requisição deverá ser uma mensagem de OK (http 200) em caso de atualização com sucesso ou enviar no retorno a mensagem de erro resultante da operação (utilizar padrão de erro do framework). 

OBS: Caso o usuário aprove ou reprove a requisição e o Protheus rejeite esta operação, o retorno não poderá ser enviado em uma mensagem de sucesso (http 200).

3.8. GET /wscnta121/measurements/pending

Retorna as parcelas dos cronogramas que possuem a data prevista de medição vencida, no seguinte formato:

{
	"measurements"[
	{
   		 "contract_number" : "00000000001",
    	"contract_description" : "semi-fixo",
		"spreadsheet_number": "000002",
		"spreadsheet_description": "planilha de serviços",
		"competence":  "201807",
		"expiring_date": "20180723",
		"balance": {
                "symbol" : "R$",
                "total" : 43000.1,
				 }
		"current_value":{
			"symbol": "R$",
			"total": 100000,00	
		}
	}
	]
	"hasNext":true,
}

Descrição dos Campos:

hasNext: Indica se existe mais uma página de resultados ou se já está na última página (ver mais detalhes nos parâmetros aceitos: page e pageSize).

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.9. GET /wscnta121/measurements/pending/total

Retorna a quantidate total de parcelas dos cronogramas que possuem a data prevista de medição vencida, no seguinte formato:

{
	"total":30,
}

Descrição dos Campos:

3.10. GET /wscnta300/contracts/total

Retorna o numero total de contratos em uma determinada situação, no seguinte formato:

{
  	"total": 53
}

Descrição dos Campos:

Parâmetros aceitos:

3.11. GET /wscnta300/contracts/{contractId}/{rev}/forecast

Retorna a projeção financeira para os próximos seis meses, no seguinte formato:

{
  	  "balance": {
        "symbol" : "R$",
        "total" : 43000.1
    },
    "current_value": {
        "symbol" : "R$",
        "total" : 102000,
    },
	 "forecast": [
		["201701", 120],
		["201702", 200],
		["201703", 150],
		["201704", 180],
		["201705", 230],
		["201706", 240],
    ]
}

Descrição dos Campos:

3.12. GET /wscnta300/indexes

Retorna a lista de índices de reajuste disponíveis, no seguinte formato:

{
    "hasNext": true,
    "indexes": [
        {
            "id": "001",
            "description": "IGPM",
        },
        {
            "id": "002",
            "description": "IPCA",
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.13. GET /wscnta300/products

Retorna a lista de índices de produtos, no seguinte formato:

{
    "hasNext": true,
    "products": [
        {
            "id": "001",
            "description": "monitor",
        },
        {
            "id": "002",
            "description": "mouse",
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.14. GET /wscnta300/costCenters

Retorna a lista de centros de custo, no seguinte formato:

{
    "hasNext": true,
    "costCenters": [
        {   
            "description": "RH",
        },
        {
            "description": "TI",
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.15. GET /wscnta300/financialAccounts

Retorna a lista de contas contábeis, no seguinte formato:

{
    "hasNext": true,
    "financialAccounts": [
        {   
            "description": "RH",
        },
        {
            "description": "TI",
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.16. GET /wscnta300/accountingItems

Retorna a lista de items contábeis, no seguinte formato:

{
    "hasNext": true,
    "accoutingItems": [
        {   
            "description": "RH",
        },
        {
            "description": "TI",
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.17. GET /wscnta300/valueClasses

Retorna a lista de classes de valor, no seguinte formato:

{
    "hasNext": true,
    "valueClasses": [
        {   
            "description": "RH",
        },
        {
            "description": "TI",
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.18. GET /wscnta300/contracts/{contractId}/{rev}/spreadsheets/{spreadsheetNumber}/schedule

Retorna as parcelas do cronograma financeiro, no seguinte formato:

{
    "hasNext": false,
    "parcels": [
        {
            "forecastDate": "20190501",
            "parcel": "17",
			"status": "1",
            "forecastValue": {
                "total": "20190501",
                "symbol": "R$"
            },
            "balance": {
                "total": 1000000,
                "symbol": "R$"
            },
            "competence": "05/2019",
            "executionDate": ""
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.19. GET /wscnta300/paymentConditions

Retorna a lista de condições de pagamento, no seguinte formato:

{
    "hasNext": true,
    "paymentConditions": [
        {   
			"id": "001",
            "description": "a vista"
        },
        {
			"id":"002",
            "description": "30 dias"
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.


3.20. GET /wscnta300/approvalGroups

Retorna os grupos de aprovação, no seguinte formato:

{
    "hasNext": true,
    "approvalGroups": [
        {   
			"id": "001",
            "description": "grupo de aprovação de medições"
        },
        {
			"id":"002",
            "description": "grupo de aprovação de contratos"
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.


3.21. GET /wscnta300/coins

Retorna lista de moedas, no seguinte formato:

{
    "hasNext": true,
    "coins": [
        {
            "symbol": "R$",
            "id": 1,
            "description": "REAL"
        },
        {
            "symbol": "US$",
            "id": 2,
            "description": "DOLAR"
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.


3.22. GET /wscnta300/typesOfContract

Retorna os tipos de contrato, no seguinte formato:

{
    "hasNext": true,
    "typesOfContract": [
        {
            "id": "001",
            "description": "COMPRA                        "
        },
        {
            "id": "002",
            "description": "VENDA                         "
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize e _type.


3.23. GET /wscnta300/typesOfSpreadsheet

Retorna os tipos de planilha, no seguinte formato:

{
    "hasNext": true,
    "typesOfSpreadsheet": [
        {
            "id": "005",
            "description": "FLEX                          "
        },
        {
            "id": "006",
            "description": "FLEX C/PREV                   "
        }
    ]
}

Descrição dos Campos:

Parâmetros aceitos:


3.24. GET /wscnta300/departments

Retorna as áreas do contrato, no seguinte formato:

{
    "hasNext": false,
    "departments": [
        {
            "manager_id": "000001",
            "id": "000001",
            "manager_name": "JOSE",
            "description": "FINANCEIRO                              "
        },
        {
            "manager_id": "000002",
            "id": "000002",
            "manager_name": "DELMONDES",
            "description": "JURIDICO                                "
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.


3.25. GET /wscnta300/contracts/{contractID}/{rev}/documents

Retorna as referências aos documentos anexados ao contrato

{
    "documents": [
        {
            "id": "0000000003",
            "description": "doc1"
        },
        {
            "id": "0000000004",
            "description": "doc2"
        },
       
    ],
    "hasNext": false
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.


3.26. GET /wscnta300/contracts/{contractID}/{rev}/documents/{doc}

Retorna um determinado documento anexado ao contrato.

{
    "id": "0000000003",
    "file": "am9zZSBwZXJlaXJhIGRlbG1vbmRlcyBuZXRv",
    "name": "doc1.txt                                                                                                                                                                                            ",
    "description": "documento 1"
}

Descrição dos Campos:

3.27. GET /wscnta300/contracts/{contractID}/historic/revisions

Retorna o histórico de revisões no seguinte formato:


{
    "_type": "1",
    "coin": 1,
    "startDate": "20181129",
    "hasNext": true,
    "type_of_contract_id": "001",
	"number": "000000000000120",
    "type_of_contract_description": "COMPRA";
    "revisions": [
        {
			 "revision_type_code": "   ",
            "payment_condition_id": "001",
            "manager_id": "      ",
            "payment_condition_description": "A VISTA",
            "contract_approval_description": "",
            "measurement_approval_id": "      ",
            "justification": "",
            "current_value": {
                "total_fixed": 8500,
                "sum_total": 19450,
                "total_flex": 10950,
                "symbol": "R$"
            },         
            "spreadsheets": [
                {
					"type_id": "001",
                    "readjust_unit": " ",
                    "index": "",
                    "readjust_frequency": 0,
                    "description": "FIXO",
                    "balance": {
                        "total": 8500,
                        "symbol": "R$"
                    },
					"current_value": {
                        "total": 8500,
                        "symbol": "R$"
                    },
                    "number": "000001",
                    "type_description": "FIXO"
                    "related_id": "001   ",
                    "related_cnpj": "48.827.155/0001-22",
                    "next_measurement": "09/2018",
                    "related": "FORNECEDOR 01",
                    "readjust_mode": " ",
                    "index_id": "   ",
                    "readjust_date": "        ",
                    "related_unit": "01",
                    "itens": [
                        {
                            "discount": 0,
                            "amount": {
                                "value": 1000,
                                "symbol": "R$"
                            },
                            "id": "001",
                            "productId": "001            ",
                            "quantity": 100,
                            "accounting_apportionment": [
                                {
                                    "accounting_item": "         ",
                                    "percentage": 30,
                                    "amount": {
                                        "value": 300,
                                        "symbol": "R$"
                                    },
                                    "value_class": "         ",
                                    "accounting_accout": "                    ",
                                    "cost_center": "FINANCEIR",
                                    "item": "01"
                                },
                                {
                                    "accounting_item": "         ",
                                    "percentage": 70,
                                    "amount": {
                                        "value": 700,
                                        "symbol": "R$"
                                    },
                                    "value_class": "         ",
                                    "accounting_accout": "                    ",
                                    "cost_center": "JURIDICO ",
                                    "item": "02"
                                }
                            ],
                            "unitary_value": {
                                "value": 10,
                                "symbol": "R$"
                            },
                            "product": "PRODUTO 01"
                        },
                        {
                            "discount": 0,
                            "amount": {
                                "value": 7500,
                                "symbol": "R$"
                            }
                    ]
                },
                {
                    "current_value": {
                        "total": 10000,
                        "symbol": "R$"
                    },
                    "related_id": "002   ",
                    "related_cnpj": "48.827.155/0001-22",
                    "next_measurement": "       ",
                    "related": "FORNECEDOR 02",
                    "readjust_mode": " ",
                    "index_id": "   ",
                    "readjust_date": "        ",
                    "related_unit": "01",
                    "itens": [],
                    "type_id": "006",
                    "readjust_unit": " ",
                    "index": "",
                    "readjust_frequency": 0,
                    "description": "FLEX C/PREV",
                    "balance": {
                        "total": 10000,
                        "symbol": "R$"
                    },
                    "number": "000002",
                    "type_description": "FLEX C/PREV"
                },
                {
                    "current_value": {
                        "total": 950,
                        "symbol": "R$"
                    },
                    "related_id": "003   ",
                    "related_cnpj": "48.827.155/0001-22",
                    "next_measurement": "       ",
                    "related": "FORNECEDOR 03",
                    "readjust_mode": " ",
                    "index_id": "   ",
                    "readjust_date": "        ",
                    "related_unit": "01",
                    "itens": [
                        {
                            "discount": 5,
                            "amount": {
                                "value": 1000,
                                "symbol": "R$"
                            },
                            "id": "001",
                            "productId": "001            ",
                            "quantity": 100,
                            "accounting_apportionment": [
                                {
                                    "accounting_item": "         ",
                                    "percentage": 25,
                                    "amount": {
                                        "value": 250,
                                        "symbol": "R$"
                                    },
                                    "value_class": "         ",
                                    "accounting_accout": "                    ",
                                    "cost_center": "FINANCEIR",
									"credit_entity_05":"0501",
									"debit_entity_05":"0502",
                                    "item": "01"
                                },
                                {
                                    "accounting_item": "         ",
                                    "percentage": 75,
                                    "amount": {
                                        "value": 750,
                                        "symbol": "R$"
                                    },
                                    "value_class": "         ",
                                    "accounting_accout": "                    ",
                                    "cost_center": "JURIDICO ",
									"credit_entity_05":"0501",
									"debit_entity_05":"0502",
                                    "item": "02"
                                }
                            ],
                            "unitary_value": {
                                "value": 10,
                                "symbol": "R$"
                            },
                            "product": "PRODUTO 01"
                        }
                    ],
                    "type_id": "007",
                    "readjust_unit": " ",
                    "index": "",
                    "readjust_frequency": 0,
                    "description": "FIXO SEM CRONOGRAMA",
                    "balance": {
                        "total": 950,
                        "symbol": "R$"
                    },
                    "number": "000003",
                    "type_description": "FIXO SEM CRONOGRAMA"
                }
            ],
            "contract_approval_id": "      ",
            "clause": "",
            "retention_percentage": 0,
            "manager_description": "",
            "revision_description": "",
            "bail_type": "1",
            "revision": "   ",
            "validity_quant": 1,
            "daysToFinish": 364,
            "endDate": "20191129",
            "validity": "1 ano",
            "revision_type": " ",
            "balanceHistory": {
                "projection_flex": true,
                "fixed": [
                    [
                        "201811",
                        0,
                        0
                    ]
                ],
                "flex": [
                    [
                        "201811",
                        842.30769231,
                        0
                    ]
                ]
            },
            "department_description": "",
            "department_id": "",
            "situation": "10",
            "object": "",
            "validity_unity": "3",
            "description": "COMPRA",
            "balance": {
                "total": 19450,
                "symbol": "R$"
            },
            "expiresIn": null,
            "measurement_approval_description": ""
        },
        {
            "justification": "teste",
            "current_value": {
                "total_fixed": 8500,
                "sum_total": 19640,
                "total_flex": 11140,
                "symbol": "R$"
            },
            "revision_type_code": "002",
            "payment_condition_id": "001",
            "manager_id": "      ",
            "payment_condition_description": "A VISTA",
            "contract_approval_description": "",
            "measurement_approval_id": "      ",
            "contract_approval_id": "      ",
            "clause": "",
            "retention_percentage": 0,
            "manager_description": "",
            "revision_description": "ADITIVO",
            "bail_type": "1",
            "revision": "001",
            "validity_quant": 1,
            "daysToFinish": 364,
            "endDate": "20191129",
            "validity": "1 ano",
            "revision_type": "1",
            "balanceHistory": {
                "projection_flex": true,
                "fixed": [
                    [
                        "201811",
                        0,
                        0
                    ]
                ],
                "flex": [
                    [
                        "201811",
                        856.92307692,
                        0
                    ]
                ]
            },
            "department_description": "",
            "department_id": "",
            "situation": "10",
            "object": "",
            "validity_unity": "3",
            "description": "COMPRA",
            "balance": {
                "total": 19640,
                "symbol": "R$"
            },
            "expiresIn": null,
            "measurement_approval_description": ""
        }
    ]    
}

Descrição dos Campos:

Parâmetros aceitos:

3.28. POST/wscnta300/contracts

Realiza a inclusão de um contrato.

Ao ser requisitado, será enviado um payload junto à requisição, com o seguinte formato:

{
    "number": "T00000000000082",
    "description": "Contrato de prestação de serviço",
    "specie": "1",
    "type": "001",
    "coin": 1,
    "payment_condition": "001",
    "start_date": "20181231",
    "end_date": "20191125",
    "validity": 90,
    "validity_unity": "1",
    "contract_approval": "000001",
    "measurement_approval": "000001",
    "bail_type": "1",
    "retention_percentage": 5,
    "object" : "Object of the contract",
    "clause" : "Clause of the contract",
    "department_id": "000001",
    "manager_id": "000002",
    "spreadsheets": [
        {
            "number": "000001",
            "type": "001",
            "description": "Spreadsheet of the contract",
            "related_id": "001   ",
            "related_unit": "01",
            "current_value": 1000,
            "readjust_index": "001",
            "readjust_mode": "1",
            "readjust_unity": "2",
            "readjust_frequency": 20,
            "readjust_date": "20180101",
            "items": [
                {
                    "id": "001",
                    "product_id": "001            ",
                    "quantity": 10,
                    "discount": 0,
                    "unitary_value": 100,
                    "amount": 1000,
                    "accounting_apportionment": [
                        {
                        	"item":"01",
                            "percentage": 50,
                            "cost_center": "FINANCEIR",
                            "accounting_account": "CONTA 02            ",
                            "accounting_item": "ITEM 01  ",
							"credit_entity_05":"0501",
							"debit_entity_05":"0502",
                            "value_class": "CLASSE 01",
                            "value": 500                         
                        },
                        {
                        	"item":"02",
                            "percentage": 50,
                            "cost_center": "FINANCEIR",
                            "accounting_account": "CONTA 01            ",
                            "accounting_item": "ITEM 02  ",
                            "value_class": "CLASSE 02",
							"credit_entity_05":"0501",
							"debit_entity_05":"0502",
                            "value": 500                         
                        }
                    ]
                   
                }
            ],
            "financial_schedule": [
		        {
		            "parcel": "01",
		            "competence": "12/2018",
		            "date": "20181231",
		            "value": 500
	        	},
	        	{
		            "parcel": "02",
		            "competence": "01/2019",
		            "date": "20190131",
		            "value": 500
	        	}
    		]
            
        }
    ]
    
}

Descrição dos Campos:

3.29. POST /wscnta300/departments/{contractID}/documents

Anexa um documento ao contrato.

Ao ser requisitado, será enviado um payload junto à requisição, com o seguinte formato:

{
   "name": "teste.txt",
	"description": "teste",
	"content": "dGVzdGU="
}

Descrição dos Campos:


3.30. PUT /wscnta300/contracts/{contractID}/{rev}/status


Altera o status do contrato.


Ao ser requisitado, será enviado um payload junto à requisição, com o seguinte formato:


{
   "status": "05",
}


Descrição dos Campos:


3.31. PUT/wscnta300/contracts/{contractID}/{rev}

Realiza a alteração de um contrato.

Ao ser requisitado, será enviado um payload junto à requisição, com o seguinte formato:

{
    "description": "contrato de prestação de serviço",
    "type": "001",
    "coin": 1,
    "payment_condition": "001",
    "start_date": "20181231",
    "end_date": "20191125",
    "validity": 90,
    "validity_unity": "1",
    "contract_approval": "000001",
    "measurement_approval": "000001",
    "bail_type": "1",
    "retention_percentage": 5,
    "object" : "Prestação de serviço de limpeza",
    "clause" : "clausula do contrato",
    "department_id": "000001",
    "manager_id": "000002",
    "spreadsheets": [
        {
            "number": "000001",
            "type": "001",
            "description": "serviço de limpeza",
            "related_id": "001   ",
            "related_unit": "01",
            "current_value": 1000,
            "readjust_index": "001",
            "readjust_mode": "1",
            "readjust_unity": "2",
            "readjust_frequency": 20,
            "readjust_date": "20180101",
            "deleted":false,
            "items": [
                {
                    "id": "001",
                    "product_id": "001            ",
                    "quantity": 10,
                    "discount": 0,
                    "unitary_value": 100,
                    "amount": 1000,
                    "deleted":false,
                    "accounting_apportionment": [
                        {
                            "item":"01",
                            "percentage": 100,
                            "cost_center": "FINANCEIR",
                            "accounting_account": "CONTA 02            ",
                            "accounting_item": "ITEM 01  ",
                            "value_class": "CLASSE 01",
							"credit_entity_05":"0501",
							"debit_entity_05":"0502",
                            "value": 1000,
                            "deleted":false
                        },
                        {
                            "item":"02",
                            "percentage": 50,
                            "cost_center": "FINANCEIR",
                            "accounting_account": "CONTA 01            ",
                            "accounting_item": "ITEM 02  ",
                            "credit_entity_05":"0501",
							"debit_entity_05":"0502",
							"value_class": "CLASSE 02",
                            "value": 500,
                            "deleted":true
                        }
                    ]
                    
                }
            ],
            "financial_schedule": [
                {
                    "parcel": "01",
                    "competence": "12/2018",
                    "date": "20181231",
                    "value": 500,
                    "deleted":false
                },
                {
                    "parcel": "02",
                    "competence": "01/2019",
                    "date": "20190131",
                    "value": 500,
                    "deleted":false
                }
            ]
             
        }
    ]
     
}

Descrição dos Campos:


3.32. DELETE/wscnta300/contracts/{contractID}/{rev}

Realiza a exclusão de um contrato.

Exemplo de resposta:

{
    "code": 201,
 	"message": "Exclusao realizada com sucesso!",
}


3.33. DELETE/wscnta300/contracts/{contractID}/{rev}/documents/{doc}

Realiza a exclusão de um documento anexado ao contrato

Exemplo de resposta:

{
    "code": 201,
 	"message": "Exclusao realizada com sucesso!",
}


3.34. GET /wscnta300/contracts/{contractID}/type/revisions

Retorna uma lista das revisões e seu tipo referente ao contrato, no seguinte formato:

{
    "hasNext": false,
    "revisions": [
        {
            "id": "000",
            "description": "",
            "type": ""
        },
        {
            "id": "001",
            "description": "ADITIVO",
            "type": "1"
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.35. POST/api/protheus/wscnta300/v1/contracts/{contractID}/{rev}/revision

Inclui uma revisão para o contrato.

Ao ser requisitado, será enviado um payload junto à requisição, com o seguinte formato:

{
    "description": "contrato de prestação de serviço",
 	"justification":"alteração de valor",
    "stoppage":"001",
    "end_stoppage":"20190115",
    "type": "001",
    "coin": 1,
    "payment_condition": "001",
    "start_date": "20181231",
    "end_date": "20191125",
    "validity": 90,
    "validity_unity": "1",
    "contract_approval": "000001",
    "measurement_approval": "000001",
    "bail_type": "1",
    "retention_percentage": 5,
    "object" : "Prestação de serviço de limpeza",
    "clause" : "clausula do contrato",
    "department_id": "000001",
    "manager_id": "000002",
    "spreadsheets": [
        {
            "number": "000001",
            "type": "001",
            "description": "serviço de limpeza",
            "related_id": "001   ",
            "related_unit": "01",
            "current_value": 1000,
            "readjust_index": "001",
            "readjust_mode": "1",
            "readjust_unity": "2",
            "readjust_frequency": 20,
            "readjust_date": "20180101",
            "deleted":false,
            "items": [
                {
                    "id": "001",
                    "product_id": "001            ",
                    "quantity": 10,
                    "discount": 0,
                    "unitary_value": 100,
                    "amount": 1000,
                    "deleted":false,
                    "accounting_apportionment": [
                        {
                            "item":"01",
                            "percentage": 100,
                            "cost_center": "FINANCEIR",
                            "accounting_account": "CONTA 02            ",
                            "accounting_item": "ITEM 01  ",
                            "value_class": "CLASSE 01",
                            "value": 1000,
							"credit_entity_05":"0501",
							"debit_entity_05":"0502",
                            "deleted":false
                        },
                        {
                            "item":"02",
                            "percentage": 50,
                            "cost_center": "FINANCEIR",
                            "accounting_account": "CONTA 01            ",
                            "accounting_item": "ITEM 02  ",
                            "value_class": "CLASSE 02",
                            "value": 500,
							"credit_entity_05":"0501",
							"debit_entity_05":"0502",
                            "deleted":true
                        }
                    ]
                    
                }
            ],
            "financial_schedule": [
                {
                    "parcel": "01",
                    "competence": "12/2018",
                    "date": "20181231",
                    "value": 500,
                    "deleted":false
                },
                {
                    "parcel": "02",
                    "competence": "01/2019",
                    "date": "20190131",
                    "value": 500,
                    "deleted":false
                }
            ]
             
        }
    ]
     
}

Descrição dos Campos:


3.36. PUT /api/protheus/wscnta300/v1/contracts/{contractID}/{rev}/aproveRevision

Este serviço aprova uma revisão, sem controle de aprovação por alçadas.

Exemplo de retorno:

{
    "contract_number": "200000000000058",
    "code": 200,
    "message": "Aprovação da revisão efetuada com sucesso."
}


3.37. GET /api/protheus/wscnta300/v1/stoppages

Retorna a lista de índices de motivos de paralisação, no seguinte formato:

{
    "hasNext": true,
    "stoppages": [
        {
            "id": "001",
            "description": "Necessidade de revisão do projeto.",
        },
        {
            "id": "002",
            "description": "Falta de documentos",
        }
    ]
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.


3.38. POST /api/protheus/wscnta300/v1/contracts/{contractID}/{rev}/readjustment

Inclui e aprova uma revisão de reajuste.

Ao ser requisitado, será enviado um payload junto à requisição, com o seguinte formato:

{
	"reference_date":"20190117",
	"application_date":"20190118",
	"approval":true
}

Descrição dos Campos:


Exemplo de retorno:


{
    "contract_number": "200000000000116",
    "code": 200,
    "current_value": {
        "symbol": "R$",
        "total": 1100
    },
    "revision": "001"
}


Descrição dos Campos:

3.39. POST /api/protheus/wscnta300/v1/contracts/{contractID}/{rev}/restart

Inclui e aprova uma revisão de reinicio.

Ao ser requisitado, será enviado um payload junto à requisição, com o seguinte formato:

{
	"approval":true
}

Descrição dos Campos:


Exemplo de retorno:


{
    "contract_number": "200000000000116",
    "code": 200,
    "approval_date":"20190128"
    "revision": "001"
}


Descrição dos Campos:

3.40. GET /api/protheus/wscnta300/v1/classes

Retorna a lista de naturezas, no seguinte formato:

{
    "classes": [
        {
            "id": "ISS       ",
            "description": "IMPOSTO SOBRE SERVICOS        "
        },
        {
            "id": "PIS       ",
            "description": "PIS                           "
        }
    ],
    "hasNext": false
}

Descrição dos Campos:

Os parâmetros aceitos serão: searchKey, page e pageSize.

3.41. POST /api/protheus/wscnta300/v1/coins/{coin}/rates

Retorna as taxas de conversão da moeda nas datas solicitadas.

Ao ser requisitado, será enviado um payload junto à requisição, com o seguinte formato:

{
    "reference_dates": [
        {
            "date":"20190227"
        },
        {
            "date":"20190228"
        }
    ]
}

Descrição dos Campos:


Formato de resposta:


{
    "coin_rates": [
        {
            "date": "20190227",
            "rate": 1.234
        },
        {
            "date": "20190228",
            "rate": 1.5678
        }
    ]
}


Descrição dos Campos:

3.42. GET /api/protheus/wscnta300/v1/accountingPlans

Retorna a lista dos códigos dos planos contábeis das entidades contábeis adicionais, no seguinte formato:

{
    "accoutingPlans": [
        {
            "id": "05"
        },
        {
            "id": "06"
        },
        {
            "id": "07"
        }
    ]
}

Descrição dos Campos:


3.43. GET /api/protheus/wscnta300/v1/accountingEntities/{plan}


Retorna as entidades contábeis do plano de contas informado, no seguinte formato:


{
    "accountingEntities": [
        {
            "id": "0501            ",
            "description": "ENT05 IT 01"
        },
        {
            "id": "0502            ",
            "description": "ENT 05 IT 02"
        }
    ],
    "hasNext": false
}


Descrição dos Campos:



Os parâmetros aceitos serão: searchKey, page e pageSize.