Enviar pedido de pagamento
Fluxo de Pagamento
O processo de pagamento com o terminal cloud envolve comunicação entre o seu sistema e o terminal:1. Iniciação do Pagamento (via API)
O seu sistema inicia o pagamento remotamente através da API PayPay:
- O sistema envia o pedido para API PayPay:
 
Endpoint
POST /terminals/{uuid}/payments
Exemplo básico
{
  "amount": 100,
  "code": "sale-code",
  "summary": "sale-description"
}
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição | 
|---|---|---|---|
uuid | string | ✅ Sim | UUID do terminal para o qual irá ser enviado o pedido de pagamento | 
amount | integer | ✅ Sim | Montante | 
code | string | ❌ Não | Código indicado pelo comerciante, por exemplo, código da encomenda do sistema | 
summary | string | ❌ Não | Descrição indicado pelo comerciante, por exemplo, descrição da encomenda do sistema | 
- API PayPay comunica com o terminal de forma assíncrona;
 - Terminal recebe e apresenta o valor automaticamente ao operador;
 
informação
O terminal aguarda 1 minuto pela apresentação do cartão.
- API PayPay devolve a resposta do sucesso ou não do pedido assíncrono, enquanto o terminal aguarda pela apresentação do cartão.
 
Resposta da API
{
  "date": "2025-09-01T13:06:22+01:00",
  "success": true,
  "data": {
      "id": "1",
      "clientId": "502056800",
      "type": "payment",
      "amount": 100,
      "stateDetails": {
          "state": "pending_confirmation",
          "createdAt": "2025-09-01T13:06:22+01:00"
      },
      "paymentMethod": {
          "code": "CC",
          "type": "TPA"
      },
      "code": "order-code",
      "summary": "product-description",
      "availableMethods": [
        {
          "code": "CC",
          "type": "TPA",
          "name": "Credit\/Debit card Physical TPA"
        }
      ],
      "bankAccount": {
        "code": "O9uFVmSZ",
        "bankName": "Banco",
        "last4digits": "8513"
      },
      "createdAt": "2025-09-01T13:06:22+01:00",
      "updatedAt": "2025-09-01T13:06:22+01:00"
  }
}
Estrutura da Resposta
| Campo | Tipo | Descrição | 
|---|---|---|
id | string | ID do pagamento PayPay | 
clientId | string | NIF da entidade a que o pagamento ficou associado | 
type | string | Tipo de operação | 
stateDetails.state | string | Estado do pagamento | 
stateDetails.createdAt | datetime | Date do estado | 
paymentMethod | object | Método de pagamento escolhido para pagamento | 
code | string | Código indicado pelo comerciante | 
summary | string | Descrição indicado pelo comerciante | 
availableMethods | object | Formas de pagamento disponíveis para o pagamento | 
bankAccount | object | Identificação do banco que irá receber os fundos | 
createdAt | datetime | Data de criação do registo | 
updatedAt | datetime | Data da última atualização | 
informação
A estrutura da resposta varia consoante os parâmetros enviados no pedido. Por exemplo se enviar informação do cliente (customer) a mesma é retornada também.