---
# System prepended metadata

title: Integração com Função - Preview

---

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"
}
```
:::
