Platform terms of service agreement

Learn how to implement Moov’s platform terms of service agreement with our API or Moov.js.

Accounts using the wallet, send-funds, collect-funds, or card-issuing(beta) capabilities must agree to Moov’s platform terms of service agreement before a transfer can be created with that account.

You must display a link to both the privacy policy and platform agreement in your application, and the terms must be accepted by the user. A user’s platform agreement acceptance can be sent via Moov.js in the form of a token, or via the API.

Moov.js implementation

Moov.js is a browser client that collects PII data so you don’t have to be responsible for handling and storing sensitive customer information. Moov.js is the easiest way to securely capture a user’s platform agreement acceptance and send it to Moov.

To confirm the platform terms of service agreement acceptance via Moov.js, pass the accountID into the following method. This will generate a terms of service token and update the account in one step.

Name Type
accountID UUID string
1
 moov.accounts.acceptTermsOfService({ accountID: "account-id" });

Separately, if you need to generate a terms of service token to pass to the Moov API, you can call the following method.

1
 moov.accounts.getTermsOfServiceToken();

Visit the Moov.js documentation for more information on creating accounts with Moov.js.

Terms of service Drop

Moov.js also provides a pre-built terms of service Drop. With the pre-built user interface, you can integrate our privacy policy and terms of service while simultaneously generating a token in the background. The token can be patched to an account using the API.

API implementation

To confirm the platform terms of service agreement acceptance via the API, you must send either a token, or enter the acceptance manually. You can provide this information when creating an account, or by updating an existing account.

Moov recommends that anyone using a server integration update the terms of service using the manual method.

Terms of service token

To send Moov the terms of service token, retrieve a token with the terms of service GET endpoint and then use the PATCH endpoint to update the account with the token.

1
2
# Get the terms of service token
curl -X GET "https://api.moov.io/tos-token" \
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Send the token when creating an account
curl -X POST "https://api.moov.io/accounts" \
# ...
--data-raw '{
  "accountType": "account-type",
  "profile": {...},
  "termsOfService": {
    "token": "terms-of-service-token"
  },
  "foreignID": "your-correlation-id"
}'\
1
2
# Get the terms of service token
curl -X GET "https://api.moov.io/tos-token" \
1
2
3
4
5
6
7
8
9
# Send the token when patching the account
curl -X PATCH "https://api.moov.io/accounts/{accountID}" \
# ...
--data-raw '{
  "termsOfService": {
    "token": "terms-of-service-token"
  },
  "foreignID": "your-correlation-id"
}'\

Manual entry

You’ll need to capture a date-time, IP address, user agent and domain to manually enter a terms of service agreement. For manual entry when creating an account, use the create account POST endpoint. For manual entry when updating an account, use the patch account PATCH endpoint.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
curl -X POST "https://api.moov.io/accounts" \
# ...
--data-raw '{
  "accountType": "your-account-type",
  "profile": {...},
  "termsOfService": {
    "acceptedDate": "accepted-date",
    "acceptedIP": "accepted-ip",
    "acceptedUserAgent": "accepted-user-agent",
    "acceptedDomain": "accepted-domain"
  },
  "foreignID": "your-correlation-id"
}'\
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
curl -X PATCH "https://api.moov.io/accounts/{accountID}" \
# ...
--data-raw '{
  "foreignID": "your-correlation-id",
  "termsOfService": {
    "acceptedDate": "accepted-date",
    "acceptedIP": "accepted-ip",
    "acceptedUserAgent": "accepted-user-agent",
    "acceptedDomain": "accepted-domain"
  },
  "foreignID": "your-correlation-id"
}'\
Summary Beta