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

# GCP Marketplace Pub/Sub push endpoint. GCP delivers Procurement events here

> (account/entitlement creation, plan change, cancellation). On an entitlement event whose account is already associated with an org (established at sign-up via…

(account/entitlement creation, plan change, cancellation). On an entitlement
event whose `account` is already associated with an org (established at
sign-up via `/v1/metering/entitlement` with `kind:'gcp'`, `token:&lt;account>`),
(re)link the GCP entitlement so the flush reports usage against it. Always
200 to ack the push (an un-acked message is redelivered). Approving the
entitlement via the Partner Procurement API is the credentialed follow-on.

**Required scope:** `write`

### Request body

`PubSubPush`

<ParamField body="message" type="PubSubMessage" required />

### Response

No response body. Event acked (linked=true when the account was pre-associated).

### Status codes

| Code  | Meaning                                                       |
| ----- | ------------------------------------------------------------- |
| `200` | Event acked (linked=true when the account was pre-associated) |
| `401` | Unauthorized — missing or invalid credentials                 |
| `403` | Forbidden — the key/token lacks the required scope            |
| `429` | Rate limited — see Retry-After / X-RateLimit-Reset            |

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://api.nsr.stateset.com/v1/metering/gcp/pubsub' \
    --header 'X-API-Key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
    "message": {
      "data": "string"
    }
  }'
  ```
</RequestExample>
