---
title: "Trigger a proxy-lookup simulator event"
method: POST
path: "/simulator/proxy-lookup/{connected_account_id}"
tags: ["Proxy lookup simulator"]
---

# Trigger a proxy-lookup simulator event

`POST /simulator/proxy-lookup/{connected_account_id}`

Inject an inbound scheme event against a proxy-lookup connected account
in your sandbox. Use this to drive `proxy_lookup` and `proxy_key` rows
through their state machine without a live scheme connection.

This endpoint is only available in the sandbox environment.

Supported `message_type` values cover the `proxy_lookup.*`,
`proxy_key.*`, and `proxy_claim.*` event families — see the
`message_type` enum in the request schema for the full list. Payload
shapes are documented per event on the Numeral developer portal under
"Vanilla simulator events".

## Path parameters

- `connected_account_id` string, uuid, required

## Request body

- SimulatorProxyLookupRequest
  - `message_type` 'proxy_lookup.completed' | 'proxy_lookup.rejected' | 'proxy_key.registration_completed' | 'proxy_key.registration_rejected' | 'proxy_key.invalidated_by_scheme' | 'proxy_claim.creation_completed' | 'proxy_claim.creation_rejected' | 'proxy_claim.acknowledged_by_donor' | 'proxy_claim.confirmed_by_donor' | 'proxy_claim.cancelled_by_donor' | 'proxy_claim.completion_completed' | 'proxy_claim.completion_rejected' | 'proxy_claim.cancellation_completed' | 'proxy_claim.cancellation_rejected' | 'proxy_claim.received' | 'proxy_claim.acknowledgment_completed' | 'proxy_claim.acknowledgment_rejected' | 'proxy_claim.confirmation_completed' | 'proxy_claim.confirmation_rejected' | 'proxy_claim.completed_by_claimer' | 'proxy_claim.cancelled_by_claimer' | 'proxy_claim.auto_confirmed', required — The simulator event to trigger. See the Numeral developer portal for the payload shape of each event.
  - `payload` object, required — Event-specific payload. Shape is determined by `message_type`; see the developer portal for the per-event schema. For `proxy_key.registration_completed` the payload follows `simulator.proxy_key.registration_completed.payload`; for `proxy_key.registration_rejected` it follows `simulator.proxy_key.registration_rejected.payload`; for `proxy_key.invalidated_by_scheme` it follows `simulator.proxy_key.invalidated_by_scheme.payload`; for `proxy_claim.creation_completed` it follows `simulator.proxy_claim.creation_completed.payload`; for `proxy_claim.creation_rejected` it follows `simulator.proxy_claim.creation_rejected.payload`; for `proxy_claim.acknowledged_by_donor` it follows `simulator.proxy_claim.acknowledged_by_donor.payload`; for `proxy_claim.confirmed_by_donor` it follows `simulator.proxy_claim.confirmed_by_donor.payload`; for `proxy_claim.cancelled_by_donor` it follows `simulator.proxy_claim.cancelled_by_donor.payload`; for `proxy_claim.completion_completed` it follows `simulator.proxy_claim.completion_completed.payload`; for `proxy_claim.completion_rejected` it follows `simulator.proxy_claim.completion_rejected.payload`; for `proxy_claim.cancellation_completed` it follows `simulator.proxy_claim.cancellation_completed.payload`; for `proxy_claim.cancellation_rejected` it follows `simulator.proxy_claim.cancellation_rejected.payload`; for `proxy_claim.received` it follows `simulator.proxy_claim.received.payload`; for `proxy_claim.acknowledgment_completed` it follows `simulator.proxy_claim.acknowledgment_completed.payload`; for `proxy_claim.acknowledgment_rejected` it follows `simulator.proxy_claim.acknowledgment_rejected.payload`; for `proxy_claim.confirmation_completed` it follows `simulator.proxy_claim.confirmation_completed.payload`; for `proxy_claim.confirmation_rejected` it follows `simulator.proxy_claim.confirmation_rejected.payload`; for `proxy_claim.completed_by_claimer` it follows `simulator.proxy_claim.completed_by_claimer.payload`; for `proxy_claim.cancelled_by_claimer` it follows `simulator.proxy_claim.cancelled_by_claimer.payload`; for `proxy_claim.auto_confirmed` it follows `simulator.proxy_claim.auto_confirmed.payload`.

## Response `200`

The event was applied. The response body identifies the row affected.

- SimulatorProxyLookupResponse
  - `id` string, uuid — ID of the row affected by the simulator event.

## Other responses

- `400` — Bad request. Invalid envelope, unknown `message_type`, or the targeted row is not in a status that accepts this event.
- `401` — Unauthorized. API key is missing or invalid.
- `403` — Forbidden. Feature not enabled for this API key.
- `404` — Not found. The connected account does not exist, is not attached to this legal entity, or the targeted row does not exist.
- `501` — Not implemented. No handler is registered for this `message_type` yet.

---

[API](https://skmtc.net/numeral/apis/payments.md) · [All operations](https://skmtc.net/numeral/apis/payments/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/numeral/payments/revisions/220f101cc2ef/schema)
