Skip to content

Read a deal's additional costs and statement totals

GET
/api/integrations/v1/deals/{id}/costs
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.

id
required
string format: uuid

OK

Media typeapplication/json
object
contractAmount
required
null | number | string format: double
/^-?(?:0|[1-9]\d*)(?:\.\d+)?$/
contractCurrency
required
null | string
dealId
required
string format: uuid
dealNumber

The deal’s business number (DEAL-206447).

null | string
lines
required
Array<object>
object
amount
required
number | string format: double
/^-?(?:0|[1-9]\d*)(?:\.\d+)?$/
category
required
string
currency
required
string
description
required
null | string
incurredAt
required
string format: date-time
recordedBy
required

Which side booked it: Shipper or Carrier.

string
status
required

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.

string
livemode
required
boolean
totals
required

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.

Array<object>
object
additionalTotal
required

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.

number | string format: double
/^-?(?:0|[1-9]\d*)(?:\.\d+)?$/
contractAmount
required

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.

number | string format: double
/^-?(?:0|[1-9]\d*)(?:\.\d+)?$/
currency
required

ISO 4217 currency of this row. Amounts in different currencies are never added together or converted.

string
declaredTotal
required

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.

number | string format: double
/^-?(?:0|[1-9]\d*)(?:\.\d+)?$/
grandTotal
required

The contract amount plus the agreed additional costs; declared costs not yet agreed are in declaredTotal and never in the grand total.

number | string format: double
/^-?(?:0|[1-9]\d*)(?:\.\d+)?$/
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

Media typeapplication/problem+json
object
detail
null | string
instance
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
title
null | string
type
null | string
Examplegenerated
{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Forbidden

Media typeapplication/problem+json
object
detail
null | string
instance
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
title
null | string
type
null | string
Examplegenerated
{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Not Found

Media typeapplication/problem+json
object
detail
null | string
instance
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
title
null | string
type
null | string
Examplegenerated
{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Too Many Requests

Media typeapplication/problem+json
object
detail
null | string
instance
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
title
null | string
type
null | string
Examplegenerated
{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}