Download OpenAPI specification:
Logistics operations API for the 4klyft platform.
This API provides comprehensive endpoints for managing:
All API endpoints (except /api/docs and /api/v1/iam/auth/*) require JWT Bearer token authentication.
Include the token in the Authorization header:
Authorization: Bearer <your-jwt-token>
API requests are rate-limited to ensure fair usage. Standard limits are:
Retrieve a paginated list of auto-settlement rules with optional filters.
| partnerId | string Filter by partner ID |
| page | integer >= 1 Default: 1 Page number |
| itemsPerPage | integer [ 1 .. 100 ] Default: 25 Items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "scope": "string",
- "basis": "string",
- "currency": "string",
- "periodType": "string",
- "createdAt": "string"
}
]
}Create a rule for automatic settlement creation when charges arrive for a partner+scope combination.
The new AutoSettlementRule resource
| partnerId required | string <ulid> |
| scope required | string <= 100 characters |
| basis required | string Enum: "period" "ad_hoc" "per_job" "on_demand" |
| currency required | string = 3 characters |
| periodType | string or null Enum: "weekly" "bi_weekly" "monthly" |
{- "partnerId": "string",
- "scope": "string",
- "basis": "period",
- "currency": "str",
- "periodType": "weekly"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "scope": "string",
- "basis": "string",
- "currency": "string",
- "periodType": "string",
- "createdAt": "string"
}Retrieve all registered settlement scope definitions.
| page | integer Default: 1 The collection page number |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "scope": "string",
- "label": "string",
- "description": "string"
}
]
}Retrieve a paginated list of partner settlements with optional filters.
| partnerId | string Filter by partner ID |
| status | string Enum: "open" "locked" "under_review" "approved" "paid" "rejected" Filter by settlement status |
| periodType | string Enum: "weekly" "bi_weekly" "monthly" Filter by period type |
| page | integer >= 1 Default: 1 Page number |
| itemsPerPage | integer [ 1 .. 100 ] Default: 25 Items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "settlementNumber": "string",
- "periodType": "string",
- "periodStartDate": "string",
- "periodEndDate": "string",
- "currency": "string",
- "status": "string",
- "totalAmount": 0,
- "totalCredits": 0,
- "totalDebits": 0,
- "lineItemCount": 0,
- "lineItems": [
- {
- "id": "string",
- "type": "string",
- "description": "string",
- "amount": 0,
- "currency": "string",
- "subject": "string",
- "chargeType": "string",
- "occurredAt": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
], - "createdAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "rejectedBy": "string",
- "rejectedAt": "string",
- "rejectionReason": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string"
}
]
}Create a new settlement for a partner and period.
The new Settlement resource
| partnerId required | string <ulid> |
| basis required | string Enum: "period" "ad_hoc" "per_job" "on_demand" |
| currency required | string = 3 characters |
object or null | |
| scopes | Array of strings |
{- "partnerId": "string",
- "basis": "period",
- "currency": "str",
- "period": {
- "property1": "string",
- "property2": "string"
}, - "scopes": [
- "string"
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "settlementNumber": "string",
- "periodType": "string",
- "periodStartDate": "string",
- "periodEndDate": "string",
- "currency": "string",
- "status": "string",
- "totalAmount": 0,
- "totalCredits": 0,
- "totalDebits": 0,
- "lineItemCount": 0,
- "lineItems": [
- {
- "id": "string",
- "type": "string",
- "description": "string",
- "amount": 0,
- "currency": "string",
- "subject": "string",
- "chargeType": "string",
- "occurredAt": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
], - "createdAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "rejectedBy": "string",
- "rejectedAt": "string",
- "rejectionReason": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string"
}Retrieve settlement details including all line items.
| id required | string Settlement identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "settlementNumber": "string",
- "periodType": "string",
- "periodStartDate": "string",
- "periodEndDate": "string",
- "currency": "string",
- "status": "string",
- "totalAmount": 0,
- "totalCredits": 0,
- "totalDebits": 0,
- "lineItemCount": 0,
- "lineItems": [
- {
- "id": "string",
- "type": "string",
- "description": "string",
- "amount": 0,
- "currency": "string",
- "subject": "string",
- "chargeType": "string",
- "occurredAt": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
], - "createdAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "rejectedBy": "string",
- "rejectedAt": "string",
- "rejectionReason": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string"
}Approve a pending settlement for payment.
| id required | string Settlement identifier |
The new Settlement resource
| notes | string or null <= 1000 characters |
{- "notes": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "settlementNumber": "string",
- "periodType": "string",
- "periodStartDate": "string",
- "periodEndDate": "string",
- "currency": "string",
- "status": "string",
- "totalAmount": 0,
- "totalCredits": 0,
- "totalDebits": 0,
- "lineItemCount": 0,
- "lineItems": [
- {
- "id": "string",
- "type": "string",
- "description": "string",
- "amount": 0,
- "currency": "string",
- "subject": "string",
- "chargeType": "string",
- "occurredAt": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
], - "createdAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "rejectedBy": "string",
- "rejectedAt": "string",
- "rejectionReason": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string"
}Generate a settlement statement document (PDF or HTML) on-demand.
| id required | string Settlement identifier |
The new Settlement resource
| format | string Default: "pdf" Enum: "pdf" "html" Output format for the settlement statement. |
{- "format": "pdf"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "settlementNumber": "string",
- "periodType": "string",
- "periodStartDate": "string",
- "periodEndDate": "string",
- "currency": "string",
- "status": "string",
- "totalAmount": 0,
- "totalCredits": 0,
- "totalDebits": 0,
- "lineItemCount": 0,
- "lineItems": [
- {
- "id": "string",
- "type": "string",
- "description": "string",
- "amount": 0,
- "currency": "string",
- "subject": "string",
- "chargeType": "string",
- "occurredAt": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
], - "createdAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "rejectedBy": "string",
- "rejectedAt": "string",
- "rejectionReason": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string"
}Add a credit, debit, or adjustment line item to the settlement.
| id required | string Settlement identifier |
The new Settlement resource
| type required | string Enum: "credit" "debit" "adjustment" |
| description required | string <= 500 characters |
| amount required | number |
| currency required | string = 3 characters |
| subject | string or null |
| chargeType | string or null |
| itemOccurredAt | string or null |
object |
{- "type": "credit",
- "description": "string",
- "amount": 0,
- "currency": "str",
- "subject": "string",
- "chargeType": "string",
- "itemOccurredAt": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "settlementNumber": "string",
- "periodType": "string",
- "periodStartDate": "string",
- "periodEndDate": "string",
- "currency": "string",
- "status": "string",
- "totalAmount": 0,
- "totalCredits": 0,
- "totalDebits": 0,
- "lineItemCount": 0,
- "lineItems": [
- {
- "id": "string",
- "type": "string",
- "description": "string",
- "amount": 0,
- "currency": "string",
- "subject": "string",
- "chargeType": "string",
- "occurredAt": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
], - "createdAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "rejectedBy": "string",
- "rejectedAt": "string",
- "rejectionReason": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string"
}Mark an approved settlement as paid.
| id required | string Settlement identifier |
The new Settlement resource
| paymentReference required | string <= 255 characters |
| paymentMethod | string or null Enum: "bank_transfer" "check" "paypal" "other" |
{- "paymentReference": "string",
- "paymentMethod": "bank_transfer"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "settlementNumber": "string",
- "periodType": "string",
- "periodStartDate": "string",
- "periodEndDate": "string",
- "currency": "string",
- "status": "string",
- "totalAmount": 0,
- "totalCredits": 0,
- "totalDebits": 0,
- "lineItemCount": 0,
- "lineItems": [
- {
- "id": "string",
- "type": "string",
- "description": "string",
- "amount": 0,
- "currency": "string",
- "subject": "string",
- "chargeType": "string",
- "occurredAt": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
], - "createdAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "rejectedBy": "string",
- "rejectedAt": "string",
- "rejectionReason": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string"
}Reject a pending or approved settlement.
| id required | string Settlement identifier |
The new Settlement resource
| reason required | string <= 500 characters |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "settlementNumber": "string",
- "periodType": "string",
- "periodStartDate": "string",
- "periodEndDate": "string",
- "currency": "string",
- "status": "string",
- "totalAmount": 0,
- "totalCredits": 0,
- "totalDebits": 0,
- "lineItemCount": 0,
- "lineItems": [
- {
- "id": "string",
- "type": "string",
- "description": "string",
- "amount": 0,
- "currency": "string",
- "subject": "string",
- "chargeType": "string",
- "occurredAt": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
], - "createdAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "rejectedBy": "string",
- "rejectedAt": "string",
- "rejectionReason": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string"
}Partner payables statement (AP subledger) — ONE entry per currency the partner transacts in. Balances are never summed across currencies.
Per-currency AP subledger for a partner: bills, settlements, credit notes and outgoing payments as signed ledger lines with a running balance and aging buckets (Current/1-30/31-60/61-90/90+ by due date).
| partnerId required | string PartnerStatement identifier |
| currency | string Restrict to a single ISO currency code |
| from | string <date-time> ISO-8601 lower bound; earlier records roll into the opening balance |
| to | string <date-time> ISO-8601 upper bound for the statement position |
| page | integer Default: 1 The collection page number |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "currency": "string",
- "partnerId": "string",
- "partnerName": "string",
- "openingBalanceCents": 0,
- "closingBalanceCents": 0,
- "lines": [
- {
- "kind": "string",
- "recordId": "string",
- "ref": "string",
- "number": "string",
- "issuedAt": "string",
- "dueAt": "string",
- "amountCents": 0,
- "currency": "string",
- "status": "string",
- "runningBalanceCents": 0
}
], - "aging": {
- "currentCents": 0,
- "days1To30Cents": 0,
- "days31To60Cents": 0,
- "days61To90Cents": 0,
- "days90PlusCents": 0
}, - "generatedAt": "string"
}
]
}Retrieve a paginated list of received bills with optional filters.
| partnerId | string Filter by partner ID |
| status | string Enum: "received" "under_review" "approved" "scheduled" "paid" "disputed" "cancelled" Filter by bill status |
| page | integer >= 1 Default: 1 Page number |
| itemsPerPage | integer [ 1 .. 100 ] Default: 25 Items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "partnerName": "string",
- "billNumber": "string",
- "currency": "string",
- "totalAmount": 0,
- "subtotalCents": 0,
- "totalTaxCents": 0,
- "subject": "string",
- "selfBilled": false,
- "status": "string",
- "issuedAt": "string",
- "dueAt": "string",
- "reviewedBy": "string",
- "reviewedAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "scheduledPaymentDate": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string",
- "disputedBy": "string",
- "disputedAt": "string",
- "disputeReason": "string",
- "cancellationReason": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Record a new bill received from a partner.
The new Bill resource
| partnerId required | string <ulid> |
| billNumber required | string <= 255 characters |
| currency required | string = 3 characters |
| totalAmountInCents required | integer > 0 |
| subtotalInCents | integer or null >= 0 Net (tax-exclusive) amount the vendor charged, in minor units. Optional — omit for a gross-only bill. When both this and {@see $totalTaxInCents} are supplied they must reconcile to {@see $totalAmountInCents} (net + tax = gross). |
| totalTaxInCents | integer or null >= 0 Input VAT the vendor charged, in minor units. Optional — captured verbatim from the vendor's bill, never recomputed via the tax engine (compliance). |
| subject | string or null |
| issuedAt required | string |
| dueAt required | string |
{- "partnerId": "string",
- "billNumber": "string",
- "currency": "str",
- "totalAmountInCents": 0,
- "subtotalInCents": 0,
- "totalTaxInCents": 0,
- "subject": "string",
- "issuedAt": "string",
- "dueAt": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "partnerName": "string",
- "billNumber": "string",
- "currency": "string",
- "totalAmount": 0,
- "subtotalCents": 0,
- "totalTaxCents": 0,
- "subject": "string",
- "selfBilled": false,
- "status": "string",
- "issuedAt": "string",
- "dueAt": "string",
- "reviewedBy": "string",
- "reviewedAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "scheduledPaymentDate": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string",
- "disputedBy": "string",
- "disputedAt": "string",
- "disputeReason": "string",
- "cancellationReason": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve bill details.
| id required | string Bill identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "partnerName": "string",
- "billNumber": "string",
- "currency": "string",
- "totalAmount": 0,
- "subtotalCents": 0,
- "totalTaxCents": 0,
- "subject": "string",
- "selfBilled": false,
- "status": "string",
- "issuedAt": "string",
- "dueAt": "string",
- "reviewedBy": "string",
- "reviewedAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "scheduledPaymentDate": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string",
- "disputedBy": "string",
- "disputedAt": "string",
- "disputeReason": "string",
- "cancellationReason": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Approve a bill for payment.
| id required | string Bill identifier |
The new Bill resource
| notes | string or null <= 500 characters |
{- "notes": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "partnerName": "string",
- "billNumber": "string",
- "currency": "string",
- "totalAmount": 0,
- "subtotalCents": 0,
- "totalTaxCents": 0,
- "subject": "string",
- "selfBilled": false,
- "status": "string",
- "issuedAt": "string",
- "dueAt": "string",
- "reviewedBy": "string",
- "reviewedAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "scheduledPaymentDate": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string",
- "disputedBy": "string",
- "disputedAt": "string",
- "disputeReason": "string",
- "cancellationReason": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Cancel a bill.
| id required | string Bill identifier |
The new Bill resource
| reason required | string <= 500 characters |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "partnerName": "string",
- "billNumber": "string",
- "currency": "string",
- "totalAmount": 0,
- "subtotalCents": 0,
- "totalTaxCents": 0,
- "subject": "string",
- "selfBilled": false,
- "status": "string",
- "issuedAt": "string",
- "dueAt": "string",
- "reviewedBy": "string",
- "reviewedAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "scheduledPaymentDate": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string",
- "disputedBy": "string",
- "disputedAt": "string",
- "disputeReason": "string",
- "cancellationReason": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Dispute a bill under review or approved.
| id required | string Bill identifier |
The new Bill resource
| reason required | string <= 500 characters |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "partnerName": "string",
- "billNumber": "string",
- "currency": "string",
- "totalAmount": 0,
- "subtotalCents": 0,
- "totalTaxCents": 0,
- "subject": "string",
- "selfBilled": false,
- "status": "string",
- "issuedAt": "string",
- "dueAt": "string",
- "reviewedBy": "string",
- "reviewedAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "scheduledPaymentDate": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string",
- "disputedBy": "string",
- "disputedAt": "string",
- "disputeReason": "string",
- "cancellationReason": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Record payment for a scheduled bill.
| id required | string Bill identifier |
The new Bill resource
| paymentReference required | string <= 255 characters |
| paymentMethod | string or null Enum: "bank_transfer" "check" "paypal" "other" |
| paidAmountInCents required | integer > 0 |
| currency required | string = 3 characters |
{- "paymentReference": "string",
- "paymentMethod": "bank_transfer",
- "paidAmountInCents": 0,
- "currency": "str"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "partnerName": "string",
- "billNumber": "string",
- "currency": "string",
- "totalAmount": 0,
- "subtotalCents": 0,
- "totalTaxCents": 0,
- "subject": "string",
- "selfBilled": false,
- "status": "string",
- "issuedAt": "string",
- "dueAt": "string",
- "reviewedBy": "string",
- "reviewedAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "scheduledPaymentDate": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string",
- "disputedBy": "string",
- "disputedAt": "string",
- "disputeReason": "string",
- "cancellationReason": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Start reviewing a received bill.
| id required | string Bill identifier |
The new Bill resource
| id | string |
| tenantId | string |
| partnerId | string |
| partnerName | string or null Denormalized partner display name |
| billNumber | string |
| currency | string |
| totalAmount | number |
| subtotalCents | integer or null Net (tax-exclusive) amount the vendor charged, in minor units; null on a gross-only bill |
| totalTaxCents | integer or null Input VAT the vendor charged, in minor units; captured verbatim, never recomputed; null on a gross-only bill |
| subject | string or null |
| selfBilled | boolean Default: false True when we raised this bill on the supplier's behalf (self-billed / ERS); its bill number is our issuer number, not the vendor's invoice number |
| status | string |
| issuedAt | string |
| dueAt | string |
| reviewedBy | string or null |
| reviewedAt | string or null |
| approvedBy | string or null |
| approvedAt | string or null |
| approvalNotes | string or null |
| scheduledPaymentDate | string or null |
| paidAt | string or null |
| paymentReference | string or null |
| paymentMethod | string or null |
| disputedBy | string or null |
| disputedAt | string or null |
| disputeReason | string or null |
| cancellationReason | string or null |
| createdAt | string |
| updatedAt | string |
{- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "partnerName": "string",
- "billNumber": "string",
- "currency": "string",
- "totalAmount": 0,
- "subtotalCents": 0,
- "totalTaxCents": 0,
- "subject": "string",
- "selfBilled": false,
- "status": "string",
- "issuedAt": "string",
- "dueAt": "string",
- "reviewedBy": "string",
- "reviewedAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "scheduledPaymentDate": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string",
- "disputedBy": "string",
- "disputedAt": "string",
- "disputeReason": "string",
- "cancellationReason": "string",
- "createdAt": "string",
- "updatedAt": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "partnerName": "string",
- "billNumber": "string",
- "currency": "string",
- "totalAmount": 0,
- "subtotalCents": 0,
- "totalTaxCents": 0,
- "subject": "string",
- "selfBilled": false,
- "status": "string",
- "issuedAt": "string",
- "dueAt": "string",
- "reviewedBy": "string",
- "reviewedAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "scheduledPaymentDate": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string",
- "disputedBy": "string",
- "disputedAt": "string",
- "disputeReason": "string",
- "cancellationReason": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Schedule a payment date for an approved bill.
| id required | string Bill identifier |
The new Bill resource
| scheduledPaymentDate required |
{- "scheduledPaymentDate": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "partnerId": "string",
- "partnerName": "string",
- "billNumber": "string",
- "currency": "string",
- "totalAmount": 0,
- "subtotalCents": 0,
- "totalTaxCents": 0,
- "subject": "string",
- "selfBilled": false,
- "status": "string",
- "issuedAt": "string",
- "dueAt": "string",
- "reviewedBy": "string",
- "reviewedAt": "string",
- "approvedBy": "string",
- "approvedAt": "string",
- "approvalNotes": "string",
- "scheduledPaymentDate": "string",
- "paidAt": "string",
- "paymentReference": "string",
- "paymentMethod": "string",
- "disputedBy": "string",
- "disputedAt": "string",
- "disputeReason": "string",
- "cancellationReason": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve a paginated list of standalone payments with optional filters.
| direction | string Enum: "inbound" "outbound" Filter by direction (inbound/outbound) |
| status | string Enum: "pending" "processing" "completed" "failed" "refunded" "partially_refunded" "cancelled" Filter by payment status |
| subject | string Filter by subject ResourceUri |
| counterparty | string Filter by counterparty (partner) id |
| page | integer >= 1 Default: 1 Page number |
| itemsPerPage | integer [ 1 .. 100 ] Default: 25 Items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "direction": "string",
- "amount": 0,
- "refundedAmount": 0,
- "currency": "string",
- "paymentMethodId": "string",
- "gateway": "string",
- "status": "string",
- "counterpartyId": "string",
- "subject": "string",
- "externalReference": "string",
- "number": "string",
- "notes": "string",
- "recordedBy": "string",
- "failureReason": "string",
- "failureCode": "string",
- "links": [
- {
- "target": "string",
- "type": "string",
- "allocatedAmount": 0
}
], - "paidAt": "string",
- "completedAt": "string",
- "reconciledAt": "string",
- "failedAt": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Record a new standalone payment (In/Out) with optional links.
The new Payment resource
| direction required | string Enum: "inbound" "outbound" |
| amountInCents required | integer > 0 |
| currency required | string = 3 characters |
| paymentMethodId required | string <ulid> |
| subject | string or null |
| counterpartyId | string or null <ulid> |
| externalReference | string or null |
Array of objects | |
| notes | string or null |
{- "direction": "inbound",
- "amountInCents": 0,
- "currency": "str",
- "paymentMethodId": "string",
- "subject": "string",
- "counterpartyId": "string",
- "externalReference": "string",
- "links": [
- {
- "property1": 0,
- "property2": 0
}
], - "notes": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "direction": "string",
- "amount": 0,
- "refundedAmount": 0,
- "currency": "string",
- "paymentMethodId": "string",
- "gateway": "string",
- "status": "string",
- "counterpartyId": "string",
- "subject": "string",
- "externalReference": "string",
- "number": "string",
- "notes": "string",
- "recordedBy": "string",
- "failureReason": "string",
- "failureCode": "string",
- "links": [
- {
- "target": "string",
- "type": "string",
- "allocatedAmount": 0
}
], - "paidAt": "string",
- "completedAt": "string",
- "reconciledAt": "string",
- "failedAt": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve payment details, including its links.
| id required | string Payment identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "direction": "string",
- "amount": 0,
- "refundedAmount": 0,
- "currency": "string",
- "paymentMethodId": "string",
- "gateway": "string",
- "status": "string",
- "counterpartyId": "string",
- "subject": "string",
- "externalReference": "string",
- "number": "string",
- "notes": "string",
- "recordedBy": "string",
- "failureReason": "string",
- "failureCode": "string",
- "links": [
- {
- "target": "string",
- "type": "string",
- "allocatedAmount": 0
}
], - "paidAt": "string",
- "completedAt": "string",
- "reconciledAt": "string",
- "failedAt": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Cancel a pending payment.
| id required | string Payment identifier |
The new Payment resource
| reason | string or null |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "direction": "string",
- "amount": 0,
- "refundedAmount": 0,
- "currency": "string",
- "paymentMethodId": "string",
- "gateway": "string",
- "status": "string",
- "counterpartyId": "string",
- "subject": "string",
- "externalReference": "string",
- "number": "string",
- "notes": "string",
- "recordedBy": "string",
- "failureReason": "string",
- "failureCode": "string",
- "links": [
- {
- "target": "string",
- "type": "string",
- "allocatedAmount": 0
}
], - "paidAt": "string",
- "completedAt": "string",
- "reconciledAt": "string",
- "failedAt": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Mark a payment as completed.
| id required | string Payment identifier |
The new Payment resource
| externalReference | string or null |
{- "externalReference": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "direction": "string",
- "amount": 0,
- "refundedAmount": 0,
- "currency": "string",
- "paymentMethodId": "string",
- "gateway": "string",
- "status": "string",
- "counterpartyId": "string",
- "subject": "string",
- "externalReference": "string",
- "number": "string",
- "notes": "string",
- "recordedBy": "string",
- "failureReason": "string",
- "failureCode": "string",
- "links": [
- {
- "target": "string",
- "type": "string",
- "allocatedAmount": 0
}
], - "paidAt": "string",
- "completedAt": "string",
- "reconciledAt": "string",
- "failedAt": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Mark a payment as failed with a reason.
| id required | string Payment identifier |
The new Payment resource
| reason required | string |
| failureCode | string or null |
{- "reason": "string",
- "failureCode": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "direction": "string",
- "amount": 0,
- "refundedAmount": 0,
- "currency": "string",
- "paymentMethodId": "string",
- "gateway": "string",
- "status": "string",
- "counterpartyId": "string",
- "subject": "string",
- "externalReference": "string",
- "number": "string",
- "notes": "string",
- "recordedBy": "string",
- "failureReason": "string",
- "failureCode": "string",
- "links": [
- {
- "target": "string",
- "type": "string",
- "allocatedAmount": 0
}
], - "paidAt": "string",
- "completedAt": "string",
- "reconciledAt": "string",
- "failedAt": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Link a payment to a financial/domain record with an allocated amount.
| id required | string Payment identifier |
The new Payment resource
| target required | string |
| type required | string Enum: "invoice" "bill" "order" "settlement" "credit_note" "other" |
| amountInCents required | integer > 0 |
| currency required | string = 3 characters |
{- "target": "string",
- "type": "invoice",
- "amountInCents": 0,
- "currency": "str"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "direction": "string",
- "amount": 0,
- "refundedAmount": 0,
- "currency": "string",
- "paymentMethodId": "string",
- "gateway": "string",
- "status": "string",
- "counterpartyId": "string",
- "subject": "string",
- "externalReference": "string",
- "number": "string",
- "notes": "string",
- "recordedBy": "string",
- "failureReason": "string",
- "failureCode": "string",
- "links": [
- {
- "target": "string",
- "type": "string",
- "allocatedAmount": 0
}
], - "paidAt": "string",
- "completedAt": "string",
- "reconciledAt": "string",
- "failedAt": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Refund a completed payment (full or partial).
| id required | string Payment identifier |
The new Payment resource
| amountInCents required | integer > 0 |
| currency required | string = 3 characters |
| reason required | string |
{- "amountInCents": 0,
- "currency": "str",
- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "direction": "string",
- "amount": 0,
- "refundedAmount": 0,
- "currency": "string",
- "paymentMethodId": "string",
- "gateway": "string",
- "status": "string",
- "counterpartyId": "string",
- "subject": "string",
- "externalReference": "string",
- "number": "string",
- "notes": "string",
- "recordedBy": "string",
- "failureReason": "string",
- "failureCode": "string",
- "links": [
- {
- "target": "string",
- "type": "string",
- "allocatedAmount": 0
}
], - "paidAt": "string",
- "completedAt": "string",
- "reconciledAt": "string",
- "failedAt": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve the tenant's payment method display groups.
| page | integer Default: 1 The collection page number |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "sortOrder": 0,
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Create a payment method group
The new PaymentMethodGroup resource
| name required | string |
| sortOrder | integer >= 0 Default: 0 |
{- "name": "string",
- "sortOrder": 0
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "sortOrder": 0,
- "createdAt": "string",
- "updatedAt": "string"
}Get a payment method group
| id required | string PaymentMethodGroup identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "sortOrder": 0,
- "createdAt": "string",
- "updatedAt": "string"
}Rename a payment method group
| id required | string PaymentMethodGroup identifier |
The new PaymentMethodGroup resource
| name required | string |
| sortOrder | integer or null >= 0 |
{- "name": "string",
- "sortOrder": 0
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "sortOrder": 0,
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve a paginated list of the tenant's configured payment methods.
| gateway | string Filter by gateway |
| status | string Enum: "active" "inactive" Filter by status (active/inactive) |
| groupId | string Filter by group id |
| page | integer >= 1 Default: 1 Page number |
| itemsPerPage | integer [ 1 .. 100 ] Default: 25 Items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "gateway": "string",
- "canProcess": true,
- "status": "string",
- "isSystemProvisioned": true,
- "sortOrder": 0,
- "icon": "string",
- "groupId": "string",
- "aliases": [
- {
- "channelRef": "string",
- "channelType": "string",
- "externalCode": "string",
- "externalLabel": "string"
}
], - "createdAt": "string",
- "updatedAt": "string"
}
]
}Configure a new payment method for the tenant.
The new PaymentMethod resource
| name required | string |
| gateway required | string Enum: "manual" "cash" "bank_transfer" "card" "stripe" "paypal" "wallet" "cash_on_delivery" "other" |
| sortOrder | integer >= 0 Default: 0 |
| icon | string or null |
| groupId | string or null <ulid> |
{- "name": "string",
- "gateway": "manual",
- "sortOrder": 0,
- "icon": "string",
- "groupId": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "gateway": "string",
- "canProcess": true,
- "status": "string",
- "isSystemProvisioned": true,
- "sortOrder": 0,
- "icon": "string",
- "groupId": "string",
- "aliases": [
- {
- "channelRef": "string",
- "channelType": "string",
- "externalCode": "string",
- "externalLabel": "string"
}
], - "createdAt": "string",
- "updatedAt": "string"
}Retrieve a payment method, including its cross-channel aliases.
| id required | string PaymentMethod identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "gateway": "string",
- "canProcess": true,
- "status": "string",
- "isSystemProvisioned": true,
- "sortOrder": 0,
- "icon": "string",
- "groupId": "string",
- "aliases": [
- {
- "channelRef": "string",
- "channelType": "string",
- "externalCode": "string",
- "externalLabel": "string"
}
], - "createdAt": "string",
- "updatedAt": "string"
}Activate a payment method
| id required | string PaymentMethod identifier |
The new PaymentMethod resource
PaymentMethod API resource (finance/payment-methods).
{ }{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "gateway": "string",
- "canProcess": true,
- "status": "string",
- "isSystemProvisioned": true,
- "sortOrder": 0,
- "icon": "string",
- "groupId": "string",
- "aliases": [
- {
- "channelRef": "string",
- "channelType": "string",
- "externalCode": "string",
- "externalLabel": "string"
}
], - "createdAt": "string",
- "updatedAt": "string"
}Attach a cross-channel alias
| id required | string PaymentMethod identifier |
The new PaymentMethod resource
| externalCode required | string |
| channelRef | string or null |
| channelType | string or null |
| externalLabel | string or null |
{- "externalCode": "string",
- "channelRef": "string",
- "channelType": "string",
- "externalLabel": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "gateway": "string",
- "canProcess": true,
- "status": "string",
- "isSystemProvisioned": true,
- "sortOrder": 0,
- "icon": "string",
- "groupId": "string",
- "aliases": [
- {
- "channelRef": "string",
- "channelType": "string",
- "externalCode": "string",
- "externalLabel": "string"
}
], - "createdAt": "string",
- "updatedAt": "string"
}Deactivate a payment method
| id required | string PaymentMethod identifier |
The new PaymentMethod resource
PaymentMethod API resource (finance/payment-methods).
{ }{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "gateway": "string",
- "canProcess": true,
- "status": "string",
- "isSystemProvisioned": true,
- "sortOrder": 0,
- "icon": "string",
- "groupId": "string",
- "aliases": [
- {
- "channelRef": "string",
- "channelType": "string",
- "externalCode": "string",
- "externalLabel": "string"
}
], - "createdAt": "string",
- "updatedAt": "string"
}Detach a cross-channel alias
| id required | string PaymentMethod identifier |
The new PaymentMethod resource
| externalCode required | string |
| channelRef | string or null |
{- "externalCode": "string",
- "channelRef": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "gateway": "string",
- "canProcess": true,
- "status": "string",
- "isSystemProvisioned": true,
- "sortOrder": 0,
- "icon": "string",
- "groupId": "string",
- "aliases": [
- {
- "channelRef": "string",
- "channelType": "string",
- "externalCode": "string",
- "externalLabel": "string"
}
], - "createdAt": "string",
- "updatedAt": "string"
}Move a payment method into a group
| id required | string PaymentMethod identifier |
The new PaymentMethod resource
| groupId | string or null <ulid> |
{- "groupId": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "gateway": "string",
- "canProcess": true,
- "status": "string",
- "isSystemProvisioned": true,
- "sortOrder": 0,
- "icon": "string",
- "groupId": "string",
- "aliases": [
- {
- "channelRef": "string",
- "channelType": "string",
- "externalCode": "string",
- "externalLabel": "string"
}
], - "createdAt": "string",
- "updatedAt": "string"
}Rename a payment method
| id required | string PaymentMethod identifier |
The new PaymentMethod resource
| name required | string |
{- "name": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "tenantId": "string",
- "name": "string",
- "gateway": "string",
- "canProcess": true,
- "status": "string",
- "isSystemProvisioned": true,
- "sortOrder": 0,
- "icon": "string",
- "groupId": "string",
- "aliases": [
- {
- "channelRef": "string",
- "channelType": "string",
- "externalCode": "string",
- "externalLabel": "string"
}
], - "createdAt": "string",
- "updatedAt": "string"
}Retrieve a paginated list of tax categories with optional search.
| search | string Search by name or code |
| page | integer >= 1 Default: 1 Page number |
| itemsPerPage | integer [ 1 .. 100 ] Default: 30 Items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "code": "string",
- "name": "string",
- "description": "string",
- "isActive": true,
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Retrieve a paginated list of tax rules with optional filters.
| zoneCode | string Filter by zone code |
| isActive | boolean Filter by active status |
| page | integer >= 1 Default: 1 Page number |
| itemsPerPage | integer [ 1 .. 100 ] Default: 30 Items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "name": "string",
- "description": "string",
- "priority": 0,
- "isActive": true,
- "zones": [
- "string"
], - "entityTypes": [
- "string"
], - "defaultRateIds": [
- "string"
], - "categoryOverrides": [
- {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}
]
}Retrieve a paginated list of tax rates with optional filters.
| type | string Enum: "percentage" "fixed_amount" Filter by tax type |
| countryCode | string Filter by country code |
| isActive | boolean Filter by active status |
| isDefault | boolean Filter by default status |
| page | integer >= 1 Default: 1 Page number |
| itemsPerPage | integer [ 1 .. 100 ] Default: 30 Items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "name": "string",
- "code": "string",
- "type": "string",
- "rate": 0,
- "fixedAmountCents": 0,
- "fixedAmountCurrencyCode": "string",
- "countryCode": "string",
- "regionCode": "string",
- "isDefault": true,
- "isActive": true,
- "description": "string",
- "priority": 0,
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Operator-maintained FX rate: 1 unit of baseCurrency = rate units of
quoteCurrency, as of effectiveAt. rate stays a decimal string so
precision is preserved.
Retrieve a paginated list of FX rates with optional currency filters.
| baseCurrency | string Filter by base (source) currency ISO-4217 code |
| quoteCurrency | string Filter by quote (target) currency ISO-4217 code |
| page | integer >= 1 Default: 1 Page number |
| itemsPerPage | integer [ 1 .. 100 ] Default: 30 Items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "baseCurrency": "string",
- "quoteCurrency": "string",
- "rate": "string",
- "effectiveAt": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Create a new FX rate. 1 unit of baseCurrency = rate units of quoteCurrency.
Exchange rate data
| baseCurrency required | string Source currency ISO-4217 code |
| quoteCurrency required | string Target currency ISO-4217 code |
| rate required | string Units of quoteCurrency per 1 baseCurrency (decimal string) |
| effectiveAt required | string <date-time> When this rate takes effect |
{- "baseCurrency": "USD",
- "quoteCurrency": "NGN",
- "rate": "1650.5",
- "effectiveAt": "2019-08-24T14:15:22Z"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "baseCurrency": "string",
- "quoteCurrency": "string",
- "rate": "string",
- "effectiveAt": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve a single FX rate by its ULID.
| id required | string ExchangeRate identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "baseCurrency": "string",
- "quoteCurrency": "string",
- "rate": "string",
- "effectiveAt": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Update the rate and/or effective date of an existing FX rate.
| id required | string ExchangeRate identifier |
The updated ExchangeRate resource
| rate | string or null^(\d+(\.\d+)?)$ |
| effectiveAt | string or null |
{- "rate": "string",
- "effectiveAt": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "baseCurrency": "string",
- "quoteCurrency": "string",
- "rate": "string",
- "effectiveAt": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Purchase price variance summary over a period, bucketed by granularity and split by currency. Read from finance_price_variances.
Cost of goods sold aggregated over a period into day/week/month buckets, split by currency, with a per-currency total.
| startDate | string <date> Period start (YYYY-MM-DD). Defaults to 30 days ago. |
| endDate | string <date> Period end (YYYY-MM-DD). Defaults to today. |
| granularity | string Default: "day" Enum: "day" "week" "month" Bucket size. |
| currency | string Restrict to a single ISO 4217 currency. |
| warehouse | string Restrict to a single warehouse (ULID). |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "cogs",
- "startDate": "",
- "endDate": "",
- "granularity": "day",
- "points": [
- {
- "bucket": "",
- "currency": "",
- "amount": 0
}
], - "totals": [
- {
- "currency": "",
- "amount": 0
}
], - "generatedAt": ""
}Open GRNI balances by subject, bucketed by age as of a reporting date and split by currency.
| asOf | string <date> Reporting date (YYYY-MM-DD). Defaults to today. |
| currency | string Restrict to a single ISO 4217 currency. |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "grni-aging",
- "asOf": "",
- "buckets": [
- {
- "bucket": "",
- "currency": "",
- "openAmount": 0,
- "subjectCount": 0
}
], - "subjects": [
- {
- "subject": "",
- "currency": "",
- "openAmount": 0,
- "oldestAt": "",
- "ageDays": 0,
- "bucket": ""
}
], - "generatedAt": ""
}On-hand stock value aggregated by warehouse and currency, with a per-currency grand total.
| warehouse | string Restrict to a single warehouse (ULID). |
| currency | string Example: currency=USD Restrict to a single ISO 4217 currency. |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "inventory-value",
- "warehouses": [
- {
- "warehouseId": "",
- "currency": "",
- "totalValue": 0,
- "qtyOnHand": 0,
- "itemCount": 0
}
], - "totals": [
- {
- "currency": "",
- "totalValue": 0,
- "qtyOnHand": 0,
- "itemCount": 0
}
], - "generatedAt": ""
}Paginated list of GRNI three-way-match exceptions awaiting operator attention, newest update first.
| currency | string Filter by ISO 4217 currency. |
| page | integer Default: 1 Page number. |
| itemsPerPage | integer Default: 25 Items per page. |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "billId": "",
- "subject": "",
- "status": "",
- "billAmount": 0,
- "grniAmount": 0,
- "varianceAmount": 0,
- "currency": "",
- "exceptionReason": "string",
- "createdAt": "",
- "updatedAt": ""
}
]
}Purchase price variance aggregated over a period into day/week/month buckets, split by currency, with a per-currency total.
| startDate | string <date> Period start (YYYY-MM-DD). Defaults to 30 days ago. |
| endDate | string <date> Period end (YYYY-MM-DD). Defaults to today. |
| granularity | string Default: "month" Enum: "day" "week" "month" Bucket size. |
| currency | string Restrict to a single ISO 4217 currency. |
| warehouse | string Restrict to a single warehouse (ULID). |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "price-variance",
- "startDate": "",
- "endDate": "",
- "granularity": "month",
- "points": [
- {
- "bucket": "",
- "currency": "",
- "amount": 0
}
], - "totals": [
- {
- "currency": "",
- "amount": 0
}
], - "generatedAt": ""
}Purchase price variance summary over a period, bucketed by granularity and split by currency. Read from finance_price_variances.
Cost of goods sold aggregated over a period into day/week/month buckets, split by currency, with a per-currency total.
| startDate | string <date> Period start (YYYY-MM-DD). Defaults to 30 days ago. |
| endDate | string <date> Period end (YYYY-MM-DD). Defaults to today. |
| granularity | string Default: "day" Enum: "day" "week" "month" Bucket size. |
| currency | string Restrict to a single ISO 4217 currency. |
| warehouse | string Restrict to a single warehouse (ULID). |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "cogs",
- "startDate": "",
- "endDate": "",
- "granularity": "day",
- "points": [
- {
- "bucket": "",
- "currency": "",
- "amount": 0
}
], - "totals": [
- {
- "currency": "",
- "amount": 0
}
], - "generatedAt": ""
}Open GRNI balances by subject, bucketed by age as of a reporting date and split by currency.
| asOf | string <date> Reporting date (YYYY-MM-DD). Defaults to today. |
| currency | string Restrict to a single ISO 4217 currency. |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "grni-aging",
- "asOf": "",
- "buckets": [
- {
- "bucket": "",
- "currency": "",
- "openAmount": 0,
- "subjectCount": 0
}
], - "subjects": [
- {
- "subject": "",
- "currency": "",
- "openAmount": 0,
- "oldestAt": "",
- "ageDays": 0,
- "bucket": ""
}
], - "generatedAt": ""
}On-hand stock value aggregated by warehouse and currency, with a per-currency grand total.
| warehouse | string Restrict to a single warehouse (ULID). |
| currency | string Example: currency=USD Restrict to a single ISO 4217 currency. |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "inventory-value",
- "warehouses": [
- {
- "warehouseId": "",
- "currency": "",
- "totalValue": 0,
- "qtyOnHand": 0,
- "itemCount": 0
}
], - "totals": [
- {
- "currency": "",
- "totalValue": 0,
- "qtyOnHand": 0,
- "itemCount": 0
}
], - "generatedAt": ""
}Paginated list of GRNI three-way-match exceptions awaiting operator attention, newest update first.
| currency | string Filter by ISO 4217 currency. |
| page | integer Default: 1 Page number. |
| itemsPerPage | integer Default: 25 Items per page. |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "billId": "",
- "subject": "",
- "status": "",
- "billAmount": 0,
- "grniAmount": 0,
- "varianceAmount": 0,
- "currency": "",
- "exceptionReason": "string",
- "createdAt": "",
- "updatedAt": ""
}
]
}Purchase price variance aggregated over a period into day/week/month buckets, split by currency, with a per-currency total.
| startDate | string <date> Period start (YYYY-MM-DD). Defaults to 30 days ago. |
| endDate | string <date> Period end (YYYY-MM-DD). Defaults to today. |
| granularity | string Default: "month" Enum: "day" "week" "month" Bucket size. |
| currency | string Restrict to a single ISO 4217 currency. |
| warehouse | string Restrict to a single warehouse (ULID). |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "price-variance",
- "startDate": "",
- "endDate": "",
- "granularity": "month",
- "points": [
- {
- "bucket": "",
- "currency": "",
- "amount": 0
}
], - "totals": [
- {
- "currency": "",
- "amount": 0
}
], - "generatedAt": ""
}