Log inTalk to us

Accept Ivora's terms for a team

post/v1/teams/{team_id}/terms/accept
Requires an API key

Team owners only. Send each document with the Standard Terms and cover page versions you showed in full (GET /v1/legal/terms); the acceptance records you, your team role, the time, both versions and the cover page's SHA-256, your client address and user agent. A version that is no longer current is refused: show the new text and accept that. Accepting a version again keeps the first record (outcome unchanged). Errors: 409 terms_version_outdated. See Errors and statuses.

Path parameters

  • team_idstringRequired
    Pattern ^team_[0-9a-f]{32}$

Request body

  • documentsarray of TermsAcceptItemRequired
    The documents the owner read and accepts.
    Child attributes
    • documentenumRequired
      terms_of_service (Ivora's Terms of Service) or dpa (the data processing addendum).
      One of terms_of_service, dpa
    • standard_terms_versionstringRequired
      The Standard Terms version shown to the owner (GET /v1/legal/terms).
      1–16 characters · Pattern ^[0-9]+(\.[0-9]+)*$
    • cover_page_versionstringRequired
      The cover page version shown to the owner (GET /v1/legal/terms).
      Up to 32 characters · Pattern ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$

Returns · 200

  • team_idstringRequired
  • acceptedbooleanRequired
    Whether the team accepted the current version of every document. Self-serve CSMS access needs it.
  • missingarray of enumRequired
    The documents whose current version the team has not accepted: show them to an owner to accept.
  • documentsarray of TermsDocumentStatusRequired
    Child attributes
    • documentenumRequired
      terms_of_service (Ivora's Terms of Service) or dpa (the data processing addendum).
      One of terms_of_service, dpa
    • titlestringRequired
    • standard_termsStandardTermsRequired
      Child attributes
      • namestringRequired
        Common Paper Cloud Service Agreement Standard Terms, or Common Paper DPA Standard Terms.
      • versionstringRequired
        The Common Paper Standard Terms version the cover page incorporates (2.1 for the Terms of Service, 1.1 for the DPA).
      • urlstringRequired
        Where Common Paper hosts this version of the Standard Terms. Link it next to the cover page.
      • licensestringRequired
        CC BY 4.0.
      • license_urlstringRequired
      • attributionstringRequired
        The attribution to show with the Standard Terms.
    • cover_page_versionstringRequired
      The Ivora Cover Page version (semver). A new major or minor version, or new Standard Terms, must be accepted again; a patch need not.
    • effectivestringRequired
      The date the version takes effect (YYYY-MM-DD).
    • sha256stringRequired
      SHA-256 of the cover page body, recorded with each acceptance: the exact text accepted.
    • draftbooleanRequired
      true while the cover page still holds [LEGAL TEXT] placeholders for Ivora to fill in.
    • acceptedobject | nullRequired
      The team's acceptance of the current version (an earlier patch of the same cover page counts); null until an owner accepts it.
      Child attributes
      • idstringRequired
      • documentenumRequired
        terms_of_service (Ivora's Terms of Service) or dpa (the data processing addendum).
        One of terms_of_service, dpa
      • standard_terms_versionstringRequired
        The Common Paper Standard Terms version accepted.
      • cover_page_versionstringRequired
        The Ivora Cover Page version accepted.
      • sha256stringRequired
        SHA-256 of the cover page text accepted.
      • accepted_atstringRequired
      • accepted_byAcceptedByRequired
        Child attributes
        • user_idstringRequired
        • emailstring | null
        • rolestringRequired
          The person's team role when they accepted (always owner).
      • ipstring | null
        The client address of the acceptance; shown to the team's owners and admins and to Ivora staff only.
      • user_agentstring | null
        The browser's user agent (first 300 characters); shown as ip is.
  • historyarray of TermsAcceptanceRequired
    Every acceptance of the team, newest first, earlier versions included.
    Child attributes
    • idstringRequired
    • documentenumRequired
      terms_of_service (Ivora's Terms of Service) or dpa (the data processing addendum).
      One of terms_of_service, dpa
    • standard_terms_versionstringRequired
      The Common Paper Standard Terms version accepted.
    • cover_page_versionstringRequired
      The Ivora Cover Page version accepted.
    • sha256stringRequired
      SHA-256 of the cover page text accepted.
    • accepted_atstringRequired
    • accepted_byAcceptedByRequired
      Child attributes
      • user_idstringRequired
      • emailstring | null
      • rolestringRequired
        The person's team role when they accepted (always owner).
    • ipstring | null
      The client address of the acceptance; shown to the team's owners and admins and to Ivora staff only.
    • user_agentstring | null
      The browser's user agent (first 300 characters); shown as ip is.
  • outcomeenumRequired
    unchanged: the team had already accepted these versions; the first record stands.
    One of accepted, unchanged
POST /v1/teams/{team_id}/terms/accept
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/teams/team_0123456789abcdef0123456789abcdef/terms/accept" \
  -H "Authorization: Bearer $IVORA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "documents": [
    {
      "document": "terms_of_service",
      "standard_terms_version": "string",
      "cover_page_version": "string"
    }
  ]
}'
Response · 200JSON
{
  "team_id": "team_0123456789abcdef",
  "accepted": false,
  "missing": [
    "terms_of_service"
  ],
  "documents": [
    {
      "document": "terms_of_service",
      "title": "string",
      "standard_terms": {
        "name": "bay-01",
        "version": "string",
        "url": "https://app.example.com/ivora/webhooks",
        "license": "string",
        "license_url": "https://app.example.com/return",
        "attribution": "string"
      },
      "cover_page_version": "string",
      "effective": "string",
      "sha256": "string",
      "draft": false,
      "accepted": {
        "id": "id_0123456789abcdef",
        "document": "terms_of_service",
        "standard_terms_version": "string",
        "cover_page_version": "string",
        "sha256": "string",
        "accepted_at": "2026-09-30T17:00:00Z",
        "accepted_by": {
          "user_id": "user_0123456789abcdef",
          "email": "developer@example.com",
          "role": "string"
        },
        "ip": "string",
        "user_agent": "string"
      }
    }
  ],
  "history": [
    {
      "id": "id_0123456789abcdef",
      "document": "terms_of_service",
      "standard_terms_version": "string",
      "cover_page_version": "string",
      "sha256": "string",
      "accepted_at": "2026-09-30T17:00:00Z",
      "accepted_by": {
        "user_id": "user_0123456789abcdef",
        "email": "developer@example.com",
        "role": "string"
      },
      "ip": "string",
      "user_agent": "string"
    }
  ],
  "outcome": "accepted"
}
Requires an approved production API keyProduction access starts with a request, a short meeting with Ivora and a card on file, after which Ivora staff grant your account access. How to request access
Try itproduction · api.ivoracharge.com

Paste a production api key (iv_live_…). Create keys in Developer tools. The key stays in this page's memory, is sent only to https://api.ivoracharge.com and clears when you reload. Test keys are refused.

POST is a write: you confirm the method, path and project before it is sent, with a generated Idempotency-Key.