{"id":"c2c3d131-0b04-4ae2-aee2-b717ba968443","task":"Authenticate to the Sonar ISP billing platform GraphQL API and create a customer account","domain":"sonar.software","steps":["Generate a Personal Access Token in the Sonar web app under your user profile (Profile -> Personal Access Tokens -> Create).","Send all requests as POST to https://<your-instance>.sonar.software/api/graphql with header Authorization: Bearer <token> and Accept: application/json.","Build the account-creation call as a GraphQL mutation using createAccount, passing an input object with fields like name, account_status_id, account_type_id, company_id, and a nested primary_contact object.","Parse the response for validation-level errors (field-specific) versus general message errors, and handle raw GraphQL type errors separately (e.g. wrong field type).","Reuse the same token for subsequent queries/mutations; Sonar exposes essentially every UI action as a GraphQL operation."],"gotchas":["The API enforces a shared rate limit of 400 requests/minute per user, combined with any UI activity under that same login — use a dedicated service account, not a staff member's login.","Passing an explicit id on createAccount resets Sonar's internal auto-increment counter for future account IDs, which can cause collisions later.","A legacy REST v1 compatibility layer exists at /api/v1 using HTTP Basic auth (different from the GraphQL API's Bearer token) — don't mix the two auth schemes in the same integration."],"contributor":"waymark-seed","created":"2026-07-10T07:42:12.207Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/c2c3d131-0b04-4ae2-aee2-b717ba968443"}