# Criação de fatura

Para criar uma fatura, é necessário enviar um pedido POST.

### O que o método permite fazer

* Cria uma fatura única
* Retorna um link de pagamento ou detalhes de pagamento
* Permite passar dados adicionais

### Ponto de extremidade

<mark style="color:verde;">`POST`</mark> `https://api.cryptocloud.plus/v2/invoice/create`

### Cabeçalhos

| Nome                                               | Tipo   | Exemplo                             | Descrição               |
| -------------------------------------------------- | ------ | ----------------------------------- | ----------------------- |
| Autorização<mark style="color:vermelho;">\*</mark> | string | Token eyJ0eXAiOiJK<...>4npi1ksS8tSY | Chave da API do projeto |

### Corpo da solicitação

Parâmetros-chave

| Nome                                            | Tipo   | Exemplo           | Descrição                                                                                                                                                                                                            |
| ----------------------------------------------- | ------ | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| shop\_id<mark style="color:vermelho;">\*</mark> | string | NGpD44<...>KXRdQ  | Identificador único da loja na conta pessoal                                                                                                                                                                         |
| amount<mark style="color:vermelho;">\*</mark>   | float  | 100               | Valor do pagamento em USD                                                                                                                                                                                            |
| currency                                        | string | USD               | <p>Moedas de conversão disponíveis:</p><p></p><p>USD, UZS, KGS, KZT, AMD, AZN, BYN, AUD, TRY, AED, CAD, CNY, HKD, IDR, INR, JPY, PHP, SGD, THB, VND, MYR, RUB, UAH, EUR, GBP.</p><p></p><p>A moeda padrão é USD.</p> |
| order\_id                                       | string | ORDER\_93223      | Número personalizado da fatura no sistema externo                                                                                                                                                                    |
| email                                           | string | <email@gmail.com> | Endereço de e-mail do pagador                                                                                                                                                                                        |

Parâmetros opcionais

**add\_fields** — um objeto para passar dados adicionais

| Nome        | Tipo | Exemplo                                                                     | Descrição             |
| ----------- | ---- | --------------------------------------------------------------------------- | --------------------- |
| add\_fields | dict | <p>{time\_to\_pay: {</p><p> "hours": 24, "minutes": 0</p><p> },</p><p>}</p> | Parâmetros adicionais |

{% hint style="warning" %}
Os parâmetros opcionais devem ser passados dentro do **add\_fields** objeto.
{% endhint %}

<table data-full-width="false"><thead><tr><th width="215">Nome</th><th width="175.8984375">Tipo</th><th width="193.6492919921875">Exemplo</th><th width="196">Descrição</th></tr></thead><tbody><tr><td>time_to_pay</td><td>dict</td><td>{ "hours": 24, "minutes": 0 }</td><td>Prazo de validade da fatura</td></tr><tr><td>available_currencies</td><td>list[string]</td><td>[ "USDT_TRC20", "ETH", "BTC" ]</td><td><p>Moedas de pagamento disponíveis:<br></p><p>BTC, LTC, TRX, SOL, TON, BNB, ETH, ETH_ARB, ETH_BASE, ETH_OPT, USDT_ARB, USDT_BSC, USDT_ERC20, USDT_OPT, USDT_SOL, USDT_TON, USDT_TRC20, USDC_ARB, USDC_BASE, USDC_BSC, USDC_ERC20, USDC_OPT, USDC_SOL, DAI_ARB, DAI_BASE, DAI_BSC, DAI_ERC20, DAI_OPT, USDD_TRC20, PYUSD_ERC20, PYUSD_SOL, XAUT_ERC20, XAUT_TON, ARB_ARB, OP_OPT, PEPE_BSC, PEPE_ERC20, SHIB_BSC, SHIB_ERC20, TRUMP_SOL</p></td></tr><tr><td>criptomoeda</td><td>string</td><td>ETH</td><td><p>Selecionando a moeda de pagamento em nome do usuário.<br></p><p>Se uma moeda for especificada, a página de pagamento exibirá os detalhes de pagamento sem a opção de seleção de moeda.<br></p><p>O endereço e o valor também serão retornados na resposta da API.</p></td></tr></tbody></table>

### Exemplos de solicitação

Estes exemplos mostram como enviar uma solicitação para criar uma fatura. Observe que você deve fornecer sua chave de API no `Autorização` cabeçalho para autorizar a solicitação com sucesso.

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST \
     -H "Authorization: Token <API KEY>" \
     -H "Content-Type: application/json" \
     -d '{"amount": 100, "shop_id": "xBAivfPIbskwuEWj", "currency": "USD"}' \
     "https://api.cryptocloud.plus/v2/invoice/create"
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

url = "https://api.cryptocloud.plus/v2/invoice/create"
headers = {
    "Authorization": "Token <API KEY>",
    "Content-Type": "application/json"
}

data = {
    "amount": 100,
    "shop_id": "xBAivfPIbskwuEWj",
    "currency": "USD"
}

response = requests.post(url, headers=headers, json=data)

if response.status_code == 200:
    print("Sucesso:", response.json())
else:
    print("Falha:", response.status_code, response.text)
```

{% endtab %}

{% tab title="JavaScript " %}
{% code title="Fetch.js:" %}

```javascript
const url = 'https://api.cryptocloud.plus/v2/invoice/create';
const headers = new Headers({
    'Authorization': 'Token <API KEY>',
    'Content-Type': 'application/json'
});
const data = {
    amount: 100,
    shop_id: 'xBAivfPIbskwuEWj',
    currency: 'USD'
};

fetch(url, {
    method: 'POST',
    headers,
    body: JSON.stringify(data)
})
.then(response => {
    if (response.ok) {
        return response.json();
    } else {
        return Promise.reject('Erro de criação');
    }
})
.then(data => {
    console.log('Sucesso:', data);
})
.catch(error => {
    console.error('Falha:', error);
});
```

{% endcode %}

{% code title="Ajax.js:" %}

```javascript
$.ajax({
    url: 'https://api.cryptocloud.plus/v2/invoice/create',
    method: 'POST',
    headers: {
        'Authorization': 'Token <API KEY>',
        'Content-Type': 'application/json'
    },
    data: JSON.stringify({
        amount: 100,
        shop_id: 'xBAivfPIbskwuEWj',
        currency: 'USD'
    }),
    success: function(data) {
        console.log('Sucesso:', data);
    },
    error: function(error) {
        console.error('Falha:', error);
    }
});
```

{% endcode %}

{% code title="Axios.js:" %}

```javascript
const axios = require('axios');

const url = 'https://api.cryptocloud.plus/v2/invoice/create';
const headers = {
    'Authorization': 'Token <API KEY>',
    'Content-Type': 'application/json'
};
const data = {
    amount: 100,
    shop_id: 'xBAivfPIbskwuEWj',
    currency: 'USD'
};

axios.post(url, data, { headers })
    .then(response => {
        console.log('Sucesso:', response.data);
    })
    .catch(error => {
        console.error('Falha:', error);
    });
```

{% endcode %}
{% endtab %}

{% tab title="PHP" %}
{% code title="cURL:" %}

```php
<?php
$url = "https://api.cryptocloud.plus/v2/invoice/create";
$headers = array(
    "Authorization: Token <API KEY>",
    "Content-Type: application/json"
);

$data = array(
    "amount" => 100,
    "shop_id" => "xBAivfPIbskwuEWj",
    "currency" => "USD"
);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if($http_code == 200){
    echo "Sucesso: " . $response;
} else {
    echo "Falha: " . $http_code . " " . $response;
}

curl_close($ch);
?>
```

{% endcode %}

{% code title="File\_get\_contents:" %}

```php
<?php
$url = "https://api.cryptocloud.plus/v2/invoice/create";
$headers = array(
    "http" => array(
        "header" => "Authorization: Token <API KEY>\r\n" .
                    "Content-Type: application/json\r\n",
        "method" => "POST",
        "content" => json_encode(array(
            "amount" => 100,
            "shop_id" => "xBAivfPIbskwuEWj",
            "currency" => "USD"
        )),
    ),
);

$context  = stream_context_create($headers);
$response = file_get_contents($url, false, $context);
$http_code = $http_response_header[0];

if(strpos($http_code, "200")){
    echo "Sucesso: " . $response;
} else {
    echo "Falha: " . $http_code . " " . $response;
}
?>
```

{% endcode %}
{% endtab %}
{% endtabs %}

### Exemplos de resposta

Uma solicitação bem-sucedida retorna uma resposta com o estado `sucesso` e um `resultado` objeto.

{% tabs %}
{% tab title="200: OK – A fatura foi criada" %}

```json
{
    "estado": "sucesso",
    "result": {
        "uuid": "INV-89UX09KA",
        "created": "2026-01-27 09:03:58.958133",
        "address": "0xb07427fc721C23674c48233ffE93D3846ee58B63",
        "expiry_date": "2026-01-28 09:03:57.493361",
        "side_commission": "client",
        "side_commission_service": "merchant",
        "type_payments": "crypto",
        "amount": 0.034187,
        "amount_usd": 100.0,
        "amount_in_fiat": 100.0,
        "fee": 1.499999996212864e-06,
        "fee_usd": 0.0,
        "service_fee": 0.00065,
        "service_fee_usd": 1.9,
        "fiat_currency": "USD",
        "status": "created",
        "is_email_required": false,
        "link": "https://pay.cryptocloud.plus/89UX09KA",
        "invoice_id": null,
        "currency": {
            "id": 3,
            "code": "ETH",
            "fullcode": "ETH",
            "network": {
                "code": "ERC20",
                "id": 3,
                "icon": "https://cdn.cryptocloud.plus/img/network/ERC.svg",
                "fullname": "Ethereum"
            },
            "name": "Ethereum",
            "is_email_required": false,
            "stablecoin": false,
            "icon_base": "https://cdn.cryptocloud.plus/img/currency/ETH.svg",
            "icon_network": "https://cdn.cryptocloud.plus/img/currency/ETH.svg",
            "icon_qr": "https://cdn.cryptocloud.plus/img/stroke/ETH_STROKE.svg",
            "order": 9
        },
        "project": {
            "id": 1,
            "name": "Test",
            "fail": "https://test.com/failed-payment",
            "success": "https://test.com/successful-payment",
            "logo": "https://static.cryptocloud.plus/logo/L52hWwjt98uYtUF91765782359.174416.jpg"
        },
        "test_mode": false
    }
}
```

{% endtab %}
{% endtabs %}

### Parâmetros da resposta

O `resultado` objeto contém:

<table data-full-width="false"><thead><tr><th>Nome</th><th>Tipo</th><th width="198.35498046875">Exemplo</th><th>Descrição</th></tr></thead><tbody><tr><td>uuid</td><td>string</td><td>INV-89UX09KA</td><td>Identificador único da fatura com o prefixo INV</td></tr><tr><td>criado</td><td>string</td><td>2026-01-01 12:00:00.000000</td><td>Hora de criação da fatura no formato UTC+0: AAAA-MM-DD HH:MI:SS.FFFFFF</td></tr><tr><td>address</td><td>string</td><td>0xb07427&#x3C;...>E93D3846ee58B63</td><td><p>Endereço de pagamento</p><p></p><p>Será preenchido automaticamente apenas se uma criptomoeda para pagamento for selecionada.</p><p></p><p>Para selecionar a moeda em nome do cliente, especifique uma moeda suportada pelo projeto em <code>add_fields.cryptocurrency</code>.</p></td></tr><tr><td>expiry_date</td><td>string</td><td>2026-01-02 12:00:00.000000</td><td><p>Data de expiração da fatura no formato UTC+0: AAAA-MM-DD HH:MI:SS.FFFFFF.</p><p></p><p>Após o tempo de expiração, o status da fatura mudará para <code>cancelado</code> se o pagamento não tiver sido recebido.</p></td></tr><tr><td>side_commission</td><td>string</td><td>client</td><td>Pagador da taxa de transferência</td></tr><tr><td>side_commission_cc</td><td>string</td><td>client</td><td>Pagador da taxa de serviço</td></tr><tr><td>amount</td><td>float</td><td>0.033366</td><td>Valor da fatura na criptomoeda selecionada</td></tr><tr><td>amount_usd</td><td>float</td><td>100.0</td><td>Valor da fatura em USD</td></tr><tr><td>amount_in_fiat</td><td>float</td><td>100.0</td><td>Valor da fatura na moeda de criação (depende do <code>currency</code> parâmetro)</td></tr><tr><td>fee</td><td>float</td><td>4.500000159168849e-06</td><td>Taxa de transferência da fatura</td></tr><tr><td>fee_usd</td><td>float</td><td>0.01</td><td>Taxa de transferência da fatura em USD</td></tr><tr><td>service_fee</td><td>float</td><td>0.000634</td><td>Taxa de serviço</td></tr><tr><td>service_fee_usd</td><td>float</td><td>1.9</td><td>Taxa de serviço em USD</td></tr><tr><td>fiat_currency</td><td>string</td><td>USD</td><td>Código da moeda fiduciária em que a fatura foi criada</td></tr><tr><td>estado</td><td>string</td><td>criado</td><td><p>Status da fatura</p><p></p><p>Quando uma solicitação de criação de fatura é enviada, o status é sempre <code>criado</code>.</p><p></p><p>Outros status possíveis: <code>paid</code> (paga), <code>partial</code> (parcialmente paga), <code>overpaid</code> (paga em excesso), e <code>cancelado</code> (cancelada).</p></td></tr><tr><td>is_email_required</td><td>bool</td><td>false</td><td>Parâmetro para exigir o e-mail do pagador na fatura</td></tr><tr><td>link</td><td>string</td><td>pay.cryptocloud.plus/89UX09KA</td><td>Link para a página da fatura</td></tr><tr><td>currency</td><td>dict</td><td><p>"currency": {</p><p>            "id": 3,</p><p>            "code": "ETH",</p><p>            "fullcode": "ETH",</p><p>            "network": {</p><p>                "code": "ERC20",</p><p>                "id": 3,</p><p>                "icon": "https://cdn.cryptocloud.plus/img/network/ERC.svg",</p><p>                "fullname": "Ethereum"</p><p>            },</p><p>            "name": "Ethereum",</p><p>            "is_email_required": false,</p><p>            "stablecoin": false,</p><p>            "icon_base": "https://cdn.cryptocloud.plus/img/currency/ETH.svg",</p><p>            "icon_network": "https://cdn.cryptocloud.plus/img/currency/ETH.svg",</p><p>            "icon_qr": "https://cdn.cryptocloud.plus/img/stroke/ETH_STROKE.svg",</p><p>            "order": 9</p><p>        }</p></td><td><p>Objeto da criptomoeda selecionada na fatura.</p><p></p><p>Também contém o <code>network</code> objeto — informações sobre a rede da moeda selecionada.</p></td></tr><tr><td>project</td><td>dict</td><td><p>"project": {</p><p>            "id": 0,</p><p>            "name": "MyShop",</p><p>            "fail": "https://test.com/failed-payment",</p><p>            "success": "https://test.com/successful-payment",</p><p>            "logo": "https://static.cryptocloud.plus/logo/logo.jpg"</p><p>        }v</p></td><td>Objeto contendo informações do projeto</td></tr><tr><td>test_mode</td><td>bool</td><td>false</td><td>Assinatura da fatura de teste</td></tr></tbody></table>


---

# Agent Instructions: 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.cryptocloud.plus/pt/referencia-da-api-v2/create-invoice.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.
