> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vouchmark.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify top-up

> Confirm a Paystack payment and credit the wallet.

Call this after the Paystack redirect to confirm payment and credit the wallet. The operation is idempotent — calling it again for an already-credited reference returns success without double-crediting.

<Note>
  The returned `wallet` reports amounts in integer **kobo**, and the returned `transaction` reports amounts in integer **kobo** (matching [List transactions](/api-reference/wallet/transactions)). 1 NGN = 100 kobo.
</Note>

## Query parameters

<ParamField query="reference" type="string" required>
  The `reference` returned by [Top up wallet](/api-reference/wallet/topup).
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.vouchmark.com/v1/wallet/topup/verify?reference=..." \
    -H "Authorization: Bearer $TOKEN"
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "success": true,
    "message": "Wallet topped up successfully",
    "wallet": {
      "balanceKobo": 5000000,
      "paymentThresholdKobo": 1000000,
      "autoTopUp": {
        "enabled": true,
        "triggerBelowKobo": 500000,
        "rechargeAmountKobo": 10000000
      },
      "hasSavedCard": true,
      "currency": "NGN"
    },
    "transaction": {
      "id": "...",
      "referenceNumber": "...",
      "amountKobo": 5000000,
      "vatKobo": 375000,
      "totalAmountKobo": 5375000,
      "status": "successful",
      "type": "top_up",
      "paymentMethod": "Paystack",
      "createdAt": "2026-05-18T10:00:00Z"
    }
  }
  ```
</ResponseExample>

## Response fields

<ResponseField name="success" type="boolean" />

<ResponseField name="message" type="string">
  `Wallet topped up successfully` on first verification, or `Payment already processed` if the reference was already credited.
</ResponseField>

<ResponseField name="wallet" type="object">
  Full wallet DTO as in [Get wallet](/api-reference/wallet/get-wallet) (values in integer kobo).
</ResponseField>

<ResponseField name="transaction" type="object">
  One transaction DTO as in [List transactions](/api-reference/wallet/transactions) (values in integer kobo).
</ResponseField>
