Record a terms & conditions acceptance

Records that a wallet accepted the terms & conditions of the project bound to the API key,
and returns the same payload as GET /v1/project-terms-conditions/status so the caller can
skip a refetch.

Required API Key Scope: terms_conditions:write

When to use

Call this when the user clicks Accept on your own terms & conditions prompt. Use
GET /v1/project-terms-conditions/status on page load to decide whether to show that
prompt.

Idempotency

Acceptance is permanent and unversioned. A repeat call for the same wallet returns 201
with the original accepted_at; no second record is written, and source is not
updated. There is no 409 response — this endpoint never conflicts.

Prerequisites

The project must have terms & conditions configured. If it does not, this endpoint returns
400, while the status endpoint keeps returning 200 with
terms_acceptance_required: false.

Rate limit: 100 requests/minute.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required

The wallet address accepting the terms & conditions.

string
enum
required

Identifier types accepted by the terms & conditions endpoints. Deliberately narrower than
the platform-wide identifier type: a terms & conditions acceptance is anchored to a wallet
address, so email, uuid and other non-wallet identifiers are rejected with a 400.

Allowed:
string
enum
required

Which surface collected the acceptance.

  • partner_site — the partner's own application.
  • affiliates_portal — the Fuul-built affiliates portal.
  • other — any other integrator.

Required on every accept call. It is recorded on the acceptance record and frozen on the
first accept for a wallet, so a later call with a different value does not change it. Never
returned in a response.

Allowed:
Responses

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json