Skip to main content
POST
Create distributions

Authorizations

Authorization
string
header
required

OAuth2 client_credentials grant for server-to-server access. Onboard via your Nova admin to receive a client_id and client_secret, then POST /oauth/token to exchange them for a short-lived access token. Send the token as Authorization: Bearer <access_token> on every authenticated request. Tokens expire after 3600 seconds — refresh by re-exchanging credentials.

Headers

X-Organization-Id
string

ID of the organization the request acts on. Optional when the access token is bound to a specific organization, or when the integration has access to exactly one organization.

Pattern: ^org_[A-Za-z0-9]+$
Example:

"org_EkzhrUc3U6C0UbxNBlK7WLz51ofT"

Idempotency-Key
string

Supply a unique key to make a mutating request safely retryable. Any retry that sends the same key returns that stored response without performing the operation again.

  • Retention: keys are kept for 24 hours. Within that window a retry replays the original response.
  • Same key, different request: reusing a key with a different request body returns a 422 with code idempotency_mismatch. Use a fresh key for each distinct operation.
  • Still processing: if the first request has not finished, a retry returns 409 with code conflict (wait briefly and retry).
  • Server or transient errors (5xx, 408, 429) are not stored, so you may retry with the same key and the operation will be attempted again.

Only applies to POST, PUT, PATCH, and DELETE; ignored on reads.

Body

application/json
Required array length: 1 element
name
string
required
Minimum string length: 1
Example:

"November 9th Distribution from XYZ Sale"

vehicle
string
required

ID of the vehicle this distribution pays from

Pattern: ^veh_[A-Za-z0-9]+$
Example:

"veh_pNvehE6O1KjY2W6Omq9MD3QAEs5w"

distribution_date
string<date-time>
required

Date this distribution pays out, interpreted in distribution_timezone. Supply either a plain datetime read as wall-clock time in that zone, or one carrying that zone's exact UTC offset at this date — a mismatched offset is rejected with a 422.

Example:

"2026-09-09T09:00"

payments
object[]
required

List of payments

Minimum array length: 1
external_reference
string | null

Your own identifier for this distribution

Example:

"distribution-123"

distribution_timezone
string | null
default:UTC

IANA timezone the distribution date is interpreted and displayed in.

  • Plain datetimes (2026-09-09T09:00) are read as wall-clock time in this zone.
  • Offset-bearing datetimes (2026-09-09T09:00:00-07:00) must carry this zone's offset at that date, accounting for daylight saving. A mismatch is rejected with a 422, so ...Z is only valid where the zone is at +00:00.

Applies to distribution_date and every payments[].distribution_date_override. Responses always render those fields with this zone's offset.

Example:

"America/Los_Angeles"

Response

Distribution created

object
enum<string>
required

Object type identifier.

Available options:
list
Example:

"list"

data
object[]
required

The page of items.

next_page_url
string | null
required

URL for the next page of the list, or null when there are no more pages.

Example:

"/v1/distributions?page=page_5dr8SFDbv7rZ2aj4&limit=10"

previous_page_url
string | null
required

URL for the previous page of the list, or null when there are none.

Example:

"/v1/distributions?page_before=page_8VtqLBv3xJpY7mk2&limit=10"

has_more
boolean
required
deprecated

Whether there are more items available after this page. Deprecated: next_page_url is non-null exactly when more pages exist.

url
string
required
deprecated

The URL for this list endpoint. Deprecated: follow next_page_url / previous_page_url to paginate.

Example:

"/v1/distributions"