Partner
Accept a quoted license order into the MSP pool
MSP only. Step 2 of 2 (D28-D30): records the partner's acknowledgement (checkbox, typed signature, the quote total / currency / terms version as shown; the server adds the accepting user's name and email, the time, client IP and user agent) on the pool opportunity. Salesforce then bills the order, mints the claim key and the licenses land in the pool with no further call (poll getPool). Answers 202 ORDER_SUBMITTED, also when the order had already been accepted (replay). The daily cap is consumed here. On success an audit event carries the acknowledgement and a receipt email with the lines, prices, term dates, auto-renew terms and acceptance time goes to the accepting user and the MSP admins. Errors: 400 ACKNOWLEDGEMENT_REQUIRED (agreed false), SIGNATURE_REQUIRED (blank), PROVISION_CAP_EXCEEDED (detail = remainingToday), SELF_PROVISIONING_DISABLED; 403 NOT_VERIFIED_MSP, ORDER_NOT_YOURS; 404 ORDER_NOT_FOUND; 409 QUOTE_CHANGED (total, currency or terms version differ from the quote on record); 410 QUOTE_EXPIRED (also for a cancelled or otherwise closed quote); 503 SALESFORCE_UNAVAILABLE (acceptance NOT recorded; retry, idempotent on orderId). No claim code ever appears in any response.
POST/ api/ partner/ license/ acceptPoolOrderAuthorizations
Your Rhombus API key. Must be accompanied by the x-auth-scheme header set to api-token (or partner-api-token for partner endpoints).
Instead of an API key, an OAuth access token: Bearer <token>, with the write scope.
OAuth explains tokens and scopes.
Headers
Authentication scheme identifier. Use api-token or partner-api-token with the x-auth-apikey header, api or partner-api with x-auth-apikey plus a client certificate, api-oauth-token or partner-api-oauth-token with x-auth-access-token, and federated-token with x-auth-ft. A request with Authorization: Bearer <token> and no x-auth-scheme is treated as OAuth, and federated-token may also be sent as the x-auth-scheme and x-auth-ft query parameters.
Available options: api-token, api, api-oauth-token, federated-token, partner-api-token, partner-api, partner-api-oauth-token
Client organization UUID (22-character RUUID), for partner credentials only. With it the call runs in that client organization with the partner support authority's role. Without it a partner credential runs as the partner organization, which outside the partner endpoints is deprecated (responses carry Deprecation and Sunset: Tue, 05 Jan 2027 00:00:00 GMT). A malformed value returns 400 INVALID_AUTH_ORG; a client organization the partner cannot access returns 403 PARTNER_CLIENT_ACCESS_DENIED.
Length: 22 to 22
Body
application/json · object
Accept a quoted pool order on behalf of the MSP: records the acknowledgement (typed name + checkbox) on the Salesforce quote, after which Salesforce bills it, mints the claim key and emails it to the partner, who claims it into the pool.
The partner's acknowledgement of a quote (D29, contract v2.3): the checkbox and the typed name. Recorded on the Salesforce quote as Customer_Name__c + Customer_Acknowledged__c (field history keeps who / when).
orderId from quotePoolOrder (the Salesforce opportunity id). Must be this partner's, QUOTED, calculated and unexpired.
The client request id the quote was asked under (optional; when given it must be the order's).
Response
202 Order submitted
application/json · object
202: the acknowledgement is recorded on the pool opportunity's quote and Salesforce is advancing it; the claim key is emailed to the partner later and claimed in the console (poll getPool for the order's stage). Never carries a claim code or key.
Server time of the acceptance when THIS call recorded it; null on a replay (Salesforce keeps the who / when in the quote's field history).
Email of the session user who accepted when THIS call recorded it; null on a replay.
The typed name as recorded on the quote (Customer_Name__c).
Stable, machine-readable code for the failure (one of the ApiErrorCode catalog) when error is true. Branch on this, not on errorMsg.
True when this order had already been acknowledged; nothing was recorded again.
ORDER_SUBMITTED. Apex advances the opportunity and mints the key; getPool.orders[] shows the stage and key state.
Errors
Like every operation, this one can also answer with the standard error body (errorCode, errorMsg). Errors explains each status and how to retry.
400Bad Request. errorCode is one of: BAD_REQUEST, VALIDATION_FAILED, MISSING_REQUIRED_FIELD, INVALID_JSON, INVALID_REQUEST_BODY, FEATURE_NOT_ENABLED, INVALID_AUTH_ORG, LOCATION_NOT_FOUND, SELF_PROVISIONING_DISABLED, SKU_NOT_ALLOWED, QUANTITY_INVALID, AUTO_RENEW_REQUIRED, PROVISION_CAP_EXCEEDED, ACKNOWLEDGEMENT_REQUIRED, SIGNATURE_REQUIRED, APEX_VALIDATION, SKU_NOT_IN_PRICEBOOK.401Unauthorized. errorCode is one of: UNAUTHENTICATED, INVALID_CREDENTIAL, CREDENTIAL_EXPIRED, CREDENTIAL_REVOKED, CERTIFICATE_MISMATCH.403Forbidden. errorCode is one of: FORBIDDEN, DOMAIN_NOT_ALLOWED, DEVICE_SCOPE_MISMATCH, ROLE_NOT_PERMITTED, FUNCTIONALITY_REQUIRED, PARTNER_FUNCTIONALITY_REQUIRED, PERMISSION_REQUIRED, PARTNER_CLIENT_ACCESS_DENIED, HARDWARE_NOT_AVAILABLE, HARDWARE_ALREADY_REGISTERED, PARTNER_PORTAL_NOT_ENABLED, MANAGED_BY_MSP, SUPER_ADMIN_RESTRICTED_BY_MSP, MSP_DESIGNATION_INVALID, NOT_MANAGED_CLIENT, NOT_VERIFIED_MSP, ORDER_NOT_YOURS.429Too Many Requests. errorCode is one of: RATE_LIMITED, QUOTE_RATE_LIMITED.500Internal Server Error. errorCode is one of: INTERNAL_ERROR.503Service Unavailable. errorCode is one of: SERVICE_UNAVAILABLE, SALESFORCE_UNAVAILABLE.