Read a deal's additional costs and statement totals
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("https://app.quatlasglobal.com/api/integrations/v1/deals/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/costs"), Headers = { { "Authorization", "Bearer <token>" }, },};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://app.quatlasglobal.com/api/integrations/v1/deals/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/costs")) .header("Authorization", "Bearer <token>") .method("GET", HttpRequest.BodyPublishers.noBody()) .build();HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());const url = 'https://app.quatlasglobal.com/api/integrations/v1/deals/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/costs';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://app.quatlasglobal.com/api/integrations/v1/deals/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/costs \ --header 'Authorization: Bearer <token>'Requires the costs:read scope. Every additional cost on the operation’s ledger, each Approved (the other side signed it off) or Declared (booked by one side alone), and the operation statement’s totals per currency, never converted: the contract amount plus the agreed additional costs, with declared costs not yet agreed in declaredTotal beside them, never in the grand total.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”OK
object
The deal’s business number (DEAL-206447).
object
Which side booked it: Shipper or Carrier.
Approved: the other side signed it off. Declared: booked by one side alone, not approved. In the totals, a Declared line the shipper booked itself counts as agreed (the shipper pays it); a Declared line the carrier booked is in declaredTotal.
One row per currency in play, never converted: the operation statement’s totals. additionalTotal and grandTotal count agreed additional costs only; declared costs not yet agreed are in declaredTotal, beside the grand total and never in it.
object
The agreed additional costs in this currency: every line with status Approved, and every line the shipper booked itself (recordedBy Shipper), since the shipper pays them. Declared costs not yet agreed are in declaredTotal, never here.
The contract amount (the agreed price) when this row is the contract’s currency; 0 for a currency that only appears among the additional costs.
ISO 4217 currency of this row. Amounts in different currencies are never added together or converted.
The declared additional costs in this currency, not yet agreed: lines the carrier booked that the shipper has not approved (status Declared, recordedBy Carrier). Beside the grand total, never in it; 0 when there are none.
The contract amount plus the agreed additional costs; declared costs not yet agreed are in declaredTotal and never in the grand total.
Examplegenerated
{ "contractAmount": 1, "contractCurrency": "example", "dealId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "dealNumber": "example", "lines": [ { "amount": 1, "category": "example", "currency": "example", "description": "example", "incurredAt": "2026-04-15T12:00:00Z", "recordedBy": "example", "status": "example" } ], "livemode": true, "totals": [ { "additionalTotal": 1, "contractAmount": 1, "currency": "example", "declaredTotal": 1, "grandTotal": 1 } ]}Unauthorized
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Forbidden
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Not Found
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Too Many Requests
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}