Documentation
MCPTool reference

Transactions tools

Arguments, results, errors, and access, confirmation, and retry policy for each Transactions tool in FloPay MCP, from the reviewed API contract.

Transactions tools

Generated from the FloPay MCP contract version 1, revision 764b41d5c7205d6df7eeaeac832fafe882247f5526b1d4d6bc6f98e3eaca7784.

Invoice_exportInvoices

Export invoices

Exports the resource-owned list as a point-in-time framed stream. Reuses this endpoint's list query filters and sort. current_page preserves page/limit; all_matching ignores page/limit while preserving filters and sort. Client routes require an OAuth client_user owner/admin token; admin routes require a single valid clientId selector; partner routes require an authenticated partner seat and are scoped to that partner. Ordinary members, client Basic auth, and cross-tenant requests are rejected.

PolicyValue
OperationPOST /v1/invoices/exports
Classread-only
Riskmedium
Confirmationnot-required
Retrysafe
Rate-limit tieraggregate
Rolesowner, admin
Scopesmcp:read

Arguments

ArgumentInTypeRequiredDescription
pagequeryintegerNo1-based page number for paginated list endpoints. Default: 1. Minimum: 1.
limitqueryintegerNoMaximum number of records to return per page. Default: 20. Minimum: 1. Maximum: 100.
sortquerystringNoSort by one allowed field. Use exactly one of sort[asc] or sort[desc]. Allowed fields: createdAt, paidAt, total, updatedAt, gateway.id, gateway.code, gateway.name, gateway.providerType, gateway.environment, gateway.currency, transaction.id, transaction.amount, transaction.currency, transaction.status, transaction.description, transaction.createdAt, transaction.userUuid, transaction.checkoutSessionId, transaction.subscriptionUuid, transaction.gatewayTransactionId, transaction.gatewayPaymentIntentId. Default: createdAt DESC. Allowed values: createdAt, paidAt, total, updatedAt, gateway.id, gateway.code, gateway.name, gateway.providerType, gateway.environment, gateway.currency, transaction.id, transaction.amount, transaction.currency, transaction.status, transaction.description, transaction.createdAt, transaction.userUuid, transaction.checkoutSessionId, transaction.subscriptionUuid, transaction.gatewayTransactionId, transaction.gatewayPaymentIntentId.
relationquerystringNoComma-separated relation aliases to include. Allowed aliases: gateway, transaction. Unknown aliases return 400.
billingReasonquerystringNoProvider-reported billing reason (e.g. subscription_create, manual). Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
createdAtquerystring (date-time)NoInvoice creation timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
paidAtquerystring (date-time)NoInvoice paid timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
statequerystringNoInvoice state. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400. Allowed values: open, pending, processing, pastDue, paid, closed, failed, voided, unknown.
totalquerynumberNoInvoice total amount. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
transactionTypequerystringNoProvider-reported transaction type recorded on the invoice. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
updatedAtquerystring (date-time)NoInvoice update timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
userUuidquerystringNoLinked Flopay user UUID. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
uuidquerystringNoFlopay invoice UUID. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
fieldsbodyarray of stringNoStable export field keys in output order.
formatbodystringYesAllowed values: csv, json.
scopebodystringYesAllowed values: current_page, all_matching.

Result

Returns 200 as application/vnd.flopay.export-stream.v1. Versioned length-prefixed export stream containing started/progress/completed_file/file_chunk/complete frames.

Errors

StatusDescription
400Invalid scope, format, field key, query parameter, client selector, row cap, or plaintext byte cap.
401Authentication is missing or invalid.
403The actor is not allowed to export this resource.
429Export capacity exhausted. Retry-After is set to 60 seconds.
503Exports disabled or export storage unavailable.

Invoice_findOne

Get Invoice

Returns a single invoice for the authenticated client.

PolicyValue
OperationGET /v1/invoices/{id}
Classread-only
Risklow
Confirmationnot-required
Retrysafe
Rate-limit tierread
Rolesowner, admin, member
Scopesmcp:read

Arguments

ArgumentInTypeRequiredDescription
idpathstringYes
relationquerystringNoComma-separated relation aliases to include. Allowed aliases: gateway, transaction. Unknown aliases return 400.

Result

Returns 200 with a JSON body.

FieldTypeRequiredDescription
billingReasonstring or nullNoProvider-reported billing reason.
createdAtstring (date-time)YesWhen the invoice was created.
currencystring or nullNo
gatewayobject or nullNoOwning gateway (non-secret fields). Present when the gateway relation is loaded.
gateway.codestringYesGateway account identifier (e.g. the Stripe connected account acct_…).
gateway.currencystringYes3-letter ISO default currency code (e.g. "USD") used by this gateway account.
gateway.environmentstringYesAllowed values: stage, production.
gateway.idstringYesGateway UUID.
gateway.namestringYesHuman-readable name of the gateway account.
gateway.providerTypestringYesAllowed values: stripe, paypal, worldpay_corporate_gateway.
gateway.publishableKeystringNoPublic API key used by frontend clients to identify the gateway account. Not a secret.
gatewayInvoiceIdstring or nullNoThe invoice identifier in the billing provider (e.g. Stripe in_…). Null only briefly while a one-time purchase invoice is being minted at the gateway.
gatewayTypestringYesThe billing provider that produced this invoice. Allowed values: stripe, paypal, worldpay_corporate_gateway.
idstringYesThe Flopay invoice UUID.
paidAtstring (date-time) or nullNoWhen the invoice was paid by the provider.
statestringYesThe current invoice state. Allowed values: open, pending, processing, pastDue, paid, closed, failed, voided, unknown.
totalnumber or nullNo
transactionobjectNoLinked Flopay transaction (non-secret fields incl. metadata). Present only when the transaction relation is loaded and a transaction settled this invoice.
transaction.amountnumberYes
transaction.authorizationExpiresAtstring (date-time) or nullNoDeadline for capturing an active authorization.
transaction.authorizationVoidReasonstring or nullNoWhy an uncaptured authorization was voided. Allowed values: merchant_requested, expired, provider_canceled.
transaction.checkoutMetadataobjectNoImmutable non-sensitive client context inherited from the originating checkout.
transaction.checkoutSessionIdstring or nullNoOriginating checkout session UUID.
transaction.createdAtstring (date-time)YesRecord creation timestamp.
transaction.currencystringYes
transaction.descriptionstring or nullYes
transaction.effectiveFloFeeUsdnumber or nullYesEffective Flo platform fee in USD after adjustments. Null until the legacy base fee has been finalized.
transaction.financialEffectiveAtstring (date-time) or nullNoAuthoritative provider money-movement timestamp, when available.
transaction.floFeeAdjustmentUsdnumberYesNet append-only adjustment to the finalized Flo platform fee, in USD.
transaction.floFeeUsdnumber or nullYesFlo's platform fee for this transaction, always in USD: distinct from the shopper amount and currency.
transaction.gatewayobjectNoOwning gateway (non-secret fields). Present only when the gateway relation is loaded.
transaction.gateway.codestringYesGateway account identifier (e.g. the Stripe connected account acct_…).
transaction.gateway.currencystringYes3-letter ISO default currency code (e.g. "USD") used by this gateway account.
transaction.gateway.environmentstringYesAllowed values: stage, production.
transaction.gateway.idstringYesGateway UUID.
transaction.gateway.namestringYesHuman-readable name of the gateway account.
transaction.gateway.providerTypestringYesAllowed values: stripe, paypal, worldpay_corporate_gateway.
transaction.gateway.publishableKeystringNoPublic API key used by frontend clients to identify the gateway account. Not a secret.
transaction.gatewayChargeIdstring or nullNoOriginal gateway charge identifier.
transaction.gatewayPaymentIntentIdstring or nullNoOpaque provider payment-object identifier, such as a Stripe PaymentIntent or PayPal Order/subscription id. The legacy field name is preserved for compatibility.
transaction.gatewayTransactionIdstring or nullNoGateway transaction identifier.
transaction.idstringYes
transaction.metadataobject or nullYesArbitrary metadata captured with the transaction.
transaction.occurredAtstring (date-time)Yes
transaction.statusstringYes
transaction.subscriptionobjectNoLinked subscription (non-secret fields incl. metadata). Present only when the subscription relation is loaded and the payment is tied to a subscription.
transaction.subscription.amountnumber or nullYesThe stored single-unit amount.
transaction.subscription.cancelAtstring (date-time) or nullYesWhen the subscription is scheduled to cancel.
transaction.subscription.canceledAtstring (date-time) or nullYesWhen the subscription was canceled.
transaction.subscription.checkoutMetadataobjectNoImmutable non-sensitive client context inherited from the originating checkout.
transaction.subscription.checkoutSessionIdstring or nullYesThe originating checkout session UUID when available.
transaction.subscription.clientIdstring or nullYesThe authenticated client UUID associated with the subscription row.
transaction.subscription.createdAtstring (date-time)YesWhen the row was created.
transaction.subscription.currencystring or nullYesThe ISO 4217 currency code recorded for the subscription.
transaction.subscription.endDatestring (date-time) or nullYesWhen the current subscription term ends.
transaction.subscription.gatewayobject or nullNoOwning gateway (non-secret fields). Present only when the gateway relation is requested.
transaction.subscription.gateway.codestringYesGateway account identifier (e.g. the Stripe connected account acct_…).
transaction.subscription.gateway.currencystringYes3-letter ISO default currency code (e.g. "USD") used by this gateway account.
transaction.subscription.gateway.environmentstringYesAllowed values: stage, production.
transaction.subscription.gateway.idstringYesGateway UUID.
transaction.subscription.gateway.namestringYesHuman-readable name of the gateway account.
transaction.subscription.gateway.providerTypestringYesAllowed values: stripe, paypal, worldpay_corporate_gateway.
transaction.subscription.gateway.publishableKeystringNoPublic API key used by frontend clients to identify the gateway account. Not a secret.
transaction.subscription.gatewayIdstring or nullYesThe gateway configuration UUID used for this subscription when available.
transaction.subscription.gatewaySubscriptionIdstringYesThe subscription identifier stored from the billing gateway. Flo-owned subscriptions hold no gateway-side subscription object, so this is a synthesized flo_<uuid> identifier that exists in the response only: it is not stored, and cannot be looked up at the gateway.
transaction.subscription.gatewayTypestringYesThe payment gateway that processes charges for the subscription. This describes the payment rails only: it does NOT say who owns the billing schedule. A Flo-owned subscription still reports the gateway its charges run through; read ownership to tell the two apart. Allowed values: stripe, paypal, worldpay_corporate_gateway.
transaction.subscription.gatewayUserIdstring or nullYesThe billing gateway customer identifier when one is known.
transaction.subscription.metadataobject or nullYesArbitrary metadata captured with the subscription row.
transaction.subscription.ownershipstringYesWho owns the billing schedule. provider means the gateway holds the subscription object and drives renewals; flo means Flopay holds the schedule and drives renewals itself, charging through the gateway named by gatewayType. Allowed values: flo, provider.
transaction.subscription.pauseStatestring or nullYesDistinguishes a pause that is in effect ('active') from one recorded to start at a future date ('scheduled'). Null when no pause is recorded. Allowed values: scheduled, active.
transaction.subscription.pausedAtstring (date-time) or nullYesWhen the subscription was paused.
transaction.subscription.planDescriptionstring or nullYesThe stored plan description when available.
transaction.subscription.planIdstringYesThe stored plan identifier.
transaction.subscription.planNamestringYesThe stored plan name.
transaction.subscription.quantitynumberYesThe subscribed quantity.
transaction.subscription.rebillCountinteger (int32)YesThe number of successful renewal charges recorded for the subscription. Minimum: 0.
transaction.subscription.resumeAtstring (date-time) or nullYesWhen the subscription will resume.
transaction.subscription.startDatestring (date-time) or nullYesWhen the subscription started.
transaction.subscription.statestringYesThe current subscription state stored in Flopay. Allowed values: active, canceled, expired, failed, future, paused, past_due.
transaction.subscription.totalnumber or nullYesThe stored total amount.
transaction.subscription.trialEndstring (date-time) or nullYesWhen the trial ends.
transaction.subscription.updatedAtstring (date-time)YesWhen the row was last updated.
transaction.subscription.userFirstNamestring or nullNoCustomer first name when the user relation is loaded.
transaction.subscription.userGatewayIdstring or nullYesThe linked internal user gateway row UUID when available.
transaction.subscription.userLastNamestring or nullNoCustomer last name when the user relation is loaded.
transaction.subscription.userUuidstring or nullYesThe Flopay user UUID associated with the subscription.
transaction.subscription.uuidstringYesInternal Flopay subscription UUID.
transaction.subscriptionUuidstring or nullNoLinked Flopay subscription UUID.
transaction.typestringYesFinancial event classification. Allowed values: purchase, refund, chargeback, dispute.
transaction.userEmailstring or nullNoCustomer email when the user relation is loaded.
transaction.userFirstNamestring or nullNoCustomer first name when the user relation is loaded.
transaction.userLastNamestring or nullNoCustomer last name when the user relation is loaded.
transaction.userUuidstring or nullNoLinked Flopay user UUID.
transactionTypestring or nullNoProvider-reported transaction type.
transactionUuidstring or nullNoLinked Flopay transaction UUID.
updatedAtstring (date-time)YesWhen the invoice was last updated.
userFirstNamestring or nullNoCustomer first name when the user relation is loaded.
userLastNamestring or nullNoCustomer last name when the user relation is loaded.
userUuidstring or nullNoLinked Flopay user UUID.

Errors

StatusDescription
400The supplied path or list query is invalid.
401Client Basic authentication or OAuth2 bearer authentication is required. For Basic, use client.uuid as the username and client.api_key as the password; for bearer, send a valid OAuth2 access token with the required scope.
404No invoice with the requested id exists for this client.

Invoice_list

List Invoices

Returns paginated invoices for the authenticated client (locally persisted from provider webhooks). Supports page, limit, sort[asc|desc], the relation aliases gateway and transaction, and whitelisted filters for uuid, state, billingReason, transactionType, total, paidAt, createdAt, and updatedAt.

PolicyValue
OperationGET /v1/invoices
Classread-only
Risklow
Confirmationnot-required
Retrysafe
Rate-limit tierread
Rolesowner, admin, member
Scopesmcp:read

Arguments

ArgumentInTypeRequiredDescription
pagequeryintegerNo1-based page number for paginated list endpoints. Default: 1. Minimum: 1.
limitqueryintegerNoMaximum number of records to return per page. Default: 20. Minimum: 1. Maximum: 100.
sortquerystringNoSort by one allowed field. Use exactly one of sort[asc] or sort[desc]. Allowed fields: createdAt, paidAt, total, updatedAt, gateway.id, gateway.code, gateway.name, gateway.providerType, gateway.environment, gateway.currency, transaction.id, transaction.amount, transaction.currency, transaction.status, transaction.description, transaction.createdAt, transaction.userUuid, transaction.checkoutSessionId, transaction.subscriptionUuid, transaction.gatewayTransactionId, transaction.gatewayPaymentIntentId. Default: createdAt DESC. Allowed values: createdAt, paidAt, total, updatedAt, gateway.id, gateway.code, gateway.name, gateway.providerType, gateway.environment, gateway.currency, transaction.id, transaction.amount, transaction.currency, transaction.status, transaction.description, transaction.createdAt, transaction.userUuid, transaction.checkoutSessionId, transaction.subscriptionUuid, transaction.gatewayTransactionId, transaction.gatewayPaymentIntentId.
relationquerystringNoComma-separated relation aliases to include. Allowed aliases: gateway, transaction. Unknown aliases return 400.
billingReasonquerystringNoProvider-reported billing reason (e.g. subscription_create, manual). Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
createdAtquerystring (date-time)NoInvoice creation timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
paidAtquerystring (date-time)NoInvoice paid timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
statequerystringNoInvoice state. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400. Allowed values: open, pending, processing, pastDue, paid, closed, failed, voided, unknown.
totalquerynumberNoInvoice total amount. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
transactionTypequerystringNoProvider-reported transaction type recorded on the invoice. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
updatedAtquerystring (date-time)NoInvoice update timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
userUuidquerystringNoLinked Flopay user UUID. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
uuidquerystringNoFlopay invoice UUID. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.

Result

Returns 200 with a JSON body.

FieldTypeRequiredDescription
dataarray of objectYes
data[].billingReasonstring or nullNoProvider-reported billing reason.
data[].createdAtstring (date-time)YesWhen the invoice was created.
data[].currencystring or nullNo
data[].gatewayobject or nullNoOwning gateway (non-secret fields). Present when the gateway relation is loaded.
data[].gateway.codestringYesGateway account identifier (e.g. the Stripe connected account acct_…).
data[].gateway.currencystringYes3-letter ISO default currency code (e.g. "USD") used by this gateway account.
data[].gateway.environmentstringYesAllowed values: stage, production.
data[].gateway.idstringYesGateway UUID.
data[].gateway.namestringYesHuman-readable name of the gateway account.
data[].gateway.providerTypestringYesAllowed values: stripe, paypal, worldpay_corporate_gateway.
data[].gateway.publishableKeystringNoPublic API key used by frontend clients to identify the gateway account. Not a secret.
data[].gatewayInvoiceIdstring or nullNoThe invoice identifier in the billing provider (e.g. Stripe in_…). Null only briefly while a one-time purchase invoice is being minted at the gateway.
data[].gatewayTypestringYesThe billing provider that produced this invoice. Allowed values: stripe, paypal, worldpay_corporate_gateway.
data[].idstringYesThe Flopay invoice UUID.
data[].paidAtstring (date-time) or nullNoWhen the invoice was paid by the provider.
data[].statestringYesThe current invoice state. Allowed values: open, pending, processing, pastDue, paid, closed, failed, voided, unknown.
data[].totalnumber or nullNo
data[].transactionobjectNoLinked Flopay transaction (non-secret fields incl. metadata). Present only when the transaction relation is loaded and a transaction settled this invoice.
data[].transaction.amountnumberYes
data[].transaction.authorizationExpiresAtstring (date-time) or nullNoDeadline for capturing an active authorization.
data[].transaction.authorizationVoidReasonstring or nullNoWhy an uncaptured authorization was voided. Allowed values: merchant_requested, expired, provider_canceled.
data[].transaction.checkoutMetadataobjectNoImmutable non-sensitive client context inherited from the originating checkout.
data[].transaction.checkoutSessionIdstring or nullNoOriginating checkout session UUID.
data[].transaction.createdAtstring (date-time)YesRecord creation timestamp.
data[].transaction.currencystringYes
data[].transaction.descriptionstring or nullYes
data[].transaction.effectiveFloFeeUsdnumber or nullYesEffective Flo platform fee in USD after adjustments. Null until the legacy base fee has been finalized.
data[].transaction.financialEffectiveAtstring (date-time) or nullNoAuthoritative provider money-movement timestamp, when available.
data[].transaction.floFeeAdjustmentUsdnumberYesNet append-only adjustment to the finalized Flo platform fee, in USD.
data[].transaction.floFeeUsdnumber or nullYesFlo's platform fee for this transaction, always in USD: distinct from the shopper amount and currency.
data[].transaction.gatewayobjectNoOwning gateway (non-secret fields). Present only when the gateway relation is loaded.
data[].transaction.gateway.codestringYesGateway account identifier (e.g. the Stripe connected account acct_…).
data[].transaction.gateway.currencystringYes3-letter ISO default currency code (e.g. "USD") used by this gateway account.
data[].transaction.gateway.environmentstringYesAllowed values: stage, production.
data[].transaction.gateway.idstringYesGateway UUID.
data[].transaction.gateway.namestringYesHuman-readable name of the gateway account.
data[].transaction.gateway.providerTypestringYesAllowed values: stripe, paypal, worldpay_corporate_gateway.
data[].transaction.gateway.publishableKeystringNoPublic API key used by frontend clients to identify the gateway account. Not a secret.
data[].transaction.gatewayChargeIdstring or nullNoOriginal gateway charge identifier.
data[].transaction.gatewayPaymentIntentIdstring or nullNoOpaque provider payment-object identifier, such as a Stripe PaymentIntent or PayPal Order/subscription id. The legacy field name is preserved for compatibility.
data[].transaction.gatewayTransactionIdstring or nullNoGateway transaction identifier.
data[].transaction.idstringYes
data[].transaction.metadataobject or nullYesArbitrary metadata captured with the transaction.
data[].transaction.occurredAtstring (date-time)Yes
data[].transaction.statusstringYes
data[].transaction.subscriptionobjectNoLinked subscription (non-secret fields incl. metadata). Present only when the subscription relation is loaded and the payment is tied to a subscription.
data[].transaction.subscription.amountnumber or nullYesThe stored single-unit amount.
data[].transaction.subscription.cancelAtstring (date-time) or nullYesWhen the subscription is scheduled to cancel.
data[].transaction.subscription.canceledAtstring (date-time) or nullYesWhen the subscription was canceled.
data[].transaction.subscription.checkoutMetadataobjectNoImmutable non-sensitive client context inherited from the originating checkout.
data[].transaction.subscription.checkoutSessionIdstring or nullYesThe originating checkout session UUID when available.
data[].transaction.subscription.clientIdstring or nullYesThe authenticated client UUID associated with the subscription row.
data[].transaction.subscription.createdAtstring (date-time)YesWhen the row was created.
data[].transaction.subscription.currencystring or nullYesThe ISO 4217 currency code recorded for the subscription.
data[].transaction.subscription.endDatestring (date-time) or nullYesWhen the current subscription term ends.
data[].transaction.subscription.gatewayobject or nullNoOwning gateway (non-secret fields). Present only when the gateway relation is requested.
data[].transaction.subscription.gateway.codestringYesGateway account identifier (e.g. the Stripe connected account acct_…).
data[].transaction.subscription.gateway.currencystringYes3-letter ISO default currency code (e.g. "USD") used by this gateway account.
data[].transaction.subscription.gateway.environmentstringYesAllowed values: stage, production.
data[].transaction.subscription.gateway.idstringYesGateway UUID.
data[].transaction.subscription.gateway.namestringYesHuman-readable name of the gateway account.
data[].transaction.subscription.gateway.providerTypestringYesAllowed values: stripe, paypal, worldpay_corporate_gateway.
data[].transaction.subscription.gateway.publishableKeystringNoPublic API key used by frontend clients to identify the gateway account. Not a secret.
data[].transaction.subscription.gatewayIdstring or nullYesThe gateway configuration UUID used for this subscription when available.
data[].transaction.subscription.gatewaySubscriptionIdstringYesThe subscription identifier stored from the billing gateway. Flo-owned subscriptions hold no gateway-side subscription object, so this is a synthesized flo_<uuid> identifier that exists in the response only: it is not stored, and cannot be looked up at the gateway.
data[].transaction.subscription.gatewayTypestringYesThe payment gateway that processes charges for the subscription. This describes the payment rails only: it does NOT say who owns the billing schedule. A Flo-owned subscription still reports the gateway its charges run through; read ownership to tell the two apart. Allowed values: stripe, paypal, worldpay_corporate_gateway.
data[].transaction.subscription.gatewayUserIdstring or nullYesThe billing gateway customer identifier when one is known.
data[].transaction.subscription.metadataobject or nullYesArbitrary metadata captured with the subscription row.
data[].transaction.subscription.ownershipstringYesWho owns the billing schedule. provider means the gateway holds the subscription object and drives renewals; flo means Flopay holds the schedule and drives renewals itself, charging through the gateway named by gatewayType. Allowed values: flo, provider.
data[].transaction.subscription.pauseStatestring or nullYesDistinguishes a pause that is in effect ('active') from one recorded to start at a future date ('scheduled'). Null when no pause is recorded. Allowed values: scheduled, active.
data[].transaction.subscription.pausedAtstring (date-time) or nullYesWhen the subscription was paused.
data[].transaction.subscription.planDescriptionstring or nullYesThe stored plan description when available.
data[].transaction.subscription.planIdstringYesThe stored plan identifier.
data[].transaction.subscription.planNamestringYesThe stored plan name.
data[].transaction.subscription.quantitynumberYesThe subscribed quantity.
data[].transaction.subscription.rebillCountinteger (int32)YesThe number of successful renewal charges recorded for the subscription. Minimum: 0.
data[].transaction.subscription.resumeAtstring (date-time) or nullYesWhen the subscription will resume.
data[].transaction.subscription.startDatestring (date-time) or nullYesWhen the subscription started.
data[].transaction.subscription.statestringYesThe current subscription state stored in Flopay. Allowed values: active, canceled, expired, failed, future, paused, past_due.
data[].transaction.subscription.totalnumber or nullYesThe stored total amount.
data[].transaction.subscription.trialEndstring (date-time) or nullYesWhen the trial ends.
data[].transaction.subscription.updatedAtstring (date-time)YesWhen the row was last updated.
data[].transaction.subscription.userFirstNamestring or nullNoCustomer first name when the user relation is loaded.
data[].transaction.subscription.userGatewayIdstring or nullYesThe linked internal user gateway row UUID when available.
data[].transaction.subscription.userLastNamestring or nullNoCustomer last name when the user relation is loaded.
data[].transaction.subscription.userUuidstring or nullYesThe Flopay user UUID associated with the subscription.
data[].transaction.subscription.uuidstringYesInternal Flopay subscription UUID.
data[].transaction.subscriptionUuidstring or nullNoLinked Flopay subscription UUID.
data[].transaction.typestringYesFinancial event classification. Allowed values: purchase, refund, chargeback, dispute.
data[].transaction.userEmailstring or nullNoCustomer email when the user relation is loaded.
data[].transaction.userFirstNamestring or nullNoCustomer first name when the user relation is loaded.
data[].transaction.userLastNamestring or nullNoCustomer last name when the user relation is loaded.
data[].transaction.userUuidstring or nullNoLinked Flopay user UUID.
data[].transactionTypestring or nullNoProvider-reported transaction type.
data[].transactionUuidstring or nullNoLinked Flopay transaction UUID.
data[].updatedAtstring (date-time)YesWhen the invoice was last updated.
data[].userFirstNamestring or nullNoCustomer first name when the user relation is loaded.
data[].userLastNamestring or nullNoCustomer last name when the user relation is loaded.
data[].userUuidstring or nullNoLinked Flopay user UUID.
limitnumberYes
pagenumberYes
pagesnumberYes
totalnumberYes

Errors

StatusDescription
400The supplied path or list query is invalid.
401Client Basic authentication or OAuth2 bearer authentication is required. For Basic, use client.uuid as the username and client.api_key as the password; for bearer, send a valid OAuth2 access token with the required scope.

Invoice_stats

Invoice Stats

Aggregated invoice stats for the authenticated client: total record count plus due/paid totals per currency. Accepts the same whitelisted filters as List Invoices, plus optional from/to ISO datetimes that band the query on created_at.

PolicyValue
OperationGET /v1/invoices/stats
Classread-only
Riskmedium
Confirmationnot-required
Retrysafe
Rate-limit tieraggregate
Rolesowner, admin, member
Scopesmcp:read

Arguments

ArgumentInTypeRequiredDescription
toquerystringNoInclusive upper bound on created_at (ISO datetime).
fromquerystringNoInclusive lower bound on created_at (ISO datetime).
pagequeryintegerNo1-based page number for paginated list endpoints. Default: 1. Minimum: 1.
limitqueryintegerNoMaximum number of records to return per page. Default: 20. Minimum: 1. Maximum: 100.
sortquerystringNoSort by one allowed field. Use exactly one of sort[asc] or sort[desc]. Allowed fields: createdAt, paidAt, total, updatedAt, gateway.id, gateway.code, gateway.name, gateway.providerType, gateway.environment, gateway.currency, transaction.id, transaction.amount, transaction.currency, transaction.status, transaction.description, transaction.createdAt, transaction.userUuid, transaction.checkoutSessionId, transaction.subscriptionUuid, transaction.gatewayTransactionId, transaction.gatewayPaymentIntentId. Default: createdAt DESC. Allowed values: createdAt, paidAt, total, updatedAt, gateway.id, gateway.code, gateway.name, gateway.providerType, gateway.environment, gateway.currency, transaction.id, transaction.amount, transaction.currency, transaction.status, transaction.description, transaction.createdAt, transaction.userUuid, transaction.checkoutSessionId, transaction.subscriptionUuid, transaction.gatewayTransactionId, transaction.gatewayPaymentIntentId.
relationquerystringNoComma-separated relation aliases to include. Allowed aliases: gateway, transaction. Unknown aliases return 400.
billingReasonquerystringNoProvider-reported billing reason (e.g. subscription_create, manual). Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
createdAtquerystring (date-time)NoInvoice creation timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
paidAtquerystring (date-time)NoInvoice paid timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
statequerystringNoInvoice state. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400. Allowed values: open, pending, processing, pastDue, paid, closed, failed, voided, unknown.
totalquerynumberNoInvoice total amount. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
transactionTypequerystringNoProvider-reported transaction type recorded on the invoice. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
updatedAtquerystring (date-time)NoInvoice update timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
userUuidquerystringNoLinked Flopay user UUID. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
uuidquerystringNoFlopay invoice UUID. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.

Result

Returns 200 with a JSON body.

FieldTypeRequiredDescription
amountDueobjectYesSum of due (unpaid) invoice totals, keyed by ISO-4217 currency.
amountPaidobjectYesSum of paid invoice totals, keyed by ISO-4217 currency.
fromstring (date-time) or nullNoInclusive lower bound on created_at, or null.
recordsnumberYesTotal records matching the filters within the time band.
tostring (date-time) or nullNoInclusive upper bound on created_at, or null.

Errors

StatusDescription
400The supplied path or list query is invalid.
401Client Basic authentication or OAuth2 bearer authentication is required. For Basic, use client.uuid as the username and client.api_key as the password; for bearer, send a valid OAuth2 access token with the required scope.

Payments_exportPayments

Export Payments

Streams a point-in-time CSV or JSON export for the authenticated merchant. Requires an OAuth client_user owner/admin token; members and client Basic auth are rejected.

PolicyValue
OperationPOST /v1/payments/exports
Classread-only
Riskmedium
Confirmationnot-required
Retrysafe
Rate-limit tieraggregate
Rolesowner, admin
Scopesmcp:read

Arguments

ArgumentInTypeRequiredDescription
pagequeryintegerNo1-based page number for paginated list endpoints. Default: 1. Minimum: 1.
limitqueryintegerNoMaximum number of records to return per page. Default: 20. Minimum: 1. Maximum: 100.
sortquerystringNoSort by one allowed field. Use exactly one of sort[asc] or sort[desc]. Allowed fields: amount, createdAt, floFeeUsd, updatedAt, gateway.id, gateway.code, gateway.name, gateway.providerType, gateway.environment, gateway.currency, subscription.uuid, subscription.gatewayType, subscription.gatewaySubscriptionId, subscription.planId, subscription.planName, subscription.quantity, subscription.rebillCount, subscription.currency, subscription.amount, subscription.total, subscription.state, subscription.startDate, subscription.endDate, subscription.canceledAt, subscription.createdAt, subscription.updatedAt. Default: createdAt DESC. Allowed values: amount, createdAt, floFeeUsd, updatedAt, gateway.id, gateway.code, gateway.name, gateway.providerType, gateway.environment, gateway.currency, subscription.uuid, subscription.gatewayType, subscription.gatewaySubscriptionId, subscription.planId, subscription.planName, subscription.quantity, subscription.rebillCount, subscription.currency, subscription.amount, subscription.total, subscription.state, subscription.startDate, subscription.endDate, subscription.canceledAt, subscription.createdAt, subscription.updatedAt.
relationquerystringNoComma-separated relation aliases to include. Allowed aliases: gateway, subscription. Unknown aliases return 400.
amountquerynumberNoPayment amount. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
currencyquerystringNoPayment currency. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
descriptionquerystringNoPayment description. Equality filter. Pass without operator for exact match or pass any of the following operators: [search]. [search] is case-insensitive text contains matching.
emailquerystringNoEmail address of the user linked to the payment. Equality filter. Pass without operator for exact match or pass any of the following operators: [search]. [search] is case-insensitive text contains matching.
floFeeUsdquerynumberNoFlo's platform fee for this transaction, always in USD: distinct from the shopper amount and currency. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
idquerystringNoPayment identifier. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
occurredAtquerystring (date-time)NoPayment occurrence timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
providerquerystringNoPayment provider. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400. Allowed values: stripe, paypal, worldpay_corporate_gateway.
statusquerystringNoCanonical payment lifecycle state. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400. Allowed values: pending, authorized, processing, succeeded, failed, refunded, partially_refunded, refund_failed, voided, unknown.
typequerystringNoFinancial event type. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400. Allowed values: purchase, refund, chargeback, dispute.
userUuidquerystringNoLinked Flopay user UUID. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
fieldsbodyarray of stringNoStable export field keys in output order.
formatbodystringYesAllowed values: csv, json.
scopebodystringYesAllowed values: current_page, all_matching.

Result

Returns 200 as application/vnd.flopay.export-stream.v1. Versioned length-prefixed export stream containing started/progress/completed_file/file_chunk/complete frames. Versioned length-prefixed export stream.

Errors

StatusDescription
400Invalid scope, format, field key, query parameter, client selector, row cap, or plaintext byte cap.
401Authentication is missing or invalid.
403The actor is not allowed to export this resource.
429Export capacity exhausted. Retry-After is set to 60 seconds.
503Exports disabled or export storage unavailable.

Payments_findOne

Get Payment

Returns a single payment (Flopay transaction row) for the authenticated client. The id is the Flopay-issued transaction UUID; provider-side ids are not accepted.

PolicyValue
OperationGET /v1/payments/{id}
Classread-only
Risklow
Confirmationnot-required
Retrysafe
Rate-limit tierread
Rolesowner, admin, member
Scopesmcp:read

Arguments

ArgumentInTypeRequiredDescription
idpathstringYes
relationquerystringNoComma-separated relation aliases to include. Allowed aliases: gateway, subscription. Unknown aliases return 400.

Result

Returns 200 with a JSON body.

FieldTypeRequiredDescription
amountnumberYes
authorizationExpiresAtstring (date-time) or nullNoDeadline for capturing an active authorization.
authorizationVoidReasonstring or nullNoWhy an uncaptured authorization was voided. Allowed values: merchant_requested, expired, provider_canceled.
checkoutMetadataobjectNoImmutable non-sensitive client context inherited from the originating checkout.
checkoutSessionIdstring or nullNoOriginating checkout session UUID.
createdAtstring (date-time)YesRecord creation timestamp.
currencystringYes
descriptionstring or nullYes
effectiveFloFeeUsdnumber or nullYesEffective Flo platform fee in USD after adjustments. Null until the legacy base fee has been finalized.
financialEffectiveAtstring (date-time) or nullNoAuthoritative provider money-movement timestamp, when available.
floFeeAdjustmentUsdnumberYesNet append-only adjustment to the finalized Flo platform fee, in USD.
floFeeUsdnumber or nullYesFlo's platform fee for this transaction, always in USD: distinct from the shopper amount and currency.
gatewayobjectNoOwning gateway (non-secret fields). Present only when the gateway relation is loaded.
gateway.codestringYesGateway account identifier (e.g. the Stripe connected account acct_…).
gateway.currencystringYes3-letter ISO default currency code (e.g. "USD") used by this gateway account.
gateway.environmentstringYesAllowed values: stage, production.
gateway.idstringYesGateway UUID.
gateway.namestringYesHuman-readable name of the gateway account.
gateway.providerTypestringYesAllowed values: stripe, paypal, worldpay_corporate_gateway.
gateway.publishableKeystringNoPublic API key used by frontend clients to identify the gateway account. Not a secret.
gatewayChargeIdstring or nullNoOriginal gateway charge identifier.
gatewayPaymentIntentIdstring or nullNoOpaque provider payment-object identifier, such as a Stripe PaymentIntent or PayPal Order/subscription id. The legacy field name is preserved for compatibility.
gatewayTransactionIdstring or nullNoGateway transaction identifier.
idstringYes
metadataobject or nullYesArbitrary metadata captured with the transaction.
occurredAtstring (date-time)Yes
statusstringYes
subscriptionobjectNoLinked subscription (non-secret fields incl. metadata). Present only when the subscription relation is loaded and the payment is tied to a subscription.
subscription.amountnumber or nullYesThe stored single-unit amount.
subscription.cancelAtstring (date-time) or nullYesWhen the subscription is scheduled to cancel.
subscription.canceledAtstring (date-time) or nullYesWhen the subscription was canceled.
subscription.checkoutMetadataobjectNoImmutable non-sensitive client context inherited from the originating checkout.
subscription.checkoutSessionIdstring or nullYesThe originating checkout session UUID when available.
subscription.clientIdstring or nullYesThe authenticated client UUID associated with the subscription row.
subscription.createdAtstring (date-time)YesWhen the row was created.
subscription.currencystring or nullYesThe ISO 4217 currency code recorded for the subscription.
subscription.endDatestring (date-time) or nullYesWhen the current subscription term ends.
subscription.gatewayobject or nullNoOwning gateway (non-secret fields). Present only when the gateway relation is requested.
subscription.gateway.codestringYesGateway account identifier (e.g. the Stripe connected account acct_…).
subscription.gateway.currencystringYes3-letter ISO default currency code (e.g. "USD") used by this gateway account.
subscription.gateway.environmentstringYesAllowed values: stage, production.
subscription.gateway.idstringYesGateway UUID.
subscription.gateway.namestringYesHuman-readable name of the gateway account.
subscription.gateway.providerTypestringYesAllowed values: stripe, paypal, worldpay_corporate_gateway.
subscription.gateway.publishableKeystringNoPublic API key used by frontend clients to identify the gateway account. Not a secret.
subscription.gatewayIdstring or nullYesThe gateway configuration UUID used for this subscription when available.
subscription.gatewaySubscriptionIdstringYesThe subscription identifier stored from the billing gateway. Flo-owned subscriptions hold no gateway-side subscription object, so this is a synthesized flo_<uuid> identifier that exists in the response only: it is not stored, and cannot be looked up at the gateway.
subscription.gatewayTypestringYesThe payment gateway that processes charges for the subscription. This describes the payment rails only: it does NOT say who owns the billing schedule. A Flo-owned subscription still reports the gateway its charges run through; read ownership to tell the two apart. Allowed values: stripe, paypal, worldpay_corporate_gateway.
subscription.gatewayUserIdstring or nullYesThe billing gateway customer identifier when one is known.
subscription.metadataobject or nullYesArbitrary metadata captured with the subscription row.
subscription.ownershipstringYesWho owns the billing schedule. provider means the gateway holds the subscription object and drives renewals; flo means Flopay holds the schedule and drives renewals itself, charging through the gateway named by gatewayType. Allowed values: flo, provider.
subscription.pauseStatestring or nullYesDistinguishes a pause that is in effect ('active') from one recorded to start at a future date ('scheduled'). Null when no pause is recorded. Allowed values: scheduled, active.
subscription.pausedAtstring (date-time) or nullYesWhen the subscription was paused.
subscription.planDescriptionstring or nullYesThe stored plan description when available.
subscription.planIdstringYesThe stored plan identifier.
subscription.planNamestringYesThe stored plan name.
subscription.quantitynumberYesThe subscribed quantity.
subscription.rebillCountinteger (int32)YesThe number of successful renewal charges recorded for the subscription. Minimum: 0.
subscription.resumeAtstring (date-time) or nullYesWhen the subscription will resume.
subscription.startDatestring (date-time) or nullYesWhen the subscription started.
subscription.statestringYesThe current subscription state stored in Flopay. Allowed values: active, canceled, expired, failed, future, paused, past_due.
subscription.totalnumber or nullYesThe stored total amount.
subscription.trialEndstring (date-time) or nullYesWhen the trial ends.
subscription.updatedAtstring (date-time)YesWhen the row was last updated.
subscription.userFirstNamestring or nullNoCustomer first name when the user relation is loaded.
subscription.userGatewayIdstring or nullYesThe linked internal user gateway row UUID when available.
subscription.userLastNamestring or nullNoCustomer last name when the user relation is loaded.
subscription.userUuidstring or nullYesThe Flopay user UUID associated with the subscription.
subscription.uuidstringYesInternal Flopay subscription UUID.
subscriptionUuidstring or nullNoLinked Flopay subscription UUID.
typestringYesFinancial event classification. Allowed values: purchase, refund, chargeback, dispute.
userEmailstring or nullNoCustomer email when the user relation is loaded.
userFirstNamestring or nullNoCustomer first name when the user relation is loaded.
userLastNamestring or nullNoCustomer last name when the user relation is loaded.
userUuidstring or nullNoLinked Flopay user UUID.

Errors

StatusDescription
400The sort, filter, or pagination query parameters were invalid.
401Client Basic authentication or OAuth2 bearer authentication is required. For Basic, use client.uuid as the username and client.api_key as the password; for bearer, send a valid OAuth2 access token with the required scope.
404No payment with the requested id exists for this client.

Payments_list

List Payments

Returns paginated payments for the authenticated client from the locally persisted transaction table. Supports page, limit, sort[asc|desc], the relation aliases gateway and subscription, and whitelisted filters for id, amount, floFeeUsd, currency, description, email, occurredAt, provider, status, and userUuid. floFeeUsd is the nullable Flo platform fee in USD; unavailable values sort last. The email filter matches the email of the user linked to each payment. Invalid list parameters return 400.

PolicyValue
OperationGET /v1/payments
Classread-only
Risklow
Confirmationnot-required
Retrysafe
Rate-limit tierread
Rolesowner, admin, member
Scopesmcp:read

Arguments

ArgumentInTypeRequiredDescription
pagequeryintegerNo1-based page number for paginated list endpoints. Default: 1. Minimum: 1.
limitqueryintegerNoMaximum number of records to return per page. Default: 20. Minimum: 1. Maximum: 100.
sortquerystringNoSort by one allowed field. Use exactly one of sort[asc] or sort[desc]. Allowed fields: amount, createdAt, floFeeUsd, updatedAt, gateway.id, gateway.code, gateway.name, gateway.providerType, gateway.environment, gateway.currency, subscription.uuid, subscription.gatewayType, subscription.gatewaySubscriptionId, subscription.planId, subscription.planName, subscription.quantity, subscription.rebillCount, subscription.currency, subscription.amount, subscription.total, subscription.state, subscription.startDate, subscription.endDate, subscription.canceledAt, subscription.createdAt, subscription.updatedAt. Default: createdAt DESC. Allowed values: amount, createdAt, floFeeUsd, updatedAt, gateway.id, gateway.code, gateway.name, gateway.providerType, gateway.environment, gateway.currency, subscription.uuid, subscription.gatewayType, subscription.gatewaySubscriptionId, subscription.planId, subscription.planName, subscription.quantity, subscription.rebillCount, subscription.currency, subscription.amount, subscription.total, subscription.state, subscription.startDate, subscription.endDate, subscription.canceledAt, subscription.createdAt, subscription.updatedAt.
relationquerystringNoComma-separated relation aliases to include. Allowed aliases: gateway, subscription. Unknown aliases return 400.
amountquerynumberNoPayment amount. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
currencyquerystringNoPayment currency. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
descriptionquerystringNoPayment description. Equality filter. Pass without operator for exact match or pass any of the following operators: [search]. [search] is case-insensitive text contains matching.
emailquerystringNoEmail address of the user linked to the payment. Equality filter. Pass without operator for exact match or pass any of the following operators: [search]. [search] is case-insensitive text contains matching.
floFeeUsdquerynumberNoFlo's platform fee for this transaction, always in USD: distinct from the shopper amount and currency. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
idquerystringNoPayment identifier. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.
occurredAtquerystring (date-time)NoPayment occurrence timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
providerquerystringNoPayment provider. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400. Allowed values: stripe, paypal, worldpay_corporate_gateway.
statusquerystringNoCanonical payment lifecycle state. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400. Allowed values: pending, authorized, processing, succeeded, failed, refunded, partially_refunded, refund_failed, voided, unknown.
typequerystringNoFinancial event type. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400. Allowed values: purchase, refund, chargeback, dispute.
userUuidquerystringNoLinked Flopay user UUID. Equality filter. Pass without operator for exact match or pass any of the following operators: [in]. [in] accepts comma-separated values; blank entries return 400.

Result

Returns 200 with a JSON body. A paginated list of locally persisted payments for the requested client.

FieldTypeRequiredDescription
dataarray of objectYes
data[].amountnumberYes
data[].authorizationExpiresAtstring (date-time) or nullNoDeadline for capturing an active authorization.
data[].authorizationVoidReasonstring or nullNoWhy an uncaptured authorization was voided. Allowed values: merchant_requested, expired, provider_canceled.
data[].checkoutMetadataobjectNoImmutable non-sensitive client context inherited from the originating checkout.
data[].checkoutSessionIdstring or nullNoOriginating checkout session UUID.
data[].createdAtstring (date-time)YesRecord creation timestamp.
data[].currencystringYes
data[].descriptionstring or nullYes
data[].effectiveFloFeeUsdnumber or nullYesEffective Flo platform fee in USD after adjustments. Null until the legacy base fee has been finalized.
data[].financialEffectiveAtstring (date-time) or nullNoAuthoritative provider money-movement timestamp, when available.
data[].floFeeAdjustmentUsdnumberYesNet append-only adjustment to the finalized Flo platform fee, in USD.
data[].floFeeUsdnumber or nullYesFlo's platform fee for this transaction, always in USD: distinct from the shopper amount and currency.
data[].gatewayobjectNoOwning gateway (non-secret fields). Present only when the gateway relation is loaded.
data[].gateway.codestringYesGateway account identifier (e.g. the Stripe connected account acct_…).
data[].gateway.currencystringYes3-letter ISO default currency code (e.g. "USD") used by this gateway account.
data[].gateway.environmentstringYesAllowed values: stage, production.
data[].gateway.idstringYesGateway UUID.
data[].gateway.namestringYesHuman-readable name of the gateway account.
data[].gateway.providerTypestringYesAllowed values: stripe, paypal, worldpay_corporate_gateway.
data[].gateway.publishableKeystringNoPublic API key used by frontend clients to identify the gateway account. Not a secret.
data[].gatewayChargeIdstring or nullNoOriginal gateway charge identifier.
data[].gatewayPaymentIntentIdstring or nullNoOpaque provider payment-object identifier, such as a Stripe PaymentIntent or PayPal Order/subscription id. The legacy field name is preserved for compatibility.
data[].gatewayTransactionIdstring or nullNoGateway transaction identifier.
data[].idstringYes
data[].metadataobject or nullYesArbitrary metadata captured with the transaction.
data[].occurredAtstring (date-time)Yes
data[].statusstringYes
data[].subscriptionobjectNoLinked subscription (non-secret fields incl. metadata). Present only when the subscription relation is loaded and the payment is tied to a subscription.
data[].subscription.amountnumber or nullYesThe stored single-unit amount.
data[].subscription.cancelAtstring (date-time) or nullYesWhen the subscription is scheduled to cancel.
data[].subscription.canceledAtstring (date-time) or nullYesWhen the subscription was canceled.
data[].subscription.checkoutMetadataobjectNoImmutable non-sensitive client context inherited from the originating checkout.
data[].subscription.checkoutSessionIdstring or nullYesThe originating checkout session UUID when available.
data[].subscription.clientIdstring or nullYesThe authenticated client UUID associated with the subscription row.
data[].subscription.createdAtstring (date-time)YesWhen the row was created.
data[].subscription.currencystring or nullYesThe ISO 4217 currency code recorded for the subscription.
data[].subscription.endDatestring (date-time) or nullYesWhen the current subscription term ends.
data[].subscription.gatewayobject or nullNoOwning gateway (non-secret fields). Present only when the gateway relation is requested.
data[].subscription.gateway.codestringYesGateway account identifier (e.g. the Stripe connected account acct_…).
data[].subscription.gateway.currencystringYes3-letter ISO default currency code (e.g. "USD") used by this gateway account.
data[].subscription.gateway.environmentstringYesAllowed values: stage, production.
data[].subscription.gateway.idstringYesGateway UUID.
data[].subscription.gateway.namestringYesHuman-readable name of the gateway account.
data[].subscription.gateway.providerTypestringYesAllowed values: stripe, paypal, worldpay_corporate_gateway.
data[].subscription.gateway.publishableKeystringNoPublic API key used by frontend clients to identify the gateway account. Not a secret.
data[].subscription.gatewayIdstring or nullYesThe gateway configuration UUID used for this subscription when available.
data[].subscription.gatewaySubscriptionIdstringYesThe subscription identifier stored from the billing gateway. Flo-owned subscriptions hold no gateway-side subscription object, so this is a synthesized flo_<uuid> identifier that exists in the response only: it is not stored, and cannot be looked up at the gateway.
data[].subscription.gatewayTypestringYesThe payment gateway that processes charges for the subscription. This describes the payment rails only: it does NOT say who owns the billing schedule. A Flo-owned subscription still reports the gateway its charges run through; read ownership to tell the two apart. Allowed values: stripe, paypal, worldpay_corporate_gateway.
data[].subscription.gatewayUserIdstring or nullYesThe billing gateway customer identifier when one is known.
data[].subscription.metadataobject or nullYesArbitrary metadata captured with the subscription row.
data[].subscription.ownershipstringYesWho owns the billing schedule. provider means the gateway holds the subscription object and drives renewals; flo means Flopay holds the schedule and drives renewals itself, charging through the gateway named by gatewayType. Allowed values: flo, provider.
data[].subscription.pauseStatestring or nullYesDistinguishes a pause that is in effect ('active') from one recorded to start at a future date ('scheduled'). Null when no pause is recorded. Allowed values: scheduled, active.
data[].subscription.pausedAtstring (date-time) or nullYesWhen the subscription was paused.
data[].subscription.planDescriptionstring or nullYesThe stored plan description when available.
data[].subscription.planIdstringYesThe stored plan identifier.
data[].subscription.planNamestringYesThe stored plan name.
data[].subscription.quantitynumberYesThe subscribed quantity.
data[].subscription.rebillCountinteger (int32)YesThe number of successful renewal charges recorded for the subscription. Minimum: 0.
data[].subscription.resumeAtstring (date-time) or nullYesWhen the subscription will resume.
data[].subscription.startDatestring (date-time) or nullYesWhen the subscription started.
data[].subscription.statestringYesThe current subscription state stored in Flopay. Allowed values: active, canceled, expired, failed, future, paused, past_due.
data[].subscription.totalnumber or nullYesThe stored total amount.
data[].subscription.trialEndstring (date-time) or nullYesWhen the trial ends.
data[].subscription.updatedAtstring (date-time)YesWhen the row was last updated.
data[].subscription.userFirstNamestring or nullNoCustomer first name when the user relation is loaded.
data[].subscription.userGatewayIdstring or nullYesThe linked internal user gateway row UUID when available.
data[].subscription.userLastNamestring or nullNoCustomer last name when the user relation is loaded.
data[].subscription.userUuidstring or nullYesThe Flopay user UUID associated with the subscription.
data[].subscription.uuidstringYesInternal Flopay subscription UUID.
data[].subscriptionUuidstring or nullNoLinked Flopay subscription UUID.
data[].typestringYesFinancial event classification. Allowed values: purchase, refund, chargeback, dispute.
data[].userEmailstring or nullNoCustomer email when the user relation is loaded.
data[].userFirstNamestring or nullNoCustomer first name when the user relation is loaded.
data[].userLastNamestring or nullNoCustomer last name when the user relation is loaded.
data[].userUuidstring or nullNoLinked Flopay user UUID.
limitnumberYes
pagenumberYes
pagesnumberYes
totalnumberYes

Errors

StatusDescription
400The sort, filter, or pagination query parameters were invalid.
401Client Basic authentication or OAuth2 bearer authentication is required. For Basic, use client.uuid as the username and client.api_key as the password; for bearer, send a valid OAuth2 access token with the required scope.

On this page