> For the complete documentation index, see [llms.txt](https://docs.4p.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.4p.finance/off-ramp/criando-uma-transacao.md).

# Criando uma transação

### Serviço

• Envia um JSON contendo os dados necessários para a criação de uma venda imediata.

• Retorna um JSON contendo os dados da conversão criada, inclusive rede, token e carteira para qual os criptoativos deverão ser enviados.

### Solicitação de registro/transação

A requisição para realizar a criação/registro de uma transação deverá ter como corpo da solicitação JSON as informações necessárias para registrar a transação.

### Exemplo de payload

```json
{
    "person_document": "01234567899",
    "email": "usuario@example.com",
    "amount_crypto": 1.10,
    "custom_id": "PN123",
    "custom_data": {
        "chain": "Arbitrum",
        "asset": "USDT"
    },
    "sender_wallet": "0x4328...edFB995B6I",
    "destination_pix_key": "01234567899",
    "notification_url": "https://seu-dominio-webhook.com.br/param=tes&token=abcd-dfg"
}
```

### Requisição

## Solicita a criação/registro de uma transação.

<mark style="color:green;">`PUT`</mark> `https://api.4p.finance/v1/cryptopix/transaction`

Realiza a solicitação do registro de uma transação.

#### Headers

| Name                                        | Type   | Description    |
| ------------------------------------------- | ------ | -------------- |
| x-api-key<mark style="color:red;">\*</mark> | String | Sua chave API. |

#### Request Body

<table><thead><tr><th width="202.765625">Name</th><th width="129.25">Type</th><th>Description</th></tr></thead><tbody><tr><td>custom_id <mark style="color:red;">*</mark></td><td>String</td><td>Id da transação. Permite que o usuário recebedor faça a conciliação dos pagamentos. Deve ser único por transação e conter no máximo 255 caracteres.</td></tr><tr><td>destination_pix_key<mark style="color:red;">*</mark></td><td>String</td><td>Chave PIX para qual o valor fiat (BRL) será enviado após o recebimento e conversão dos criptoativos. Caso não seja enviada, o PIX será enviado para chave que deverá ter sido previamente informada.</td></tr><tr><td>sender_wallet<mark style="color:red;">*</mark></td><td>String</td><td>Chave para envio da carteira do cliente pagador da qual obrigatoriamente deverá se originar os envio de criptoativos.</td></tr><tr><td>notification_url <mark style="color:red;">*</mark></td><td>String</td><td>URL que receberá as notificações POST encaminhadas pelo serviço de webhook logo após ao criptoativos serem enviados e convertidos.</td></tr><tr><td>amount_crypto<mark style="color:red;">*</mark></td><td>Float</td><td>Valor original da cobrança em criptoativos. Deve ser informado um valor maior ou igual a 0.01, com casas decimais.</td></tr><tr><td>person_document<mark style="color:red;">*</mark></td><td>String</td><td>Número de documento ou identificação do usuário ao qual a transação deverá ser associada, equivalente ao CPF. </td></tr><tr><td>custom_data<mark style="color:red;">*</mark></td><td>Object</td><td>Objeto pai para dados relacionados a rede e token que serão alvo da transação.</td></tr></tbody></table>

{% tabs %}
{% tab title="200: OK Retorno após criar/registrar uma transação." %}

```json
{
    "http_code": 200,
    "success": true,
    "info": {
        "result": "p2p_transaction_cryptopix_created",
        "message": "P2P transaction promise has been created. Please transfer the crypto to the indicated wallet to proceed.",
        "data": {
            "txid": "da75257ce3f19483ef1049fef890a310",
            "amount_crypto": 1.10,
            "asset": "USDT",
            "chain": "arbitrum",
            "amount_brl": 5.49,
            "receiver_wallet": "0x4328...edFB995B6I",
            "expires": 1769608117
        }
    }
}
```

{% endtab %}
{% endtabs %}

### Retorno

Observe que o objeto data contém as informações da transação, incluindo a carteira de destino dos criptoativos (receiver\_wallet). É necessário que os ativos sejam enviados exatamente no valor informado para essa carteira, a partir da carteira do cliente pagador indicada no momento da criação da transação.

> <mark style="color:$warning;">Destacamos que será retornada no</mark> <mark style="color:$warning;"></mark>*<mark style="color:$warning;">data</mark>* <mark style="color:$warning;"></mark><mark style="color:$warning;">uma chave</mark> <mark style="color:$warning;"></mark>*<mark style="color:$warning;">expire</mark>*<mark style="color:$warning;">, ela representa o período máximo de monitoramento da transação. Após essa expiração, uma nova transação deverá ser criada antes do envio dos criptoativos.</mark>

### Conclusão

Após a confirmação do recebimento das criptomoedas, o valor convertido em fiat será enviado automaticamente para o PIX informado no payload da requisição ou anteriormente associado a conta do usuário.

O tempo médio para envio e finalização da transação é de aproximadamente 10 segundos, podendo variar de acordo com a rede blockchain selecionada e as condições da própria rede no momento da operação.

Saiba mais sobre as notificações e callbacks na próxima sessão.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.4p.finance/off-ramp/criando-uma-transacao.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
