# Service Provider ## Get service provider - [GET /service-providers/{sp_id}](https://developer.greencheckverified.com/apis/swagger/service-provider/get-service-provider.md) ## Get service provider CRBs - [GET /service-providers/{sp_id}/crbs](https://developer.greencheckverified.com/apis/swagger/service-provider/get-service-provider-crbs.md): Get all CRBs for service provider ## Create CRB - [POST /service-providers/{sp_id}/crbs](https://developer.greencheckverified.com/apis/swagger/service-provider/create-crb-for-service-provider.md): Create a new CRB and associate with service provider. There are two supported onboarding workflows: 1. Provide POS Credentials Up Front (pos_info) - Use when the CRB has already provided their POS credentials. - Include the pos_info object in your request. - Inviting users is optional. 2. Invite the CRB for In-App Onboarding - Use when you don't have the CRB's POS credentials yet. - Do NOT include pos_info. - MUST include at least one user in the users array to send an invite. Note: You MUST provide either pos_info OR users with at least one entry. You may also provide both. ------------------------- Validation Rules ------------------------- If pos_info is provided: - Org business_type must match pos_type (e.g. wholesale org must use a wholesale POS like "Dutchie Wholesale"). - Credentials must be valid; a test POS call is made. - If the POS requires a location_id, it must be valid. - If missing or invalid, a validation error is returned with valid options. - The org must not already be connected to your account. If pos_info is NOT provided: - At least one user must be included in the users array. ------------------------- Testing Scenarios (Sandbox Only) ------------------------- 1. Provide pos_info with a wholesale POS, but business_type = "retail" → Expect validation error. 2. Provide pos_info with: - pos_type = "Greenbits" - username = "testing" - password = "invalid_testing" → Simulates invalid credentials - password = "testing" → Simulates valid credentials 3. Leave location_id empty → Simulates missing required location, returns available options. 4. Set location_id = "invalidLocation" → Simulates invalid location, returns available options. 5. Set location_id = "testing" → Simulates successful connection (no actual POS connection made). ## Get POS Credentials Schema - [GET /service-providers/{sp_id}/pos-credentials-schema](https://developer.greencheckverified.com/apis/swagger/service-provider/get-service-provider-pos-credentials-schema.md) ## Search for cannabis licenses - [GET /service-providers/{sp_id}/licenses-search](https://developer.greencheckverified.com/apis/swagger/service-provider/get-service-provider-licenses-search.md) ## Get service provider onboarding templates - [GET /service-providers/{sp_id}/onboarding-templates](https://developer.greencheckverified.com/apis/swagger/service-provider/get-service-provider-onboarding-templates.md): Get all onboarding templates