Quick Start
1: Retrieve your API keys
Log in or create an account with the Abound Dashboard to find and retrieve your API keys.
API keys are environment specific and can be found on the Keys page.
2: API authentication
Authentication requires passing your bearer token for the desired environment (sandbox or production) in the Authorization
header of your API request.
The bearer token is in the format of: appId
.appSecret
The following is an example request that returns all Tin Verifications with the required Authorization
header.
curl \
--request GET \
--url https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications \
--header 'Accept: application/json'
--header 'Authorization: Bearer <<apiKey_v4>>'
await fetch("https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications",{
method: "GET",
headers: {
"Accept": "application/json",
"Authorization": "Bearer <<apiKey_v4>>"
},
});
import requests
url = "https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications"
headers = {
"Accept": "application/json",
"Authorization": "Bearer <<apiKey_v4>>"
}
response = requests.request("GET", url, headers=headers)
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer <<apiKey_v4>>'
response = http.request(request)
puts response.read_body
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer <<apiKey_v4>>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
// using RestSharp;
var client = new RestClient("https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications");
var request = new RestRequest(Method.GET);
request.AddHeader("Accept", "application/json");
request.AddHeader("Authorization", "Bearer <<apiKey_v4>>");
IRestResponse response = client.Execute(request);
Value | Description |
---|---|
appId | A non-sensitive, public identifier that is used to identify your app. |
appSecret | A sensitive, private key used to make secure calls to the Abound from your backend. Your appSecret should never be shared on the client-side or stored directly in your code. |
sandbox-api.withabound.com/v4 | Sandbox API environment; use test credentials and build out and test your integration. |
production-api.withabound.com/v4 | Production API environment; this environment is billed and will initiate real interactions with government entities. |
3: Make your first sandbox API call
As an example, let's perform a test Tin Verification to see if Ada Lovelace's tax identification number is 111-11-1111.
tin
test valuesIn this example,
111111111
is one of our many sandboxtin
test values. A complete list oftin
test values can be found here.
a. Request a new Tin Verification.
To request a new Tin Verification call POST /tin-verifications
.
curl \
--request POST \
--url https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <<apiKey_v4>>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Ada Lovelace",
"tin": "111111111"
}'
const response = await fetch("https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications", {
method: "POST",
headers: {
"Accept": "application/json",
"Authorization": "Bearer <<apiKey_v4>>"
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Ada Lovelace",
tin: "111111111"
}),
});
console.log(response);
import requests
url = "https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications"
payload = {
"name": "Ada Lovelace",
"tin": "111111111"
}
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Bearer <<apiKey_v4>>"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
package main
import (
"bytes"
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications"
var requestBody = []byte(`{
"name": "Ada Lovelace",
"tin": "111111111"
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(requestBody))
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer <<apiKey_v4>>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
// using RestSharp;
var client = new RestClient("https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications");
var request = new RestRequest(Method.POST);
request.AddHeader("Accept", "application/json");
request.AddHeader("Authorization", "Bearer <<apiKey_v4>>");
request.AddHeader("Content-Type", "application/json");
request.AddJsonBody(new {
name = "Ada Lovelace",
tin = "111111111"
});
IRestResponse response = client.Execute(request);
require 'uri'
require 'net/http'
require 'openssl'
require 'json'
url = URI("https://sandbox-api.withabound.com/<<apiVersion_v4>>/tin-verifications")
requestBody = {
name: "Ada",
tin: "Lovelace"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer <<apiKey_v4>>'
request["Content-Type"] = 'application/json'
request.body = requestBody.to_json
response = http.request(request)
puts response.read_body
b. Save the response
The response from POST /tin-verifications
is shown below and it's a match!
Ensure that you save the tinVerificationId
and the tinFingerprint
to your own database for future reference.
{
"id": "tinVerificationId_sample41SD71AV8f",
"createdAt": "2023-01-01T00:00:00.000Z",
"status": "MATCH",
"name": "Ada Lovelace",
"tin": "xxxxxxx11",
"tinType": "INDIVIDUAL",
"tinFingerprint": "tinFingerprint_samplehy2BWO6JJG"
}
Updated about 1 month ago