curl --request GET \
--url https://api.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace', 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.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace",
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.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace"
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.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace")
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{
"statement": {
"id": "<string>",
"money_account_id": "<string>",
"label": "<string>",
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"opening_balance": 123,
"closing_balance": 123,
"currency_code": "<string>",
"currency_exponent": 123,
"status": "<string>",
"reconciled_at": "2023-11-07T05:31:56Z",
"reconciled_by": "<string>",
"reconciled_by_type": "<string>",
"created_by": "<string>",
"created_by_type": "<string>",
"created_at": "2023-11-07T05:31:56Z"
},
"unmatched_statement_lines": {
"data": "<array>",
"meta": {
"per_page": 123,
"next_cursor": "<string>",
"prev_cursor": "<string>"
}
},
"unmatched_journal_lines": {
"data": "<array>",
"meta": {
"per_page": 123,
"next_cursor": "<string>",
"prev_cursor": "<string>"
}
},
"summary": {
"statement_delta": 123,
"matched_total": 123,
"unexplained": 123,
"": {
"book_balance_at_end": 123
}
}
}{
"message": "<string>",
"errors": {}
}Open reconciliation workspace
Shows a statement, a page of its unmatched lines, a page of the unmatched book lines of its money account up to the statement end date, and a reconciliation summary.
curl --request GET \
--url https://api.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace', 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.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace",
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.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace"
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.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/accounting/organization/books/{bankStatement}/bank-statements/{bank_statement}/workspace")
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{
"statement": {
"id": "<string>",
"money_account_id": "<string>",
"label": "<string>",
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"opening_balance": 123,
"closing_balance": 123,
"currency_code": "<string>",
"currency_exponent": 123,
"status": "<string>",
"reconciled_at": "2023-11-07T05:31:56Z",
"reconciled_by": "<string>",
"reconciled_by_type": "<string>",
"created_by": "<string>",
"created_by_type": "<string>",
"created_at": "2023-11-07T05:31:56Z"
},
"unmatched_statement_lines": {
"data": "<array>",
"meta": {
"per_page": 123,
"next_cursor": "<string>",
"prev_cursor": "<string>"
}
},
"unmatched_journal_lines": {
"data": "<array>",
"meta": {
"per_page": 123,
"next_cursor": "<string>",
"prev_cursor": "<string>"
}
},
"summary": {
"statement_delta": 123,
"matched_total": 123,
"unexplained": 123,
"": {
"book_balance_at_end": 123
}
}
}{
"message": "<string>",
"errors": {}
}bank_statements.retrieve
Conditions
- The accounting module must be active for the organization.
- The caller must have been granted access to the book in the URL.
- Only the organization’s own book is accepted; a company book or a client book is refused.
- The book side (unmatched_journal_lines and the book balance) is returned only to callers with the permission journal_entries.retrieve; without it those parts are left out.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Identifier of the book segment of the URL (the organization's book); see book.
Identifier of the bank statement to work on (27-character KSUID string).
Query Parameters
Number of items per page.
1 <= x <= 100Cursor of the page of unmatched statement lines. Pass the meta.next_cursor or meta.prev_cursor of unmatched_statement_lines; leave out for the first page.
Cursor of the page of unmatched book lines. Pass the meta.next_cursor or meta.prev_cursor of unmatched_journal_lines; leave out for the first page.
Response
The bank statement being reconciled.
Show child attributes
Show child attributes
One page of the statement lines not yet matched, oldest first.
Show child attributes
Show child attributes
One page of the unmatched book lines of the money account, up to the statement end date, oldest first. Present only for callers with the permission journal_entries.retrieve.
Show child attributes
Show child attributes
Reconciliation figures of the statement, all integers in minor units.
Show child attributes
Show child attributes