Este endpoint permite a criação de uma requisição de cash out PIX
Endpoint de Referência
POST /accounts/pix/cashout
Cenário de Sucesso
O payload da request é composto por três objetos internos: payment, transaction e webhook, conforme visto neste exemplo de payload de request.
{
"payment": {
"recipient": {
"name": "ISADORA STEPHANY",
"cpf": "13600642650"
},
"key": {
"type": "CPF",
"value": "13600642650"
},
"value": "10.50"
},
"transaction": {
"orderId": "in-01901847474-560183477261001736",
"orderDescription": "Created via postman"
},
"webhook": {
"url": "https://postman-echo.com/post?test=1",
"customHeaderName": "Authorization",
"customHeaderValue": "eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2YTZjYjY2NC03NzI4LTRjMGQtODI1My"
}
}
- Os Campos da Request
Campo | Tipo | Required | Descrição |
---|---|---|---|
payment.recipient.name | string | true | O nome do usuário final (recebedor) |
payment.recipient.cpf | string | true | O CPF do usuário final (recebedor) |
payment.key.type | string | true | Um dos tipos de chave PIX válidos, como CPF, E-mail, Telefone ou Chave Gerada Aleatoriamente |
payment.key.value | string | true | O valor da chave |
payment.value | string | true | O valor efetivo a ser pago |
transaction.orderId | string | false | Um id customizado que o integrador pode querer fornecer para contraverificação quando a resposta é recebida. |
transaction.orderDescription | string | false | Uma descrição customizada que o integrador pode querer fornecer para contraverificação quando a resposta é recebida. |
webhook.url | string | true | Uma URL absoluta para receber as notificações de eventos webhook. |
webhook.customHeaderName | string | false | Um nome de cabeçalho personalizado para contraverificação quando a mensagem do webhook chega |
webhook.customHeaderValue | string | false | Um valor de cabeçalho personalizado para contraverificação quando a mensagem do webhook chega |
Na solicitação de exemplo, observe que o valor do CPF (13600642650) aparece duas vezes. A primeira identifica a chave PIX para onde o pagamento será transferido e a outra identifica o usuário final proprietário da conta, o recebedor.
Tipos de chave PIX podem ser validados baseado em sua estrutura, como segue:
Tipo Chave | Descrição | Padrão Regex | Exemplo |
---|---|---|---|
CNPJ | O CNPJ é o identificador único de empresas brasileiras. | ^[0-9]{14}$ | 46261360000148 |
CPF | O CPF é o identificador único de indivíduos brasileiros. | ^[0-9]{11}$ | 04368535405 |
PHONE | Um telefone válido | ^\+[1-9]\d{1,14}$ | +5583986182244 |
Um e-mail válido | "^[a-z0-9.!#$&'*+/=?^_`{ | [email protected] | |
EVP | Um tipo de chave PIX gerado usando a biblioteca OpenSSL EVP. | [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} | b6295ee1-f054-47d1-9e90-ee57b74f60d9 |
- Success Response (
201 - Created
)
{
"statusCode": "Done",
"data": {
"transaction": {
"id": "95c0f371-bc71-4c06-823e-74cf5bc308fa",
"orderId": "in-1409184409-98758761847691",
"date": "2023-07-29T11:09:21.851Z",
"state": "Created",
"amount": "10.50"
}
}
}
- The Response Fields
Campo | Tipo | Descrição |
---|---|---|
transaction.id | String | Um identificador exclusivo (UID) |
transaction.orderId | String | Um ID fornecido pelo integrador na solicitação de transação para contraverificação |
transaction.date | String | A data de criação do pedido de transação |
transaction.state | String | O estado inicial da transação. Ele começa como Created , o que significa que a transação ainda será cadastrada em um Banco Adquirente. |
transaction.amount | String | O valor original da transação. |
Validação de CPF
O PagFast valida o CPF e nega pedidos de CPFs falsos. Durante a integração, use um destes CPFs do mundo real para teste:
13600642650, 10777438666
.
Cenários de Falha (Exemplos Úteis)
Cenário 1: Faltando campo requerido payment.value
.
payment.value
.{
"payment": {
"recipient": {
"name": "ISADORA STEPHANY",
"cpf": "13600642650"
},
"key": {
"type": "CPF",
"value": "13600642650"
}
},
"transaction": {
"orderId": "in-1409184409-98758761847691",
"orderDescription": "Created via postman"
},
"webhook": {
"url": "https://postman-echo.com/post?test=1",
"customHeaderName": "Authorization",
"customHeaderValue": "eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2YTZjYjY2NC03NzI4LTRjMGQtODI1My"
}
}
- Resposta de Falha (
400 - Bad Request
)
{
"statusCode": "Error",
"error": {
"name": "InvalidRequestFormatError",
"message": "The request body is invalid. See error object `details` property for more info",
"details": [
{
"path": "/payment",
"code": "required",
"message": "must have required property 'value'",
"info": {
"missingProperty": "value"
}
}
]
}
}
Cenário 2: Valor inválido para payment.key.type
(e-mail).
payment.key.type
(e-mail).{
"payment": {
"key": {
"type": "e-mail",
"value": "[email protected]"
},
"value": "10"
},
"transaction": {
"orderId": "in-1409184409-98758761847691",
"orderDescription": "Created via postman"
},
"webhook": {
"url": "https://postman-echo.com/post?test=1",
"customHeaderName": "Authorization",
"customHeaderValue": "eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2YTZjYjY2NC03NzI4LTRjMGQtODI1My"
}
}
- Resposta de Falha (
400 - Bad Request
)
{
"statusCode": "Error",
"error": {
"name": "InvalidRequestFormatError",
"message": "The request body is invalid. See error object `details` property for more info",
"details": [
{
"path": "/payment/key/type",
"code": "enum",
"message": "must be equal to one of the allowed values",
"info": {
"allowedValues": [
"CPF",
"EMAIL",
"PHONE",
"EVP"
]
}
}
]
}
}
Cenário 3: Falha de Autenticação
Se uma solicitação incluir um token de autenticação expirado ou inválido, o seguinte erro será retornado.
- Resposta de Falha (
401 Unauthorized
)
{
"statusCode": "Error",
"error": {
"name": "AuthenticationError",
"message": "The authorization token is invalid",
"details": {
"reason": "AuthenticationTokenInvalid"
}
}
}
Cenário 4: Faltando campo requerido payment.key.type
payment.key.type
{
"payment": {
"recipient": {
"name": "ISADORA STEPHANY",
"cpf": "13600642650"
},
"key": {
"value": "13600642650"
},
"value": "10.53"
},
"transaction": {
"orderId": "in-1409184409-98758761847691",
"orderDescription": "Created via postman"
},
"webhook": {
"url": "https://postman-echo.com/post?test=1",
"customHeaderName": "Authorization",
"customHeaderValue": "eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2YTZjYjY2NC03NzI4LTRjMGQtODI1My"
}
}
- Resposta de Falha (
409 - Conflict
)
{
"statusCode": "Error",
"error": {
"name": "OperationError",
"code": "OperationError",
"details": {
"reason": "PixKeyTypeNotAllowed",
"message": "This operation is not available for the PIX key of type 'undefined'"
}
}
}
Requests Malformadas
Durante os testes, é possível que os integradores forneçam alguma requisição incompleta ou malformada que gere como resposta um erro
500 - Internal Server Error
.