---
title: "Invitation claimed webhook"
method: POST
path: "invitation-claimed"
tags: ["Webhooks"]
---

# Invitation claimed webhook

`POST invitation-claimed` (webhook)

Webhook that is called when an invitation is claimed by a customer.
This endpoint should be implemented by platform clients of the Grid API.

When a customer claims an invitation, this webhook is triggered to notify the platform that:
1. The invitation has been successfully claimed
2. The invitee UMA address is now associated with the invitation
3. The invitation status has changed from PENDING to CLAIMED

This allows platforms to:
- Track invitation usage and conversion rates
- Trigger onboarding flows for new customers who joined via invitation
- Apply referral bonuses or rewards to the inviter
- Update their UI to reflect the claimed status

### Authentication
The webhook includes a signature in the `X-Grid-Signature` header that allows you to verify that the webhook was sent by Grid.
To verify the signature:
1. Get the Grid public key provided to you during integration
2. Decode the base64 signature from the header
3. Create a SHA-256 hash of the request body
4. Verify the signature using the public key and the hash

If the signature verification succeeds, the webhook is authentic. If not, it should be rejected.

## Payload

- InvitationClaimedWebhook
  - `id` string, required — Unique identifier for this webhook delivery (can be used for idempotency)
  - `type` 'INVITATION.CLAIMED', required — Type of webhook event in OBJECT.EVENT dot-notation. The part before the dot identifies the resource, the part after identifies the event. This lets consumers route purely on type without inspecting data.status.
  - `timestamp` string, date-time, required — ISO 8601 timestamp of when the webhook was sent
  - `data` UmaInvitation, required
    - `code` string, required — The unique code of the invitation
    - `createdAt` string, date-time, required — When the invitation was created
    - `claimedAt` string, date-time — When the invitation was claimed if it has been claimed
    - `url` string, required — The URL where this invitation can be claimed.
    - `expiresAt` string, date-time — When the invitation expires (if at all)
    - `inviterUma` string, required — The UMA address of the inviter
    - `inviteeUma` string — The UMA address of the invitee
    - `status` 'PENDING' | 'CLAIMED' | 'EXPIRED' | 'CANCELLED', required — The status of the invitation
    - `firstName` string — The inviter's first name. Will be displayed when the recipient clicks the invite link
    - `amountToSend` CurrencyAmount
      - `amount` integer, required — Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)
      - `currency` Currency, required
        - `code` string — Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. "BTC" for Bitcoin, "USDC" for USDC, etc.)
        - `name` string — Full name of the currency
        - `symbol` string — Symbol of the currency
        - `decimals` integer — Number of decimal places for the currency

## Acknowledgement `200`

Webhook received successfully

## Other responses

- `400` — Bad request
- `401` — Unauthorized - Signature validation failed
- `409` — Conflict - Webhook has already been processed (duplicate id)

---

[API](https://skmtc.net/stainless-api/apis/grid-api.md) · [All operations](https://skmtc.net/stainless-api/apis/grid-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/stainless-api/grid-api/versions/151f2d9bad9c/schema)
