> ## Documentation Index
> Fetch the complete documentation index at: https://ramps-09-11-grid-api-agreement-consents.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Disclosures

> Expose Lightspark's End User Terms and provide evidence of your consent flow

If you're an **unregulated platform** moving funds using Grid's money transmitter licenses, Grid (operating as Lightspark Payments, LLC) is the licensed money transmitter on your transactions. Your end users contract directly with Lightspark for these services, so you must present Lightspark's End User Terms to each end user and capture their consent before they transact.

<Warning>
  Exposing the End User Terms and collecting consent is a **launch precondition**. Provide Lightspark with evidence of your consent flow and receive approval before making Grid available to your end users.
</Warning>

## Include the End User Terms in your terms

Copy Lightspark's End User Terms and append them to your own terms of service, so each end user accepts a single combined document. Including the URL to our End User Terms is not sufficient — you must embed the full text, available at:

* **End User Terms:** [https://www.lightspark.com/legal/grid/enduserterms](https://www.lightspark.com/legal/grid/enduserterms)

Present the combined terms in your onboarding or consent flow, and require each end user to affirmatively accept them (for example, an unchecked checkbox or an "I Agree" button) before they can use Grid.

## Record each acceptance

Send the evidence of acceptance as `agreementConsents` when you create the customer — a list with one entry per agreement, each tagged with its `type`. Collect it for **both `INDIVIDUAL` and `BUSINESS` customers**.

Call `GET /customers/end-user-terms` to list every agreement Grid supports with its current `version` and hosted `url`, and send that `version` as `termsVersion` when you record an acceptance.

<Note>
  If you already send `endUserTermsConsent`, it keeps working — it is deprecated but still
  accepted, and is equivalent to one `agreementConsents` entry of type
  `LIGHTSPARK_END_USER_TERMS`. Consent you have already recorded is migrated for you, so
  there is nothing to re-collect for that agreement. Don't send both fields in one request.
</Note>

<Warning>
  Until a customer's acceptance is on file, Grid does not provision their internal accounts, and customer-scoped transactions are rejected with `403 END_USER_TERMS_NOT_ACCEPTED`.
</Warning>

```bash theme={null}
curl -sS -X POST "https://api.lightspark.com/grid/2025-10-13/customers" \
  -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "customerType": "INDIVIDUAL",
    "platformCustomerId": "9f84e0c2a72c4fa",
    "fullName": "Jane Doe",
    "agreementConsents": [
      {
        "type": "LIGHTSPARK_END_USER_TERMS",
        "acceptedAt": "2025-10-03T12:00:00Z",
        "ipAddress": "198.51.100.24",
        "termsVersion": "2025-10-13",
        "acceptanceMethod": "CHECKBOX"
      }
    ]
  }'
```

| Field              | Description                                                                                                                                                                                                                                                                 |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `type`             | Which agreement was accepted. Accepting one agreement never implies acceptance of another.                                                                                                                                                                                  |
| `acceptedAt`       | When the customer accepted the terms (ISO 8601).                                                                                                                                                                                                                            |
| `ipAddress`        | IP address of the device the customer accepted from.                                                                                                                                                                                                                        |
| `termsVersion`     | Version identifier of the agreement the customer accepted, as returned for that `type` by `GET /customers/end-user-terms`. Send the version they actually accepted — Grid rejects a version it doesn't recognize for that type with `400 END_USER_TERMS_VERSION_NOT_FOUND`. |
| `acceptanceMethod` | How the customer accepted: `CHECKBOX` or `CLICK_TO_ACCEPT`.                                                                                                                                                                                                                 |

The same field is accepted on `PATCH /customers/{customerId}`, so you can record consent for a customer that already exists — including customers you created before you started collecting it. Send only the agreements you are recording now; acceptances already on file for other types are left untouched. `customerType` is required on the update:

```bash theme={null}
curl -sS -X PATCH "https://api.lightspark.com/grid/2025-10-13/customers/{customerId}" \
  -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "customerType": "INDIVIDUAL",
    "agreementConsents": [
      {
        "type": "LIGHTSPARK_END_USER_TERMS",
        "acceptedAt": "2025-10-03T12:00:00Z",
        "ipAddress": "198.51.100.24",
        "termsVersion": "2025-10-13",
        "acceptanceMethod": "CLICK_TO_ACCEPT"
      }
    ]
  }'
```

Customer responses include an `agreementConsents` list holding the most recent acceptance recorded for each type, and an empty list until the first acceptance — read it back with `GET /customers/{customerId}` to confirm which customers still need consent.

Regulated platforms rely on their own end user agreements and don't send this field.

## Provide evidence of your consent flow

Send Lightspark evidence that your end users are shown the End User Terms and consent to them. Provide both:

* **A screenshot of the consent screen** showing how the End User Terms are presented and accepted.
* **How you track consent** — the record you keep each time an end user accepts, such as the end user identifier, the timestamp of acceptance, and the version of the terms accepted.
