Integração com Função - Preview
===
## Notificação de autorização
:::success
Este serviço deve ser fechado para a internet, com acesso pela intranet apenas para a máquina do função.
É um serviço REST via POST na URL *"${application-context}/funcao/auth/notification"*.
Esse serviço deve ter um objeto com as propriedades abaixo, como payload em JSON:
- **clientIdForBank**: String (identificador do cliente para o banco)
- **clientDocNumber**: String (número de CPF/CNPJ do cliente)
- **bankInfo**: BankInfo (informações de conta bancária)
- **bank**: Bank (enum com os possíveis valores: CEF | BB | ITAU | SANTANDER | BRADESCO)
- **branch**: String (número da agência)
- **account**: String (número da conta)
- **extra**: String (informação extra necessária em alguns bancos; não é obrigatório. Ex.: operação na CEF)
- **checkDigit**: String (dígito verificador; não é obrigatório, e pode ser da conta ou da agência, dependendo do banco)
#### Exemplo de payload
```jsonld=
{
"clientIdForBank": "81752701",
"clientDocNumber": "75464779051",
"bankInfo": {
"bank": "CEF",
"branch": "0001",
"account": "819365",
"extra": "013"
}
}
```
:::
---
## Solicitação de autorização
:::success
Este serviço deve ser fechado para a internet, com acesso pela intranet apenas para a máquina do função.
É um serviço REST via POST na URL *"${application-context}/funcao/auth"*.
Esse serviço deve ter um objeto com as propriedades abaixo, como payload em JSON:
- **clientIdForBank**: String (identificador do cliente para o banco)
- **clientDocNumber**: String (número de CPF/CNPJ do cliente)
- **debitDate**: String (data programada para o débito - formato AAAAMMDD)
- **value**: BigDecimal (valor do débito)
- **bankInfo**: BankInfo (informações de conta bancária)
- **bank**: Bank (enum com os possíveis valores: CEF | BB | ITAU | SANTANDER | BRADESCO)
- **branch**: String (número da agência)
- **account**: String (número da conta)
- **extra**: String (informação extra necessária em alguns bancos; não é obrigatório. Ex.: operação na CEF)
- **checkDigit**: String (dígito verificador; não é obrigatório, e pode ser da conta ou da agência, dependendo do banco)
#### Exemplo de payload
```jsonld=
{
"bankInfo": {
"account": "819365",
"bank": "ITAU",
"branch": "0001",
"checkDigit": "1"
},
"clientDocNumber": "81959018086",
"clientIdForBank": "81752701",
"debitDate": "20190131",
"value": 1000.00
}
```
:::
---
## Retorno da solicitação de autorização
:::success
Este serviço deve ser fechado para a internet, com acesso pela intranet apenas para a máquina do DirectDebit no PagSeguro.
Após o processamento do arquivo .RET, será chamado um serviço REST do função via POST na URL desejada. Ex.: "${funcaoContext}/directdebit/auth/return".
Esse serviço não precisa ter retorno, e deve estar preparado para receber como payload um objeto em JSON com as seguintes propriedades:
- **status**: Status (enum com o seguinte domínio: SUCCESS | PENDING | FAILURE)
- **cliendId**: String (identificador do cliente)
#### Exemplo de payload
```jsonld=
{
"clientDocNumber": "81959018086",
"status": "PENDING"
}
```
:::