Sumário


Objetivo


      Esse documento tem o objetivo de exemplificar o uso da API de Tipo de Documento utilizando todos os métodos implementados.

Recurso disponível a partir da release 12.1.2406.

1 - Métodos


      Serão apresentados 5 métodos, os quais foram implementados na API de Tipo de Documento, são eles:

1.1 - GET


1.1.1 - Get All (Recuperar todas as contas/caixa)

Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes

Domínio: localhost

Porta: 8051

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes

{
    "hasNext": true,
    "items": [
        {
            "id": "0|RMClassis",
            "company": 0,
            "code": "RMClassis",
            "description": "Documento originário do RM Classis",
            "payReceiveType": 1,
            "isDevolution": 0,
            "payable": 1,
            "sequentialDocumentNumber": 0,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 0,
            "considerLedger": 1,
            "applyFormula": "F",
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 0,
            "calculateAvp": 0,
            "budgetBalanceEffects": "N",
            "inactive": 0,
            "considerCashFlow": 1
        },
        {
            "id": "1|0005",
            "company": 1,
            "code": "0005",
            "description": "Mensalidade",
            "payReceiveType": 3,
            "lastNumber": "00000000000000000000",
            "isDevolution": 0,
            "paymentEventCode": 24,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 1,
            "accountWriteOffEventCode": 24,
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 0,
            "calculateAvp": 0,
            "budgetBalanceEffects": "N",
            "inactive": 0,
            "considerCashFlow": 1
        },
        {
            "id": "1|0099",
            "company": 1,
            "code": "0099",
            "description": "NFS",
            "payReceiveType": 3,
            "lastNumber": "00000000000000000000",
            "isDevolution": 5,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 1,
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 0,
            "calculateAvp": 0,
            "inactive": 0,
            "considerCashFlow": 1,
            "generateIrrf": 0
        }
    ]
}


1.1.2 - Order (Retorna os dados ordenados)

Order: parâmetro responsável pela ordenação do resultado, podendo ser ascendente ou descendente. O resultado com a ordem descendente deve ser precedida do caractere "-" (menos).

Exemplo 1: ?order=campo1 (Ascendente)

Exemplo 2: ?order=-campo1 (Descendente)

Múltiplos campos de ordenação: ?order=[-]campo1, [-]campo2, [-]campo3 ...

Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes?order={campo}

Domínio: localhost

Porta: 8051

Campo: description

Tipo de Ordenação: Ascendente

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes?order=description

{
    "hasNext": true,
    "items": [
        {
            "id": "1|16",
            "company": 1,
            "code": "16",
            "description": "ADIANTAMENTO",
            "payReceiveType": 3,
            "lastNumber": "00065237",
            "isDevolution": 2,
            "payable": 1,
            "paymentEventCode": 90,
            "sequentialDocumentNumber": 0,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 0,
            "accountWriteOffEventCode": 90,
            "considerLedger": 1,
            "doesNotCountZeroWriteOff": 0,
            "applyFormula": "F",
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 2,
            "calculateAvp": 0,
            "budgetBalanceEffects": "N",
            "inactive": 0,
            "considerCashFlow": 1
        },
        {
            "id": "1|55",
            "company": 1,
            "code": "55",
            "description": "AO CONSUMIDOR - DES",
            "payReceiveType": 3,
            "lastNumber": "00000000",
            "isDevolution": 0,
            "payable": 1,
            "sequentialDocumentNumber": 0,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 0,
            "considerLedger": 1,
            "applyFormula": "F",
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 2,
            "calculateAvp": 0,
            "budgetBalanceEffects": "N",
            "inactive": 0,
            "considerCashFlow": 1
        },
        {
            "id": "1|39",
            "company": 1,
            "code": "39",
            "description": "ATIVIDADE MISTA (SERVIÇO E MATERIAL)",
            "payReceiveType": 3,
            "lastNumber": "00000000",
            "templateDocumentCode": "B",
            "isDevolution": 0,
            "payable": 1,
            "sequentialDocumentNumber": 0,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 0,
            "considerLedger": 1,
            "applyFormula": "F",
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 2,
            "calculateAvp": 0,
            "budgetBalanceEffects": "N",
            "inactive": 0,
            "considerCashFlow": 1
        }
    ]
}

Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes?order=[-]{campo}

Domínio: localhost

Porta: 8051

Campo: description

Tipo de Ordenação: Descendente

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes?order=-description

{
    "hasNext": true,
    "items": [
        {
            "id": "1|13",
            "company": 1,
            "code": "13",
            "description": "VIAGENS",
            "payReceiveType": 2,
            "lastNumber": "000300/B",
            "cnabSpecies": 1,
            "companyCodeCustomerVendor": 1,
            "isDevolution": 0,
            "payable": 1,
            "sequentialDocumentNumber": 0,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 0,
            "considerLedger": 1,
            "doesNotCountZeroWriteOff": 0,
            "applyFormula": "F",
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 2,
            "calculateAvp": 0,
            "budgetBalanceEffects": "N",
            "inactive": 0,
            "considerCashFlow": 1
        },
        {
            "id": "1|21",
            "company": 1,
            "code": "21",
            "description": "VENDOR",
            "payReceiveType": 2,
            "lastNumber": "00000775",
            "templateDocumentCode": "21",
            "isDevolution": 35,
            "payable": 1,
            "sequentialDocumentNumber": 0,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 0,
            "considerLedger": 1,
            "doesNotCountZeroWriteOff": 0,
            "applyFormula": "F",
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 2,
            "calculateAvp": 0,
            "budgetBalanceEffects": "N",
            "inactive": 0,
            "considerCashFlow": 1
        },
        {
            "id": "1|34",
            "company": 1,
            "code": "34",
            "description": "VENDA A PRODUTOR",
            "payReceiveType": 3,
            "lastNumber": "00000000",
            "templateDocumentCode": "04",
            "isDevolution": 0,
            "payable": 1,
            "sequentialDocumentNumber": 0,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 0,
            "considerLedger": 1,
            "applyFormula": "F",
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 2,
            "calculateAvp": 0,
            "budgetBalanceEffects": "N",
            "inactive": 0,
            "considerCashFlow": 1
        }
    ]
}


1.1.3 - Filter (Resultado filtrado)


Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes?{campo}={valor}

Domínio: localhost

Porta: 8051

Campo: code

Valor: 0005

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes?code=0005

{
    "hasNext": false,
    "items": [
        {
            "id": "1|0005",
            "company": 1,
            "code": "0005",
            "description": "Mensalidade",
            "payReceiveType": 3,
            "lastNumber": "00000000000000000000",
            "isDevolution": 0,
            "paymentEventCode": 24,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 1,
            "accountWriteOffEventCode": 24,
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 0,
            "calculateAvp": 0,
            "budgetBalanceEffects": "N",
            "inactive": 0,
            "considerCashFlow": 1
        }
    ]
}

Para realizar filtros complexos na API de Tipo de Documento é possível adotar o padrão OData. Para entender melhor sobre a utilização desse padrão, acesse o link da documentação Utilizando filtros complexos - Exemplos do guia de API - ODATA.

1.1.4 - Paginação


Page: Página que será apresentada.

PageSize: Quantidade máxima de registros por página que serão apresentados.

Exemplo: ?page=1&pageSize=1

Valores padrão: Caso não sejam preenchidos os parâmetros evidenciados acima serão preenchidos com valores padrão.

Page: 1

PageSize: 20

Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes?page={valor1}&pageSize={valor2}

Domínio: localhost

Porta: 8051

Valor1: 1

Valor2: 2

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes?page=1&pageSize=2

{
    "hasNext": true,
    "items": [
        {
            "id": "0|RMClassis",
            "company": 0,
            "code": "RMClassis",
            "description": "Documento originário do RM Classis",
            "payReceiveType": 1,
            "isDevolution": 0,
            "payable": 1,
            "sequentialDocumentNumber": 0,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 0,
            "considerLedger": 1,
            "applyFormula": "F",
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 0,
            "calculateAvp": 0,
            "budgetBalanceEffects": "N",
            "inactive": 0,
            "considerCashFlow": 1
        },
        {
            "id": "1|0005",
            "company": 1,
            "code": "0005",
            "description": "Mensalidade",
            "payReceiveType": 3,
            "lastNumber": "00000000000000000000",
            "isDevolution": 0,
            "paymentEventCode": 24,
            "useGeneralParameters": 1,
            "generatesClearedBankStatement": 1,
            "accountWriteOffEventCode": 24,
            "consistsCustomerVendor": 1,
            "generateDocumentNumber": 0,
            "calculateAvp": 0,
            "budgetBalanceEffects": "N",
            "inactive": 0,
            "considerCashFlow": 1
        }
    ]
}

1.1.5 - Fields (Retorno de campos específicos no resultado)


Fields: parâmetro responsável pela especialização de campos em um resultado, ou seja, o usuário define quais campos serão apresentados no resultado.

Exemplo: ?fields=campo1

Múltiplos campos de ordenação: ?fields=campo1, campo2, campo3 ...

Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes?fields={campos}

Domínio: localhost

Porta: 8051

Campo 1: company

Campo 2: code

Campo 2: description

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes?fields=company,code,description

{
    "hasNext": true,
    "items": [
        {
            "id": "1|16",
            "company": 1,
            "code": "16",
            "description": "ADIANTAMENTO"
        },
        {
            "id": "1|55",
            "company": 1,
            "code": "55",
            "description": "AO CONSUMIDOR - DES"
        }
    ]
}

1.1.6 - GetOne (Recuperar tipo de documento pelo identificador)


Nos parâmetros do GetOne é necessário passar uma chave composta ("id"), por isso informamos "company" que é o código da coligada do tipo de documento que queremos selecionar e o "code" que é o código do tipo de documento, sendo eles separados pelo caractere "|" pipe.

Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes/{company}|{code}

Domínio: localhost

Porta: 8051

Company: 1

Code: 55

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes/1|55

{
    "id": "1|55",
    "company": 1,
    "code": "55",
    "description": "AO CONSUMIDOR - DES",
    "payReceiveType": 3,
    "lastNumber": "00000000",
    "mandatorySeller": 0,
    "isDevolution": 0,
    "payable": 1,
    "sequentialDocumentNumber": 0,
    "useGeneralParameters": 1,
    "generatesClearedBankStatement": 0,
    "considerLedger": 1,
    "applyFormula": "F",
    "consistsCustomerVendor": 1,
    "generateDocumentNumber": "2",
    "calculateAvp": 0,
    "budgetBalanceEffects": "N",
    "inactive": 0,
    "considerCashFlow": "1"
}

1.1.7 - Get All/Lookup (Recuperar todos os tipo de documento para uso em Lookups)

Recurso disponível a partir da release 12.1.2406.

Essa rota permite a listagem dos registro de tipo de documento sem exigência de acesso do usuário ao cadastro de tipo de documento, ela deve ser utilizada para consumo em lookups. Os filtros, ordenações e paginações possíveis ao Get All também são possíveis nessa rota.

Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes/lookup

Domínio: localhost

Porta: 8051

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes/lookup

{
    "hasNext": false,
    "items": [
        {
            "id": "1|16",
            "company": 1,
            "code": "16",
            "description": "ADIANTAMENTO"
        },
        {
            "id": "1|9999",
            "company": 1,
            "code": "9999",
            "description": "Crédito de adiantamento"
        }
    ]
}

1.1.8 - GetOne/Lookup (Recuperar tipo de documento pelo identificador para Lookup)

Recurso disponível a partir da release 12.1.2406.

Nos parâmetros do GetOne/Lookup assim como para o GetOne é necessário passar uma chave composta ("id"), por isso informamos "company" que é o código da coligada do tipo de documento que queremos selecionar e o "code" que é o código do tipo de documento, sendo eles separados pelo caractere "|" pipe.

Essa rota permite a pesquisa de um registro do tipo de documento sem exigência de acesso do usuário ao cadastro de Tipo de Documento, ela deve ser utilizada para consumo em lookups.

Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes/lookup/{company}|{code}

Domínio: localhost

Porta: 8051

Company: 1

Code: 0001

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes/lookup/1|55

{
    "id": "1|55",
    "company": 1,
    "code": "55",
    "description": "AO CONSUMIDOR - DES"
}

1.2 - POST


1.2.1 - Post (Inserir um tipo de documento)


Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes

Domínio: localhost

Porta: 8051

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes

{
	"company": 1,
	"code": "TesteAPI",
	"description": "Teste de Inclusao 1",
	"payReceiveType": 3,
	"lastNumber": "0",
	"cnabSpecies": 1,
	"templateDocumentCode": "01",
	"isDevolution": 0,
	"payable": 1,
	"eventCode": 70,
	"eventPayableCode": 24,
	"sequentialDocumentNumber": 0,
	"useGeneralParameters": 0,
	"generateBankStatementCompensatedDischarge": 1,
	"eventPayableDischargeCode": 24,
	"considerLedger": 1,
	"doesNotCountZeroWriteOff": 0,
	"applyFormula": "F",
	"consistsCustomerVendor": 1,
	"generateDocumentNumber": 2,
	"eventCodeWriteOffAggrement": 24,
	"eventCodeGeneratedAggrement": 24,
	"calculateAvp": 0,
	"budgetBalanceEffects": "N",
	"inactive": 0,
	"considerCashFlow": 1
}
{
    "id": "1|TesteAPI",
    "company": 1,
    "code": "TesteAPI",
    "description": "Teste de Inclusao 1",
    "payReceiveType": 3,
    "lastNumber": "0",
    "cnabSpecies": 1,
    "mandatorySeller": 0,
    "templateDocumentCode": "01",
    "isDevolution": 0,
    "payable": 1,
    "eventCode": 70,
    "sequentialDocumentNumber": 0,
    "useGeneralParameters": 0,
    "generatesClearedBankStatement": 1,
    "considerLedger": 1,
    "doesNotCountZeroWriteOff": 0,
    "applyFormula": "F",
    "consistsCustomerVendor": 1,
    "generateDocumentNumber": "2",
    "calculateAvp": 0,
    "budgetBalanceEffects": "N",
    "inactive": 0,
    "considerCashFlow": "1",
    "generateIrrf": "0"
}
{
    "code": "FE006",
    "message": "Chave duplicada\r\n\r\nPossíveis causas:\r\n  - inclusão de registro cujo valor da chave primária já existe\r\n  - inclusão de registro cujo valor do índice único já existe",
    "detailedMessage": "Violation of PRIMARY KEY constraint 'PKFTDO'. Cannot insert duplicate key in object 'dbo.FTDO'. The duplicate key value is (1, TesteAPI).\r\nThe statement has been terminated.\r\n\r\nINSERT INTO [FTDO] ([CODCOLIGADA], [CODTDO], [DESCRICAO], [PAGREC], [CODCFO], [ULTIMONUMERO], [ESPECIECNAB], [ULTIMONUMEROFAT], [SEPARADORSEQ], [TIPOSEQ], [CODCOLCFO], [CODMODDOC], [EDEVOLUCAO], [BAIXAVEL], [CODEVENTO], [CODEVENTOBX], [CODEVENTOCRT], [NUMDOCSEQUENCIAL], [USARPARAMETROSGERAIS], [GERAREXTCOMPNABAIXA], [CODEVENTOBXCONT], [ALIQUOTAIRRF], [CONSIDERARNORAZAO], [NAOCONTABILIZABX0], [APLICFORMULA], [DFFORMULAJUROS], [DFFORMULADESCONTO], [DFFORMULAMULTA], [DFFORMULACAPITALIZACAO], [DFFORMULAVALOROP1], [DFFORMULAVALOROP2], [DFFORMULAVALOROP3], [DFFORMULAVALOROP4], [DFFORMULAVALOROP5], [DFFORMULAVALOROP6], [DFFORMULAVALOROP7], [DFFORMULAVALOROP8], [SERIEDOCUMENTO], [CONSISTECLIFOR], [GERANUMDOC], [CODEVENTOBXACORDO], [CODEVENTOGERADOACORDO], [CALCULAAVP], [REUTILIZACAO], [UTILIZACUPOMFISCAL], [EFEITOSALDOORCAMENTO], [AFETAORCAPARA], [CODEVENTOLIQDUVIDOSA], [CODEVENTOBXACORDOLIQDUVIDOSA], [CODEVENTOBXLIQDUVIDOSA], [INATIVO], [CODEVENTOBXCREDADIANT], [CONSIDERARNOFLXCX], [CLASSELCDPR], [GERAIRRF], [RECCREATEDBY], [RECCREATEDON], [RECMODIFIEDBY], [RECMODIFIEDON]) VALUES (1, 'TesteAPI', 'Teste de Inclusao 1', 3, null, '0', 1, null, null, null, , '01', 0, 1, 70, , , 0, 0, 1, , , 1, 0, 'F', null, null, null, null, null, null, null, null, null, null, null, null, null, 1, 2, , , 0, , , 'N', , , , , 0, , 1, , 0, 'mestre', CONVERT ( DATETIME, CONVERT ( VARCHAR, GETDATE(), 120) ), 'mestre', CONVERT ( DATETIME, CONVERT ( VARCHAR, GETDATE(), 120) ))",
    "helpUrl": "",
    "details": null
}

1.3 - PATCH


1.3.1 - Patch (Atualização parcial de um tipo de documento)


Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes/{company}|{code}

Domínio: localhost

Porta: 8051

Company: 1

Code: TesteApi

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes/1|TesteAPI

{
	"description": "Teste de Edição 1",
	"lastNumber": "125"
}
{
    "id": "1|TesteAPI",
    "company": 1,
    "code": "TesteAPI",
    "description": "Teste de Edição 1",
    "payReceiveType": 3,
    "lastNumber": "125",
    "cnabSpecies": 1,
    "mandatorySeller": 0,
    "templateDocumentCode": "01",
    "isDevolution": 0,
    "payable": 1,
    "eventCode": 70,
    "sequentialDocumentNumber": 0,
    "useGeneralParameters": 0,
    "generatesClearedBankStatement": 1,
    "considerLedger": 1,
    "doesNotCountZeroWriteOff": 0,
    "applyFormula": "F",
    "consistsCustomerVendor": 1,
    "generateDocumentNumber": "2",
    "calculateAvp": 0,
    "budgetBalanceEffects": "N",
    "inactive": 0,
    "considerCashFlow": "1",
    "generateIrrf": "0"
}
{
    "Code": "FE016",
    "Message": "O Corpo da mensagem contêm valores inválidos.",
    "DetailMessage": "",
    "HelpUrl": "http://tdn.totvs.com/x/e0F0GQ",
    "Details": null
}

1.4 - PUT


1.4.1 - Put (Atualização completa de um tipo de documento)


Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes/{company}|{code}

Domínio: localhost

Porta: 8051

Company: 1

Code: TesteApi

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes/1|TesteAPI

{
	"description": "Teste de Edição 1",
	"payReceiveType": 3,
	"lastNumber": "0",
	"cnabSpecies": 1,
	"templateDocumentCode": "01",
	"isDevolution": 0,
	"payable": 1,
	"eventCode": 70,
	"eventPayableCode": 24,
	"sequentialDocumentNumber": 0,
	"useGeneralParameters": 0,
	"generateBankStatementCompensatedDischarge": 1,
	"eventPayableDischargeCode": 24,
	"considerLedger": 1,
	"doesNotCountZeroWriteOff": 0,
	"applyFormula": "F",
	"consistsCustomerVendor": 1,
	"generateDocumentNumber": 2,
	"eventCodeWriteOffAggrement": 24,
	"eventCodeGeneratedAggrement": 24,
	"calculateAvp": 0,
	"budgetBalanceEffects": "N",
	"inactive": 0,
	"considerCashFlow": 1
}
{
    "id": "1|TesteAPI",
    "company": 1,
    "code": "TesteAPI",
    "description": "Teste de Edição 1",
    "payReceiveType": 3,
    "lastNumber": "0",
    "cnabSpecies": 1,
    "mandatorySeller": 0,
    "templateDocumentCode": "01",
    "isDevolution": 0,
    "payable": 1,
    "eventCode": 70,
    "sequentialDocumentNumber": 0,
    "useGeneralParameters": 0,
    "generatesClearedBankStatement": 1,
    "considerLedger": 1,
    "doesNotCountZeroWriteOff": 0,
    "applyFormula": "F",
    "consistsCustomerVendor": 1,
    "generateDocumentNumber": "2",
    "calculateAvp": 0,
    "budgetBalanceEffects": "N",
    "inactive": 0,
    "considerCashFlow": "1",
    "generateIrrf": "0"
}
{
    "Code": "FE016",
    "Message": "O Corpo da mensagem contêm valores inválidos.",
    "DetailMessage": "",
    "HelpUrl": "http://tdn.totvs.com/x/e0F0GQ",
    "Details": null
}

1.5 - DELETE


1.5.1 - Delete (Exclui uma Conta/Caixa)


Máscara de Url: http://{domínio}:{porta}/api/financial/v1/documenttypes/{company}|{code}

Domínio: localhost

Porta: 8051

Company: 1

Code: TesteAPI

Url Utilizada: http://localhost:8051/api/financial/v1/documenttypes/1|TesteAPI

Obs.: Em caso de sucesso, será retornado o respondeCode = 204 e a resposta em branco.

{
    "Code": "FE011",
    "Message": "Registro não encontrado na base de dados.",
    "DetailMessage": "",
    "HelpUrl": "",
    "Details": null
}