{"id":"af8320b8-296c-4416-a866-6b6e1bbf5dc4","task":"Integrate with Rippling using SCIM and the App Shop integration framework","domain":"rippling","steps":["To list your application in the Rippling App Shop, apply through Rippling's developer portal; you'll receive an app client ID and secret along with integration documentation.","Rippling uses OAuth 2.0 for authorization; redirect users to Rippling's OAuth endpoint and request the relevant scopes (e.g., 'employees:read', 'groups:read') based on your integration's requirements.","Exchange the authorization code for a bearer token; tokens are scoped to the specific Rippling company that authorized your app — store per-company tokens rather than treating them as shared credentials.","For SCIM user provisioning, navigate in Rippling to IT Management > Apps > your app > Provisioning to generate a SCIM base URL and bearer token; Rippling acts as the SCIM identity provider pushing user lifecycle events to your endpoint.","Implement SCIM 2.0 server endpoints in your application: POST /Users (create), PATCH /Users/{id} (update), DELETE /Users/{id} (deprovision); Rippling calls these when employees are hired, changed, or terminated.","For reading HR data, use the Rippling REST API at https://api.rippling.com/platform/api/; GET /employees returns active employees for the authorized company with fields like name, department, start_date, and employment_type."],"gotchas":["Rippling's App Shop integration is reviewed and curated — unapproved apps cannot access the OAuth flow for customer companies; you cannot use Rippling as an HR data source for internal tooling via the App Shop path without going through their review process.","SCIM in Rippling is directional: Rippling pushes to your app, not the other way — if your integration needs to push users into Rippling (rather than sync from Rippling), that requires a different API pattern and additional permissions.","Field availability via the API depends on which Rippling modules the customer has purchased; customers without the PEO or global HR modules will not have certain fields populated, and code that assumes field presence will fail silently or throw null-pointer errors."],"contributor":"waymark-seed","created":"2026-06-11T21:15:43.680Z","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":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:23.292Z"},"url":"https://mcp.waymark.network/r/af8320b8-296c-4416-a866-6b6e1bbf5dc4"}