(04) Receber pagamentos
Métodos de pagamento
Multicaixa Express, referência, BAI Paga e cartão: o que o comprador vê e quando o dinheiro entra.
Os quatro métodos
O comprador escolhe no checkout entre os métodos que a sessão aceita. Por omissão são todos os que existem para a moeda; com payment_methods escolhes um subconjunto.
| Método | No pedido | Moedas | O que o comprador faz |
|---|---|---|---|
| Multicaixa Express | mcx | AOA | Escreve o número de telemóvel e confirma o pagamento na app Multicaixa Express. Tem uns três minutos para confirmar; se não confirmar, nada é cobrado e pode tentar outra vez. |
| Referência | reference | AOA | Recebe uma entidade e uma referência (no ecrã e, se deixar o email, por email) e paga no multibanco ou no banco. A referência vale até a sessão expirar. |
| BAI Paga | baipaga | AOA | Escreve o número de telemóvel e autoriza com o código que o BAI envia por SMS, na página do BAI Paga. O código vale 10 minutos, e pode pedir outro. |
| Cartão | card | AOA, USD, EUR | Paga com Visa ou Mastercard na página segura do Stripe, e volta ao checkout. |
USD e EUR só se pagam com cartão. Uma sessão em USD que peça mcx é recusada com 422 dados_invalidos, e um método sem gateway configurado no modo da chave dá 422 metodo_sem_gateway.
Quando o pagamento conta
Um pagamento só conta quando o gateway o confirma, e mesmo o aviso do gateway nunca é a última palavra: a API pergunta-lhe pelo estado antes de dar o dinheiro por entrado. Por isso o momento em que recebes payment.succeeded varia com o método:
| Método | Normalmente |
|---|---|
| Multicaixa Express | Segundos depois de o comprador confirmar na app. |
| BAI Paga | Segundos depois de autorizar o código. |
| Cartão | Quando o comprador acaba na página do Stripe. |
| Referência | Quando o banco a paga, o que pode ser minutos ou horas depois, com o comprador já longe do browser. |
A referência é a razão do webhook
Um pagamento por referência acaba quase sempre longe do teu site: o comprador fecha a página, vai ao multibanco, e paga mais tarde. Só o webhook payment.succeeded te diz que a encomenda foi paga. Ver Confirmar o pagamento.
Do pagamento ao saldo
Cada pagamento confirmado escreve o valor bruto, a nossa taxa e o líquido. O evento traz os três (amount, fee, net), e o líquido entra no teu saldo pendente. Passado o prazo de retenção (sete dias, salvo acordo diferente), passa a disponível, e é daí que pedes o saque no painel, em produção.