curl --request POST \
--url 'https://api.nsr.stateset.com/v1/metering/gcp/pubsub' \
--header "X-API-Key: $STATESET_NSR_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"message": {
"data": "string"
}
}'
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…
POST
/
v1
/
metering
/
gcp
/
pubsub
curl --request POST \
--url 'https://api.nsr.stateset.com/v1/metering/gcp/pubsub' \
--header "X-API-Key: $STATESET_NSR_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"message": {
"data": "string"
}
}'
(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:<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
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 |
curl --request POST \
--url 'https://api.nsr.stateset.com/v1/metering/gcp/pubsub' \
--header "X-API-Key: $STATESET_NSR_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"message": {
"data": "string"
}
}'
Last modified on August 31, 2026