Get Agreement Content
curl --request GET \
--url https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "<string>",
"agreement_id": "<string>",
"documents": [
{
"title": "<string>",
"url": "<string>"
}
]
}Virtual Account Groups
Get Agreement Content
List the terms behind one virtual account group agreement
GET
/
v1
/
accounts
/
{account_id}
/
virtual-account-groups
/
{group_id}
/
agreements
/
{agreement_id}
/
content
Get Agreement Content
curl --request GET \
--url https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hopnow.io/v1/accounts/{account_id}/virtual-account-groups/{group_id}/agreements/{agreement_id}/content")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "<string>",
"agreement_id": "<string>",
"documents": [
{
"title": "<string>",
"url": "<string>"
}
]
}This endpoint works on any account you own. Create Virtual Account Group covers who can open a group and what the account needs first.
Returns the terms that make up an agreement, so the account holder can read them before you call Submit Agreement Actions. Get the
agreement_id from List Agreements, or use the content_url on each agreement, which is this endpoint’s path.
An agreement is made of several documents. The response lists each one with a title and a link. Which documents are listed depends on where the account is based: an account in the United States gets additional disclosures. Where an account is based comes from its identity: the registered address for a business, the residential address for an individual.
Show every listed document to the account holder, and have them confirm they have read it, before you accept the agreement.
Requires an API key with read access on the virtual_accounts scope.
Path Parameters
string
required
The account’s external ID (starts with
acct_)string
required
The virtual account group’s external ID (starts with
vag_). It must belong to the account in the path.string
required
The agreement’s external ID (starts with
agr_). It must belong to the group in the path.Response
string
Always
"agreement_content"string
The agreement’s external ID, as in the path
array
Errors
| Status | code | When |
|---|---|---|
404 | RESOURCE_NOT_FOUND | group_id or agreement_id is unknown, or belongs to another account or group |
Request Example
curl "https://api.hopnow.io/v1/accounts/acct_ka44qsvpo8q3wtzuwfqf0h6u/virtual-account-groups/vag_7m2k9x4c1b6v3n8q5z0j2p7t/agreements/agr_3f8k1m5p9r2t6v4x7z0b3n5q/content" \
-H "X-API-Key: your_api_key" \
-H "X-Signature: hmac_signature" \
-H "X-Timestamp: 1234567890" \
-H "X-Nonce: abc123"
Response Example
US-based account
{
"object": "agreement_content",
"agreement_id": "agr_3f8k1m5p9r2t6v4x7z0b3n5q",
"documents": [
{"title": "Terms of Service", "url": "https://example.com/terms-of-service.pdf"},
{"title": "Privacy Policy", "url": "https://example.com/privacy-policy.pdf"},
{"title": "Privacy Notice", "url": "https://example.com/privacy-notice"},
{"title": "Electronic Communications Notice", "url": "https://example.com/electronic-communications-notice"},
{"title": "Fund Transfer Agreement", "url": "https://example.com/fund-transfer-agreement.pdf"}
]
}
Account based elsewhere
{
"object": "agreement_content",
"agreement_id": "agr_3f8k1m5p9r2t6v4x7z0b3n5q",
"documents": [
{"title": "Terms of Service", "url": "https://example.com/terms-of-service.pdf"},
{"title": "Privacy Policy", "url": "https://example.com/privacy-policy.pdf"},
{"title": "Fund Transfer Agreement", "url": "https://example.com/fund-transfer-agreement.pdf"}
]
}