HTTP endpoints
erasePartner
Erase a partner's personal data when the person deletes their account with you. Grizzlee keeps amounts, dates, statuses, IDs and the ledger, and the partner can never earn again. Safe to repeat. Needs partners:write.
POST /api/v1/partners/{id}/erase
POST /api/v1/partners/by-external-id/{externalId}/erase
Requires partners:write. Keep the Bearer key on your server.
SDK
grizzlee.erasePartner(partner: { externalId: string; } | { id: string; }): Promise<PartnerErasureResult>HTTP
Use your backend's HTTP client. The cURL request shows the wire format. Replace path parameters and example values.
curl --fail-with-body --request POST \
'https://app.grizzlee.ca/api/v1/partners/{id}/erase' \
-H "Authorization: Bearer $GRIZZLEE_SERVER_KEY"Response
HTTP responses wrap this value in data. The SDK returns the value directly unless the note above describes a wrapper.
| Field | Type | Required | Details |
|---|---|---|---|
erasedAt | string | Yes | When the partner was first erased. |
alreadyErased | boolean | Yes | True when an earlier call already erased the partner. This call still removed anything new. |
erased | object | Yes | |
outstanding | object | Yes | Money the partner may still be owed. Erasure keeps every amount, so you can still approve, deliver and pay these. |
partnerId | string | Yes | |
partnerExternalId | string | Yes |
erased
| Field | Type | Required | Details |
|---|---|---|---|
erased.identitySignals | number | Yes | Hashed identity signals deleted. |
erased.orderEmails | number | Yes | Orders whose customerEmail was removed. Customers only. |
erased.customerDisplayNames | number | Yes | Saved display names removed from referrals, orders and cached claims. Customers only. |
erased.events | number | Yes | Saved copies of processed events that lost an email or a revocation, reinstatement or order adjustment reason. Customers only. |
erased.notes | number | Yes | Free-text reasons replaced with ERASED_TEXT: reward rejection reasons, milestone revocation and reinstatement reasons, failed delivery reasons and, for customers, the reasons on their orders' adjustments. Also counts provider promo code names erased for a partner. Each order counts once. |
erased.auditEntries | number | Yes | Activity log entries rewritten without the name or reasons. |
erased.webhookEvents | number | Yes | Webhook payloads rewritten, delivered or not. |
erased.providerEvents | number | Yes | Raw payment provider webhook bodies deleted. Customers only. |
erased.embedSessions | number | Yes | Embed sessions deleted. Partners only. |
erased.partnerAccess | number | Yes | Partner dashboard memberships and invitations removed, plus stored logins no company uses any more. Partners only. |
erased.partnerEmails | number | Yes | Partner email log rows whose recipient address was removed, plus queued emails that will not be sent. Partners only. |
outstanding
| Field | Type | Required | Details |
|---|---|---|---|
outstanding.pendingRewards | number | Yes | Rewards waiting for approval. |
outstanding.openPayouts | number | Yes | Payouts queued, processing or needing action. |
Response schema
{
"type": "object",
"properties": {
"erasedAt": {
"type": "string",
"description": "When the partner was first erased."
},
"alreadyErased": {
"type": "boolean",
"description": "True when an earlier call already erased the partner. This call still removed anything new."
},
"erased": {
"type": "object",
"properties": {
"identitySignals": {
"type": "number",
"description": "Hashed identity signals deleted."
},
"orderEmails": {
"type": "number",
"description": "Orders whose customerEmail was removed. Customers only."
},
"customerDisplayNames": {
"type": "number",
"description": "Saved display names removed from referrals, orders and cached claims. Customers only."
},
"events": {
"type": "number",
"description": "Saved copies of processed events that lost an email or a revocation, reinstatement or order\nadjustment reason.\nCustomers only."
},
"notes": {
"type": "number",
"description": "Free-text reasons replaced with ERASED_TEXT: reward rejection reasons, milestone revocation\nand reinstatement reasons, failed delivery reasons and, for customers, the reasons on their\norders' adjustments. Also counts provider promo code names erased for a partner.\nEach order counts once."
},
"auditEntries": {
"type": "number",
"description": "Activity log entries rewritten without the name or reasons."
},
"webhookEvents": {
"type": "number",
"description": "Webhook payloads rewritten, delivered or not."
},
"providerEvents": {
"type": "number",
"description": "Raw payment provider webhook bodies deleted. Customers only."
},
"embedSessions": {
"type": "number",
"description": "Embed sessions deleted. Partners only."
},
"partnerAccess": {
"type": "number",
"description": "Partner dashboard memberships and invitations removed, plus stored logins no company uses\nany more. Partners only."
},
"partnerEmails": {
"type": "number",
"description": "Partner email log rows whose recipient address was removed, plus queued emails that will not\nbe sent. Partners only."
}
},
"required": [
"identitySignals",
"orderEmails",
"customerDisplayNames",
"events",
"notes",
"auditEntries",
"webhookEvents",
"providerEvents",
"embedSessions",
"partnerAccess",
"partnerEmails"
]
},
"outstanding": {
"type": "object",
"properties": {
"pendingRewards": {
"type": "number",
"description": "Rewards waiting for approval."
},
"openPayouts": {
"type": "number",
"description": "Payouts queued, processing or needing action."
}
},
"required": [
"pendingRewards",
"openPayouts"
],
"description": "Money the partner may still be owed. Erasure keeps every amount, so you can still approve,\ndeliver and pay these."
},
"partnerId": {
"type": "string"
},
"partnerExternalId": {
"type": "string"
}
},
"required": [
"erasedAt",
"alreadyErased",
"erased",
"outstanding",
"partnerId",
"partnerExternalId"
]
}Errors
Failures return { "error": { "code": "...", "message": "...", "details": {} } }. Details are optional. See error statuses. Reuse an unchanged event payload when retrying.