{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"SolvaPay Documentation","description":"SolvaPay is the payment layer for selling APIs, MCP servers, and AI agents: paywalls, plans, credits, usage billing, and checkout. REST API base URL https://api.solvapay.com, authenticated with Authorization: Bearer \u003csecret key>.","colors":{"primary":"#3a3a3a","light":"#4f4f4f","dark":"#2b2b2b"},"logo":{"light":"https://mintcdn.com/solvapay/pDrplLgkkfw8UFU2/logo/light.svg?fit=max\u0026auto=format\u0026n=pDrplLgkkfw8UFU2\u0026q=85\u0026s=db5e58447f4f3f440d4e3ce727801ef8","dark":"https://mintcdn.com/solvapay/pDrplLgkkfw8UFU2/logo/dark.svg?fit=max\u0026auto=format\u0026n=pDrplLgkkfw8UFU2\u0026q=85\u0026s=42fef13840f2a0f79079f42888a8d818"},"favicon":"https://mintcdn.com/solvapay/pDrplLgkkfw8UFU2/favicon.svg?fit=max\u0026auto=format\u0026n=pDrplLgkkfw8UFU2\u0026q=85\u0026s=2937a18591b4dcddf42e75b4e0780913","navbar":{"links":[{"href":"mailto:support@solvapay.com","label":"Support"}],"primary":{"type":"button","label":"Get started","href":"https://app.solvapay.com"}},"footer":{"socials":{"website":"https://solvapay.com","github":"https://github.com/solvapay","linkedin":"https://linkedin.com/company/solvapay"}},"fonts":{"family":"Inter"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"markdown":{"instructions":["SolvaPay quick facts:","- REST API base URL: https://api.solvapay.com. All public endpoints are under /v1/sdk/ (for example GET https://api.solvapay.com/v1/sdk/products). Sandbox and production share this URL.","- Auth: send a secret key as `Authorization: Bearer \u003csecret key>` (the REST API also accepts `X-API-Key: \u003csecret key>`).","- Secret key prefixes: `sk_sandbox_` (sandbox, test payments) and `sk_live_` (production). The prefix selects the environment.","- Get keys in SolvaPay Console (https://app.solvapay.com) > Developers > API Keys. Use a sandbox key while building.","- Admin MCP Server: https://mcp.solvapay.com/mcp (Streamable HTTP). Connect with OAuth: add the URL and sign in with the SolvaPay account; no API key needed. OAuth sessions use the live account; for sandbox data or headless clients, send `Authorization: Bearer \u003csecret key>` (X-API-Key is ignored).","- Install the SolvaPay agent skills: `npx skills add https://solvapay.com` (skills CLI older than 1.5.7: `npx skills add solvapay/skills`).","- TypeScript SDK setup: `npx solvapay@latest init`. The SDK reads SOLVAPAY_SECRET_KEY and defaults to https://api.solvapay.com.","- Plans take an options[] array (billingCycle, charge, limit, ...). Retired plan fields price, freeUnits and billingCycle are rejected.","- Step-by-step from zero to a first paid call: Managed MCP https://docs.solvapay.com/build/managed-mcp.md, TypeScript SDK https://docs.solvapay.com/build/typescript-sdk.md, agent skill https://docs.solvapay.com/build/agent-skill.md.","- Details: https://docs.solvapay.com/api-reference/authentication.md. OpenAPI spec: https://docs.solvapay.com/api-reference/openapi.json."]},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"solvapay","hasAudioNarration":false,"actualSubdomain":"solvapay","customDomains":["docs.solvapay.com"],"gitSource":{"type":"github","owner":"solvapay","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adba55e9b1da7716ea4dea9","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"API reference","count":49},{"language":"default","tag":"Docs","count":44},{"language":"default","tag":"SDKs","count":20},{"language":"default","tag":"TypeScript SDK","count":20},{"language":"default","tag":"Changelog","count":11},{"language":"default","tag":"Get started","count":10},{"language":"default","tag":"Guides","count":8},{"language":"default","tag":"Customers","count":8},{"language":"default","tag":"Products","count":8},{"language":"default","tag":"Managed MCP","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","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":"llms-txt-v2","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}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"footer a[href*=\"mintlify.com\"]{display:none!important}footer a[href*=\"x.com\"],footer a[href*=\"twitter.com\"]{display:none!important}footer div:has(>a[href*=\"mintlify.com\"]),footer p:has(>a[href*=\"mintlify.com\"]){display:none!important}#content-container:has(#welcome-home) #content-area>#header{display:none!important}#content-container:has(#welcome-home) #content-area{max-width:76rem!important}#content-container:has(#welcome-home) #pagination{display:none!important}#content-container:has(#welcome-home) aside[aria-label=\"On this page\"],#content-container:has(#welcome-home) nav[aria-label=\"On this page\"],#content-container:has(#welcome-home) #table-of-contents,#content-container:has(#welcome-home) #toc{display:none!important}"}],"page":{"pagePath":"api-reference/usage/record-bulk-usage-events","slug":"/api-reference/usage/record-bulk-usage-events","pageMetadata":{"title":"Record bulk usage events","description":"Same persistence rules as POST /sdk/usages for each item: validate batch first, then one insert per event.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/usages/bulk","href":"/api-reference/usage/record-bulk-usage-events","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Same persistence rules as POST /sdk/usages for each item: validate batch first, then one insert per event.\"\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":{"config":{},"pageMetadata":{"title":"Record bulk usage events","description":"Same persistence rules as POST /sdk/usages for each item: validate batch first, then one insert per event.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/usages/bulk","href":"/api-reference/usage/record-bulk-usage-events","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Same persistence rules as POST /sdk/usages for each item: validate batch first, then one insert per event.","operationId":"UsageSdkController_recordBulkUsage","parameters":[],"requestBody":"c80a52cb-614a-467a-9e68-694d3810f8a2","responses":{"200":"e1d1f0d8-5780-43fa-8817-13d202df39d8","400":"39a8021c-7475-4032-95e1-c024f023a23c"},"security":["acf3f693-45ab-4d43-82b8-d0c5c0c331c6"],"summary":"Record bulk usage events","tags":["Usage"],"method":"post","type":"path","servers":["12143408-53b1-4330-bade-4e50882fb43f"],"path":"/v1/sdk/usages/bulk","baseUrlOptions":["https://api.solvapay.com"],"title":"Record bulk usage events","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"properties":{"events":{"items":{"properties":{"customerRef":{"maxLength":20,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"events.items.[INDEX].customerRef","typeLabel":"string"},"timestamp":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"events.items.[INDEX].timestamp","typeLabel":"string\u003cdate-time>"},"actionType":{"default":"api_call","enum":["transaction","api_call","hour","email","storage","custom"],"type":"string","uniqueKey":"events.items.[INDEX].actionType","typeLabel":"enum\u003cstring>"},"description":{"type":"string","uniqueKey":"events.items.[INDEX].description","typeLabel":"string"},"duration":{"exclusiveMinimum":false,"minimum":0,"type":"number","uniqueKey":"events.items.[INDEX].duration","typeLabel":"number"},"errorMessage":{"type":"string","uniqueKey":"events.items.[INDEX].errorMessage","typeLabel":"string"},"idempotencyKey":{"maxLength":256,"type":"string","uniqueKey":"events.items.[INDEX].idempotencyKey","typeLabel":"string"},"metadata":{"additionalProperties":true,"type":"object","uniqueKey":"events.items.[INDEX].metadata","typeLabel":"object"},"outcome":{"default":"success","enum":["success","paywall","fail"],"type":"string","uniqueKey":"events.items.[INDEX].outcome","typeLabel":"enum\u003cstring>"},"productRef":{"maxLength":20,"type":"string","uniqueKey":"events.items.[INDEX].productRef","typeLabel":"string"},"purchaseRef":{"maxLength":20,"type":"string","uniqueKey":"events.items.[INDEX].purchaseRef","typeLabel":"string"},"units":{"default":1,"exclusiveMaximum":false,"exclusiveMinimum":false,"maximum":100000,"minimum":0,"type":"integer","uniqueKey":"events.items.[INDEX].units","typeLabel":"integer"}},"required":["customerRef","timestamp"],"type":"object","uniqueKey":"events.items.[INDEX]","typeLabel":"object"},"maxItems":1000,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"events","typeLabel":"object[]"}},"required":["events"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"events":[{"customerRef":"\u003cstring>","timestamp":"2023-11-07T05:31:56Z","actionType":"api_call","description":"\u003cstring>","duration":1,"errorMessage":"\u003cstring>","idempotencyKey":"\u003cstring>","metadata":{},"outcome":"success","productRef":"\u003cstring>","purchaseRef":"\u003cstring>","units":1}]}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"e1d1f0d8-5780-43fa-8817-13d202df39d8":{"content":{"application/json":{"schema":{"properties":{"inserted":{"description":"Number of usage events inserted","example":2,"type":"number","isRequired":true,"uniqueKey":"inserted","typeLabel":"number"},"results":{"items":{"properties":{"reference":{"example":"usage_A1B2C3D4","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].reference","typeLabel":"string"},"creditDebit":{"oneOf":[{"type":"object","required":["debited","amount","remainingUnits","unitsRemaining"],"properties":{"amount":{"description":"Credits debited for this usage event (credits are USD-pegged at 100 credits per minor unit, so a 1¢/unit charge debits 100 credits/unit)","example":100,"type":"number","isRequired":true,"uniqueKey":"results.items.[INDEX].creditDebit.oneOf.0.amount","typeLabel":"number"},"debited":{"enum":[true],"type":"number","isRequired":true,"uniqueKey":"results.items.[INDEX].creditDebit.oneOf.0.debited","typeLabel":"enum\u003cnumber>"},"remainingUnits":{"description":"How many metered items the remaining credit balance still covers","example":99,"type":"number","isRequired":true,"uniqueKey":"results.items.[INDEX].creditDebit.oneOf.0.remainingUnits","typeLabel":"number"},"unitsRemaining":{"deprecated":true,"description":"Deprecated alias of remainingUnits. Prefer remainingUnits.","example":99,"type":"number","isRequired":true,"uniqueKey":"results.items.[INDEX].creditDebit.oneOf.0.unitsRemaining","typeLabel":"number"},"autoRecharge":{"properties":{"triggered":{"description":"Whether the server initiated an auto-recharge charge after this debit (TOPUP credit lands via webhook)","example":true,"type":"boolean","isRequired":true,"uniqueKey":"results.items.[INDEX].creditDebit.oneOf.0.autoRecharge.triggered","typeLabel":"boolean"}},"required":["triggered"],"type":"object","uniqueKey":"results.items.[INDEX].creditDebit.oneOf.0.autoRecharge","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].creditDebit.oneOf.0","typeLabel":"object"},{"type":"object","required":["debited","reason"],"properties":{"debited":{"enum":[false],"type":"number","isRequired":true,"uniqueKey":"results.items.[INDEX].creditDebit.oneOf.1.debited","typeLabel":"enum\u003cnumber>"},"reason":{"description":"Reason no credit debit was recorded","enum":["duplicate","no_product_ref","customer_not_found","no_active_purchase","plan_not_credit_based","not_credit_drawn","within_included"],"example":"duplicate","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].creditDebit.oneOf.1.reason","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].creditDebit.oneOf.1","typeLabel":"object"}],"uniqueKey":"results.items.[INDEX].creditDebit","typeLabel":"object"}},"required":["reference"],"type":"object","uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"results","typeLabel":"object[]"},"success":{"example":true,"type":"boolean","isRequired":true,"uniqueKey":"success","typeLabel":"boolean"}},"required":["success","inserted","results"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"inserted":2,"results":[{"reference":"usage_A1B2C3D4","creditDebit":{"amount":100,"debited":true,"remainingUnits":99,"unitsRemaining":99,"autoRecharge":{"triggered":true}}}],"success":true}}},"exampleType":"generated"}},"description":"Bulk usage events processed","exampleType":"generated"},"39a8021c-7475-4032-95e1-c024f023a23c":{"description":"Validation failed","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"acf3f693-45ab-4d43-82b8-d0c5c0c331c6":{"SecretKey":{"bearerFormat":"JWT","description":"Provider secret API key (sk_sandbox_… / sk_live_…) supplied as a Bearer token.","scheme":"bearer","type":"http","scopes":[],"schemeName":"SecretKey"}}},"servers":{"12143408-53b1-4330-bade-4e50882fb43f":{"description":"SolvaPay API (sandbox and live; the secret key prefix selects the environment)","url":"https://api.solvapay.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"bearerFormat":"JWT","description":"Provider secret API key (sk_sandbox_… / sk_live_…) supplied as a Bearer token.","scheme":"bearer","type":"http","scopes":[],"schemeName":"SecretKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Provider secret API key (sk_sandbox_… / sk_live_…) supplied as a Bearer token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"SecretKey","name":"Authorization"}],"title":"SecretKey"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"solvapay","siteName":"SolvaPay Documentation","title":"Record bulk usage events - SolvaPay Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-22T01:35:12.957Z","originalFileLocation":"api-reference/usage/record-bulk-usage-events.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=\"Same persistence rules as POST /sdk/usages for each item: validate batch first, then one insert per event.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SolvaPay Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/solvapay/p2ek6Qhc4SqiiF6p/_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=\"/mintlify-assets/_mintlify/favicons/solvapay/p2ek6Qhc4SqiiF6p/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/solvapay/p2ek6Qhc4SqiiF6p/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/solvapay/p2ek6Qhc4SqiiF6p/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/solvapay/p2ek6Qhc4SqiiF6p/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/solvapay/p2ek6Qhc4SqiiF6p/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/solvapay/p2ek6Qhc4SqiiF6p/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/solvapay/p2ek6Qhc4SqiiF6p/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/solvapay/p2ek6Qhc4SqiiF6p/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Record bulk usage events - SolvaPay Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Same persistence rules as POST /sdk/usages for each item: validate batch first, then one insert per event.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SolvaPay Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.solvapay.com/api-reference/usage/record-bulk-usage-events\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://solvapay.mintlify.site/_mintlify/api/og/v2?division=Usage\u0026amp;title=Record+bulk+usage+events\u0026amp;description=Same+persistence+rules+as+POST+%2Fsdk%2Fusages+for+each+item%3A+validate+batch+first%2C+then+one+insert+per+event.\u0026amp;theme=ad9bfe0174136686b74d8815\u0026amp;signature=ccf36e4e0a498ed806d7e048208a74849a375c058211a031260fd22db6aa9431\">\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=\"Record bulk usage events - SolvaPay Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Same persistence rules as POST /sdk/usages for each item: validate batch first, then one insert per event.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://solvapay.mintlify.site/_mintlify/api/og/v2?division=Usage\u0026amp;title=Record+bulk+usage+events\u0026amp;description=Same+persistence+rules+as+POST+%2Fsdk%2Fusages+for+each+item%3A+validate+batch+first%2C+then+one+insert+per+event.\u0026amp;theme=ad9bfe0174136686b74d8815\u0026amp;signature=ccf36e4e0a498ed806d7e048208a74849a375c058211a031260fd22db6aa9431\">\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=\"/mintlify-assets/_mintlify/favicons/solvapay/p2ek6Qhc4SqiiF6p/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SolvaPay Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3a3a3a\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.solvapay.com/api-reference/usage/record-bulk-usage-events\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/usage/record-bulk-usage-events.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.solvapay.com/#organization\",\"name\":\"SolvaPay Documentation\",\"url\":\"https://docs.solvapay.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/solvapay/pDrplLgkkfw8UFU2/logo/light.svg?fit=max\u0026auto=format\u0026n=pDrplLgkkfw8UFU2\u0026q=85\u0026s=db5e58447f4f3f440d4e3ce727801ef8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.solvapay.com#website\",\"name\":\"SolvaPay Documentation\",\"url\":\"https://docs.solvapay.com\",\"publisher\":{\"@id\":\"https://docs.solvapay.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.solvapay.com/api-reference/usage/record-bulk-usage-events#webpage\",\"url\":\"https://docs.solvapay.com/api-reference/usage/record-bulk-usage-events\",\"name\":\"Record bulk usage events\",\"description\":\"Same persistence rules as POST /sdk/usages for each item: validate batch first, then one insert per event.\",\"dateModified\":\"2026-10-22T01:35:12.957Z\",\"isPartOf\":{\"@id\":\"https://docs.solvapay.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.solvapay.com/api-reference/usage/record-bulk-usage-events#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.solvapay.com/api-reference/usage/record-bulk-usage-events#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Usage\",\"item\":\"https://docs.solvapay.com/api-reference/usage/record-a-usage-event\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Record bulk usage events\",\"item\":\"https://docs.solvapay.com/api-reference/usage/record-bulk-usage-events\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.solvapay.com/api-reference/usage/record-bulk-usage-events#apireference\",\"headline\":\"Record bulk usage events\",\"name\":\"Record bulk usage events\",\"description\":\"Same persistence rules as POST /sdk/usages for each item: validate batch first, then one insert per event.\",\"url\":\"https://docs.solvapay.com/api-reference/usage/record-bulk-usage-events\",\"mainEntityOfPage\":{\"@id\":\"https://docs.solvapay.com/api-reference/usage/record-bulk-usage-events#webpage\"},\"dateModified\":\"2026-10-22T01:35:12.957Z\",\"publisher\":{\"@id\":\"https://docs.solvapay.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.solvapay.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SolvaPay Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"SolvaPay Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/usage/record-bulk-usage-events.md","siteName":"SolvaPay Documentation","nav":{"global":null,"tabs":[{"tab":"Docs","icon":"book-open","pages":[{"title":"Docs","href":""}]},{"tab":"SDKs","icon":"code","pages":[{"title":"SDKs","href":"/sdks/typescript/intro"}]},{"tab":"API reference","icon":"square-terminal","groups":[{"group":"Activation","pages":[{"title":"Activate a plan for a customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/activate","href":"/api-reference/activation/activate-a-plan-for-a-customer"}]},{"group":"Auto Recharge","pages":[{"title":"Get auto-recharge config for a customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/auto-recharge","href":"/api-reference/auto-recharge/get-auto-recharge-config-for-a-customer"},{"title":"Set or update auto-recharge config for a customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/sdk/auto-recharge","href":"/api-reference/auto-recharge/set-or-update-auto-recharge-config-for-a-customer"},{"title":"Disable auto-recharge for a customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/sdk/auto-recharge","href":"/api-reference/auto-recharge/disable-auto-recharge-for-a-customer"}]},{"group":"Checkout Sessions","pages":[{"title":"Create a checkout session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/checkout-sessions","href":"/api-reference/checkout-sessions/create-a-checkout-session"}]},{"group":"Credits","pages":[{"title":"List account-wide credit activity for a customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/credits/activity","href":"/api-reference/credits/list-account-wide-credit-activity-for-a-customer"}]},{"group":"Customers","pages":[{"title":"Get customer by reference, externalRef, or email","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/customers","href":"/api-reference/customers/get-customer-by-reference-externalref-or-email"},{"title":"Create a new customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/customers","href":"/api-reference/customers/create-a-new-customer"},{"title":"Get customer by reference","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/customers/{reference}","href":"/api-reference/customers/get-customer-by-reference"},{"title":"Update a customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/sdk/customers/{reference}","href":"/api-reference/customers/update-a-customer"},{"title":"Get customer credit balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/customers/{reference}/balance","href":"/api-reference/customers/get-customer-credit-balance"},{"title":"Grant credits to a customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/customers/{reference}/credits","href":"/api-reference/customers/grant-credits-to-a-customer"},{"title":"Create a customer session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/customers/customer-sessions","href":"/api-reference/customers/create-a-customer-session"},{"title":"Get customer session by sessionId","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/customers/customer-sessions/{sessionId}","href":"/api-reference/customers/get-customer-session-by-sessionid"}]},{"group":"Limits","pages":[{"title":"Check usage limits for a customer and product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/limits","href":"/api-reference/limits/check-usage-limits-for-a-customer-and-product"}]},{"group":"Merchant","pages":[{"title":"Get merchant identity for the authenticated provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/merchant","href":"/api-reference/merchant/get-merchant-identity-for-the-authenticated-provider"}]},{"group":"Meter Events","pages":[{"title":"Record a meter event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/meter-events","href":"/api-reference/meter-events/record-a-meter-event"},{"title":"Record meter events in bulk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/meter-events/bulk","href":"/api-reference/meter-events/record-meter-events-in-bulk"}]},{"group":"Payment Intents","pages":[{"title":"List payment intents for the provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/payment-intents","href":"/api-reference/payment-intents/list-payment-intents-for-the-provider"},{"title":"Create a payment intent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/payment-intents","href":"/api-reference/payment-intents/create-a-payment-intent"},{"title":"Attach business tax details to a payment intent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/payment-intents/{processorPaymentId}/business-details","href":"/api-reference/payment-intents/attach-business-tax-details-to-a-payment-intent"},{"title":"Process payment intent after client-side confirmation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/payment-intents/{processorPaymentId}/process","href":"/api-reference/payment-intents/process-payment-intent-after-client-side-confirmation"},{"title":"Get a specific payment intent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/payment-intents/{reference}","href":"/api-reference/payment-intents/get-a-specific-payment-intent"}]},{"group":"Payment Methods","pages":[{"title":"Get the default payment method for a customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/payment-method","href":"/api-reference/payment-methods/get-the-default-payment-method-for-a-customer"}]},{"group":"Platform Config","pages":[{"title":"Get environment-aware platform config for the authenticated provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/platform-config","href":"/api-reference/platform-config/get-environment-aware-platform-config-for-the-authenticated-provider"}]},{"group":"Products","pages":[{"title":"List products","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/products","href":"/api-reference/products/list-products"},{"title":"Create a product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/products","href":"/api-reference/products/create-a-product"},{"title":"Get a product by reference","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/products/{productRef}","href":"/api-reference/products/get-a-product-by-reference"},{"title":"Update a product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/sdk/products/{productRef}","href":"/api-reference/products/update-a-product"},{"title":"Delete a product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/sdk/products/{productRef}","href":"/api-reference/products/delete-a-product"},{"title":"Clone a product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/products/{productRef}/clone","href":"/api-reference/products/clone-a-product"},{"title":"Configure MCP plans on an MCP product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/sdk/products/{productRef}/mcp/plans","href":"/api-reference/products/configure-mcp-plans-on-an-mcp-product"},{"title":"Bootstrap MCP product integration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/products/mcp/bootstrap","href":"/api-reference/products/bootstrap-mcp-product-integration"}]},{"group":"Plans","pages":[{"title":"List plans for a product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/products/{productRef}/plans","href":"/api-reference/plans/list-plans-for-a-product"},{"title":"Create a plan for a product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/products/{productRef}/plans","href":"/api-reference/plans/create-a-plan-for-a-product"},{"title":"Get a plan for a product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/products/{productRef}/plans/{planRef}","href":"/api-reference/plans/get-a-plan-for-a-product"},{"title":"Update a plan for a product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/sdk/products/{productRef}/plans/{planRef}","href":"/api-reference/plans/update-a-plan-for-a-product"},{"title":"Delete a plan from a product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/sdk/products/{productRef}/plans/{planRef}","href":"/api-reference/plans/delete-a-plan-from-a-product"}]},{"group":"Purchases","pages":[{"title":"List purchases for provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/purchases","href":"/api-reference/purchases/list-purchases-for-provider"},{"title":"Get a purchase by reference","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/purchases/{purchaseRef}","href":"/api-reference/purchases/get-a-purchase-by-reference"},{"title":"Cancel a purchase","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/purchases/{purchaseRef}/cancel","href":"/api-reference/purchases/cancel-a-purchase"},{"title":"Reactivate a cancelled purchase","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/purchases/{purchaseRef}/reactivate","href":"/api-reference/purchases/reactivate-a-cancelled-purchase"},{"title":"Get purchases for a customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/purchases/customer/{customerRef}","href":"/api-reference/purchases/get-purchases-for-a-customer"},{"title":"Get purchases for a product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/purchases/product/{productRef}","href":"/api-reference/purchases/get-purchases-for-a-product"}]},{"group":"Usage","pages":[{"title":"Record a usage event","description":"Records a usage event into the Usage timeseries collection.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/usages","href":"/api-reference/usage/record-a-usage-event"},{"title":"Record bulk usage events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/usages/bulk","href":"/api-reference/usage/record-bulk-usage-events"}]},{"group":"User Info","pages":[{"title":"Get user info and purchase status","description":"Returns customer profile, active purchase details including usage and plan info, and a customer portal URL.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sdk/user-info","href":"/api-reference/user-info/get-user-info-and-purchase-status"}]},{"group":"Webhooks","pages":[{"title":"Get the webhook event envelope schema","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/webhooks/event-schema","href":"/api-reference/webhooks/get-the-webhook-event-envelope-schema"},{"title":"List webhook event types","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sdk/webhooks/event-types","href":"/api-reference/webhooks/list-webhook-event-types"}]}]}]},"basePath":"","title":"Record bulk usage events - SolvaPay Documentation","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-D6S0Yh6q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}