Este endpoint permite criar uma transação de Iniciação de Pagamento via OpenFinance.
Endpoint de Referência
POST /accounts/payment-initiation
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": {
"payer": {
"taxNumber": "14435549603"
},
"value": {
"original": "10.00"
},
"redirectUrl": "https://merchantwebsite.com/success"
},
"transaction": {
"orderId": "in-410987401-001479147149841",
"orderDescription": "Test-transaction with payment initiation"
},
"webhook": {
"url": "https://postman-echo.com/post?test=1",
"customHeaderName": "Authorization",
"customHeaderValue": "eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2YTZjYjY2NC03NzI4LTRjM"
}
}
- Os Campos da Request
Campo | Tipo | Required | Descrição |
---|---|---|---|
payment.payer.taxNumber | string | true | O CPF do usuário final (requisitante). |
payment.value.original | string | true | O valor efetivo a ser pago. |
payment.redirectUrl | string | true | A URL para a qual o usuário final será redirecionado após completar a transação. |
transaction.orderId | string | false | Uma orderId customizada fornecida pelo integrador, caso queira fazer uma contraverificação quando a resposta é recebida. |
transaction.orderDescription | string | false | Uma descrição customizada fornecida pelo integrador, caso queira fazer uma contraverificação quando a resposta é recebida. |
webhook.url | string | true | Uma URL absoluta para receber eventos de notificação webhook. |
webhook.customHeaderName | string | false | Um nome de cabeçalho personalizado para contraverificação quando a mensagem do webhook é recebida. |
webhook.customHeaderValue | string | false | Um valor associado ao cabeçalho para contraverificação quando a mensagem de webhook é recebida. |
- Success Response (
201 - Created
)
{
"statusCode": "Done",
"data": {
"transactionId": "0a3d2b84-87ef-4c2e-aa3d-b7cfb6d76e9d",
"checkoutUrl": "https://checkout.sandbox.pagfast.com/v1/system/checkout/init/0ea70001-0f58-44a2-80ad-953633ff2cc7/0a3d2b84-87ef-4c2e-aa3d-b7cfb6d76e9d"
}
}
- The Response Fields
Campo | Tipo | Descrição |
---|---|---|
transactionId | String | Um identificador exclusivo (UID) para a transação. |
checkoutUrl | String | A URL para a qual o usuário deve ser redirecionado para que seja possível proceder com o pagamento. |
Validação de CPF
Assim como nas transações PIX, a 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": {
"payer": {
"taxNumber": "13600642650"
},
"redirectUrl": "https://merchantwebsite.com/success"
},
"transaction": {
"orderId": "in-410987401-001479147149841",
"orderDescription": "Test-transaction with payment initiation"
},
"webhook": {
"url": "https://postman-echo.com/post?test=1",
"customHeaderName": "Authorization",
"customHeaderValue": "eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2YTZjYjY2NC03NzI4LTRjM"
}
}
- Failure Response (
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"
}
}
]
}
}
Scenario 2: 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 3: Campo inválido payment.payer.taxNumber
payment.payer.taxNumber
{
"payment": {
"value": {
"original": "10.00"
},
"payer": {
"taxNumber": "33251500012"
},
"redirectUrl": "https://merchantwebsite.com/success"
},
"transaction": {
"orderId": "in-410987401-001479147149841",
"orderDescription": "Test-transaction with payment initiation"
},
"webhook": {
"url": "https://postman-echo.com/post?test=1",
"customHeaderName": "Authorization",
"customHeaderValue": "eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2YTZjYjY2NC03NzI4LTRjM"
}
}
- Failure Response (
409 - Conflict
)
{
"statusCode": "Error",
"error": {
"name": "OperationError",
"code": "OperationError",
"details": {
"reason": "CounterpartyTaxNumberInvalid",
"message": "TaxNumber:33251500012"
}
}
}
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
.