> 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

Esta página contém instruções de como solicitar a criação de uma transação na API da 4P Finance.

### 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.
