---
title: "Cria um protesto"
method: POST
path: "/api/CriaProtesto"
tags: ["Protesto"]
---

# Cria um protesto

`POST /api/CriaProtesto`

Esta rota permite a criação de um novo protesto no sistema.
O protesto pode ser criado vinculado a uma transação existente ou de forma manual (sem TransacaoId).
            
### Requisição - Campos Principais
            
| **Campo**              | **Tipo**  | **Descrição**                                                             | **Obrigatório** |
|------------------------|-----------|----------------------------------------------------------------------------|------------------|
| TransacaoId            | GUID (string) | Identificador único da transação. Se não informado, os dados do título devem ser preenchidos manualmente. | Não*             |
| TipoProtesto           | Enum (int) | Tipo do protesto. Veja valores abaixo | Sim              |
| ValorAProtestar        | Decimal   | Valor do saldo devedor atual do título | Sim              |
| ValorOriginal          | Decimal?  | Valor original do título. Obrigatório quando TransacaoId não for informado. | Condicional**    |
| DataEmissao            | DateTime? | Data de emissão do título. Obrigatório quando TransacaoId não for informado. | Condicional**    |
| DataVencimento        | DateTime? | Data de vencimento do título. Obrigatório quando TransacaoId não for informado. | Condicional**    |
| DadosDevedor          | Objeto    | Dados do sacado/devedor. Obrigatório quando TransacaoId não for informado. Veja estrutura abaixo. | Condicional**    |
| TituloEndossado       | Boolean?  | Indica se o título foi endossado (há um credor anterior). | Não              |
| CredorAnteriorId      | GUID?     | Identificador do credor anterior já cadastrado. Obrigatório se TituloEndossado = true e CredorAnterior não for informado. | Condicional***   |
| CredorAnterior        | Objeto    | Dados do credor anterior preenchidos manualmente. Obrigatório se TituloEndossado = true e CredorAnteriorId não for informado. Veja estrutura abaixo. | Condicional***   |
| DadosAdicionaisCliente| Objeto    | Dados adicionais do cliente (endereço), usados quando os dados da transação forem insuficientes. Veja estrutura abaixo. | Não              |
            
*TransacaoId é opcional. Se não informado, os campos marcados com ** tornam-se obrigatórios.
            
**Obrigatórios apenas quando TransacaoId não for informado: ValorOriginal, DataEmissao, DataVencimento, DadosDevedor.
            
***Obrigatório apenas quando TituloEndossado = true. Deve informar CredorAnteriorId OU CredorAnterior (não ambos).
            
### Estrutura do Objeto DadosDevedor
            
| **Campo**    | **Tipo** | **Descrição** | **Obrigatório** |
|--------------|----------|----------------|------------------|
| Documento    | String   | CPF/CNPJ do devedor | Sim (quando TransacaoId não informado) |
| Nome         | String   | Nome/Razão Social do devedor | Sim (quando TransacaoId não informado) |
| Email        | String   | Email do devedor | Não |
| Celular      | String   | Celular do devedor | Não |
| Cep          | String   | CEP do endereço do devedor | Sim (quando TransacaoId não informado) |
| Uf           | String   | UF do endereço do devedor | Sim (quando TransacaoId não informado) |
| Bairro       | String   | Bairro do endereço do devedor | Sim (quando TransacaoId não informado) |
| Municipio    | String   | Município do endereço do devedor | Sim (quando TransacaoId não informado) |
| Endereco     | String   | Endereço completo do devedor | Sim (quando TransacaoId não informado) |
            
### Estrutura do Objeto CredorAnterior
            
| **Campo**    | **Tipo** | **Descrição** | **Obrigatório** |
|--------------|----------|----------------|------------------|
| Documento    | String   | CPF/CNPJ do credor anterior | Sim (quando TituloEndossado = true) |
| Nome         | String   | Nome/Razão Social do credor anterior | Sim (quando TituloEndossado = true) |
| Cep          | String   | CEP do endereço do credor anterior | Sim (quando TituloEndossado = true) |
| Uf           | String   | UF do endereço do credor anterior | Sim (quando TituloEndossado = true) |
| Bairro       | String   | Bairro do endereço do credor anterior | Sim (quando TituloEndossado = true) |
| Municipio    | String   | Município do endereço do credor anterior | Sim (quando TituloEndossado = true) |
| Endereco     | String   | Endereço completo do credor anterior | Sim (quando TituloEndossado = true) |
            
### Estrutura do Objeto DadosAdicionaisCliente
            
| **Campo**    | **Tipo** | **Descrição** | **Obrigatório** |
|--------------|----------|----------------|------------------|
| Cep          | String   | CEP do endereço do cliente | Não |
| Uf           | String   | UF do endereço do cliente | Não |
| Bairro       | String   | Bairro do endereço do cliente | Não |
| Municipio    | String   | Município do endereço do cliente | Não |
| Endereco     | String   | Endereço completo do cliente | Não |
            
### Enum TipoProtesto
            
| Valor Enum               | Descrição                  |
|--------------------------|----------------------------|
| 0 - DuplicataMercantil   | Duplicata Mercantil        |
| 1 - DuplicataServico     | Duplicata de Serviço       |
| 2 - Contrato             | Contrato                   |
| 3 - CedulaCreditoBancario| Cédula de Crédito Bancário |
            
### Resposta

| **Campo**              | **Tipo**  | **Descrição**                                                             
|------------------------|-----------|----------------------------------------------------------------------------
| Retorno                | String    | Retorno da chamada, podendo ser os valores "CREATED" ou "ERROR".                   
| DetalhesErro           | List&lt;String&gt; | Detalhes do erro gerado, caso o retorno seja ERROR.                       
| TituloId               | Int       | Identificador do título gerado pelo Protesto24h.                                    

/// #### Cenário 1: Protesto vinculado a uma transação existente
- Informe o `TransacaoId` da transação cancelada.
- Campos obrigatórios: `TipoProtesto`, `ValorAProtestar`.
- Campos opcionais: `DadosAdicionaisCliente` (para transações PIX quando os dados do cliente forem insuficientes), `TituloEndossado`, `CredorAnterior`/`CredorAnteriorId`.
            
#### Cenário 2: Protesto manual (sem transação)
- Não informe o `TransacaoId` (ou informe null).
- Campos obrigatórios: `TipoProtesto`, `ValorAProtestar`, `ValorOriginal`, `DataEmissao`, `DataVencimento`, `DadosDevedor`.
- Campos opcionais: `DadosAdicionaisCliente`, `TituloEndossado`, `CredorAnterior`/`CredorAnteriorId`.

### Observações
- Em casos de transações PIX, os campos do objeto `DadosAdicionaisCliente` **devem ser preenchidos** quando os dados do cliente na transação forem insuficientes.
- Se os dados obrigatórios não forem informados, a requisição resultará em erro 400.
- Quando `TituloEndossado = true`, é obrigatório informar `CredorAnteriorId` OU `CredorAnterior` (não ambos).
- O custo do protesto é sempre assumido pelo credor/protestante, nunca pelo devedor.

## Headers

- `Aeskey` string, required

## Request body

- BknBankPagamentosBusinessCommunicationRequestCreateProtestRequest
  - `TransacaoId` string
  - `CobrancaId` string
  - `TipoProtesto` 'DuplicataMercantil' | 'DuplicataServico' | 'Contrato' | 'CedulaCreditoBancario', required
  - `ValorAProtestar` number, double, required
  - `ValorOriginal` number, double
  - `DataEmissao` string, date-time
  - `DataVencimento` string, date-time
  - `DadosAdicionaisCliente` BknBankPagamentosBusinessCommunicationRequestClientData
    - `Cep` string
    - `Uf` string
    - `Bairro` string
    - `Municipio` string
    - `Endereco` string
  - `TituloEndossado` boolean
  - `CredorAnteriorId` string, uuid
  - `CredorAnterior` BknBankPagamentosBusinessCommunicationRequestCredorAnteriorData
    - `Documento` string
    - `Nome` string
    - `Cep` string
    - `Uf` string
    - `Bairro` string
    - `Municipio` string
    - `Endereco` string
  - `DadosDevedor` BknBankPagamentosBusinessCommunicationRequestDebtorData
    - `Documento` string
    - `Nome` string
    - `Email` string
    - `Celular` string
    - `Cep` string
    - `Uf` string
    - `Bairro` string
    - `Municipio` string
    - `Endereco` string
  - `Origem` integer

## Response `201`

Protesto criado com sucesso

- BknBankPagamentosBusinessCommunicationResponseCreatedProtestResponse
  - `Retorno` 'CREATED' | 'ERROR'
  - `DetalhesErro` string[]
  - `TituloId` integer
  - `ProtestoId` string, uuid

## Other responses

- `400` — Requisição mal formatada ou parâmetros inválidos
- `401` — Não autorizado
- `403` — Acesso proibido
- `500` — Erro interno no servidor

---

[API](https://skmtc.net/meuk8/apis/k8-fintech.md) · [All operations](https://skmtc.net/meuk8/apis/k8-fintech/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/meuk8/k8-fintech/revisions/14db4977f490/schema)
