# Documentação API

## Autenticação - Chave de acesso

Todas as APIs do Carteiro Digital são autenticadas por Bearer Authentication. A validade do token de acesso é de vários dias, não sendo necessário gerar um novo a cada chamada de API. Mas um novo deve ser gerado sempre que uma chamada retornar erro 401 (unauthorized) ou outro equivalente. Para gerar um novo token de acesso, utilize a chamada abaixo.

<mark style="color:green;">`POST`</mark> `https://api.robbu.global/v1/login`

#### Path Parameters

| Name | Type   | Description                                                                                         |
| ---- | ------ | --------------------------------------------------------------------------------------------------- |
|      | object | { "administration": false, "company": "XPTO", "username": "josedasilva", "password": "1234567890" } |

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

```
{
    	"access_token": <token>,
    	"expire_in": 324684897,
    	"refresh_token": "",
    	"token_type": "Bearer"
}

```

{% endtab %}
{% endtabs %}

## Modo STANDARD / DIRECT

Verificação por token (código randômico de 4 dígitos ou primeiros dígitos do CPF/CNPJ) de documento já gerado

Utilize essa chamada para o envio de um documento PDF pronto.

Type STANDARD: O documento será registrado pelo Carteiro Digital, um código de validação (token) será retornado pela API e uma mensagem será enviada ao destinatário solicitando que o código seja informado. O código retornado pela API deverá ser informado ao cliente por algum outro canal (telefone, por exemplo) para que o mesmo o informe e receba o documento.

Type DIRECT: O documento será registrado pelo Carteiro Digital e uma mensagem será enviada ao destinatário solicitando que seja informado os 3 primeiros números de seu CPF/CNPJ para que receba o documento.

O código de validação no modo Padrão expira em 30 minutos.

<mark style="color:green;">`POST`</mark> `https://api.robbu.global/v1/digitalpostman`

#### Headers

| Name          | Type   | Description           |
| ------------- | ------ | --------------------- |
| Authorization | string | Bearer \<acess token> |

#### Request Body

| Name | Type   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ---- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|      | object | { "walletCode": "123", "senderName": "João da Robbu", "contactName": "Ricardo dos Santos", "contactId": "1231231234", "contactPhoneNumber": 5511999887766, "documentAddress": "<https://blob.robbu.net/boletoteste.pdf>", "documentBase64": "BASE 64 se documentAddress não for informado", "documentFileName": "seuboleto.pdf", "documentCode": "001 9 337370000000100 05009 401448 16060680935031", "invalidTokenMessage": "Se você esqueceu o seu código, ou ele já expirou, por favor ligue para 11-40041234 e solicite novamente", "type": "standard" \| "direct" } |

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

```
{
"message": "document successfully registered to be sent",
"token": 7723,
"expirationTime": "2020-02-03T13:44:08.7692697"
}

```

{% endtab %}
{% endtabs %}

## Modo PRE-REGISTERED

Verificação prévia por token (código randômico de 4 dígitos) de documento ainda não gerado

Utilize essa chamada para, na chamada 1, pré-registrar o envio de um documento PDF que ainda será gerado. E na chamada 2 enviar o documento pronto que foi previamente registrado.

Na chamada 1 o documento será pré-registrado pelo Carteiro Digital, um código de validação (token) será retornado pela API e uma mensagem será enviada ao destinatário solicitando que o código seja informado. O código retornado pela API deverá ser informado ao cliente por algum outro canal (telefone, por exemplo) para que o mesmo o informe e receba o documento.

Na chamada 2 o documento pré-registrado será efetivamente cadastrado e, caso o token já tenha sido validado pelo cliente, o documento será entregue imediatamente. Caso o cliente ainda não tenha validado, o documento será cadastrado normalmente e, assim que validado, será entregue.

O código de validação no modo Pré-Registrado expira em 60 minutos.

## Chamada 1

<mark style="color:green;">`POST`</mark> `https://api.robbu.global/v1/digitalpostman`

#### Headers

| Name | Type   | Description            |
| ---- | ------ | ---------------------- |
|      | string | Bearer \<access token> |

#### Request Body

| Name | Type   | Description                                                                                                                                                                                                                                                                                                              |
| ---- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|      | object | {{ "walletCode": "123", "senderName": "João da Robbu", "contactName": "Ricardo dos Santos", "contactId": "1231231234", "contactPhoneNumber": 5511999887766, "invalidTokenMessage": "Se você esqueceu o seu código, ou ele já expirou, por favor ligue para 11-40041234 e solicite novamente", "type": "pre-registered" } |

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

```
{
"message": "document successfully registered to be sent",
"token": 7723,
"expirationTime": "2020-02-03T13:44:08.7692697"
}

```

{% endtab %}
{% endtabs %}

## Chamada 2

<mark style="color:green;">`POST`</mark> `https://api.robbu.global/v1/digitalpostman`

#### Headers

| Name          | Type   | Description           |
| ------------- | ------ | --------------------- |
| Authorization | string | Bearer \<acess token> |

#### Request Body

| Name | Type   | Description                                                                                                                                                                                                                                                                                                                                                                                |
| ---- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|      | object | { "walletCode": "123", "contactId": "1231231234", "contactPhoneNumber": 5511999887766, "documentAddress": "<https://blob.robbu.net/boletoteste.pdf>", "documentBase64": "BASE 64 se documentAddress não for informado", "documentFileName": "seuboleto.pdf", "type": "pre-registered", "documentCode": "001 9 337370000000100 05009 401448 16060680935031", "preRegisteredToken": "7723" } |

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

```
{
"message": "document successfully sent",
"token": 7723,
"expirationTime": "2020-02-03T13:44:08.7692697"
}

```

{% endtab %}
{% endtabs %}
