curl --request GET \
--url https://api.exowpee.com/v1/accounting/organization/books/{book}/transfer-pricing \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.exowpee.com/v1/accounting/organization/books/{book}/transfer-pricing"
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/{book}/transfer-pricing', 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/{book}/transfer-pricing",
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/{book}/transfer-pricing"
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/{book}/transfer-pricing")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/accounting/organization/books/{book}/transfer-pricing")
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{
"system": "<string>",
"article": "CGI art. 470",
"book": {
"type": "<string>",
"id": "<string>"
},
"fiscal_year": {
"id": "<string>",
"label": "<string>",
"start_date": "<string>",
"end_date": "<string>",
"is_closed": true
},
"currency_code": "<string>",
"currency_exponent": 123,
"obligation": {
"turnover": 123,
"gross_assets": 123,
"threshold": 123,
"threshold_currency_code": "XOF",
"meets_threshold": true,
"foreign_related_parties": 123,
"owes_declaration": true
},
"operations": {
"[0]": {
"related_party_id": "<string>",
"name": "<string>",
"country_code": "<string>",
"relation": "<string>",
"transfer_pricing_method": "<string>",
"auxiliary_type": "<string>",
"counterparty_owner_type": "<string>",
"counterparty_owner_id": "<string>",
"purchases": 123,
"sales": 123
}
},
"loans": {
"[0]": {
"related_party_id": "<string>",
"name": "<string>",
"country_code": "<string>",
"loan_account_id": "<string>",
"direction": "loan_granted",
"opening": "<string>",
"increase": 123,
"decrease": 123,
"closing": "<string>",
"interest_bearing": "<string>",
"interest_rate": "<string>"
}
},
"narrative": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Preview the transfer-pricing declaration (organization)
Computes now the transfer-pricing declaration of a fiscal year (CGI art. 470): whether it is owed, the purchases, sales and loans with each related party established outside Benin, and the written answers. Nothing is saved (organization space).
curl --request GET \
--url https://api.exowpee.com/v1/accounting/organization/books/{book}/transfer-pricing \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.exowpee.com/v1/accounting/organization/books/{book}/transfer-pricing"
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/{book}/transfer-pricing', 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/{book}/transfer-pricing",
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/{book}/transfer-pricing"
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/{book}/transfer-pricing")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/accounting/organization/books/{book}/transfer-pricing")
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{
"system": "<string>",
"article": "CGI art. 470",
"book": {
"type": "<string>",
"id": "<string>"
},
"fiscal_year": {
"id": "<string>",
"label": "<string>",
"start_date": "<string>",
"end_date": "<string>",
"is_closed": true
},
"currency_code": "<string>",
"currency_exponent": 123,
"obligation": {
"turnover": 123,
"gross_assets": 123,
"threshold": 123,
"threshold_currency_code": "XOF",
"meets_threshold": true,
"foreign_related_parties": 123,
"owes_declaration": true
},
"operations": {
"[0]": {
"related_party_id": "<string>",
"name": "<string>",
"country_code": "<string>",
"relation": "<string>",
"transfer_pricing_method": "<string>",
"auxiliary_type": "<string>",
"counterparty_owner_type": "<string>",
"counterparty_owner_id": "<string>",
"purchases": 123,
"sales": 123
}
},
"loans": {
"[0]": {
"related_party_id": "<string>",
"name": "<string>",
"country_code": "<string>",
"loan_account_id": "<string>",
"direction": "loan_granted",
"opening": "<string>",
"increase": 123,
"decrease": 123,
"closing": "<string>",
"interest_bearing": "<string>",
"interest_rate": "<string>"
}
},
"narrative": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}statement_filings.list, journal_entries.viewreports, related_parties.list, transfer_pricing_narratives.list
Conditions
- The accounting module must be part of the organization’s plan.
- In the organization space, the caller must have access to the book.
- fiscal_year_id is required and must be a fiscal year of the book.
- The year does not need to be closed to preview it; a draft filing of the declaration needs a closed year.
- Reads the books and the declared related parties and answers the figures at the time of the call; nothing is stored. File it by preparing a statement filing on the prix_de_transfert form.
- The declaration is owed when turnover or gross assets reach one billion CFA francs and at least one related party is established outside Benin; a book kept in another currency than XOF is not compared with the threshold, and the answer is then null.
- Trade is read from the accounts of the related party: sales are the sales lines (class 70) and purchases the purchase and service lines (60 to 63) of the entries that touch it. An entry that involves several customers or vendors shares its trade between them.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Identifier of the accounting book (27-character KSUID string) whose records are worked on.
Query Parameters
Identifier of the fiscal year to compute (27-character KSUID string), a year of the book. Required.
Response
The form of the declaration: always prix_de_transfert.
Legal basis of the declaration: CGI art. 470.
CGI art. 470 The book the declaration is computed for, with its type (organization, company or client account) and id.
Show child attributes
Show child attributes
The fiscal year of the declaration, with its id, label, start_date, end_date and is_closed.
Show child attributes
Show child attributes
ISO 4217 currency code of the fiscal year, for example XOF.
Number of decimal places of the currency; the amounts below are in minor units, so divide them by 10 to this power.
Whether the book owes the declaration this year, and the figures the answer rests on.
Show child attributes
Show child attributes
One row per related party established outside Benin, with its trade of the year. Empty when there is none. Each row has:
related_party_id: Identifier of the related party (27-character KSUID string).name: Name of the related party.country_code: Country of the related party (ISO 3166-1 alpha-2, capitals).relation: Relation: parent, subsidiary, sister or other.transfer_pricing_method: Pricing method entered for the party (cup, mpr, mprm, mtmn, mpb or autres); null when none.auxiliary_type: Whether the party is a customer or a vendor of the book.counterparty_owner_type: Kind of the other book of the organization that the party stands for (organization or company); null when the party is outside Exowpee.counterparty_owner_id: Identifier of that other book (27-character KSUID string); null when the party is outside Exowpee.purchases: Goods and services bought from the party during the year (accounts 60 to 63, without stock variations and bank charges), net of credit notes, excluding VAT, in minor units of the book currency; 0 when it did not trade.sales: Goods and services sold to the party during the year (accounts 70), net of credit notes and discounts, excluding VAT, in minor units of the book currency; 0 when it did not trade.
Show child attributes
Show child attributes
One row per related party established outside Benin that names a loan account. Empty when there is none. Each row has:
related_party_id: Identifier of the related party (27-character KSUID string).name: Name of the related party.country_code: Country of the related party (ISO 3166-1 alpha-2, capitals).loan_account_id: Identifier of the account that carries the loan (27-character KSUID string).direction: loan_granted when the account ends in debit (the entity lent), loan_received when it ends in credit (the entity borrowed). A loan repaid in full takes the direction of its opening balance.opening: Balance at the start of the year, as an absolute amount in minor units of the book currency.increase: Amount by which the loan grew during the year, in minor units of the book currency.decrease: Amount repaid during the year, in minor units of the book currency.closing: Balance at the end of the year, as an absolute amount in minor units of the book currency.interest_bearing: Whether the loan bears interest, as entered on the related party; null when not answered.interest_rate: Interest rate as entered on the related party, free text; null when not entered.
Show child attributes
Show child attributes
The written answers of the year, with every question present and null when not answered. The questions are:
ultimate_parent_name: Name of the ultimate parent entity of the group. Null when not answered.ultimate_parent_address: Address of the ultimate parent entity. Null when not answered.ultimate_parent_country: Country of the ultimate parent entity (ISO 3166-1 alpha-2). Null when not answered.group_activities: Description of the activities of the group. Null when not answered.group_pricing_policy: Description of the transfer-pricing policy of the group. Null when not answered.intangibles: Description of the intangible assets of the group. Null when not answered.restructuring_occurred: Whether a restructuring occurred during the year. Null when not answered.restructuring_description: Description of the restructuring. Null when not answered.advance_pricing_agreement: Whether an advance pricing agreement exists. Null when not answered.advance_pricing_description: Description of the advance pricing agreement. Null when not answered.significant_change: Whether a significant change occurred during the year. Null when not answered.observations: Free observations. Null when not answered.