Pular para o conteúdo principal

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/GetByFiltros a cada segundo. Extrai do retorno o último pagamentosExternos (sempre o mais recente) e popula:
    • IDTypeStatusStoreFrontCashierPayment ← mapeamento de intencaoVendaStatus.id via TypeStatusStoreFrontCashierPayment.ExternalId.
    • TIDnsuTid, AuthIdautorizacao, Acquireradquirente, PaymentSystemNamebandeira (Visa, Master etc.).
    • ReturnCodecodigoRespostaAdquirente, ReturnMessagemensagemRespostaAdquirente.
    • Receipt (via estabelecimento) e ReceiptBuyer (via cliente) ← extraídos do respostaAdquirente (texto ZPL bruto entre PWINFO_RCPTMERCH = e PWINFO_RCPTCHOLDER/etc).
    • CardLastDigits ← últimos 4 dígitos do PAN extraído da string CARTAO: ou PWINFO_CARDPARCPAN.
  • StarkBank: chama CheckPaymentByTag(ExternalId) a cada segundo. Quando paid === true, status vira Creditado (3) com Success=1. Retorno inclui PixCopiaCola, QrCodeImageUrl, QrcodeExpirationTimeInSeconds.
  • Pagar.me: chama GetPix(IDCompanyIntegration, ExternalId) a cada segundo. IDStatusBankSlip=2Creditado; IDStatusBankSlip=4Cancelado; 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 PayGo codigoRespostaExecTransac=-2596 ou idPagamento vazio com status 15).

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

Status retornado. Sempre inclui o status (IDTypeStatusStoreFrontCashierPayment + TypeStatusStoreFrontCashierPayment) e Success (0/1).