Ir para o conteúdo

Realizar pagamento Pix

Endpoint

  • URL: https://gateway.prd.pppay.cloud/api/pix/pay
  • Método: POST
  • Autenticação: Bearer Token (Authorization: Bearer SEU_TOKEN_MERCHANT)

Referência de tipos de chaves PIX

Chave Descrição
document Utilize um documento brasileiro como chave. Pode ser um documento CPF ou CNPJ.
email Use um e-mail como chave. Deve ser um e-mail válido.
Usar um número de telefone como Chave PIX, no formato: XXYYYYYYYYY.
phone XX - os dois primeiros números representam o código de área
YYYYYYYYY - os últimos 9 números representam o próprio número de telefone
random Usar uma chave randômica no formato UUID

Parâmetros do corpo

Nome do campo Tipo de dado Envio obrigatório Tipo de filtro
merchant_transaction_id string Sim ID da transação do lado do comerciante
amount float Sim Valor decimal do montante sendo cobrado (em R$)
pix_key_type string Sim O tipo da Chave PIX sendo usada, veja a referência acima
pix_key_value string Sim O valor da Chave PIX sendo utilizada
pix_message string Não Uma mensagem que é enviada com o pagamento PIX
first_name string Sim Primeiro nome do destinatário
last_name string Sim Sobrenome do destinatário
document_number string Sim Documento do destinatário
email string Sim E-mail do destinatário
bank_accounts_allowed array Não Contas bancárias autorizadas a receber a transferência.
bank_accounts_allowed[].ispb string Não Este campo especifica o ISPB do banco associado à conta permitida para a transação.
bank_accounts_allowed[].account_number string Não Representa o número da conta associado à conta bancária permitida para a transação.
bank_accounts_allowed[].branch string Não Representa o número da agência associado à conta bancária permitida para a transação.

Exemplo de Corpo da Requisição

{
  "merchant_transaction_id": "ID_TRANSACAO_COMERCIANTE",
  "amount": 150,
  "pix_key_type": "email",
  "pix_key_value": "[email protected]",
  "pix_message": "Lorem ipsum dolor sit amet.",
  "first_name": "Lorem",
  "last_name": "Ipsum",
  "document_number": "12345678909",
  "email": "[email protected]",
  "bank_accounts_allowed": [
    {
      "ispb": "12345678",
      "account_number": "123456",
      "branch": "123"
    },
    {
      "ispb": "12345678",
      "account_number": "123456",
      "branch": "123"
    }
  ]
}

Autorização

Para acessar este endpoint, é necessário incluir o token do comerciante no cabeçalho da requisição como um token Bearer.

Exemplos

Pix

curl --request POST \
--url https://gateway.prd.pppay.cloud/api/pix/pay \
--header 'Authorization: Bearer MY_API_TOKEN' \
--header 'accept: application/json' \
--header 'content-type: application/json'`
--data '{"merchant_transaction_id":"ID_TRANSACAO_COMERCIANTE","amount":150,"pix_key_type":"email","pix_key_value":"[email protected]","pix_message":"Lorem ipsum dolor sit amet.","first_name":"Lorem","last_name":"Ipsum","document_number":"12345678909","email":"[email protected]","bank_accounts_allowed":[{"ispb":"12345678","account_number":"123456","branch":"123"},{"ispb":"12345678","account_number":"123456","branch":"123"}]}'
import requests

url = "https://gateway.prd.pppay.cloud/api/pix/pay"

headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "Authorization": "Bearer MY_API_TOKEN"
}

data = {
  "merchant_transaction_id": "ID_TRANSACAO_COMERCIANTE",
  "amount": 150,
  "pix_key_type": "email",
  "pix_key_value": "[email protected]",
  "pix_message": "Lorem ipsum dolor sit amet.",
  "first_name": "Lorem",
  "last_name": "Ipsum",
  "document_number": "12345678909",
  "email": "[email protected]",
  "bank_accounts_allowed": [
    {
      "ispb": "12345678",
      "account_number": "123456",
      "branch": "123"
    },
    {
      "ispb": "12345678",
      "account_number": "123456",
      "branch": "123"
    }
  ]
}

response = requests.post(url, headers=headers, json=data)

print(response.text)
200 - Sucesso
{
  "transaction": {
    "id": "f74a178e-cee1-4bff-8d80-8738384cc511",
    "merchant_id": "ea6b792b-ccb4-4d32-ba46-b7076c5acc42",
    "user_id": "0b15988e-9501-46a0-92c1-8673b6ca07cf",
    "processor_id": "6268c2a9-047b-475a-a461-0bb9cccaa31c",
    "merchant_transaction_id": "111222333",
    "transaction_type": "pix",
    "first_name": "Testing",
    "last_name": "Paag",
    "email": "[email protected]",
    "updated_at": "2024-02-20T13:35:23+0000",
    "created_at": "2024-02-20T13:35:23+0000",
    "events": [
      {
        "id": "f0936449-3b1b-442f-a58b-d81b8e31f343",
        "success": true,
        "status": "pending_settlement",
        "event_type": "payment",
        "amount": "1.35",
        "ip_address": null,
        "processor_transaction_id": null,
        "batch_id": null,
        "qrcode": null,
        "qrcode_image": null,
        "pix_key_type": "document",
        "pix_key_value": "08476407602",
        "pix_message": "This is a test",
        "updated_at": "2024-02-20T13:35:23+0000",
        "created_at": "2024-02-20T13:35:23+0000"
      }
    ],
    "document_number": "98610246035",
    "status": "pending",
    "flow_type": "cashout",
    "error": null,
    "e2e_id": null,
    "bank_accounts_allowed": [
        {
            "ispb": "12345678",
            "account_number": "123456",
            "branch": "123"
        },
        {
            "ispb": "12345678",
            "account_number": "123456",
            "branch": "123"
        }
    ]
  }
}
401 - Não autenticado
{
"error": {
    "message": {
    "base": [
        "Not authenticated"
      ]
    },
    "status": 401
  }
}
422 - Fundos insuficientes no processor
{
"error": {
    "message": {
    "amount": [
        "Insufficient funds on processor"
    ]
    },
    "status": 422
},
"debug": []
}