{
"object": "error",
"type": "invalid_request",
"code": "access_denied",
"message": "The requested resource could not be found.",
"context": "api.price_get",
"live_mode": true,
"time_created": "2026-01-01T00:00:00Z"
}
{
"object": "error",
"type": "invalid_request",
"code": "access_denied",
"message": "The requested resource could not be found.",
"context": "api.price_get",
"live_mode": true,
"time_created": "2026-01-01T00:00:00Z"
}
{
"object": "error",
"type": "invalid_request",
"code": "access_denied",
"message": "The requested resource could not be found.",
"context": "api.price_get",
"live_mode": true,
"time_created": "2026-01-01T00:00:00Z"
}
{
"object": "error",
"type": "invalid_request",
"code": "access_denied",
"message": "The requested resource could not be found.",
"context": "api.price_get",
"live_mode": true,
"time_created": "2026-01-01T00:00:00Z"
}
{
"object": "error",
"type": "invalid_request",
"code": "access_denied",
"message": "The requested resource could not be found.",
"context": "api.price_get",
"live_mode": true,
"time_created": "2026-01-01T00:00:00Z"
}
{
"object": "error",
"type": "invalid_request",
"code": "access_denied",
"message": "The requested resource could not be found.",
"context": "api.price_get",
"live_mode": true,
"time_created": "2026-01-01T00:00:00Z"
}
{
"object": "error",
"type": "invalid_request",
"code": "access_denied",
"message": "The requested resource could not be found.",
"context": "api.price_get",
"live_mode": true,
"time_created": "2026-01-01T00:00:00Z"
}
{
"object": "error",
"type": "invalid_request",
"code": "access_denied",
"message": "The requested resource could not be found.",
"context": "api.price_get",
"live_mode": true,
"time_created": "2026-01-01T00:00:00Z"
}
Rewards
Approve rewards
Approves ACCRUED rewards, which fixes their amounts: an approved entry no longer changes when later meter records arrive. Name the entries with reward_ids, or approve every ACCRUED entry a filter matches. Entries already APPROVED or PAID are left unchanged, so retries are safe.
The result of approving rewards or marking them paid.
object
enum<string>
required
Object type, reward_batch.
Available options:
reward_batch
Example:
"reward_batch"
status
enum<string>
required
The status the entries were moved to.
Available options:
APPROVED,
PAID
Example:
"PAID"
count
integer
required
Number of entries this call changed. Entries that were already in this status, or past it, are not counted.
Required range: x >= 0
Example:
1840
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Flatpeak","colors":{"primary":"#0D9373","light":"#55D799","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/flatpeak-d495c19e/2B6nWUU4-c2pSD3E/images/shared/flatpeak-logo-new-dark.png?fit=max\u0026auto=format\u0026n=2B6nWUU4-c2pSD3E\u0026q=85\u0026s=b3eb2629b2f6d7ac5813f2fc130d3b98","dark":"https://mintcdn.com/flatpeak-d495c19e/2B6nWUU4-c2pSD3E/images/shared/flatpeak-logo-new-light.png?fit=max\u0026auto=format\u0026n=2B6nWUU4-c2pSD3E\u0026q=85\u0026s=79bc7b47f8f54f7b623a2aa0522d5dce","href":"/"},"favicon":"https://mintcdn.com/flatpeak-d495c19e/2B6nWUU4-c2pSD3E/favicon.png?fit=max\u0026auto=format\u0026n=2B6nWUU4-c2pSD3E\u0026q=85\u0026s=f21ca4406e76bd3d6900999d5c9f1510","navbar":{"links":[{"href":"/support","label":"Support"}],"primary":{"type":"button","label":"Console","href":"https://console.flatpeak.com"}},"footer":{"socials":{"github":"https://github.com/flat-peak","linkedin":"https://www.linkedin.com/company/flatpeak"}},"fonts":{"heading":{"family":"NB International Pro","source":"https://flatpeak-static.s3.amazonaws.com/misc/fonts/nbinternationalpro-bold-webfont.woff2","format":"woff2"},"body":{"family":"NB International Pro","source":"https://flatpeak-static.s3.amazonaws.com/misc/fonts/nbinternationalpro-regular-webfont.woff2","format":"woff2"}},"styling":{"eyebrows":"section","codeblocks":"system","latex":false},"integrations":{"ga4":{"measurementId":"G-2ZGZW08N65"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"flatpeak-d495c19e","hasAudioNarration":false,"actualSubdomain":"flatpeak-d495c19e","customDomains":[],"gitSource":{"type":"github","owner":"flat-peak","repo":"busbar-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6af588a42092b9c7b91cf695"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af783c51bcf9df148926cf0","clientVersion":"0.0.4131","searchFilterCounts":[{"language":"default","tag":"API Reference","count":155},{"language":"default","tag":"Energy API","count":116},{"language":"default","tag":"Fleet API","count":88},{"language":"default","tag":"Platform","count":51},{"language":"default","tag":"Guides","count":49},{"language":"default","tag":"Tariffs","count":45},{"language":"default","tag":"VPP","count":45},{"language":"default","tag":"Enroll customers","count":26},{"language":"default","tag":"Connect","count":23},{"language":"default","tag":"VPP events","count":16}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":not(pre)>code{white-space:nowrap}html[data-current-path=\"/\"] #navbar div:has(>.nav-tabs),html[data-current-path=\"/\"] #navbar [data-component-part=\"products-selector-trigger\"]{display:none}"}],"page":{"pagePath":"fleet-api/reference/rewards/approve","slug":"/fleet-api/reference/rewards/approve","pageMetadata":{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /rewards/approve","title":"Approve rewards","description":"Approves `ACCRUED` rewards, which fixes their amounts: an approved entry no longer changes when later meter records arrive. Name the entries with `reward_ids`, or approve every `ACCRUED` entry a `filter` matches. Entries already `APPROVED` or `PAID` are left unchanged, so retries are safe.","href":"/fleet-api/reference/rewards/approve"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Approves \", _jsx(_components.code, {\n children: \"ACCRUED\"\n }), \" rewards, which fixes their amounts: an approved entry no longer changes when later meter records arrive. Name the entries with \", _jsx(_components.code, {\n children: \"reward_ids\"\n }), \", or approve every \", _jsx(_components.code, {\n children: \"ACCRUED\"\n }), \" entry a \", _jsx(_components.code, {\n children: \"filter\"\n }), \" matches. Entries already \", _jsx(_components.code, {\n children: \"APPROVED\"\n }), \" or \", _jsx(_components.code, {\n children: \"PAID\"\n }), \" are left unchanged, so retries are safe.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /rewards/approve","title":"Approve rewards","description":"Approves `ACCRUED` rewards, which fixes their amounts: an approved entry no longer changes when later meter records arrive. Name the entries with `reward_ids`, or approve every `ACCRUED` entry a `filter` matches. Entries already `APPROVED` or `PAID` are left unchanged, so retries are safe.","href":"/fleet-api/reference/rewards/approve"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Approve rewards","operationId":"approve-rewards","tags":["Rewards"],"description":"Approves `ACCRUED` rewards, which fixes their amounts: an approved entry no longer changes when later meter records arrive. Name the entries with `reward_ids`, or approve every `ACCRUED` entry a `filter` matches. Entries already `APPROVED` or `PAID` are left unchanged, so retries are safe.","requestBody":"97a9b81b-ac81-4779-99a1-9d4d0611dc0a","responses":{"200":"63a327df-4591-4efc-a0a3-55f3ac2386a8","400":"29f84433-b049-4f10-9e81-677f4e1dfbcd","401":"b9d2c8fb-53d4-45e7-9905-9388ad42523a","403":"7570637c-d66d-4ddf-93c1-39d5439c6a11","404":"f387c823-a2ca-4f47-8745-70399298b9a0","422":"a9651d14-27ce-4afe-95c6-eaf60d704dda","429":"bc11f687-cdd0-41ab-ae50-6c218fd1ffb8","500":"efea2e41-0258-4197-9aa5-62784fc5421f","503":"1d6a7028-1a3e-4ad0-a14d-5330c64f24e9"},"parameters":[],"method":"post","type":"path","servers":["87faf99e-2829-4685-abf3-331e5f734dd9"],"security":["9037eda5-3530-43aa-a5b8-53c9c7f967fc"],"path":"/rewards/approve","baseUrlOptions":["https://fleet-api.flatpeak.com"],"title":"Approve rewards","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"description":"Reward approval payload.","required":true,"content":{"application/json":{"schema":{"title":"RewardApprove","type":"object","description":"Rewards to approve. Provide exactly one of `reward_ids` or `filter`. Only `ACCRUED` entries change; entries already `APPROVED` or `PAID` are left untouched.","properties":{"reward_ids":{"type":"array","items":{"type":"string","uniqueKey":"reward_ids.items.[INDEX]","typeLabel":"string"},"minItems":1,"description":"Reward entry IDs to approve.","example":["rwd_1a2b3c4d5e6f7a8b9c0d1e2f","rwd_2b3c4d5e6f7a8b9c0d1e2f3a"],"uniqueKey":"reward_ids","typeLabel":"string[]"},"filter":{"type":"object","additionalProperties":false,"minProperties":1,"description":"Approve every `ACCRUED` entry this matches, in one call. Selects entries the same way the filters on [list all rewards](/fleet-api/reference/rewards/list) do. Give at least one field.","properties":{"program_id":{"type":"string","description":"Only entries accrued under this program.","example":"vpr_5c8d1f2a7b3e4d6c9a0f1b2c","uniqueKey":"filter.program_id","typeLabel":"string"},"device_id":{"type":"string","description":"Only this device's entries.","example":"dev_63a6087272941ef077a8fd3e","uniqueKey":"filter.device_id","typeLabel":"string"},"start_time":{"type":"string","format":"date-time","description":"Start of the period, in UTC.","example":"2026-08-01T00:00:00Z","uniqueKey":"filter.start_time","typeLabel":"string\u003cdate-time>"},"end_time":{"type":"string","format":"date-time","description":"End of the period, in UTC.","example":"2026-09-01T00:00:00Z","uniqueKey":"filter.end_time","typeLabel":"string\u003cdate-time>"}},"example":{"program_id":"vpr_5c8d1f2a7b3e4d6c9a0f1b2c","start_time":"2026-08-01T00:00:00Z","end_time":"2026-09-01T00:00:00Z"},"uniqueKey":"filter","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"RewardApprove · object"},"examples":{"One entry":{"title":"One entry","value":{"reward_ids":["rwd_1a2b3c4d5e6f7a8b9c0d1e2f"]}},"A program's month":{"title":"A program's month","value":{"filter":{"program_id":"vpr_5c8d1f2a7b3e4d6c9a0f1b2c","start_time":"2026-08-01T00:00:00Z","end_time":"2026-09-01T00:00:00Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"63a327df-4591-4efc-a0a3-55f3ac2386a8":{"description":"Reward batch response.","content":{"application/json":{"schema":{"type":"object","title":"RewardBatch","additionalProperties":false,"description":"The result of approving rewards or marking them paid.","required":["object","status","count"],"properties":{"object":{"type":"string","description":"Object type, `reward_batch`.","example":"reward_batch","enum":["reward_batch"],"isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["APPROVED","PAID"],"description":"The status the entries were moved to.","example":"PAID","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"count":{"type":"integer","minimum":0,"description":"Number of entries this call changed. Entries that were already in this status, or past it, are not counted.","example":1840,"isRequired":true,"uniqueKey":"count","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"RewardBatch · object"},"example":{"object":"reward_batch","status":"APPROVED","count":1},"examples":{"Example":{"title":"Example","value":{"object":"reward_batch","status":"APPROVED","count":1}}},"exampleType":"examples"}},"exampleType":"examples"},"29f84433-b049-4f10-9e81-677f4e1dfbcd":{"description":"400 Bad Request: the request was malformed or a required field is missing or invalid.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned by every non-2xx response.","required":["object","type","code","message"],"properties":{"object":{"type":"string","enum":["error"],"default":"error","description":"Object type.","isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"High-level error category.","example":"invalid_request","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code, safe to branch on.","example":"access_denied","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the error.","example":"The requested resource could not be found.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"context":{"type":"string","description":"Optional originating context, for example `api.price_get`.","example":"api.price_get","uniqueKey":"context","typeLabel":"string"},"live_mode":{"type":"boolean","description":"Whether the error occurred against live or test data.","uniqueKey":"live_mode","typeLabel":"boolean"},"time_created":{"type":"string","format":"date-time","description":"Time the error was generated (RFC 3339).","example":"2026-01-01T00:00:00Z","uniqueKey":"time_created","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"error","type":"invalid_request","code":"access_denied","message":"The requested resource could not be found.","context":"api.price_get","live_mode":true,"time_created":"2026-01-01T00:00:00Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"b9d2c8fb-53d4-45e7-9905-9388ad42523a":{"description":"401 Unauthorized: authentication credentials are missing or invalid.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned by every non-2xx response.","required":["object","type","code","message"],"properties":{"object":{"type":"string","enum":["error"],"default":"error","description":"Object type.","isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"High-level error category.","example":"invalid_request","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code, safe to branch on.","example":"access_denied","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the error.","example":"The requested resource could not be found.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"context":{"type":"string","description":"Optional originating context, for example `api.price_get`.","example":"api.price_get","uniqueKey":"context","typeLabel":"string"},"live_mode":{"type":"boolean","description":"Whether the error occurred against live or test data.","uniqueKey":"live_mode","typeLabel":"boolean"},"time_created":{"type":"string","format":"date-time","description":"Time the error was generated (RFC 3339).","example":"2026-01-01T00:00:00Z","uniqueKey":"time_created","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"error","type":"invalid_request","code":"access_denied","message":"The requested resource could not be found.","context":"api.price_get","live_mode":true,"time_created":"2026-01-01T00:00:00Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"7570637c-d66d-4ddf-93c1-39d5439c6a11":{"description":"403 Forbidden: you do not have permission to access this resource.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned by every non-2xx response.","required":["object","type","code","message"],"properties":{"object":{"type":"string","enum":["error"],"default":"error","description":"Object type.","isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"High-level error category.","example":"invalid_request","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code, safe to branch on.","example":"access_denied","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the error.","example":"The requested resource could not be found.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"context":{"type":"string","description":"Optional originating context, for example `api.price_get`.","example":"api.price_get","uniqueKey":"context","typeLabel":"string"},"live_mode":{"type":"boolean","description":"Whether the error occurred against live or test data.","uniqueKey":"live_mode","typeLabel":"boolean"},"time_created":{"type":"string","format":"date-time","description":"Time the error was generated (RFC 3339).","example":"2026-01-01T00:00:00Z","uniqueKey":"time_created","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"error","type":"invalid_request","code":"access_denied","message":"The requested resource could not be found.","context":"api.price_get","live_mode":true,"time_created":"2026-01-01T00:00:00Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"f387c823-a2ca-4f47-8745-70399298b9a0":{"description":"404 Not Found: the requested resource does not exist.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned by every non-2xx response.","required":["object","type","code","message"],"properties":{"object":{"type":"string","enum":["error"],"default":"error","description":"Object type.","isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"High-level error category.","example":"invalid_request","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code, safe to branch on.","example":"access_denied","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the error.","example":"The requested resource could not be found.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"context":{"type":"string","description":"Optional originating context, for example `api.price_get`.","example":"api.price_get","uniqueKey":"context","typeLabel":"string"},"live_mode":{"type":"boolean","description":"Whether the error occurred against live or test data.","uniqueKey":"live_mode","typeLabel":"boolean"},"time_created":{"type":"string","format":"date-time","description":"Time the error was generated (RFC 3339).","example":"2026-01-01T00:00:00Z","uniqueKey":"time_created","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"error","type":"invalid_request","code":"access_denied","message":"The requested resource could not be found.","context":"api.price_get","live_mode":true,"time_created":"2026-01-01T00:00:00Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"a9651d14-27ce-4afe-95c6-eaf60d704dda":{"description":"422 Unprocessable Entity: the request is well-formed but cannot be processed, for example missing required data.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned by every non-2xx response.","required":["object","type","code","message"],"properties":{"object":{"type":"string","enum":["error"],"default":"error","description":"Object type.","isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"High-level error category.","example":"invalid_request","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code, safe to branch on.","example":"access_denied","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the error.","example":"The requested resource could not be found.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"context":{"type":"string","description":"Optional originating context, for example `api.price_get`.","example":"api.price_get","uniqueKey":"context","typeLabel":"string"},"live_mode":{"type":"boolean","description":"Whether the error occurred against live or test data.","uniqueKey":"live_mode","typeLabel":"boolean"},"time_created":{"type":"string","format":"date-time","description":"Time the error was generated (RFC 3339).","example":"2026-01-01T00:00:00Z","uniqueKey":"time_created","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"error","type":"invalid_request","code":"access_denied","message":"The requested resource could not be found.","context":"api.price_get","live_mode":true,"time_created":"2026-01-01T00:00:00Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"bc11f687-cdd0-41ab-ae50-6c218fd1ffb8":{"description":"429 Too Many Requests: the rate limit has been exceeded.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned by every non-2xx response.","required":["object","type","code","message"],"properties":{"object":{"type":"string","enum":["error"],"default":"error","description":"Object type.","isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"High-level error category.","example":"invalid_request","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code, safe to branch on.","example":"access_denied","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the error.","example":"The requested resource could not be found.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"context":{"type":"string","description":"Optional originating context, for example `api.price_get`.","example":"api.price_get","uniqueKey":"context","typeLabel":"string"},"live_mode":{"type":"boolean","description":"Whether the error occurred against live or test data.","uniqueKey":"live_mode","typeLabel":"boolean"},"time_created":{"type":"string","format":"date-time","description":"Time the error was generated (RFC 3339).","example":"2026-01-01T00:00:00Z","uniqueKey":"time_created","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"error","type":"invalid_request","code":"access_denied","message":"The requested resource could not be found.","context":"api.price_get","live_mode":true,"time_created":"2026-01-01T00:00:00Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"efea2e41-0258-4197-9aa5-62784fc5421f":{"description":"500 Internal Server Error: an unexpected error occurred. Safe to retry with backoff.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned by every non-2xx response.","required":["object","type","code","message"],"properties":{"object":{"type":"string","enum":["error"],"default":"error","description":"Object type.","isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"High-level error category.","example":"invalid_request","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code, safe to branch on.","example":"access_denied","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the error.","example":"The requested resource could not be found.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"context":{"type":"string","description":"Optional originating context, for example `api.price_get`.","example":"api.price_get","uniqueKey":"context","typeLabel":"string"},"live_mode":{"type":"boolean","description":"Whether the error occurred against live or test data.","uniqueKey":"live_mode","typeLabel":"boolean"},"time_created":{"type":"string","format":"date-time","description":"Time the error was generated (RFC 3339).","example":"2026-01-01T00:00:00Z","uniqueKey":"time_created","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"error","type":"invalid_request","code":"access_denied","message":"The requested resource could not be found.","context":"api.price_get","live_mode":true,"time_created":"2026-01-01T00:00:00Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"1d6a7028-1a3e-4ad0-a14d-5330c64f24e9":{"description":"503 Service Unavailable: the service is temporarily down for maintenance. Retry after the indicated delay.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned by every non-2xx response.","required":["object","type","code","message"],"properties":{"object":{"type":"string","enum":["error"],"default":"error","description":"Object type.","isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"High-level error category.","example":"invalid_request","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code, safe to branch on.","example":"access_denied","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the error.","example":"The requested resource could not be found.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"context":{"type":"string","description":"Optional originating context, for example `api.price_get`.","example":"api.price_get","uniqueKey":"context","typeLabel":"string"},"live_mode":{"type":"boolean","description":"Whether the error occurred against live or test data.","uniqueKey":"live_mode","typeLabel":"boolean"},"time_created":{"type":"string","format":"date-time","description":"Time the error was generated (RFC 3339).","example":"2026-01-01T00:00:00Z","uniqueKey":"time_created","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"error","type":"invalid_request","code":"access_denied","message":"The requested resource could not be found.","context":"api.price_get","live_mode":true,"time_created":"2026-01-01T00:00:00Z"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"9037eda5-3530-43aa-a5b8-53c9c7f967fc":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Authenticate with the `bearer_token` obtained from the [authentication](/fleet-api/reference/authentication) endpoint.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"87faf99e-2829-4685-abf3-331e5f734dd9":{"url":"https://fleet-api.flatpeak.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Authenticate with the `bearer_token` obtained from the [authentication](/fleet-api/reference/authentication) endpoint.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Authenticate with the `bearer_token` obtained from the [authentication](/fleet-api/reference/authentication) endpoint.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"fleet-api/reference/flatpeak-api-spec-fleet.json"},"subdomain":"flatpeak-d495c19e","siteName":"Flatpeak","title":"Approve rewards - Flatpeak","relatedPagesConfig":{"enabled":false,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T21:41:02.047Z","originalFileLocation":"fleet-api/reference/rewards/approve.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Approves ACCRUED rewards, which fixes their amounts: an approved entry no longer changes when later meter records arrive. Name the entries with reward_ids, or approve every ACCRUED entry a filter matches. Entries already APPROVED or PAID are left unchanged, so retries are safe.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Flatpeak\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex, nofollow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/flatpeak-d495c19e/z8DTelcRm9a6-O99/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/flatpeak-d495c19e/z8DTelcRm9a6-O99/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/flatpeak-d495c19e/z8DTelcRm9a6-O99/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/flatpeak-d495c19e/z8DTelcRm9a6-O99/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/flatpeak-d495c19e/z8DTelcRm9a6-O99/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/flatpeak-d495c19e/z8DTelcRm9a6-O99/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/flatpeak-d495c19e/z8DTelcRm9a6-O99/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/flatpeak-d495c19e/z8DTelcRm9a6-O99/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/flatpeak-d495c19e/z8DTelcRm9a6-O99/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Approve rewards - Flatpeak\">\u003cmeta data-mint-head property=\"og:description\" content=\"Approves ACCRUED rewards, which fixes their amounts: an approved entry no longer changes when later meter records arrive. Name the entries with reward_ids, or approve every ACCRUED entry a filter matches. Entries already APPROVED or PAID are left unchanged, so retries are safe.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Flatpeak\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://flatpeak-d495c19e.mintlify.dev/docs/fleet-api/reference/rewards/approve\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://flatpeak-d495c19e.mintlify.site/docs/_mintlify/api/og/v2?division=Rewards\u0026amp;title=Approve+rewards\u0026amp;description=Approves+%60ACCRUED%60+rewards%2C+which+fixes+their+amounts%3A+an+approved+entry+no+longer+changes+when+later+meter+records+arrive.+Name+the+entries+with+%60reward_ids%60%2C+\u0026amp;theme=c5a97c60590f79f8ff853eab\u0026amp;signature=753342518df96595cb18798fdae01305f524a2baf45eedf92c27ab9e5e2c8694\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Approve rewards - Flatpeak\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Approves ACCRUED rewards, which fixes their amounts: an approved entry no longer changes when later meter records arrive. Name the entries with reward_ids, or approve every ACCRUED entry a filter matches. Entries already APPROVED or PAID are left unchanged, so retries are safe.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://flatpeak-d495c19e.mintlify.site/docs/_mintlify/api/og/v2?division=Rewards\u0026amp;title=Approve+rewards\u0026amp;description=Approves+%60ACCRUED%60+rewards%2C+which+fixes+their+amounts%3A+an+approved+entry+no+longer+changes+when+later+meter+records+arrive.+Name+the+entries+with+%60reward_ids%60%2C+\u0026amp;theme=c5a97c60590f79f8ff853eab\u0026amp;signature=753342518df96595cb18798fdae01305f524a2baf45eedf92c27ab9e5e2c8694\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/flatpeak-d495c19e/z8DTelcRm9a6-O99/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Flatpeak\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://flatpeak-d495c19e.mintlify.dev/docs/fleet-api/reference/rewards/approve\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/fleet-api/reference/rewards/approve.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Flatpeak\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Flatpeak\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/fleet-api/reference/rewards/approve.md","siteName":"Flatpeak","nav":{"global":null,"products":[{"product":"Energy API","icon":"bolt-auto","description":"For manufacturers (OEMs)","pages":[{"title":"Energy API","href":"/energy-api/guides"}]},{"product":"Fleet API","icon":"transformer-bolt","description":"For energy suppliers and VPP operators","tabs":[{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":"/fleet-api/guides"}]},{"tab":"API Reference","icon":"square-terminal","groups":[{"group":"Platform","icon":"server","pages":[{"title":"Fleet API reference","sidebarTitle":"Introduction","icon":"memo-circle-info","href":"/fleet-api/reference"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /auth/tokens","sidebarTitle":"Authentication","title":"Create a bearer token","href":"/fleet-api/reference/authentication"},{"group":"Events","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /events","sidebarTitle":"List events","title":"List all events","href":"/fleet-api/reference/events/list"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /events/{event_id}","sidebarTitle":"Retrieve event","title":"Retrieve an event","href":"/fleet-api/reference/events/retrieve"}]},{"group":"OEMs","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /oems","sidebarTitle":"List OEMs","title":"List all OEMs","href":"/fleet-api/reference/oems/list"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /oems/{oem_id}","sidebarTitle":"Retrieve OEM","title":"Retrieve an OEM","href":"/fleet-api/reference/oems/retrieve"}]},{"group":"Devices","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /devices","sidebarTitle":"List devices","title":"List all devices","href":"/fleet-api/reference/devices/list"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /devices/{device_id}","sidebarTitle":"Retrieve device","title":"Retrieve a device","href":"/fleet-api/reference/devices/retrieve"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /devices/{device_id}/settings","sidebarTitle":"Retrieve settings","title":"Retrieve device settings","href":"/fleet-api/reference/devices/retrieve-settings"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json PATCH /devices/{device_id}/settings","sidebarTitle":"Update settings","title":"Update device settings","href":"/fleet-api/reference/devices/update-settings"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /devices/{device_id}/consent-history","sidebarTitle":"Consent history","title":"Retrieve consent history","href":"/fleet-api/reference/devices/consent-history"}]},{"group":"Locations","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /locations/{location_id}","sidebarTitle":"Retrieve location","title":"Retrieve a location","href":"/fleet-api/reference/locations/retrieve"}]},{"group":"Tariffs","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /tariffs","sidebarTitle":"List tariffs","title":"List all tariffs","href":"/fleet-api/reference/tariffs/list"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /tariffs","sidebarTitle":"Create tariff","title":"Create a tariff","href":"/fleet-api/reference/tariffs/create"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /tariffs/{tariff_id}","sidebarTitle":"Retrieve tariff","title":"Retrieve a tariff","href":"/fleet-api/reference/tariffs/retrieve"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json DELETE /tariffs/{tariff_id}","sidebarTitle":"Delete tariff","title":"Delete a tariff","href":"/fleet-api/reference/tariffs/delete"}]}]},{"group":"Enroll customers","icon":"bullhorn","pages":[{"group":"Connect devices","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /connect-sessions","sidebarTitle":"Create session","title":"Create a Connect session","href":"/fleet-api/reference/connect-sessions/create"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /connect-sessions/{session_id}","sidebarTitle":"Retrieve session","title":"Retrieve a Connect session","href":"/fleet-api/reference/connect-sessions/retrieve"}]},{"group":"Programs","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /vpp-programs","sidebarTitle":"Create program","title":"Create a VPP program","href":"/fleet-api/reference/vpp-programs/create"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /vpp-programs","sidebarTitle":"List programs","title":"List all VPP programs","href":"/fleet-api/reference/vpp-programs/list"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /vpp-programs/{program_id}","sidebarTitle":"Retrieve program","title":"Retrieve a VPP program","href":"/fleet-api/reference/vpp-programs/retrieve"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json PATCH /vpp-programs/{program_id}","sidebarTitle":"Update program","title":"Update a VPP program","href":"/fleet-api/reference/vpp-programs/update"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /vpp-programs/{program_id}/summary","sidebarTitle":"Retrieve summary","title":"Retrieve a VPP program summary","href":"/fleet-api/reference/vpp-programs/retrieve-summary"}]},{"group":"Enrollments","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /vpp-enrollments","sidebarTitle":"List enrollments","title":"List all VPP enrollments","href":"/fleet-api/reference/vpp-enrollments/list"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /vpp-enrollments/{enrollment_id}","sidebarTitle":"Retrieve enrollment","title":"Retrieve a VPP enrollment","href":"/fleet-api/reference/vpp-enrollments/retrieve"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /vpp-enrollments/{enrollment_id}/approve","sidebarTitle":"Approve request","title":"Approve an enrollment request","href":"/fleet-api/reference/vpp-enrollments/approve"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /vpp-enrollments/{enrollment_id}/unenroll","sidebarTitle":"Unenroll device","title":"Unenroll a device","href":"/fleet-api/reference/vpp-enrollments/unenroll"}]}]},{"group":"Dispatch devices","icon":"calendar-day","pages":[{"group":"VPP events","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /vpp-events","sidebarTitle":"Create event","title":"Create a VPP event","href":"/fleet-api/reference/vpp-events/create"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /vpp-events","sidebarTitle":"List events","title":"List all VPP events","href":"/fleet-api/reference/vpp-events/list"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /vpp-events/{vpp_event_id}","sidebarTitle":"Retrieve event","title":"Retrieve a VPP event","href":"/fleet-api/reference/vpp-events/retrieve"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /vpp-events/{vpp_event_id}/cancel","sidebarTitle":"Cancel event","title":"Cancel a VPP event","href":"/fleet-api/reference/vpp-events/cancel"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /vpp-events/{vpp_event_id}/devices","sidebarTitle":"List event devices","title":"List all VPP event devices","href":"/fleet-api/reference/vpp-events/list-devices"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /devices/{device_id}/deliveries","sidebarTitle":"Deliveries by device","title":"List device deliveries","href":"/fleet-api/reference/vpp-events/list-device-deliveries"}]},{"group":"Plans","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /devices/{device_id}/plans","sidebarTitle":"Submit plan","title":"Submit a dispatch plan","href":"/fleet-api/reference/plans/submit"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /plans/{plan_id}","sidebarTitle":"Retrieve plan","title":"Retrieve a dispatch plan","href":"/fleet-api/reference/plans/retrieve"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /devices/{device_id}/timeline","sidebarTitle":"Retrieve timeline","title":"Retrieve a dispatch timeline","href":"/fleet-api/reference/plans/retrieve-timeline"}]},{"group":"Device telemetry","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /devices/{device_id}/state","sidebarTitle":"Retrieve state","title":"Retrieve a device state","href":"/fleet-api/reference/device-state/retrieve"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /devices/{device_id}/meter-records","sidebarTitle":"List meter records","title":"List device meter records","href":"/fleet-api/reference/meter-records/list-device"}]},{"group":"Location telemetry","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /locations/{location_id}/meter-records","sidebarTitle":"List meter records","title":"List location meter records","href":"/fleet-api/reference/meter-records/list-location"}]}]},{"group":"Organize the fleet","icon":"layer-group","pages":[{"group":"Groups","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /groups","sidebarTitle":"Create group","title":"Create a group","href":"/fleet-api/reference/groups/create"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /groups","sidebarTitle":"List groups","title":"List all groups","href":"/fleet-api/reference/groups/list"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /groups/{group_id}","sidebarTitle":"Retrieve group","title":"Retrieve a group","href":"/fleet-api/reference/groups/retrieve"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json PATCH /groups/{group_id}","sidebarTitle":"Update group","title":"Update a group","href":"/fleet-api/reference/groups/update"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json DELETE /groups/{group_id}","sidebarTitle":"Delete group","title":"Delete a group","href":"/fleet-api/reference/groups/delete"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /groups/{group_id}/devices","sidebarTitle":"List group devices","title":"List all group devices","href":"/fleet-api/reference/groups/list-devices"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /groups/{group_id}/capacity","sidebarTitle":"Retrieve capacity","title":"Retrieve a capacity forecast","href":"/fleet-api/reference/groups/retrieve-capacity"}]},{"group":"Zones","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /zones","sidebarTitle":"Create zone","title":"Create a zone","href":"/fleet-api/reference/zones/create"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /zones","sidebarTitle":"List zones","title":"List all zones","href":"/fleet-api/reference/zones/list"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /zones/{zone_id}","sidebarTitle":"Retrieve zone","title":"Retrieve a zone","href":"/fleet-api/reference/zones/retrieve"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json PATCH /zones/{zone_id}","sidebarTitle":"Update zone","title":"Update a zone","href":"/fleet-api/reference/zones/update"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json DELETE /zones/{zone_id}","sidebarTitle":"Delete zone","title":"Delete a zone","href":"/fleet-api/reference/zones/delete"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /zones/{zone_id}/devices","sidebarTitle":"List zone devices","title":"List all zone devices","href":"/fleet-api/reference/zones/list-devices"}]}]},{"group":"Settle and reward","icon":"coins","pages":[{"group":"Exports","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /exports","sidebarTitle":"Create export","title":"Create an export","href":"/fleet-api/reference/exports/create"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /exports","sidebarTitle":"List exports","title":"List all exports","href":"/fleet-api/reference/exports/list"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /exports/{export_id}","sidebarTitle":"Retrieve export","title":"Retrieve an export","href":"/fleet-api/reference/exports/retrieve"}]},{"group":"Rewards","pages":[{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json GET /rewards","sidebarTitle":"List rewards","title":"List all rewards","description":"Returns reward ledger entries. A delivered commitment creates an `ACCRUED` entry, priced by the `terms` the enrollment joined with. Filter by `status` to list what awaits approval or payment.","href":"/fleet-api/reference/rewards/list"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /rewards/approve","title":"Approve rewards","href":"/fleet-api/reference/rewards/approve"},{"openapi":"fleet-api/reference/flatpeak-api-spec-fleet.json POST /rewards/mark-paid","title":"Mark rewards paid","description":"Records that you have paid the customer. Name the entries with `reward_ids`, which can be a single entry for a payment made on its own, or mark every `APPROVED` entry a `filter` matches. They move to `PAID` carrying your `payment_reference`. Entries already `PAID` are unchanged, so retries are safe.","href":"/fleet-api/reference/rewards/mark-paid"}]}]}]}]}]},"basePath":"","title":"Approve rewards - Flatpeak","buildId":"dpl_Eok1jboeiLTUE4ccnKdogAktkDhH","deploymentId":"dpl_Eok1jboeiLTUE4ccnKdogAktkDhH","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BO6jLjHP.js","utils-DzK3kjtW.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B_o_sRtB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-w5sf6cTL.js","snippetPresets-C-LqQvlw.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-B86q0r56.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CK4fhXtK.js","shallow-2nSrO3Y1.js","getApiPlaygroundDisplay-iMY8AQYp.js","CodeSnippet-CYrmmkRs.js","CodeSnippets-CpTHX08n.js","Page-B6e_603r.js","getPastedJson-ErXUu_z-.js","icon-DjAwzjTp.js","MethodPill-DWCnd71y.js","DuplicateIcon-CzD5BRfY.js","createIcon-D_pVdVTU.js","DynamicMarkdown-BeNxZ5px.js","SectionHeading-CovuDw0Y.js","axios-vUo_bRtp.js","Markdown-BZjeoXbi.js","clsx-BaM3PNnJ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BfGZDUfd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-wFXGQKnc.js"]}