Consulta status de uma transação TEF/Pix (polling)
GET/store-front/cashier/:idbankaccount/payment/:idstorefrontcashierpayment
Handler PHP com set_time_limit(180). Faz polling síncrono no adquirente dentro de um loop limitado a 60 tentativas com sleep(1) entre elas — quando esgota, retorna HTTP 504 sem corpo. Por isso a chamada deve ser feita com timeout client-side ≥ 60s (a frente usa 180s).
Por integração
- PayGo / ControlPay: consulta
IntencaoVenda/GetByFiltrosa cada segundo. Extrai do retorno o últimopagamentosExternos(sempre o mais recente) e popula:IDTypeStatusStoreFrontCashierPayment← mapeamento deintencaoVendaStatus.idviaTypeStatusStoreFrontCashierPayment.ExternalId.TID←nsuTid,AuthId←autorizacao,Acquirer←adquirente,PaymentSystemName←bandeira(Visa, Master etc.).ReturnCode←codigoRespostaAdquirente,ReturnMessage←mensagemRespostaAdquirente.Receipt(via estabelecimento) eReceiptBuyer(via cliente) ← extraídos dorespostaAdquirente(texto ZPL bruto entrePWINFO_RCPTMERCH =ePWINFO_RCPTCHOLDER/etc).CardLastDigits← últimos 4 dígitos do PAN extraído da stringCARTAO:ouPWINFO_CARDPARCPAN.
- StarkBank: chama
CheckPaymentByTag(ExternalId)a cada segundo. Quandopaid === true, status vira Creditado (3) comSuccess=1. Retorno incluiPixCopiaCola,QrCodeImageUrl,QrcodeExpirationTimeInSeconds. - Pagar.me: chama
GetPix(IDCompanyIntegration, ExternalId)a cada segundo.IDStatusBankSlip=2→ Creditado;IDStatusBankSlip=4→ Cancelado; demais → continua Em pagamento.
Sucesso vs. falha
O endpoint retorna Success no corpo para o cliente decidir o que fazer:
Success=1→ transação finalizada com sucesso (Creditado ou Cancelado bem sucedido).Success=0→ falha (Expirado, Pagamento recusado, ou caso especial PayGocodigoRespostaExecTransac=-2596ouidPagamentovazio com status15).
Ao final do polling (sucesso ou falha definitiva), o handler grava a atualização final em StoreFrontCashierPayment via StoreFrontPaymentUpdate. Se o loop esgotar sem decisão, retorna HTTP 504 e o cliente deve fazer nova chamada.
Request
Responses
- 200
- 400
- 504
Status retornado. Sempre inclui o status (IDTypeStatusStoreFrontCashierPayment + TypeStatusStoreFrontCashierPayment) e Success (0/1).
Erros de validação (BusinessException):
Transação não localizada idwTransação não localizada controlpay(PayGo)Transação divergente (referência controlpay: <ref>, esperado: <id>)Integração não suportada para este fluxo de pagamento
Timeout do polling — 60 tentativas esgotadas sem resultado final. Cliente deve repetir a chamada.