Payments
Taxi & Private Hire › Products › Payment › Payments
Generally available
A captured payment — the money actually taken from the customer at trip-end. Created when a HELD TripPreAuth is converted on archive; or written directly for cash, in-app credit, or other non-preauth payment methods. Carries the method (CARD / CASH / CREDIT / ACCOUNT), amount, currency, processor reference, and status (PENDING / SUCCEEDED / FAILED / REFUNDED).
Related
Fields
| Field | Type | Description |
|---|---|---|
tripCharge | TripCharge | TripCharge this payment satisfies (or partially satisfies). A charge can have multiple payments — e.g. preauth-converted card + tip topup paid separately. |
status | TripPaymentStatus · CREATED | APPROVED | VOID | Lifecycle status — PENDING / SUCCEEDED / FAILED / REFUNDED. Updated by processor webhooks for card payments; set directly for cash/credit/account methods. |
total | int | Amount captured in cents. Sum of all SUCCEEDED payments on a charge should reconcile against `TripCharge.total`. |
processorAuthCode | string | Authorization code returned by the card processor on successful capture. Used by support during chargeback / refund flows. |
processorName | string | Name of the payment processor handling this transaction ("Stripe", "Adyen", "Square", etc.). Lets the same TripPayment table serve multi-processor tenants. |
processorRecordId | string | Processor-side record ID (e.g. Stripe charge ID). Used to look up the transaction in the processor dashboard and to dedupe webhook deliveries. |
method | TripPaymentMethod · CASH | CARD | INVOICE | VOUCHER | How the customer paid — CARD / CASH / CREDIT / ACCOUNT. Determines whether a preauth had to be converted (CARD) or the payment was captured directly (others). |
tripPreAuth | TripPreAuth | The TripPreAuth (if any) that was converted to produce this payment. CARD payments typically have one; CASH / CREDIT / ACCOUNT payments do not. |
clientId | bigint | Tenant scope. Every tenant-aware entity carries this; `ClientFilter` enforces row-level isolation on read; the multi-tenancy routing layer (`/client/{clientId}`) sets it at create time. Surfaced only under `admin` / `tripLog` groups — never to end users. |
internalKey | string | Optional client-supplied external reference / idempotency key. When present, lets external systems correlate platform-side records back to their own source-of-truth ids. Not persisted to a column — populated by the request handler when the caller sets it. |
__objectType | string | Discriminator string (entity class short-name) emitted alongside the id in serialized output. Resolved at read time by `getObjectType()`; lets the FE dispatch entity-specific rendering without inspecting the URL. |
id | bigint | Snowflake-style primary key (unsigned BIGINT). Generated by `IdFactory` at create time; surfaced to the FE / API as a `G`-prefixed string and stripped back to plain bigint server-side before Doctrine lookup. |
createdDate | integer | Unix timestamp the row was first persisted. Set in the entity's PrePersist hook; never rewritten on subsequent updates. |
updatedDate | integer | Unix timestamp the row was last touched. Bumped on every commit that hits the Doctrine UoW for this entity; drives FE invalidation + the listing change cursor. |
passiveUpdatedDate | int | Read-through alias for `updatedDate` exposed under different serializer groups. Lets the FE distinguish "real edit" from "background touch" projections without changing the underlying column. |
listingUpdatedDate | int | Listing-projection timestamp surfaced only under the `listMode` group. Driven by `TripCache` and other listing-shape refreshers separately from `updatedDate` so a listing rebuild doesn't trigger detail-page invalidation. |