curl --request GET \
--url https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"bank_transaction": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"transaction_date": "2023-11-07T05:31:56Z",
"direction": "<string>",
"description": "<string>"
},
"order_payments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"order_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"posted_at": "2023-11-07T05:31:56Z",
"payment_method": "<string>",
"status": "<string>",
"check_number": "<string>",
"external_reference": "<string>",
"customer_name": "<string>",
"score": 123,
"match_reason": "<string>",
"days_apart": 123,
"is_multi_application": true,
"application_count": 123,
"display_label": "<string>",
"applications": [
{
"order_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"order_number": "<string>",
"amount_applied": 123
}
],
"bank_account_scope": "same_bank_account",
"deposited_via": "direct",
"requires_bank_move": true,
"recorded_bank": {
"bank_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"account_number_last4": "<string>",
"gl_account": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_number": "<string>",
"name": "<string>"
}
},
"deposit_ticket": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"deposit_number": "<string>"
},
"correction_date": "2023-12-25"
}
],
"top_candidate": {},
"bank_account": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"account_number_last4": "<string>"
},
"already_matched": true,
"note": "<string>"
}
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}Suggest payment matches for a deposit
Returns a scored list of candidate customer payment receipts that could match an inbound bank transaction, ranked by amount and date proximity, and flags whether a receipt was deposited to this bank account, a different one, or an unknown one. Read-only; requires accounting:read scope, and optional search, window_days, or amount_tolerance parameters widen the match window beyond its default.
curl --request GET \
--url https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/accounting/bank-transactions/{bank_transaction_id}/customer-payment-candidates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"bank_transaction": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"transaction_date": "2023-11-07T05:31:56Z",
"direction": "<string>",
"description": "<string>"
},
"order_payments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"order_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"posted_at": "2023-11-07T05:31:56Z",
"payment_method": "<string>",
"status": "<string>",
"check_number": "<string>",
"external_reference": "<string>",
"customer_name": "<string>",
"score": 123,
"match_reason": "<string>",
"days_apart": 123,
"is_multi_application": true,
"application_count": 123,
"display_label": "<string>",
"applications": [
{
"order_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"order_number": "<string>",
"amount_applied": 123
}
],
"bank_account_scope": "same_bank_account",
"deposited_via": "direct",
"requires_bank_move": true,
"recorded_bank": {
"bank_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"account_number_last4": "<string>",
"gl_account": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_number": "<string>",
"name": "<string>"
}
},
"deposit_ticket": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"deposit_number": "<string>"
},
"correction_date": "2023-12-25"
}
],
"top_candidate": {},
"bank_account": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"account_number_last4": "<string>"
},
"already_matched": true,
"note": "<string>"
}
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}Authorizations
API key issued per entity via Settings > Developers > API Keys.
Each key carries scopes (e.g. orders:read, products:write).
Bearer token format: Authorization: Bearer ark_live_ent_Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.
Path Parameters
UUID of the inbound bank transaction to score candidates for
Query Parameters
Optional. Also return receipts that match this text, whatever their amount or date: the check number, the external reference, the memo, the invoice or order number, the customer name, or the journal entry number. Scoped to your own entity. Shorter than the minimum length, or longer than the maximum, is ignored rather than rejected; % and _ match themselves.
Optional. Widen the date window from the 7-day default. Clamped to the server ceiling; a value that is not a number is ignored and the default applies.
x >= 0Optional. Widen the amount tolerance from the $0.05 default. Clamped to the server ceiling; a value that is not a number is ignored and the default applies.
x >= 0Response
Candidate list (may be empty)
Show child attributes
Show child attributes
Was this page helpful?

