---
title: "Report a test-mode authentication outcome"
method: POST
path: "/v1/test-authentication/webhooks"
tags: ["Test Authentication"]
---

# Report a test-mode authentication outcome

`POST /v1/test-authentication/webhooks`

## Request

- Base URL: `https://ewallets-api.paymongo.com`
- URL: `https://ewallets-api.paymongo.com/v1/test-authentication/webhooks`
- Auth: HTTP bearer

For test-authentication-web, standing in for the wallet's page. The payer's choice is recorded on the attempt (the first one stands) and resolved by the outcome pipeline like a wallet's callback; payments-api hears payment_intent.payment_created. Answers the attempt as the page sees it. Idempotent: a repeat answers the current state. A live attempt is 404.

## Request body

- TestAuthenticationWebhookRequestDTO: Test-mode authentication outcome (from test-authentication-web)
  - `attach_attempt_id` string, required
  - `outcome` 'succeeded' | 'failed', required
  - `reason` string: Reason is the scenario behind a failure, in the page's vocabulary: recorded, and read into a decline code (an unknown one declines generically).

## Response `200`

The attempt as the page sees it after the report

- object: Standard response containing data and its metadata if any
  - `data` TestAuthenticationAttachmentDTO: A test-mode attachment as the authentication page sees it
    - `attach_attempt_id` string
    - `status` 'pending' | 'succeeded' | 'failed'
  - `has_more` boolean

## Other responses

- `400`: Validation errors
- `401`: Missing or invalid service token
- `404`: not_found: no test-mode attachment for that attempt
- `500`: Internal server error; the choice may be recorded and a retry completes it

---

[API](https://skmtc.dev/paymongo/apis/ewallets.md) - [All operations](https://skmtc.dev/paymongo/apis/ewallets/llms.txt) - [OpenAPI document](https://skmtc.dev/paymongo/apis/ewallets/revisions/a445ca65c132?raw)
