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 needs to be sent to Moov in the form of a token.

You’ll need to authenticate your application before you generate a terms of service token. The Moov.js Drop is the best way to securely capture a user’s platform agreement acceptance and send it to Moov - the terms of service API is not available to everyone.

Terms of service Drop

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 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 accounts PATCH endpoint.

Alternate Moov.js implementation

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.

API implementation

The API implementation is not available to everyone. If you are not authorized by Moov to use these flows, you will receive a 403 error.

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

You can retrieve and send the token when creating an account, or you can update the account after it’s been created.

To send Moov the terms of service token, retrieve the token with the terms of service GET endpoint. Use the account POST endpoint to send the token when creating an account, or use the PATCH endpoint when updating an account..

1
2
3
# Get the terms of service token
curl -X GET "https://api.moov.io/tos-token" \
  -H "Authorization: Bearer {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
3
# Get the terms of service token
curl -X GET "https://api.moov.io/tos-token" \
  -H "Authorization: Bearer {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