Pular para o conteúdo

Criar Contrato

Crie contratos no Xjur a partir do seu sistema — por exemplo, abrir a pasta de um contrato assim que ele nasce no seu ERP ou CRM. O Xjur aplica as regras do cliente: numeração da pasta, fluxo de aprovação e minuta padrão.

AmbienteURL Base
Produçãohttps://apim-xjur-prd.xjur.com.br/connect
Homologaçãohttps://apim-xjur-qa.xjur.com.br/connect

Chame POST /Autenticacao/AuthenticateUserService com as credenciais do usuário de serviço e guarde o campo token. Veja Obtendo o Token JWT.

2. Descubra o tipo de contrato e os campos que ele exige

Seção intitulada “2. Descubra o tipo de contrato e os campos que ele exige”

Todo contrato tem um tipo, e é o tipo que define quais campos são obrigatórios — isso varia por cliente, inclusive com campos personalizados. Antes de criar, consulte:

GET /contrato/tipos HTTP/1.1
GET /contrato/tipos/1307/campos HTTP/1.1

A segunda rota devolve, para cada campo, o rótulo, se é obrigatório e onde enviá-lo no payload. O detalhamento está em Campos Dinâmicos.

No payload você pode informar tipoContratoId (mais rápido) ou tipoContrato com o nome exato.

3. Decida: pasta nova ou instrumento em pasta existente

Seção intitulada “3. Decida: pasta nova ou instrumento em pasta existente”

No Xjur os contratos ficam em pastas. Uma pasta reúne o contrato original e os instrumentos derivados dele (aditivos, distratos).

SituaçãoComo enviar
Contrato novonovaPasta: true (padrão) e, opcionalmente, nomePasta
Aditivo, distrato ou outro instrumento de um contrato que já existenovaPasta: false + pastaId e, se quiser apontar o contrato de origem, contratoOrigemId

O número do contrato é gerado pelo Xjur (pasta + sequência do instrumento, ex.: 114330.001), conforme a regra de numeração do cliente. Ele não pode ser enviado.

CampoTipoObrigatórioDescrição
codigostringRecomendadoId do contrato no seu sistema (até 100 caracteres). É a chave de idempotência
novaPastabooleanNãoPadrão true
nomePastastringNãoNome da pasta, quando novaPasta = true
pastaIdintegerSe novaPasta = falsePasta que receberá o instrumento
contratoOrigemIdintegerNãoContrato da mesma pasta que origina o instrumento. Só com novaPasta = false
tipoContratoIdintegerUm dos doisId do tipo (GET /contrato/tipos)
tipoContratostringUm dos doisNome exato do tipo
statusContratoIdintegerNãoStatus inicial. Omitido, vale o status padrão de cadastro
objetostringNãoObjeto do contrato
observacoesstringNãoObservações
dataInicioVigencia / dataFimVigenciadateNãoO início não pode ser posterior ao fim
prazoEmMesesintegerNãoPrazo do contrato
dataAssinatura / dataAprovacaodateNão
valorTotalnumberNãoNão pode ser negativo
moedaId, indiceId, periodicidadeId, quantidadePeriodicidade, tipoVigenciaIdintegerNãoIds dos cadastros do Xjur
departamentoIdintegerNãoDepartamento responsável
gestorIdintegerNãoUsuário do Xjur gestor do contrato
urgente / restritobooleanNãoPadrão false. Contrato restrito só é visto por quem tem esse acesso
partesContrariasarrayNãoVer Partes contrárias
empresasarrayNãoVer Empresas
advogadosInternosarrayNão{ advogadoInternoId, principal }
centrosCustoarrayNão{ tipoCentroCustoId, percentual } — a soma dos percentuais deve ser 100
camposPersonalizadosarrayNãoVer Campos personalizados
validarCamposObrigatoriosbooleanNãoPadrão true. Com false, não confere os campos obrigatórios do tipo de contrato
CampoTipoObrigatórioDescrição
nome + documentostringUm dos doisCPF/CNPJ com ou sem máscara. O Xjur localiza a pessoa e a cadastra quando ainda não existe
pessoaIdintegerUm dos doisPessoa já cadastrada no Xjur. Quando informado, valem o nome e o documento do cadastro
tipoDocumentostringNãoCPF, CNPJ ou OUTROS. Deduzido pelo tamanho do documento quando omitido
papelSignatarioIdintegerUm dos doisId do papel (GET /xsigner/papeis-signatario)
papelstringUm dos doisNome exato do papel (ex.: Contratante)
principalbooleanNãoNo máximo uma parte principal. Se nenhuma for marcada, a primeira da lista é a principal
email, telefone, celularstringNãoContato
codigostringNãoCódigo da parte no seu sistema
enderecoobjectSimAo menos a cidade — ver abaixo

endereco — o Xjur exige a cidade de cada parte contrária:

CampoDescrição
cidadeIdId da cidade no Xjur, ou
cidade + estadoNome da cidade e o estado, por nome (São Paulo) ou UF (SP). A cidade precisa existir no cadastro do Xjur com exatamente esse nome
paisOpcional; assume Brasil
cep, logradouro, endereco, numero, complemento, bairroOpcionais. logradouro é o tipo (Rua, Avenida) e endereco o nome

Empresas do grupo do cliente que figuram no contrato.

CampoTipoObrigatórioDescrição
empresaIdintegerSimId da empresa no Xjur
papelSignatarioId / papelinteger / stringUm dos doisPapel da empresa no contrato
principalbooleanNãoNo máximo uma. Sem marcação, a primeira é a principal
codigostringNãoCódigo livre

Campos criados pelo cliente no Xjur. O campoId, o valor a preencher e as opções vêm de GET /contrato/tipos/{id}/campos. Informe campoId e exatamente um valor (texto, valor, inteiro, data, booleano, opcaoId ou usuarioId):

"camposPersonalizados": [
{ "campoId": 882, "texto": "Pedido 4500012345" },
{ "campoId": 12938, "opcaoId": 90101 }
]

A tabela de tipos está em Campos Dinâmicos.

POST /contrato HTTP/1.1
Host: apim-xjur-qa.xjur.com.br/connect
Authorization: Bearer <token>
X-XJUR-SUBSCRIPTION-KEY: <sua-chave>
Content-Type: application/json
{
"codigo": "ERP-2026-000123",
"nomePasta": "Fornecimento ACME 2026",
"tipoContratoId": 1307,
"objeto": "Confidencialidade para negociação de fornecimento",
"dataInicioVigencia": "2026-10-01",
"dataFimVigencia": "2027-09-30",
"prazoEmMeses": 12,
"valorTotal": 150000.00,
"departamentoId": 355,
"partesContrarias": [
{
"nome": "ACME Distribuidora Ltda",
"documento": "11.222.333/0001-81",
"papel": "Contratante",
"email": "contratos@acme.com.br",
"endereco": { "cidade": "Campinas", "estado": "SP", "cep": "13010-000" }
}
],
"empresas": [
{ "empresaId": 7, "papel": "Contratada" }
],
"centrosCusto": [
{ "tipoCentroCustoId": 4, "percentual": 60 },
{ "tipoCentroCustoId": 9, "percentual": 40 }
]
}

Resposta de sucesso (201):

{
"contratoId": 114344,
"numeroContrato": "114330.001",
"codigo": "ERP-2026-000123",
"pastaId": 114330,
"pastaNome": "Fornecimento ACME 2026",
"tipoContratoId": 1307,
"tipoContrato": "Acordo de Confidencialidade",
"statusContratoId": 1,
"status": "Em Elaboração",
"objeto": "Confidencialidade para negociação de fornecimento",
"dataInicioVigencia": "2026-10-01T00:00:00",
"dataFimVigencia": "2027-09-30T00:00:00",
"prazoEmMeses": 12,
"valorTotal": 150000.00,
"departamento": { "id": 355, "nome": "Jurídico Contratos" },
"urgente": false,
"restrito": false,
"dataCadastro": "2026-09-19T00:39:20",
"partesContrarias": [
{
"parteContrariaId": 88211,
"pessoaId": 40317,
"nome": "ACME Distribuidora Ltda",
"documento": "11222333000181",
"papelSignatarioId": 12,
"papel": "Contratante",
"principal": true,
"email": "contratos@acme.com.br"
}
],
"empresas": [
{ "empresaId": 7, "nome": "Empresa do Grupo S.A.", "papelSignatarioId": 13, "papel": "Contratada", "principal": true }
],
"jaExistia": false
}

Campos nulos são omitidos. Guarde o contratoId e o numeroContrato.

GET /contrato/114344 HTTP/1.1

Devolve o mesmo formato da criação, com tipo, status, partes contrárias e empresas atualizados.

O codigo é a chave de idempotência. Antes de criar, o XJUR Connect procura um contrato do cliente com exatamente esse código:

SituaçãoResposta
Não existeCria o contrato — 201, jaExistia: false
Já existeDevolve o contrato existente — 200, jaExistia: true. Nada é criado nem alterado

Isso torna seguro repetir a chamada depois de um timeout ou erro de rede. Sem codigo, cada chamada cria um contrato novo.

  • O contrato nasce com o status padrão de cadastro (normalmente Em Elaboração), salvo se statusContratoId for informado.
  • O fluxo de aprovação do tipo de contrato é iniciado e os compromissos da primeira fase são criados para os responsáveis.
  • Quando o tipo de contrato tem minuta padrão, ela é gerada automaticamente.
  • Com novaPasta = false, partes contrárias, empresas, departamento e centros de custo não enviados são herdados do primeiro contrato da pasta.
  • Se o documento de alguma parte contrária for o de uma empresa do grupo marcada como parte relacionada, o contrato é sinalizado como parte relacionada.

Com o contrato criado, você pode usar as demais integrações sobre ele: cadastro de partes contrárias e representantes e atualização via SAP.