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.
Ambientes
Seção intitulada “Ambientes”| Ambiente | URL Base |
|---|---|
| Produção | https://apim-xjur-prd.xjur.com.br/connect |
| Homologação | https://apim-xjur-qa.xjur.com.br/connect |
Passo a passo
Seção intitulada “Passo a passo”1. Obtenha o token JWT
Seção intitulada “1. Obtenha o token JWT”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.1GET /contrato/tipos/1307/campos HTTP/1.1A 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ção | Como enviar |
|---|---|
| Contrato novo | novaPasta: true (padrão) e, opcionalmente, nomePasta |
| Aditivo, distrato ou outro instrumento de um contrato que já existe | novaPasta: 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.
4. Monte o payload
Seção intitulada “4. Monte o payload”| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
codigo | string | Recomendado | Id do contrato no seu sistema (até 100 caracteres). É a chave de idempotência |
novaPasta | boolean | Não | Padrão true |
nomePasta | string | Não | Nome da pasta, quando novaPasta = true |
pastaId | integer | Se novaPasta = false | Pasta que receberá o instrumento |
contratoOrigemId | integer | Não | Contrato da mesma pasta que origina o instrumento. Só com novaPasta = false |
tipoContratoId | integer | Um dos dois | Id do tipo (GET /contrato/tipos) |
tipoContrato | string | Um dos dois | Nome exato do tipo |
statusContratoId | integer | Não | Status inicial. Omitido, vale o status padrão de cadastro |
objeto | string | Não | Objeto do contrato |
observacoes | string | Não | Observações |
dataInicioVigencia / dataFimVigencia | date | Não | O início não pode ser posterior ao fim |
prazoEmMeses | integer | Não | Prazo do contrato |
dataAssinatura / dataAprovacao | date | Não | |
valorTotal | number | Não | Não pode ser negativo |
moedaId, indiceId, periodicidadeId, quantidadePeriodicidade, tipoVigenciaId | integer | Não | Ids dos cadastros do Xjur |
departamentoId | integer | Não | Departamento responsável |
gestorId | integer | Não | Usuário do Xjur gestor do contrato |
urgente / restrito | boolean | Não | Padrão false. Contrato restrito só é visto por quem tem esse acesso |
partesContrarias | array | Não | Ver Partes contrárias |
empresas | array | Não | Ver Empresas |
advogadosInternos | array | Não | { advogadoInternoId, principal } |
centrosCusto | array | Não | { tipoCentroCustoId, percentual } — a soma dos percentuais deve ser 100 |
camposPersonalizados | array | Não | Ver Campos personalizados |
validarCamposObrigatorios | boolean | Não | Padrão true. Com false, não confere os campos obrigatórios do tipo de contrato |
Partes contrárias
Seção intitulada “Partes contrárias”| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
nome + documento | string | Um dos dois | CPF/CNPJ com ou sem máscara. O Xjur localiza a pessoa e a cadastra quando ainda não existe |
pessoaId | integer | Um dos dois | Pessoa já cadastrada no Xjur. Quando informado, valem o nome e o documento do cadastro |
tipoDocumento | string | Não | CPF, CNPJ ou OUTROS. Deduzido pelo tamanho do documento quando omitido |
papelSignatarioId | integer | Um dos dois | Id do papel (GET /xsigner/papeis-signatario) |
papel | string | Um dos dois | Nome exato do papel (ex.: Contratante) |
principal | boolean | Não | No máximo uma parte principal. Se nenhuma for marcada, a primeira da lista é a principal |
email, telefone, celular | string | Não | Contato |
codigo | string | Não | Código da parte no seu sistema |
endereco | object | Sim | Ao menos a cidade — ver abaixo |
endereco — o Xjur exige a cidade de cada parte contrária:
| Campo | Descrição |
|---|---|
cidadeId | Id da cidade no Xjur, ou |
cidade + estado | Nome 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 |
pais | Opcional; assume Brasil |
cep, logradouro, endereco, numero, complemento, bairro | Opcionais. logradouro é o tipo (Rua, Avenida) e endereco o nome |
Empresas
Seção intitulada “Empresas”Empresas do grupo do cliente que figuram no contrato.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
empresaId | integer | Sim | Id da empresa no Xjur |
papelSignatarioId / papel | integer / string | Um dos dois | Papel da empresa no contrato |
principal | boolean | Não | No máximo uma. Sem marcação, a primeira é a principal |
codigo | string | Não | Código livre |
Campos personalizados
Seção intitulada “Campos personalizados”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.
5. Crie o contrato
Seção intitulada “5. Crie o contrato”POST /contrato HTTP/1.1Host: apim-xjur-qa.xjur.com.br/connectAuthorization: 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.
6. Consulte o contrato
Seção intitulada “6. Consulte o contrato”GET /contrato/114344 HTTP/1.1Devolve o mesmo formato da criação, com tipo, status, partes contrárias e empresas atualizados.
Idempotência
Seção intitulada “Idempotência”O codigo é a chave de idempotência. Antes de criar, o XJUR Connect procura um contrato do cliente com exatamente esse código:
| Situação | Resposta |
|---|---|
| Não existe | Cria o contrato — 201, jaExistia: false |
| Já existe | Devolve 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 que acontece no Xjur
Seção intitulada “O que acontece no Xjur”- O contrato nasce com o status padrão de cadastro (normalmente Em Elaboração), salvo se
statusContratoIdfor 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.
Próximos passos
Seção intitulada “Próximos passos”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.