API Reference


For the following code provided, additional configuration or library use as follows. Also remember to either switch demo to sandbox or remove it from the url to make API requests to the sandbox or production environment.

No additional library or configuration required.
Install the package with: npm install checkbook-api --save

Configure Authorization and as such:

var CheckbookAPI = require('checkbook-api');
var Checkbook = new CheckbookAPI({
  api_key: 'd6aa2703655f4ba2af2a56202961ca86',
  api_secret: 'dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8',
  env: 'test'
});

env can also be sandbox. Omit it to make requests to the live environment.
Additional information can be found here: https://www.npmjs.com/package/checkbook-api
Install requests package by using:

pip install requests
Require uri and net/http as such:

require 'uri'
require 'net/http'
No additional library or configuration required.
Install OkHttp from http://square.github.io/okhttp/
Installation of the dependence through Maven is recommended.
Include the following namespace:

using System.Net.Htttp;

Check

Resource Operation Description
  POST /v3/check/instant  
  POST /v3/check/preview  
DELETE check DELETE /v3/check/(check_id) Void the specified check.
GET check GET /v3/check/(check_id) Get the specified check.
GET checks GET /v3/check Get sent/received checks.
POST endorse POST /v3/check/endorse/(check_id) Endorse a multi party check.
POST digital check POST /v3/check/digital Create digital check.
POST multi check POST /v3/check/multi Create multi party check.
POST physical check POST /v3/check/physical Create physical check.
GET /v3/check

Return the sent/received checks for a user

Example request:

Show
curl -i --request GET \
--url 'https://demo.checkbook.io/v3/check' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json

{'checks': [
   {'id': '65432178123456781234567812345678',
    'date': '2014-01-02 13:14:15',
    'number': '1002',
    'description': 'January rent',
    'status': 'IN_PROCESS',
    'amount': 535.00,
    'name': 'Widgets Inc.',
    'image_uri': 'https://checkbook.io/caa96495-1fe7-439f-965d-85f38c131b22.png',
    'recipient': 'rent@example.com'
   },
   {'id': '12345678123456781234567812345678',
    'date': '2014-01-01 12:15:15',
    'number': '1001',
    'description': 'Cleaning services payment',
    'status': 'PAID',
    'amount': 35.45,
    'name': 'James Smith',
    'image_uri': 'https://checkbook.io/bc96495-1fe7-439f-965d-85f38c131b22.png',
    'recipient': 'cleaning@example.com'
   }]
}
curl --request GET \
--url 'https://demo.checkbook.io/v3/check' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.checks.list({
  page: 1,
  per_page: 10,
  status: 'UNPAID'
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/check"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("GET", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/check")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/check';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/check")
      .get()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://demo.checkbook.io/v3/check");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Response JSON Object:
 
  • checks (list[object]) – list of sent/received checks
  • id (string) – unique identifier for check
  • date (string) – check creation timestamp
  • number (string) – check number
  • description (string) – check description
  • amount (number) – amount
  • name (string) – name of third party who sent/received the check
  • image_uri (string) – uri where image of the check can be accessed
  • recipient (string|object) – email/id or physical address of the check recipient
  • status (string) – current status of the check: PAID, IN_PROCESS, UNPAID, VOID, EXPIRED, PRINTED, MAILED, FAILED, RETURNED
Status Codes:
DELETE /v3/check/(check_id)

Void the specified check for a user

Example request:

Show
curl -i --request DELETE \
--url 'https://demo.checkbook.io/v3/check/(check_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json
curl --request DELETE \
--url 'https://demo.checkbook.io/v3/check/(check_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.checks.delete( (check_id) , function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/check/(check_id)"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("DELETE", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/check/(check_id)")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/check/(check_id)';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/check/(check_id)")
      .delete()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete, "https://demo.checkbook.io/v3/check/(check_id)");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Query Parameters:
 
  • check_id – id of the check to void
Status Codes:
GET /v3/check/(check_id)

Get the specified check for a user

Example request:

Show
curl -i --request GET \
--url 'https://demo.checkbook.io/v3/check/(check_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json

{'id': '65432178123456781234567812345678',
'date': '2014-01-02 13:14:15',
'number': '1002',
'description': 'January rent',
'status': 'IN_PROCESS',
'amount': 535.00,
'name': 'Widgets Inc.',
'image_uri': 'https://checkbook.io/bcd96495-1fe7-439f-965d-85f38c131b22.png',
'recipient': 'rent@example.com'
}
curl --request GET \
--url 'https://demo.checkbook.io/v3/check/(check_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.checks.get( (check_id) , function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/check/(check_id)"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("GET", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/check/(check_id)")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/check/(check_id)';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/check/(check_id)")
      .get()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://demo.checkbook.io/v3/check/(check_id)");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Query Parameters:
 
  • check_id – id of the check to return
Response JSON Object:
 
  • id (string) – unique identifier for check
  • date (string) – check creation timestamp
  • number (string) – check number
  • description (string) – check description
  • amount (number) – amount
  • name (string) – name of third party who sent/received the check
  • image_uri (string) – uri where image of the check can be accessed
  • recipient (string|object) – email/id or physical address of the check recipient
  • status (string) – current status of the check: PAID, IN_PROCESS, UNPAID, VOID, EXPIRED, PRINTED, MAILED, FAILED, RETURNED
Status Codes:
POST /v3/check/digital

Create a new digital check

Example request:

Show
curl -i --request POST  \
--url 'https://demo.checkbook.io/v3/check/digital' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"name":"Widgets Inc.","recipient":"widgets@example.com","amount":5.00}'

Example response:

Show
HTTP/1.1 201 OK
Content-Type: application/json

{'id': '65432178123456781234567812345678',
'date': '2014-01-02 13:14:15',
'number': '1002',
'description': 'January rent',
'status': 'IN_PROCESS',
'amount': 535.00,
'name': 'Widgets Inc.',
'image_uri': 'https://checkbook.io/bcd96495-1fe7-439f-965d-85f38c131b22.png',
'recipient': 'rent@example.com'
}
curl --request POST  \
--url 'https://demo.checkbook.io/v3/check/digital' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"name":"Widgets Inc.","recipient":"widgets@example.com","amount":5.00}'
Checkbook.checks.sendDigitalCheck({
  name: 'Widgets Inc.',
  recipient: 'widgets@example.com',
  description: 'Test Send Check',
  amount: 5.00
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/check/digital"
body = "{\"name\":\"Widgets Inc.\",\"recipient\":\"widgets@example.com\",\"amount\":5.00}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("POST", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/check/digital")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"name\":\"Widgets Inc.\",\"recipient\":\"widgets@example.com\",\"amount\":5.00}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/check/digital');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"name\":\"Widgets Inc.\",\"recipient\":\"widgets@example.com\", \"amount\": 15.00}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"name\":\"Widgets Inc.\", \"recipient\":\"widgets@example.com\", \"amount\": 25.00}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/check/digital")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://demo.checkbook.io/v3/check/digital");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"name\":\"Widgets Inc.\", \"recipient\":\"widgets@example.com\", \"amount\": 5.00}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Request JSON Object:
 
  • recipient (string) – email/id of recipient
  • name (string) – name of recipient
  • amount (number) – check amount
  • [number] (number) – check number
  • [description] (string) – optional description/memo for check
  • [account] (string) – optional debit account id for funds (if sender has multiple bank accounts)
  • [attachment] (string) – optional base64 encoded PDF attachment for recipient
Response JSON Object:
 
  • id (string) – unique identifier for check
  • date (string) – check creation timestamp
  • number (string) – check number
  • description (string) – check description
  • amount (number) – amount
  • name (string) – name of check recipient
  • image_uri (string) – uri where image of the check can be accessed
  • recipient (string) – email/id of the check recipient
  • status (string) – current status of the check: PAID, IN_PROCESS, UNPAID, VOID, EXPIRED, PRINTED, MAILED, FAILED, RETURNED
Status Codes:
POST /v3/check/multi

Create a new multi party check

Example request:

Show
curl -i --request POST  \
                  --url 'https://demo.checkbook.io/v3/check/multi' \
                  --header 'Content-Type: application/json' \
                  --header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
                  --data '{"recipients": [{"name": "Jane Doe", "recipient": "jane@example.com"}, {"name": "John Doe", "recipient": "john@example.com"}],"amount":5.00, "description": "January Rent"}'
                  

Example response:

Show
HTTP/1.1 201 OK
                  Content-Type: application/json
                  {'id': '65432178123456781234567812345678',
                   'date': '2014-01-02 13:14:15',
                   'number': '1002',
                   'description': 'January rent',
                   'status': 'IN_PROCESS',
                   'amount': 5.00,
                   'name': 'Jane Doe and John Doe',
                   'image_uri': 'https://checkbook.io/bcd96495-1fe7-439f-965d-85f38c131b22.png',
                   'recipient': ['jane@example.com', 'john@example.com']
                  }
                  
curl --request POST  \
                  --url 'https://demo.checkbook.io/v3/check/multi' \
                  --header 'Content-Type: application/json' \
                  --header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
                  --data '{"recipients": [{"name": "Jane Doe", "recipient": "jane@example.com"}, {"name": "John Doe", "recipient": "john@example.com"}],"amount":5.00}'
                  
Checkbook.checks.sendMultiCheck({
                      name: 'Widgets Inc.',
                      recipients: [{name: 'Jane Doe', recipient: 'jane@example.com'},
                                   {name: 'John Doe', recipient: 'john@example.com'}]
                      description: 'Test Send Check',
                      amount: 5.00
                  }, function (error, response) {
                      if (error) {
                          console.log('Error:', error);
                      } else {
                          console.log('Response:', response);
                      }
                  });
                  
import requests
                  url = "https://demo.checkbook.io/v3/check/multi"
                  {'amount': 5, 'recipients': [{'name': 'Jane Doe', 'recipient': 'jane@checkbook.io'},
                                               {'name': 'John Doe', 'recipient': 'john@checkbook.io'}]}
                  headers = {
                      'Content-Type': 'application/json',
                      'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
                  }
                  response = requests.request("POST", url, data=json.dumps(body), headers=headers)
                  print(response.text)
                  
url = URI("https://demo.checkbook.io/v3/check/multi")
                  http = Net::HTTP.new(url.host, url.port)
                  http.use_ssl = true
                  request = Net::HTTP::Post.new(url)
                  request["Content-Type"] = 'application/json'
                  request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
                  request.body = "{\"name\":\"Widgets Inc.\",\"amount\":5.00,
                                   \"recipients\":[{\"name\": \"Jane Doe\", \"recipient\": \"jane@checkbook.io\"},
                                                   {\"name\": \"John Doe\", \"recipient\": \"john@checkbook.io\"}]}"
                  response = http.request(request)
                  puts response.read_body
                  
$curl = curl_init('https://demo.checkbook.io/v3/check/multi');
                  curl_setopt($curl, CURLOPT_HTTPHEADER, array(
                      'Content-Type: application/json',
                      'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
                  ));
                  curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
                  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
                  curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"name\":\"Widgets Inc.\",\"amount\":5.00,
                                                           \"recipients\":[{\"name\": \"Jane Doe\", \"recipient\": \"jane@checkbook.io\"},
                                                                          {\"name\": \"John Doe\", \"recipient\": \"john@checkbook.io\"}]}";
                  $response = curl_exec($curl);
                  echo $response;
                  curl_close($curl);
                  
OkHttpClient client = new OkHttpClient();
                  MediaType JSON = MediaType.parse("application/json; charset=utf-8");
                  RequestBody body = RequestBody.create(JSON, "{\"name\":\"Widgets Inc.\",\"amount\":5.00,
                                                                \"recipients\":[{\"name\": \"Jane Doe\", \"recipient\": \"jane@checkbook.io\"},
                                                                              {\"name\": \"John Doe\", \"recipient\": \"john@checkbook.io\"}]}");
                  Request request = new Request.Builder()
                          .url("https://demo.checkbook.io/v3/check/multi")
                          .post(body)
                          .addHeader("Content-Type", "application/json")
                          .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
                          .build();
                  try (Response response = client.newCall(request).execute()) {
                      System.out.println(response.body().string());
                  }
                  
HttpClient client = new HttpClient();
                  HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://demo.checkbook.io/v3/check/multi");
                  client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
                  client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
                  request.Content = new StringContent("{\"name\":\"Widgets Inc.\",\"amount\":5.00,
                                                        \"recipients\":[{\"name\": \"Jane Doe\", \"recipient\": \"jane@checkbook.io\"},
                                                                      {\"name\": \"John Doe\", \"recipient\": \"john@checkbook.io\"}]}");
                  HttpResponseMessage response = await client.SendAsync(request);
                  HttpContent responseContent = response.Content;
                  Console.WriteLine(await response.Content.ReadAsStringAsync());
                  
Request Headers:
 
Request JSON Object:
 
  • recipient (string) – email/id of recipient
  • name (string) – name of recipient
  • amount (number) – check amount
  • [number] (number) – check number
  • [description] (string) – optional description/memo for check
  • [account] (string) – optional debit account id for funds (if sender has multiple bank accounts)
  • [attachment] (string) – optional base64 encoded PDF attachment for recipient
Response JSON Object:
 
  • id (string) – unique identifier for check
  • date (string) – check creation timestamp
  • number (string) – check number
  • description (string) – check description
  • amount (number) – amount
  • name (string) – name of check recipient
  • image_uri (string) – uri where image of the check can be accessed
  • recipient (string) – email/id of the check recipient
  • status (string) – current status of the check: PAID, IN_PROCESS, UNPAID, VOID, EXPIRED, PRINTED, MAILED, FAILED, RETURNED
Status Codes:
POST /v3/check/endorse/(check_id)

Endorse a multi party check

Example request:

Show
curl -i --request GET \
                  --url 'https://demo.checkbook.io/v3/check/endorse/(check_id)' \
                  --header "Accept: application/json" \
                  --header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
                  
curl --request GET \
                  --url 'https://demo.checkbook.io/v3/check/endorse/(check_id)' \
                  --header "Accept: application/json" \
                  --header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
                  
import requests
                  url = "https://demo.checkbook.io/v3/check/endorse/(check_id)"
                  headers = {
                      'Accept': 'application/json',
                      'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
                  }
                  response = requests.request("GET", url, headers=headers)
                  print(response.text)
                  
url = URI("https://demo.checkbook.io/v3/check/endorse/(check_id)")
                  http = Net::HTTP.new(url.host, url.port)
                  http.use_ssl = true
                  request = Net::HTTP::Get.new(url)
                  request["Accept"] = 'application/json'
                  request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
                  response = http.request(request)
                  puts response.read_body
                  
$url = 'https://demo.checkbook.io/v3/check/endorse/(check_id)';
                  $curl = curl_init($url);
                  curl_setopt($curl, CURLOPT_HTTPHEADER, array(
                      'Accept: application/json',
                      'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
                  ));
                  curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
                  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
                  $response = curl_exec($curl);
                  echo $response;
                  curl_close($curl);
                  
OkHttpClient client = new OkHttpClient();
                  Request request = new Request.Builder()
                          .url("https://demo.checkbook.io/v3/check/endorse/(check_id)")
                          .get()
                          .addHeader("Accept", "application/json")
                          .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
                          .build();
                  try (Response response = client.newCall(request).execute()) {
                      System.out.println(response.body().string());
                  }
                  
HttpClient client = new HttpClient();
                  HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://demo.checkbook.io/v3/check/endorse/(check_id)");
                  client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
                  client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
                  HttpResponseMessage response = await client.SendAsync(request);
                  HttpContent responseContent = response.Content;
                  Console.WriteLine(await response.Content.ReadAsStringAsync());
                  
Request Headers:
 
Response JSON Object:
 
  • check_id (string) – unique identifier for Multi-Party check.
Status Codes:
POST /v3/check/physical

Create a new physical check

Example request:

Show
curl -i --request POST  \
--url 'https://demo.checkbook.io/v3/check/physical' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"name":"Widgets Inc.","recipient":{"line_1": "1234 N. 1st Street","line_2": "#56","city": "San Francisco","state": "CA","zip": "12345"}, "amount": 5.00}'

Example response:

Show
HTTP/1.1 201 OK
Content-Type: application/json

{'id': '65432178123456781234567812345678',
'date': '2014-01-02 13:14:15',
'number': '1002',
'description': 'January rent',
'status': 'MAILED',
'amount': 535.00,
'name': 'Widgets Inc.',
'image_uri': 'https://checkbook.io/bcd96495-1fe7-439f-965d-85f38c131b22.png',
'recipient': {'line_1': '1234 N. 1st Street',
             'line_2': '#56',
             'city': 'San Francisco',
             'state': 'CA',
             'zip': '78901'}
}
curl --request POST  \
--url 'https://demo.checkbook.io/v3/check/physical' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"name":"Widgets Inc.","recipient":{"line_1": "1234 N. 1st Street","line_2": "#56","city": "San Francisco","state": "CA","zip": "12345"}, "amount": 5.00}'
Checkbook.checks.sendPhysicalCheck({
  name: 'Widgets Inc.',
  recipient: {
      'line_1': '1234 N. 1st Street',
      'line_2': '#56',
      'city': 'San Francisco',
      'state': 'CA',
      'zip': '78901'
  },
  description: 'Test Send Check',
  amount: 10.00
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/check/physical"
body = "{\"name\":\"Widgets Inc.\",\"recipient\":{\"line_1\": \"1234 N. 1st Street\",\"line_2\": \"#56\",\"city\": \"San Francisco\",\"state\": \"CA\",\"zip\": \"12345\"}, \"amount\": 5.00}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("POST", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/check/physical")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"name\":\"Widgets Inc.\",\"recipient\":{\"line_1\": \"1234 N. 1st Street\",\"line_2\": \"#56\",\"city\": \"San Francisco\",\"state\": \"CA\",\"zip\": \"12345\"}, \"amount\": 5.00}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/check/physical');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"name\":\"Widgets Inc.\",\"recipient\":{\"line_1\": \"1234 N. 1st Street\",\"line_2\": \"#56\",\"city\": \"San Francisco\",\"state\": \"CA\",\"zip\": \"12345\"}, \"amount\": 5.00}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"name\":\"Widgets Inc.\",\"recipient\":{\"line_1\": \"1234 N. 1st Street\",\"line_2\": \"#56\",\"city\": \"San Francisco\",\"state\": \"CA\",\"zip\": \"12345\"}, \"amount\": 5.00}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/check/physical")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://demo.checkbook.io/v3/check/physical");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"name\":\"Widgets Inc.\",\"recipient\":{\"line_1\": \"1234 N. 1st Street\",\"line_2\": \"#56\",\"city\": \"San Francisco\",\"state\": \"CA\",\"zip\": \"12345\"}, \"amount\": 5.00}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Request JSON Object:
 
  • recipient (object) – address of the recipient
  • name (string) – name of recipient
  • amount (number) – check amount
  • [number] (number) – check number
  • [description] (string) – optional description/memo for check
  • [account] (string) – optional debit account id for funds (if sender has multiple bank accounts)
Response JSON Object:
 
  • id (string) – unique identifier for check
  • date (string) – check creation timestamp
  • number (string) – check number
  • description (string) – check description
  • amount (number) – amount
  • name (string) – name of check recipient
  • image_uri (string) – uri where image of the check can be accessed
  • recipient (object) – physical address of the check recipient
  • status (string) – current status of the check: PAID, IN_PROCESS, UNPAID, VOID, EXPIRED, PRINTED, MAILED, FAILED, RETURNED
Status Codes:

Invoice

Resource Operation Description
DELETE invoice DELETE /v3/invoice/(invoice_id) Cancel the specified invoice.
GET invoice GET /v3/invoice/(invoice_id) Get the specified invoice.
GET invoices GET /v3/invoice Get sent/received invoices.
POST invoice POST /v3/invoice Create invoice.
GET /v3/invoice

Return the sent/received invoices for a user

Example request:

Show
curl -i --request GET \
--url 'https://demo.checkbook.io/v3/invoice' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json

{'invoices': [
   {'id': '65432178123456781234567812345678',
    'date': '2014-01-02 13:14:15',
    'number': '1002',
    'description': 'January rent',
    'status': 'PAID',
    'amount': 535.00,
    'name': 'Widgets Inc.',
    'recipient': 'rent@example.com'
   },
   {'id': '12345678123456781234567812345678',
    'date': '2014-01-01 12:15:15',
    'number': '1001',
    'description': 'Cleaning services payment',
    'status': 'UNPAID',
    'amount': 35.45,
    'name': 'James Smith',
    'recipient': 'cleaning@example.com'
   }]
}
curl --request GET \
--url 'https://demo.checkbook.io/v3/invoice' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.invoices.list({
  page: 1,
  per_page: 10,
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/invoice"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("GET", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/invoice")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/invoice';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/invoice")
      .get()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://demo.checkbook.io/v3/invoice");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Response JSON Object:
 
  • invoices (list[object]) – list of sent/received invoices
  • id (string) – unique identifier for invoice
  • date (string) – invoice creation timestamp
  • number (string) – invoice number
  • description (string) – invoice description
  • amount (number) – amount
  • name (string) – name of third party who sent/received the invoice
  • recipient (string) – email/id of the invoice recipient
  • status (string) – current status of the invoice: PAID, IN_PROCESS, UNPAID, CANCELED, OVERDUE
Status Codes:
POST /v3/invoice

Create a new invoice

Example request:

Show
curl -i --request POST  \
--url 'https://demo.checkbook.io/v3/check/invoice' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"name":"Widgets Inc.","recipient":"widgets@example.com","amount":5.00,"description":"Invoice 123"}'

Example response:

Show
HTTP/1.1 201 OK
Content-Type: application/json

{'id': '65432178123456781234567812345678',
'date': '2014-01-02 13:14:15',
'number': '1002',
'description': 'January rent',
'status': 'UNPAID',
'amount': 535.00,
'name': 'Widgets Inc.',
'recipient': 'rent@example.com'
}
curl --request POST  \
--url 'https://demo.checkbook.io/v3/check/invoice' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"name":"Widgets Inc.","recipient":"widgets@example.com","amount":5.00,"description":"Invoice 123"}'
Checkbook.invoices.sendInvoice({
  name: 'Widgets Inc.',
  recipient: 'widgets@example.com',
  description: 'Test Send Invoice',
  amount: 5.00
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/check/invoice"
body = "{\"name\":\"Widgets Inc.\",\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"description\":\"Invoice 123\"}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("POST", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/check/invoice")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"name\":\"Widgets Inc.\",\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"description\":\"Invoice 123\"}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/check/invoice');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"name\":\"Widgets Inc.\",\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"description\":\"Invoice 123\"}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"name\":\"Widgets Inc.\",\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"description\":\"Invoice 123\"}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/check/invoice")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://demo.checkbook.io/v3/check/invoice");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"name\":\"Widgets Inc.\",\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"description\":\"Invoice 123\"}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Request JSON Object:
 
  • recipient (string) – email/id of recipient
  • name (string) – name of recipient
  • amount (number) – invoice amount
  • description (string) – description/memo for invoice
  • [number] (number) – invoice number
  • [account] (string) – optional credit account id for funds (if sender has multiple bank accounts)
  • [attachment] (string) – optional base64 encoded PDF attachment for recipient
Response JSON Object:
 
  • id (string) – unique identifier for invoice
  • date (string) – invoice creation timestamp
  • number (string) – invoice number
  • description (string) – invoice description
  • amount (number) – amount
  • name (string) – name of invoice recipient
  • recipient (string) – email/id of the invoice recipient
  • status (string) – current status of the invoice: PAID, IN_PROCESS, UNPAID, CANCELED, OVERDUE
Status Codes:
GET /v3/invoice/(invoice_id)

Get the specified invoice for a user

Example request:

Show
curl -i --request GET \
--url 'https://demo.checkbook.io/v3/invoice/(invoice_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json


{'id': '65432178123456781234567812345678',
'date': '2014-01-02 13:14:15',
'number': '1002',
'description': 'January rent',
'status': 'PAID',
'amount': 535.00,
'name': 'Widgets Inc.',
'recipient': 'rent@example.com'
}
curl --request GET \
--url 'https://demo.checkbook.io/v3/invoice/(invoice_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.invoices.get( (invoice_id) , function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/invoice/(invoice_id))"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("GET", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/invoice/(invoice_id)")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/invoice/(invoice_id)';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/invoice/(invoice_id)")
      .get()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://demo.checkbook.io/v3/invoice/(invoice_id)");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Query Parameters:
 
  • invoice_id – id of the invoice to return
Response JSON Object:
 
  • id (string) – unique identifier for invoice
  • date (string) – invoice creation timestamp
  • number (string) – invoice number
  • description (string) – invoice description
  • amount (number) – amount
  • name (string) – name of third party who sent/received the invoice
  • recipient (string) – email/id of the invoice recipient
  • status (string) – current status of the invoice: PAID, IN_PROCESS, UNPAID, CANCELED, OVERDUE
Status Codes:
DELETE /v3/invoice/(invoice_id)

Cancel the specified invoice for a user

Example request:

Show
curl -i --request DELETE \
--url 'https://demo.checkbook.io/v3/invoice(invoice_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json
curl --request DELETE \
--url 'https://demo.checkbook.io/v3/invoice(invoice_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.invoices.delete( (invoice_id) , function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/invoice(invoice_id)"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("DELETE", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/invoice(invoice_id)")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/invoice(invoice_id)';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/invoice(invoice_id)")
      .delete()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete, "https://demo.checkbook.io/v3/invoice(invoice_id)");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Query Parameters:
 
  • invoice – id of the invoice to cancel
Status Codes:

Subscription

Resource Operation Description
DELETE subscription DELETE /v3/subscription/(subscription_id) Remove specified subscription.
GET subscription GET /v3/subscription/(subscription_id) Get specified subscription.
GET subscriptions GET /v3/subscription Get subscriptions.
POST check subscription POST /v3/subscription/check Create check subscription.
POST invoice subscription POST /v3/subscription/invoice Create invoice subscription.
PUT subscription PUT /v3/subscription/(subscription_id) Update subscription.
GET /v3/subscription

Return the subscriptions for a user

Example request:

Show
curl -i --request GET \
--url 'https://demo.checkbook.io/v3/subscription' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json

{'subscriptions': [
   {'id': '65432178123456781234567812345678',
    'date': '2014-01-02 13:14:15',
    'start_date': '2014-01-02',
    'type': 'CHECK',
    'interval': 'MONTHLY',
    'amount': 535.00,
    'description': 'Monthly Rent',
    'name': 'Landlord Inc.'
    'recipient': 'rent@example.com',
    'duration': 5,
    'skipped': [],
    'account': '11132178123456781234567812345678'
   },
   {'id': '12345678123456781234567812345678',
    'date': '2014-01-01 12:15:15',
    'start_date': '2014-01-02','
    'type': 'CHECK',
    'interval': 'WEEKLY',
    'amount': 535.00,
    'description': 'Cleaning services',
    'name': 'Cleaning Services LLC'
    'recipient': 'cleaning@example.com',
    'duration': null,
    'skipped': [4, 7],
    'account': '11132178123456781234567812345678'
   }]
}
curl --request GET \
--url 'https://demo.checkbook.io/v3/subscription' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.subscriptions.list({
  page: 1,
  per_page: 10
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/subscription"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("GET", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/subscription")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/subscription';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/subscription")
      .get()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://demo.checkbook.io/v3/subscription");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());

Note

Even though a subscription is skipped, it will still still count towards the duration limit. For example, if the duration is 5, and the first subscription is skipped, only 4 subscriptions will be sent.

Request Headers:
 
Response JSON Object:
 
  • subscriptions (list[object]) – list of subscriptions
  • id (string) – unique identifier for subscription
  • date (string) – subscription creation timestamp
  • start_date (string) – subscription start date
  • type (string) – type of the subscription: CHECK, INVOICE
  • interval (string) – how often the subscription will recur: WEEKLY, MONTHLY
  • description (string) – subscription description
  • amount (number) – amount
  • name (string) – name of third party who is receiving the check/invoice
  • recipient (string) – email/id of the check/invoice recipient
  • account (string) – debit/credit account id for funds
  • duration (number) – number of times the subscription will recur (null indicates indefinite)
  • skipped (list) – list of skipped subscription indexes (e.g. [1] indicates the first subscription will be skipped)
Status Codes:
DELETE /v3/subscription/(subscription_id)

Remove the specified subscription for a user

Example request:

Show
curl -i --request DELETE \
--url 'https://demo.checkbook.io/v3/subscription/(subscription_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json
curl --request DELETE \
--url 'https://demo.checkbook.io/v3/subscription/(subscription_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.subscriptions.delete( (subscription_id) , function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/subscription/(subscription_id)"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("DELETE", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/subscription/(subscription_id)")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/subscription/(subscription_id)';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/subscription/(subscription_id)")
      .delete()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete, "https://demo.checkbook.io/v3/subscription/(subscription_id)");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Query Parameters:
 
  • subscription_id – id of the subscription to void
Status Codes:
GET /v3/subscription/(subscription_id)

Get the specified subscription for a user

Example request:

Show
curl -i --request GET \
--url 'https://demo.checkbook.io/v3/subscription/(subscription_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json

{'id': '65432178123456781234567812345678',
'date': '2014-01-02 13:14:15',
'start_date': '2014-01-02',
'type': 'CHECK',
'interval': 'MONTHLY',
'amount': 535.00,
'description': 'Monthly Rent',
'name': 'Landlord Inc.'
'recipient': 'rent@example.com',
'duration': 5,
'skipped': [],
'account': '11132178123456781234567812345678'
}
curl --request GET \
--url 'https://demo.checkbook.io/v3/subscription/(subscription_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.subscriptions.get( (subscription_id) , function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/subscription/(subscription_id)"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("GET", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/subscription/(subscription_id)")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/subscription/(subscription_id)';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/subscription/(subscription_id)")
      .get()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://demo.checkbook.io/v3/subscription/(subscription_id)");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());

Note

Even though a subscription is skipped, it will still still count towards the duration limit. For example, if the duration is 5, and the first subscription is skipped, only 4 subscriptions will be sent.

Request Headers:
 
Response JSON Object:
 
  • id (string) – unique identifier for subscription
  • date (string) – subscription creation timestamp
  • start_date (string) – subscription start date
  • type (string) – type of the subscription: CHECK, INVOICE
  • interval (string) – how often the subscription will recur: WEEKLY, MONTHLY
  • description (string) – subscription description
  • amount (number) – amount
  • name (string) – name of third party who is receiving the check/invoice
  • recipient (string) – email/id of the check/invoice recipient
  • account (string) – debit/credit account id for funds
  • duration (number) – number of times the subscription will recur (null indicates indefinite)
  • skipped (list) – list of skipped subscription indexes (e.g. [1] indicates the first subscription will be skipped)
Status Codes:
PUT /v3/subscription/(subscription_id)

Update the specified subscription for a user

Example request:

Show
curl -i --request PUT  \
--url 'https://demo.checkbook.io/v3/subscription/(subscription_id)' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"skipped":"1"}'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json
curl --request PUT  \
--url 'https://demo.checkbook.io/v3/subscription/(subscription_id)' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"skipped":"1"}'
Checkbook.subscriptions.update('906f0a5e9e344839a6f47b3d929c5326', {
  skipped: [1]
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/subscription/(subscription_id)"
body = "{\"skipped\":\"1\"}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("PUT", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/subscription/(subscription_id)")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"skipped\":\"1\"}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/subscription/(subscription_id)');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"skipped\":\"1\"}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"skipped\":\"1\"}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/subscription/(subscription_id)")
      .put(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, "https://demo.checkbook.io/v3/subscription/(subscription_id)");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"skipped\":\"1\"}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());

Note

Even though a subscription is skipped, it will still still count towards the duration limit. For example, if the duration is 5, and the first subscription is skipped, only 4 subscriptions will be sent.

Request Headers:
 
Request JSON Object:
 
  • skipped (list[number]) – list of skipped subscription indexes (e.g. [1] indicates the first subscription will be skipped)
Status Codes:
POST /v3/subscription/check

Create a new check subscrpition

Example request:

Show
curl -i --request POST  \
--url 'https://demo.checkbook.io/v3/subscription/check' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"recipient":"widgets@example.com","amount":5.00,"interval":"WEEKLY","name":"Widgets Inc.","description":"Check 123"}'

Example response:

Show
HTTP/1.1 201 OK
Content-Type: application/json

{'id': '65432178123456781234567812345678',
'date': '2014-01-02 13:14:15',
'start_date': '2014-01-02',
'type': 'CHECK',
'interval': 'MONTHLY',
'amount': 535.00,
'description': 'Monthly Rent',
'name': 'Landlord Inc.'
'recipient': 'rent@example.com',
'duration': 5,
'skipped': [],
'account': '11132178123456781234567812345678'
}
curl --request POST  \
--url 'https://demo.checkbook.io/v3/subscription/check' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"recipient":"widgets@example.com","amount":5.00,"interval":"WEEKLY","name":"Widgets Inc.","description":"Check 123"}'
Checkbook.subscriptions.sendRecurringCheck({
  name: 'Widgets Inc.',
  recipient: 'widgets@example.com',
  description: 'Test Recurring Check',
  amount: 5.00,
  interval: 'WEEKLY'
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/subscription/check"
body = "{\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"interval\":\"WEEKLY\",\"name\":\"Widgets Inc.\",\"description\":\"Check 123\"}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("POST", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/subscription/check")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"interval\":\"WEEKLY\",\"name\":\"Widgets Inc.\",\"description\":\"Check 123\"}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/subscription/check');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"interval\":\"WEEKLY\",\"name\":\"Widgets Inc.\",\"description\":\"Check 123\"}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"interval\":\"WEEKLY\",\"name\":\"Widgets Inc.\",\"description\":\"Check 123\"}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/subscription/check")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://demo.checkbook.io/v3/subscription/check");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"interval\":\"WEEKLY\",\"name\":\"Widgets Inc.\",\"description\":\"Check 123\"}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());

Note

Even though a subscription is skipped, it will still still count towards the duration limit. For example, if the duration is 5, and the first subscription is skipped, only 4 subscriptions will be sent.

Request Headers:
 
Request JSON Object:
 
  • recipient (string) – email/id of recipient
  • name (string) – name of recipient
  • amount (number) – check amount
  • interval (number) – how often the subscription will recur: WEEKLY, MONTHLY
  • [start_date] (string) – yyyy-mm-dd formatted start date for subscription (this is the first date the subsription will be sent out and defaults to the current timestamp)
  • [description] (string) – optional description/memo for check
  • [duration] (number) – optional number of times the subscription should recur (defaults to indefinite)
  • [account] (string) – optional debit account id for funds (if sender has multiple bank accounts)
Response JSON Object:
 
  • id (string) – unique identifier for subscription
  • date (string) – subscription creation timestamp
  • start_date (string) – subscription start date
  • type (string) – type of the subscription: CHECK
  • interval (string) – how often the subscription will recur: WEEKLY, MONTHLY
  • description (string) – subscription description
  • amount (number) – amount
  • name (string) – name of third party who is receiving the check/invoice
  • recipient (string) – email/id of the check/invoice recipient
  • account (string) – debit/credit account id for funds
  • duration (number) – number of times the subscription will recur (null indicates indefinite)
  • skipped (list) – list of skipped subscription indexes (e.g. [1] indicates the first subscription will be skipped)
Status Codes:
POST /v3/subscription/invoice

Create a new invoice subscrpition

Example request:

Show
curl -i --request POST  \
--url 'https://demo.checkbook.io/v3/subscription/invoice' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"recipient":"widgets@example.com","amount":5.00,"interval":"WEEKLY","name":"Widgets Inc.","description":"Invoice 123"}'

Example response:

Show
HTTP/1.1 201 OK
Content-Type: application/json

{'id': '65432178123456781234567812345678',
'date': '2014-01-02 13:14:15',
'start_date': '2014-01-02',
'type': 'INVOICE',
'interval': 'MONTHLY',
'amount': 535.00,
'description': 'Monthly Rent',
'name': 'Jason Smith'
'recipient': 'jsmith@example.com',
'duration': null,
'skipped': [],
'account': '11132178123456781234567812345678'
}
curl --request POST  \
--url 'https://demo.checkbook.io/v3/subscription/invoice' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"recipient":"widgets@example.com","amount":5.00,"interval":"WEEKLY","name":"Widgets Inc.","description":"Invoice 123"}'
Checkbook.subscriptions.sendRecurringInvoice({
  name: 'Widgets Inc.',
  recipient: 'widgets@example.com',
  description: 'Test Recurring Invoice',
  amount: 7.00,
  interval: 'WEEKLY'
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/subscription/invoice"
body = "{\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"interval\":\"WEEKLY\",\"name\":\"Widgets Inc.\",\"description\":\"Invoice 123\"}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("POST", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/subscription/invoice")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"interval\":\"WEEKLY\",\"name\":\"Widgets Inc.\",\"description\":\"Invoice 123\"}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/subscription/invoice');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"interval\":\"WEEKLY\",\"name\":\"Widgets Inc.\",\"description\":\"Invoice 123\"}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"interval\":\"WEEKLY\",\"name\":\"Widgets Inc.\",\"description\":\"Invoice 123\"}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/subscription/invoice")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://demo.checkbook.io/v3/subscription/invoice");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"recipient\":\"widgets@example.com\",\"amount\":5.00,\"interval\":\"WEEKLY\",\"name\":\"Widgets Inc.\",\"description\":\"Invoice 123\"}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());

Note

Even though a subscription is skipped, it will still still count towards the duration limit. For example, if the duration is 5, and the first subscription is skipped, only 4 subscriptions will be sent.

Request Headers:
 
Request JSON Object:
 
  • recipient (string) – email/id of recipient
  • name (string) – name of recipient
  • amount (number) – invoice amount
  • description (string) – description for invoice
  • interval (number) – how often the subscription will recur: WEEKLY, MONTHLY
  • [start_date] (string) – yyy-mm-dd formatted start date for subscription (this is the first date the subsription will be sent out and defaults to the current timestamp)
  • [duration] (number) – optional number of times the subscription should recur (defaults to indefinite)
  • [account] (string) – optional debit account id for funds (if sender has multiple bank accounts)
Response JSON Object:
 
  • id (string) – unique identifier for subscription
  • date (string) – subscription creation timestamp
  • start_date (string) – subscription start date
  • type (string) – type of the subscription: INVOICE
  • interval (string) – how often the subscription will recur: WEEKLY, MONTHLY
  • description (string) – subscription description
  • amount (number) – amount
  • name (string) – name of third party who is receiving the check/invoice
  • recipient (string) – email/id of the check/invoice recipient
  • account (string) – debit/credit account id for funds
  • duration (number) – number of times the subscription will recur (null indicates indefinite)
  • skipped (list) – list of skipped subscription indexes (e.g. [1] indicates the first subscription will be skipped)
Status Codes:

User

Resource Operation Description
POST user POST /v3/user Create user.
POST user/signature POST /v3/user/signature Add signature.
PUT user PUT /v3/user Update user.
POST /v3/user

Create a new user

Example request:

Show
curl -i --request POST  \
--url 'https://demo.checkbook.io/v3/user' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"name":"John Smith","user_id":"jsmith@example.com"}'

Example response:

Show
HTTP/1.1 201 OK
Content-Type: application/json

{'user_id': 'jsmith@example.com',
'key': 'd6aa2703655f4ba2af2a56202961ca86',
'secret': 'dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
curl --request POST  \
--url 'https://demo.checkbook.io/v3/user' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"name":"John Smith","user_id":"jsmith@example.com"}'
// '123456789' represents idempotency key
Checkbook.users.create({
  name: 'New User',
  user_id: 'new_user@example.com'
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
}, '123456789');
import requests
url = "https://demo.checkbook.io/v3/user"
body = "{\"name\":\"John Smith\",\"user_id\":\"jsmith@example.com\"}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("POST", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/user")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"name\":\"John Smith\",\"user_id\":\"jsmith@example.com\"}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/user');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"name\":\"John Smith\",\"user_id\":\"jsmith@example.com\"}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"name\":\"John Smith\",\"user_id\":\"jsmith@example.com\"}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/user")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://demo.checkbook.io/v3/user");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"name\":\"John Smith\",\"user_id\":\"jsmith@example.com\"}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Request JSON Object:
 
  • user_id (string) – unique identifier for new user
  • name (string) – name of user
Response JSON Object:
 
  • user_id (string) – unique identifier for user
  • key (string) – API key for new user
  • secret (string) – API secret for new user
Status Codes:
PUT /v3/user

Update an existing user

Example request:

Show
curl -i --request PUT  \
--url 'https://demo.checkbook.io/v3/user/(subscription_id)' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"user": { "first_name": "John", "last_name": "Smith" }, "merchant": { "website": "http://www.example.com" }}'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json
curl --request PUT  \
--url 'https://demo.checkbook.io/v3/user/(subscription_id)' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"user": { "first_name": "John", "last_name": "Smith" }, "merchant": { "website": "http://www.example.com" }}'
Checkbook.users.update({
  user: {
      first_name: 'John',
      last_name: 'Smith'
  },
  merchant: {
      website: 'http://www.example.com'
  }
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/user"
body = "{\"user\": { \"first_name\": \"John\", \"last_name\": \"Smith\" }, \"merchant\": { \"website\": \"http://www.example.com\" }}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("PUT", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/user")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"user\": { \"first_name\": \"John\", \"last_name\": \"Smith\" }, \"merchant\": { \"website\": \"http://www.example.com\" }}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/user');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"user\": { \"first_name\": \"John\", \"last_name\": \"Smith\" }, \"merchant\": { \"website\": \"http://www.example.com\" }}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"user\": { \"first_name\": \"John\", \"last_name\": \"Smith\" }, \"merchant\": { \"website\": \"http://www.example.com\" }}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/user")
      .put(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, "https://demo.checkbook.io/v3/user");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"user\": { \"first_name\": \"John\", \"last_name\": \"Smith\" }, \"merchant\": { \"website\": \"http://www.example.com\" }}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Request JSON Object:
 
  • [user] (object) – embedded user attributes to be updated: first_name, last_name, phone, business_name, check_number, invoice_number, dob, ssn
  • [merchant] (object) – embedded merchant attributes to be updated: website, tax_id, address, principal_address
  • [merchant][address] (object) – Company address info embedded in merchant: address_line_1, address_line_2, city, state, zip
  • [merchant][principal_address] (object) – Address info for principal embedded in merchant: address_line_1, address_line_2, city, state, zip
  • [bank] (object) – bank attributes to be updated: default, billing
Status Codes:
POST /v3/user/signature

Add signature for a user

Example request:

Show
curl -i --request POST  \
--url 'https://demo.checkbook.io/v3/user/signature' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"signature":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII="}'

Example response:

Show
HTTP/1.1 201 OK
Content-Type: application/json

{'user_id': 'jsmith@example.com',
'key': 'd6aa2703655f4ba2af2a56202961ca86',
'secret': 'dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
curl --request POST  \
--url 'https://demo.checkbook.io/v3/user/signature' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"signature":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII="}'
// Currently Unavailable
import requests
url = "https://demo.checkbook.io/v3/user/signature"
body = "{\"signature\":\"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=\"}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("POST", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/user/signature")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"signature\":\"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=\"}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/user/signature');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"signature\":\"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=\"}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"signature\":\"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=\"}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/user/signature")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://demo.checkbook.io/v3/user/signature");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"signature\":\"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=\"}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Request JSON Object:
 
  • signature (string) – base64 encoded png of user’s signature
Status Codes:

Bank

Resource Operation Description
DELETE bank DELETE /v3/bank/(bank_id) Remove the specified bank.
GET banks GET /v3/bank Get banks.
GET institutions GET /v3/bank/institutions Get institutions.
POST bank POST /v3/bank Add bank account.
POST bank iav POST /v3/bank/iav Add bank account with verification.
POST bank verify POST /v3/bank/verify Verify microdeposits.
PUT bank PUT /v3/bank/(bank_id) Update bank account.
POST /v3/bank

Add a new bank account for user

Example request:

Show
curl -i --request POST  \
--url 'https://demo.checkbook.io/v3/bank' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"routing":"021000021","type":"CHECKING","account":"12340000"}'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json

{'id': '65432178123456781234567812345678',
'date': '2014-01-02 13:14:15',
'routing': '021000021',
'account': '0000',
'status': 'VERIFIED',
'type': 'CHECKING',
'billing': true,
'default': true,
}
curl --request POST  \
--url 'https://demo.checkbook.io/v3/bank' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"routing":"021000021","type":"CHECKING","account":"12340000"}'
Checkbook.banks.addBankAccount({
  routing: '021000021',
  account: '12344321',
  type: 'CHECKING'
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/bank"
body = "{\"routing\":\"021000021\",\"type\":\"CHECKING\",\"account\":\"12340000\"}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("POST", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/bank")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"routing\":\"021000021\",\"type\":\"CHECKING\",\"account\":\"12340000\"}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/bank');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"routing\":\"021000021\",\"type\":\"CHECKING\",\"account\":\"12340000\"}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"routing\":\"021000021\",\"type\":\"CHECKING\",\"account\":\"12340000\"}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/bank")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://demo.checkbook.io/v3/bank");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"routing\":\"021000021\",\"type\":\"CHECKING\",\"account\":\"12340000\"}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Request JSON Object:
 
  • routing (string) – routing number
  • account (string) – account number
  • type (string) – CHECKING, BUSINESS, SAVINGS
Response JSON Object:
 
  • id (string) – unique identifier for account
  • date (string) – account creation timestamp
  • routing (string) – routing number
  • account (string) – last 4 of account number
  • status (string) – current status of account: PENDING, VERIFIED
  • billing (boolean) – indicates the billing account for the user
  • default (boolean) – indicates the default debit/credit account for the user
Status Codes:
GET /v3/bank

Return the banks for a user

Example request:

Show
curl -i --request GET \
--url 'https://demo.checkbook.io/v3/bank' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json

{'banks': [
   {'id': '65432178123456781234567812345678',
    'date': '2014-01-02 13:14:15',
    'routing': '021000021',
    'account': '0000',
    'status': 'VERIFIED',
    'type': 'CHECKING',
    'billing': true,
    'default': true,
   },
   {'id': '12345678123456781234567812345678',
    'date': '2014-01-02 13:14:15',
    'routing': '021000021',
    'account': '1111',
    'status': 'PENDING',
    'type': 'SAVINGS',
    'billing': false,
    'default': false,
   }]
}
curl --request GET \
--url 'https://demo.checkbook.io/v3/bank' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.banks.list(function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/bank"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("GET", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/bank")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/bank';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/bank")
      .get()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://demo.checkbook.io/v3/bank");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Response JSON Object:
 
  • banks (list[object]) – list of bank accounts for user
  • id (string) – unique identifier for account
  • name (string) – name of the bank account
  • date (string) – account creation timestamp
  • routing (string) – routing number
  • account (string) – last 4 of account number
  • status (string) – current status of account: PENDING, VERIFIED
  • billing (boolean) – indicates the billing account for the user
  • default (boolean) – indicates the default debit/credit account for the user
Status Codes:
DELETE /v3/bank/(bank_id)

Remove the specified bank account for a user

Example request:

Show
curl -i --request DELETE \
--url 'https://demo.checkbook.io/v3/bank/(bank_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json
curl --request DELETE \
--url 'https://demo.checkbook.io/v3/bank/(bank_id)' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.banks.delete( (bank_id) , function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/bank/(bank_id)"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("DELETE", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/bank/(bank_id)")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/bank/(bank_id)';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/bank/(bank_id)")
      .delete()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete, "https://demo.checkbook.io/v3/bank/(bank_id)");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Query Parameters:
 
  • bank – id of the bank account to remove
Status Codes:
PUT /v3/bank/(bank_id)

Update an existing bank account

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json
Request Headers:
 
Request JSON Object:
 
  • [billing] (boolean) – optional specification of billing account
  • [default] (boolean) – optional specification of default account
  • [name] (string) – optional name for accouont
Status Codes:
POST /v3/bank/iav

Add a new bank account for user

Example request:

Show
curl -i --request POST  \
--url 'https://demo.checkbook.io/v3/bank/iav' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"account":"0000","type":"CHECKING","institution_id":"ins_120003"}'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json

{'id': '65432178123456781234567812345678',
'date': '2014-01-02 13:14:15',
'routing': '021000021',
'account': '0000',
'status': 'VERIFIED',
'billing': true,
'default': true,
}
curl --request POST  \
--url 'https://demo.checkbook.io/v3/bank/iav' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"account":"0000","type":"CHECKING","institution_id":"ins_120003"}'
Checkbook.banks.instantAccountVerification({
  institution_id: 'ins_120003',
  account: '12344321',
  type: 'CHECKING'
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/bank/iav"
body = "{\"account\":\"0000\",\"type\":\"CHECKING\",\"institution_id\":\"ins_120003\"}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("POST", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/bank/iav")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"account\":\"0000\",\"type\":\"CHECKING\",\"institution_id\":\"ins_120003\"}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/bank/iav');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"account\":\"0000\",\"type\":\"CHECKING\",\"institution_id\":\"ins_120003\"}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"account\":\"0000\",\"type\":\"CHECKING\",\"institution_id\":\"ins_120003\"}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/bank/iav")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://demo.checkbook.io/v3/bank/iav");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"account\":\"0000\",\"type\":\"CHECKING\",\"institution_id\":\"ins_120003\"}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Request JSON Object:
 
  • institution_id (string) – institution_id returned from the institutions endpoint
  • account (string) – account number
  • type (string) – CHECKING, BUSINESS
Response JSON Object:
 
  • id (string) – unique identifier for account
  • date (string) – account creation timestamp
  • routing (string) – routing number
  • account (string) – last 4 of account number
  • status (string) – current status of account: PENDING, VERIFIED
  • billing (boolean) – indicates the billing account for the user
  • default (boolean) – indicates the default debit/credit account for the user
Status Codes:
GET /v3/bank/institutions

Get a list of our supported institutions for IAV

Example request:

Show
curl -i --request GET \
--url 'https://demo.checkbook.io/v3/bank/institutions' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json

{'institutions': [
   {'id': '65432178123456781234567812345678',
    'name': 'Bank of America',
    'login_form': [
       {'description': 'Username',
        'name': 'username',
        'type': 'TEXT',
       },
       {'description': 'Password',
        'name': 'password',
        'type': 'PASSWORD'}]
   },
   {'id': '12345678123456781234567812345678',
    'name': 'Wells Fargo',
    'login_form': [
       {'description': 'User ID',
        'name': 'user',
        'type': 'text',
       },
       {'description': 'Password',
        'name': 'TEXT',
        'type': 'PASSWORD'}]
   }]
}
curl --request GET \
--url 'https://demo.checkbook.io/v3/bank/institutions' \
--header "Accept: application/json" \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
Checkbook.banks.institutions(function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/bank/institutions"
headers = {
  'Accept': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("GET", url, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/bank/institutions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
response = http.request(request)
puts response.read_body
$url = 'https://demo.checkbook.io/v3/bank/institutions';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/bank/institutions")
      .get()
      .addHeader("Accept", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();
try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://demo.checkbook.io/v3/bank/institutions");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Headers:
 
Response JSON Object:
 
  • institutions (list[object]) – list of supported institutions for IAV
  • id (string) – unique identifier for institution
  • name (string) – name of institution
  • login_form (list[object]) – login form for institution, including a description of the field, the name of the field and the field type: TEXT, PASSWORD
Status Codes:
POST /v3/bank/verify

Verify the microdesposits for a bank account

Example request:

Show
curl -i --request POST  \
--url 'https://demo.checkbook.io/v3/bank/verify' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"amount_1":0.07,"amount_2":0.15}'

Example response:

Show
HTTP/1.1 200 OK
Content-Type: application/json
curl --request POST  \
--url 'https://demo.checkbook.io/v3/bank/verify' \
--header 'Content-Type: application/json' \
--header 'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8' \
--data '{"amount_1":0.07,"amount_2":0.15}'
Checkbook.banks.verifyMicrodesposits({
  amount_1: 0.07,
  amount_2: 0.15
}, function (error, response) {
  if (error) {
      console.log('Error:', error);
  } else {
      console.log('Response:', response);
  }
});
import requests
url = "https://demo.checkbook.io/v3/bank/verify"
body = "{\"amount_1\":0.07,\"amount_2\":0.15}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
}
response = requests.request("POST", url, data=body, headers=headers)
print(response.text)
url = URI("https://demo.checkbook.io/v3/bank/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'd6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
request.body = "{\"amount_1\":0.07,\"amount_2\":0.15}"
response = http.request(request)
puts response.read_body
$curl = curl_init('https://demo.checkbook.io/v3/bank/verify');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"amount_1\":0.07,\"amount_2\":0.15}");
$response = curl_exec($curl);
echo $response;
curl_close($curl);
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, "{\"amount_1\":0.07,\"amount_2\":0.15}");
Request request = new Request.Builder()
      .url("https://demo.checkbook.io/v3/bank/verify")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8")
      .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://demo.checkbook.io/v3/bank/verify");
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "d6aa2703655f4ba2af2a56202961ca86:dXbCgzYBMibj8ZwuQMd2NXr6rtvjZ8");
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
request.Content = new StringContent("{\"amount_1\":0.07,\"amount_2\":0.15}");
HttpResponseMessage response = await client.SendAsync(request);
HttpContent responseContent = response.Content;
Console.WriteLine(await response.Content.ReadAsStringAsync());

Note

The ordering of amount_1 and amount_2 does not matter

Request Headers:
 
Request JSON Object:
 
  • amount_1 (number) – amount of first micro deposit
  • amount_2 (number) – amount of second micro deposit
Status Codes: