> For the complete documentation index, see [llms.txt](https://docs.stric.com.br/documentacao/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stric.com.br/documentacao/transferencias/transferencia-entre-contas.md).

# Transferência Entre Contas

Informações sobre o processo de transferência entre contas no mesmo banco.

A transferência entre contas, também conhecida como Peer-to-Peer Transfer ou P2P, consiste na transferência digital de saldo entre contas que estão na mesma estrutura. É uma opção mais simples e rápida para a realização de transações cash-in e cash-out.

Para a efetivação de uma transferência P2P é feita uma verificação dos dados das contas envolvidas, como saldo e status. Uma vez confirmadas as informações de ambas as partes o processo é iniciado e acontece em poucos passos.

{% hint style="info" %}
Caso haja algum problema durante o processo de transferência P2P, como timeout, por exemplo, todo o processo é suspenso e as etapas que foram concluídas com sucesso são revertidas, equalizando o saldo de todas as contas envolvidas.
{% endhint %}

## Transferência entre contas

<mark style="color:green;">`POST`</mark> `https://dev.stric.com.br/p2p`

#### Headers

| Name                                            | Type   | Description         |
| ----------------------------------------------- | ------ | ------------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer Token        |
| account                                         | String | Conta a ser operada |

#### Request Body

| Name                                       | Type   | Description              |
| ------------------------------------------ | ------ | ------------------------ |
| amount<mark style="color:red;">\*</mark>   | Number | Valor a ser transferido  |
| document<mark style="color:red;">\*</mark> | String | CPF/CNPJ do beneficiário |

{% tabs %}
{% tab title="200: OK Caso de sucesso" %}

```javascript
{
    "credit": false,
    "amount": 3,
    "identifier": "76f007ff-9c0d-40d7-aa2b-e53c56118c5f",
    "description": "TRANSFERÊNCIA PARA BENEFICIARY_NAME",
    "rateValue": 0,
    "consignorName": "Consignor Full Name",
    "consignorDocument": "00000000000000",
    "consignorBankNumber": "450",
    "consignorBankBranch": "0001",
    "consignorBankAccount": "188848524",
    "consignorBankAccountDigit": "7",
    "beneficiaryName": "beneficiary Full Name",
    "beneficiaryDocument": "00000000000",
    "beneficiaryBankNumber": "450",
    "beneficiaryBankBranch": "0001",
    "beneficiaryBankAccount": "188848525",
    "beneficiaryBankAccountDigit": "8",
    "status": "PROCESSING",
    "id": "36ecc8cf-bc4a-40c6-b567-1531ad97f8a6",
    "date": "2022-06-20T22:14:27.163Z"
}
```

{% endtab %}

{% tab title="400: Bad Request CPF/CNPJ inválido" %}

```javascript
{
    "statusCode": 400,
    "error": "Bad Request",
    "message": "Validation failed",
    "validation": {
        "body": {
            "source": "body",
            "keys": [
                "document"
            ],
            "message": "\"document\" does not match any of the allowed types"
        }
    }
}
```

{% endtab %}

{% tab title="400: Bad Request CPF/CNPJ inexistente" %}

```javascript
{
    "statusCode": 400,
    "message": "AccoutTo not found",
    "friend": "Conta destinatario não existe"
}
```

{% endtab %}
{% endtabs %}

### Status da transferência

| Status       | Descrição                               |
| ------------ | --------------------------------------- |
| PROCESSING   | Transação em processamento              |
| DONE         | Transação processada e concluída        |
| CANCELED     | Transação cancelada.                    |
| ERRORBALANCE | Transação cancelada por falta de saldo. |
