Acapadev

AcapaPay · Laravel SDK

Consultar Estado de uma Fatura

Em casos onde o utilizador regresse ao seu site após o pagamento mas o Webhook ainda não tenha chegado (latência de rede), pode fazer um fallback síncrono para confirmar o estado da fatura diretamente via API:

<?php

namespace App\Http\Controllers;

use AcapaPay\Laravel\Facades\AcapaPay;

class AssinaturaController extends Controller
{
    public function sucesso(Request $request)
    {
        $invoiceId = $request->query('invoice_id');

        if ($invoiceId) {
            try {
                $invoice = AcapaPay::getInvoiceStatus($invoiceId);

                if (($invoice['status'] ?? '') === 'paid') {
                    // Provisionar o serviço manualmente se o webhook
                    // ainda não chegou. Registar para evitar duplicação.
                    ProvisionarAssinatura::dispatch($invoice);
                }
            } catch (\Exception $e) {
                // Não bloquear o utilizador — o Webhook irá confirmar depois
                \Log::warning('AcapaPay fallback check falhou: ' . $e->getMessage());
            }
        }

        return view('assinatura.sucesso');
    }
}

Estrutura da Resposta da API

CampoTipoDescrição
idstringUUID da fatura no AcapaPay
statusstringpending, paid, failed, cancelled
plan_reference_codestringCódigo do plano adquirido
metadataobjectOs seus dados originais do Checkout
subscriptionobjectDados da subscrição criada (ID, data de expiração)
paid_atstring|nullTimestamp ISO 8601 do pagamento (null se pendente)
Enter para selecionar ESC para sair