Safety & Clearance

Safety & Clearance

Clear2Join is our safety-clearance system: waivers, signatures, health forms, immunizations and background checks, for athletes and for the adults around them. Think of it the way you think of a background-check vendor — we're the provider, and clearance travels with the person rather than with the event, so it carries across your events and across other organizations on the platform.

Overview

What it covers

Two populations, one durable record: the athletes who participate, and the adults around them.

For athletes

  • Waivers and releases, including drawn signatures
  • Concussion acknowledgement
  • Health history questionnaires and medical consent
  • Allergy, medication and treatment authorization
  • Immunization records and physical-exam forms (document upload)
  • Emergency contacts
  • COPPA parental consent for under-13s

For coaches, staff and volunteers

  • Background checks
  • Credential and certification records
  • Safe-sport training status
  • A single cleared/not-cleared answer you can gate on

Durability is the point

A cleared athlete or staffer carries their clearance with them. A parent who already uploaded a physical exam for one camp doesn't upload it again for the next — even at a different organization. If you rebuild this yourself, you re-collect documents your users have already provided.

Durable isn't permanent. Credentials can expire — background checks and certifications usually do — and an expired one stops counting as cleared, including in the coach pool. Read status live; don't cache a flag.

Your options

Most partners never integrate this directly — it arrives free with Registration & Checkout. The API exists for the case where clearance is the only thing you want.

Way Status What you get What you build
Hosted Live Clearance collected inside our checkout, parent portal and mobile app. Requirement sets configured per organization. Nothing.
Embedded / SDK Planned A hosted clearance flow you open from your own UI, signalling completion back to you. A button and a completion handler.
API Preview Put a person into clearance and read their status, or take a webhook when it resolves. Your entire clearance UI and status handling.

We render it

Hosted

We render the clearance experience inside surfaces the user is already in — our checkout, the parent portal, and the mobile app.

Hosted

Built into registration Live

If you're using Registration & Checkout in any form, clearance comes with it — there is nothing to integrate. This is the path almost every partner takes.

https://riversidesports.com/summer-camps
The clearance step inside the checkout drawer — waivers signed, health forms filled and documents uploaded before payment completes. Your page, our flow.
Where it happens Status What the user does
Inside the checkout drawer Live Requirements are collected during registration — waivers signed, health forms filled, documents uploaded.
Inside the parent portal Live Anything skipped at checkout is finished afterwards on the athlete's Passport tab, with a clear list of what's outstanding.
In the TGG mobile app Live Parents and staff complete and review their Passport on iOS and Android.

What you control

  • The requirement set — which credentials an event demands, configured per organization and per event.
  • Acceptance strictness — a policy can be informational, a checkbox, or a drawn signature.
  • Whether it's visible at all — hideAthleteRequirements switches the surfaces off if your own process already covers compliance.

Requirement configuration is done by us on your organization record, not passed per request. Tell us what you need collected and we'll set it.


Our UI in your page

Embedded / SDK

Not built yet — the intended shape is a hosted clearance flow you open from your own UI.

Embedded / SDK

Clearance embed Planned

Not built yet. Documented here so you can tell us whether this is the shape you want before we build it.

The intended design, matching how the checkout drawer already works:

  • A button in your UI opens the TGG-hosted clearance flow — an iframe overlay on web, an in-app browser on mobile.
  • The user signs, fills and uploads on our screens, so document handling, storage and retention stay on our side of the line.
  • We signal completion back to your page with the same postMessage pattern as the checkout drawer, or to your server by webhook.
  • On mobile, a universal/app link returns the user to your app.

Until this exists, the two working options are clearance built into registration or the clearance API.


You render it

API

Server-to-server. Put a person into Clear2Join, then read their status or take a webhook when it resolves. Aimed at staff and volunteers rather than athletes — athlete clearance is collected inside registration.

API

Candidate clearance Preview

Uses the Partner API key and scopes — the same credential as Staffing. See auth models for how to send it.

Method Path Scope Purpose
POST /api/v1/partner/candidates candidates:write Invite someone into Clear2Join onboarding.
GET /api/v1/partner/candidates candidates:read List everyone you've put into clearance.
GET /api/v1/partner/candidates/:id candidates:read Read one candidate's clearance status.
cURL
# externalRef carries your own id through, untouched.
curl -X POST "{API_BASE_URL}/api/v1/partner/candidates" \
  -H "Authorization: Bearer {API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "coach@example.com",
    "firstName": "Alex",
    "lastName": "Rivera",
    "externalRef": "STAFF-8842"
  }'

# → { "data": { "id": "…", "status": "invited", "invitedAt": "…", … } }

curl "{API_BASE_URL}/api/v1/partner/candidates/{candidate_id}" \
  -H "Authorization: Bearer {API_KEY}"

Status moves invited → onboarding → c2j_cleared / c2j_failed, or declined. Three webhook events are defined against those transitions — candidate.onboarding_started, candidate.c2j_cleared and candidate.c2j_failed — but see the status note below before you build a listener for them.

Status — read this before you build against it

The three endpoints and the status model are deployed in production, and inviting a candidate genuinely records them against your partner organization. Two things do not happen yet, and together they're why this is Preview:

Nothing is emailed. POST /partner/candidates creates the candidate record; it does not send an onboarding invitation. Getting people actually into the flow is a short coordination step with us per batch.

Nothing advances the status, so no candidate.* webhook fires. A candidate keeps reading invited even after they complete Clear2Join with us. Confirm with us for now — don't gate hiring on the status field or on a delivery that isn't sent.

API

On the roadmap Planned

A standalone clearance API — submit an arbitrary person plus a requirement set, poll status or take webhooks, and render your own UI end-to-end.

This is where partner demand moves our roadmap fastest. If clearance is the thing you actually want and registration isn't relevant to you, tell us the requirement set you need and we'll shape it around that.


Examples

Complete integrations

Two shapes, depending on who you're clearing.

Example A · Hosted

It comes with registration

Live

If you're clearing athletes, there is no integration to do. Set up Registration & Checkout and clearance is collected as part of the booking.

You build
Nothing
Rough estimate
None beyond registration
Who it clears
Athletes
  1. Set up registration

    Any of the four options on Registration & Checkout.

  2. Tell us your requirement set

    Which waivers, forms and documents each event demands, and how strictly each policy must be accepted. We configure it on your organization record.

  3. Nothing else

    Requirements appear in the drawer during checkout, and anything skipped is chased in the parent portal afterwards. Cleared athletes stay cleared for your next event.

Example B · API

Clear your own staff

Preview

If you're clearing adults — coaches, volunteers, contractors — and want it tracked in your own system, use the candidate API.

You build
Your staff-status UI
Rough estimate
A few days
Who it clears
Coaches, staff, volunteers
  1. Get a Partner API key with the candidate scopes

    Ask for candidates:write and candidates:read. See auth models.

  2. Push each person into clearance

    Carry your own staff id through in externalRef.

    cURL
    curl -X POST "{API_BASE_URL}/api/v1/partner/candidates" \
      -H "Authorization: Bearer {API_KEY}" \
      -H "Content-Type: application/json" \
      -d '{ "email": "coach@example.com", "externalRef": "STAFF-8842" }'
  3. Coordinate the onboarding invitation with us

    This is the manual step that keeps the API at Preview — invitation delivery isn't automated yet, so we send them per batch with you.

  4. Gate on the cleared status

    GET /partner/candidates/:id is the read you'll gate on and candidate.c2j_cleared is the event you'll take — but neither reflects real clearance yet (see the status note). For now, confirm the batch with us and treat this step as manual.

Already using Staffing? The same key covers both, and a cleared candidate is immediately hireable through the jobs API.

Ready to build?

Getting started tells you exactly what to ask us for — and there's a copy-paste email at the bottom of it. Or just write to us: an organization ID, an API key, a staging event to test against, or something still marked Preview or Planned.

Contact us