curl --request POST \
--url https://api.arcuserp.com/v1/printed-checks/{id}/clear \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"cleared_date": "2023-12-25",
"bank_reference": "<string>",
"bank_transaction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.arcuserp.com/v1/printed-checks/{id}/clear"
payload = {
"cleared_date": "2023-12-25",
"bank_reference": "<string>",
"bank_transaction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cleared_date: '2023-12-25',
bank_reference: '<string>',
bank_transaction_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.arcuserp.com/v1/printed-checks/{id}/clear', 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/printed-checks/{id}/clear",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'cleared_date' => '2023-12-25',
'bank_reference' => '<string>',
'bank_transaction_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.arcuserp.com/v1/printed-checks/{id}/clear"
payload := strings.NewReader("{\n \"cleared_date\": \"2023-12-25\",\n \"bank_reference\": \"<string>\",\n \"bank_transaction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.arcuserp.com/v1/printed-checks/{id}/clear")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"cleared_date\": \"2023-12-25\",\n \"bank_reference\": \"<string>\",\n \"bank_transaction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/printed-checks/{id}/clear")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cleared_date\": \"2023-12-25\",\n \"bank_reference\": \"<string>\",\n \"bank_transaction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{}{
"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"
}Mark a printed check as cleared (bank reconciliation)
Records a bank-reconciliation match for a previously printed
check, transitioning status to cleared and posting the cash
relief entry.
Which bank the relief is posted against. The drawee is taken
from the bill payment that issued the check, and failing that
from the check’s own stamped bank. When neither records one the
request is REFUSED with 422 check_clear_drawee_unknown; when
the stamped bank’s GL is inactive, a header, or carries no bank
record it is refused with 422 check_clear_drawee_not_postable. Arcus does not fall back to a
default operating bank, because a default is a guess and a guess
drains the money out of an account nobody reconciles. Resolve
either refusal with PATCH /printed-checks/{id}/bank.
What date the relief carries. cleared_date in the body is
the operator typing a date off a paper statement and is bound by
the standard 180-day backdate guard. Naming bank_transaction_id
instead is the stronger statement, and the preferred one: Arcus
re-reads that bank line on your entity and dates the relief with
the line’s own transaction_date, so the books carry the day the
bank actually paid the check. The existence of that row on the
entity is what bounds the backdate in place of the 180-day
default, which is why a check that cleared fourteen months ago can
be relieved on its true date this way and not by typing one. A
bank_transaction_id that is not a line on your entity is
REFUSED with 422 check_clear_bank_line_unknown rather than
quietly falling back to today, and so is one that is not a
well-formed identifier at all: the refusal is always this typed
422, never a server error. The response echoes
cleared_date_source, and when a supplied date disagrees with the
named bank line the bank line wins and the disagreement is
reported in cleared_date_conflict.
Provenance. printed_checks.cleared_source records WHY Arcus
believes the check cleared, and it is never read off the request
body. Naming a real bank line records bank_match; naming none
records manual_clear. That distinction decides whether undoing a
bank match also reverses this clearing entry, so it is derived
from the evidence rather than declared by the caller.
The canonical handler enforces handler-top SoD via the api-key’s
created_by_user_id. Requires the purchasing:write scope.
Idempotent via Idempotency-Key.
curl --request POST \
--url https://api.arcuserp.com/v1/printed-checks/{id}/clear \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"cleared_date": "2023-12-25",
"bank_reference": "<string>",
"bank_transaction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.arcuserp.com/v1/printed-checks/{id}/clear"
payload = {
"cleared_date": "2023-12-25",
"bank_reference": "<string>",
"bank_transaction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cleared_date: '2023-12-25',
bank_reference: '<string>',
bank_transaction_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.arcuserp.com/v1/printed-checks/{id}/clear', 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/printed-checks/{id}/clear",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'cleared_date' => '2023-12-25',
'bank_reference' => '<string>',
'bank_transaction_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.arcuserp.com/v1/printed-checks/{id}/clear"
payload := strings.NewReader("{\n \"cleared_date\": \"2023-12-25\",\n \"bank_reference\": \"<string>\",\n \"bank_transaction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.arcuserp.com/v1/printed-checks/{id}/clear")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"cleared_date\": \"2023-12-25\",\n \"bank_reference\": \"<string>\",\n \"bank_transaction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/printed-checks/{id}/clear")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cleared_date\": \"2023-12-25\",\n \"bank_reference\": \"<string>\",\n \"bank_transaction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{}{
"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.
Headers
Client-generated unique key for idempotent POST/PATCH/DELETE operations. Alias for the Idempotency parameter. Max 255 chars. On retry with the same key, the original response is returned without re-executing the operation. Keys expire after 24 hours.
255Path Parameters
Body
The bank line that paid this check. Optional. When present, the clearing entry is dated that line's own transaction_date (re-read server-side on your entity, so it is the bank's fact and not a caller-supplied date) and the check records cleared_source bank_match plus a forward link to the line. Refused with 422 check_clear_bank_line_unknown if the line is not on your entity, or if the value is not a well-formed identifier.
Response
Check cleared
The response is of type object.
Was this page helpful?

