curl --request PUT \
--url https://api.exowpee.com/v1/team/company \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'name=<string>' \
--form 'tax_registration_number=<string>' \
--form 'business_registration_number=<string>' \
--form 'address=<string>' \
--form 'city=<string>' \
--form 'country=<string>' \
--form country_code=BJ \
--form 'fiscal_status=<string>' \
--form 'logo=<string>' \
--form 'working_hours={}'import requests
url = "https://api.exowpee.com/v1/team/company"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tax_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"business_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"address\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"city\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country_code\"\r\n\r\nBJ\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiscal_status\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"working_hours\"\r\n\r\n{}\r\n-----011000010111000001101001--"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "multipart/form-data"
}
response = requests.put(url, data=payload, headers=headers)
print(response.text)const form = new FormData();
form.append('name', '<string>');
form.append('tax_registration_number', '<string>');
form.append('business_registration_number', '<string>');
form.append('address', '<string>');
form.append('city', '<string>');
form.append('country', '<string>');
form.append('country_code', 'BJ');
form.append('fiscal_status', '<string>');
form.append('logo', '<string>');
form.append('working_hours', '{}');
const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.exowpee.com/v1/team/company', 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/team/company",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tax_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"business_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"address\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"city\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country_code\"\r\n\r\nBJ\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiscal_status\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"working_hours\"\r\n\r\n{}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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.exowpee.com/v1/team/company"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tax_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"business_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"address\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"city\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country_code\"\r\n\r\nBJ\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiscal_status\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"working_hours\"\r\n\r\n{}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("PUT", url, payload)
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.put("https://api.exowpee.com/v1/team/company")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tax_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"business_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"address\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"city\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country_code\"\r\n\r\nBJ\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiscal_status\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"working_hours\"\r\n\r\n{}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/team/company")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tax_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"business_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"address\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"city\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country_code\"\r\n\r\nBJ\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiscal_status\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"working_hours\"\r\n\r\n{}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"city": "<string>",
"tax_registration_number": "<string>",
"business_registration_number": "<string>",
"address": "<string>",
"working_hours": {},
"country": "<string>",
"is_active": true,
"logo_url": "<string>",
"subscription_activated_at": "2023-11-07T05:31:56Z",
"trial_ended_at": "2023-11-07T05:31:56Z",
"next_billing_at": "2023-11-07T05:31:56Z",
"activated_at": "2023-11-07T05:31:56Z",
"owner_id": "<string>",
"cash_account_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"parent": "<string>",
"settings": {}
}{
"message": "<string>",
"errors": {}
}Update my company
Edits the current company’s name, type, address, registration numbers, working hours, logo, country and fiscal status.
curl --request PUT \
--url https://api.exowpee.com/v1/team/company \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'name=<string>' \
--form 'tax_registration_number=<string>' \
--form 'business_registration_number=<string>' \
--form 'address=<string>' \
--form 'city=<string>' \
--form 'country=<string>' \
--form country_code=BJ \
--form 'fiscal_status=<string>' \
--form 'logo=<string>' \
--form 'working_hours={}'import requests
url = "https://api.exowpee.com/v1/team/company"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tax_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"business_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"address\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"city\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country_code\"\r\n\r\nBJ\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiscal_status\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"working_hours\"\r\n\r\n{}\r\n-----011000010111000001101001--"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "multipart/form-data"
}
response = requests.put(url, data=payload, headers=headers)
print(response.text)const form = new FormData();
form.append('name', '<string>');
form.append('tax_registration_number', '<string>');
form.append('business_registration_number', '<string>');
form.append('address', '<string>');
form.append('city', '<string>');
form.append('country', '<string>');
form.append('country_code', 'BJ');
form.append('fiscal_status', '<string>');
form.append('logo', '<string>');
form.append('working_hours', '{}');
const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.exowpee.com/v1/team/company', 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/team/company",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tax_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"business_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"address\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"city\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country_code\"\r\n\r\nBJ\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiscal_status\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"working_hours\"\r\n\r\n{}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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.exowpee.com/v1/team/company"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tax_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"business_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"address\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"city\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country_code\"\r\n\r\nBJ\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiscal_status\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"working_hours\"\r\n\r\n{}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("PUT", url, payload)
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.put("https://api.exowpee.com/v1/team/company")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tax_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"business_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"address\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"city\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country_code\"\r\n\r\nBJ\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiscal_status\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"working_hours\"\r\n\r\n{}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/team/company")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tax_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"business_registration_number\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"address\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"city\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"country_code\"\r\n\r\nBJ\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiscal_status\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"working_hours\"\r\n\r\n{}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"city": "<string>",
"tax_registration_number": "<string>",
"business_registration_number": "<string>",
"address": "<string>",
"working_hours": {},
"country": "<string>",
"is_active": true,
"logo_url": "<string>",
"subscription_activated_at": "2023-11-07T05:31:56Z",
"trial_ended_at": "2023-11-07T05:31:56Z",
"next_billing_at": "2023-11-07T05:31:56Z",
"activated_at": "2023-11-07T05:31:56Z",
"owner_id": "<string>",
"cash_account_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"parent": "<string>",
"settings": {}
}{
"message": "<string>",
"errors": {}
}companies.update
Conditions
- Agent accounts are refused.
- The name must be unique among the companies of the organization (compared in lowercase, the company itself excluded).
- When only one of country_code or fiscal_status is sent, the other is taken from the stored company, and the pair must be valid together: country_code must be a configured country and fiscal_status one of that country’s fiscal statuses.
- The logo must be an image of type jpeg, png, jpg, gif or svg, at most 2048 KB.
- working_hours must follow the opening-hours format: day keys monday to sunday and an exceptions map, each range written HH:MM-HH:MM with the start before the end.
- Fields that are not sent keep their stored value, including name and type.
- When country_code or fiscal_status actually changes, the tax profile of the organization for that country and fiscal status is created if it does not exist yet.
- When the previous country was the unknown-country placeholder (ZZ) and the new one is a real country, the organization’s tax configurations that were set up under the placeholder are moved to the new country and fiscal status, so products configured earlier are not sold untaxed.
- Replaces the stored logo file when a new logo is sent, or removes it when logo is null; the previous file is deleted once the change is committed.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Response mode. Default none; none answers 204 No Content.
none, resource Comma-separated JSON keys of the root resource (id is always rendered). Available: id, name, city, tax_registration_number, business_registration_number, address, working_hours, country, is_active, logo_url, subscription_activated_at, trial_ended_at, next_billing_at, activated_at, owner_id, cash_account_id, created_at, updated_at, parent.
Comma-separated include paths, each optionally followed by its fields in parentheses: units(id,sku),units.uomUnit(id,name). Max depth 6, max 40 paths. Available: settings.
Body
Type of the company: mepc (small and medium-sized business), gemsd (large and medium-sized distribution store), imed (importers and distributors) or proj (projects). Optional on update, not null when sent; the stored value is kept when omitted.
mepc, gemsd, imed, proj New name of the company. Optional, not null when sent. At most 120 characters, stored in lowercase, and unique among the companies of the organization.
120Tax registration number. Optional; null clears it. At most 250 characters.
250Business registration number. Optional; null clears it. At most 250 characters.
250Street address. Optional; null clears it. At most 250 characters.
250City. Optional; null clears it. At most 250 characters.
250Country as free text. Optional; null clears it. At most 250 characters.
250Two-letter code of the company's tax country; it must be one of the configured countries. When fiscal_status is sent without it, the stored value is used. Changing it sets up the tax profile of the new country; moving away from the unknown-country placeholder ZZ also moves the organization's earlier tax configurations.
BJ 2Fiscal status of the company, which must be one of the fiscal statuses of the country (the sent country_code, or the stored one when omitted). When country_code is sent without it, the stored value is used, so it must also fit the new country.
Logo image file sent as multipart form data (jpeg, png, jpg, gif or svg, at most 2048 KB). Sending null removes the current logo; omitting the field keeps it.
2048Opening hours of the company. An object keyed by weekday names (monday to sunday), each a list of ranges written HH:MM-HH:MM with the start before the end, plus an optional exceptions object keyed by date (YYYY-MM-DD, or MM-DD for every year) with the same ranges. Once hours are set, a day left out or given an empty list is closed. Null clears the hours, which removes the working-hours restriction.
Response
Resource (only with response=resource).
Identifier of the company (27-character KSUID string).
Name of the company, stored in lowercase.
City of the company; null when not set.
Tax registration number of the company; null when not set.
Business registration number of the company; null when not set.
Street address of the company; null when not set.
Opening hours of the company, as an object keyed by weekday (monday to sunday) holding lists of HH:MM-HH:MM ranges, plus an optional exceptions object keyed by date (YYYY-MM-DD or MM-DD). When set, the company can only be used within these hours, in the company's time zone. Null when not set.
Country of the company as free text; null when not set. The coded country used for taxes is a separate field set on update.
Whether the company is active. An organization turns it on or off with the activate and deactivate actions.
Public URL of the stored logo image, or null when no logo is set.
Date and time the company's subscription was activated (ISO 8601); null when never activated. Not set by this API.
Date and time the company's trial ended or ends (ISO 8601); null when not set. Not set by this API.
Date and time of the next billing (ISO 8601); null when not set. Not set by this API.
Date and time the company was activated (ISO 8601). Set to the creation time when an organization creates the company.
Identifier of the member who owns the company (27-character KSUID string); the creator when an organization creates the company.
Identifier of the accounting cash account of the company (27-character KSUID string), created when its books are opened; null if not yet created. It is an account of the company's books, not a cash register's ledger account.
Date and time the record was created (ISO 8601, UTC).
Date and time the record was last changed (ISO 8601, UTC).
Settings of the company (time zone, currency, rounding, default tax and discount rules). Rendered only when the include is selected, or in the role assignment answers.