A software vendor integrates the API into its ERP and enables it for forty businesses. With a shared key two problems appear at once: one business starting a bulk import slows everyone else down, and at month end nobody can say who caused which consumption.
The Hub’s administrative calls solve this by responsibility: the master client creates accesses, sets limits per access, reads usage per access and can explicitly sponsor costs. The five branches are independent — you do not need all of them.
| Surface | Roles |
|---|---|
| Hub | Software vendor, Platform and marketplace |
What this case requires
- A master client. The administrative calls require that your access may hold sub-users.
- A mapping in your own system. The returned
clientIdhas to point to the business on your side, otherwise the usage analysis is worthless. - A decision on the billing model. Does the business pay itself, or do you step in? Under a sponsorship the business’s own plan and balance pay first; only when neither carries the request does the sponsor step in — unless you release the choice with
partnerTermsAllowedand the business opts for your terms. - Separate storage of the keys. One key per business only helps if it does not end up in a shared configuration.
The sequence
The table names the responsible call per stage and what exists afterwards. The reasoning for why a stage cannot be skipped follows below it.
| Stage | Call | What exists afterwards |
|---|---|---|
| Enable a partner | POST /client/partner-workspaces | A workspace with its key and a selected set of entitlements |
| Create a sub-user | POST /client/users | One dedicated access per business, with an initial key |
| Set the limits | PUT /client/users/{clientId}/rate-limits | A single business cannot burn through everyone else’s quota |
| Read the usage | GET /client/users/{clientId}/usage | Consumption and balance per business, the basis for on-charging |
| Sponsor the costs | PUT /client/sponsorship-grants/{grantReference} | The vendor explicitly grants a given business a sponsorship |
Why each stage is needed
- Enable a partner.
POST /client/partner-workspacescreates a workspace with its key and a selected set of entitlements. That is the route when a partner is to work independently rather than merely be a sub-account. - Create a sub-user.
POST /client/userscreates one access per business with an initial key. Further keys for the same access are created byPOST /client/users/{clientId}/keys; the contract does not define a call for revoking an individual key. - Set the limits.
PUT /client/users/{clientId}/rate-limitsreplaces an access’s limits. This stage is the actual reason for separate accesses: it stops a single bulk run from consuming everyone’s quota. - Read the usage.
GET /client/users/{clientId}/usagereturns consumption and balance per business. That is the basis of any on-charging — and the only reliable way to explain consumption to a customer. - Sponsor the costs.
PUT /client/sponsorship-grants/{grantReference}grants a sponsorship actively. It never happens silently: whoever grants it does so with a call, and the recipient sees it.
curl -X POST \
-H 'X-Api-Key: <MASTER_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{"name":"Autoverwertung Beispiel GmbH","applicationLabel":"erp-connector","rateLimits":[{"endpointKey":"vin.vehicle","windowSeconds":60,"maxRequests":120,"isActive":true}]}' \
'https://api.tapinomahub.com/client/users'What you end up with
What remains is an integration built once and accountable per business: its own key, its own limit, readable consumption. The business starting the bulk import no longer slows anyone down.
Where to find this in the documentation
The binding field lists, error codes and sample responses live in this surface’s OpenAPI contract at docs.tapinomahub.com (tapinoma-hub). All use cases arranged by surface and role: overview of the use cases.
Sources and legal references
Frequently asked
When do I use a partner workspace instead of a sub-user?
The sub-user is an access under your administration. The partner workspace is meant for partners who work independently and are to carry their own entitlements.
Can I swap a key without locking the business out?
An additional key can be created for an existing access via POST /client/users/{clientId}/keys. The contract does not define a call that revokes an individual key.
Does the business see that I am carrying its costs?
Yes. Received sponsorships are retrievable by the recipient via GET /client/sponsorship-grants/received; if the sponsor has released the choice with partnerTermsAllowed, the recipient chooses the terms. A hidden sponsorship is not provided for.
