Documentation
MCPTool reference

Other tools

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

Other tools

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

ClientInvoices_findOne

Get one Flo billing invoice for the authenticated client

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

Arguments

ArgumentInTypeRequiredDescription
uuidpathstringYes

Result

Returns 200 with a JSON body.

FieldTypeRequiredDescription
adjustmentTotalUsdnumberYesSigned source-period billing adjustments applied to this invoice, in USD.
chargesarray of objectYesDurable monthly charges swept onto this invoice.
charges[].amountUsdnumberYesCharge amount in USD.
charges[].createdAtstring (date-time)YesWhen the durable charge was created.
charges[].currencystringYesAllowed values: USD.
charges[].idstring (uuid)YesThe durable client charge UUID.
charges[].periodstringYesUTC calendar month to which the charge belongs.
charges[].typestringYesAllowed values: monthly_fee.
clientIdstring (uuid)YesThe client organisation billed by this invoice.
createdAtstring (date-time)YesWhen the invoice record was created.
currencystringYesAllowed values: USD.
idstring (uuid)YesThe Flo-to-client invoice UUID.
invoiceDatestringYesFinal UTC calendar date of the invoiced period.
invoiceNumberstringYesGlobal human-readable invoice number.
issuedAtstring (date-time)YesWhen the invoice was issued.
issuerAddressstringYesIssuer address snapshotted at issuance.
issuerLegalNamestringYesIssuing legal entity snapshotted at issuance.
minimumSpendAdjustmentUsdnumberYesAdjustment required to reach the minimum-spend floor, in USD.
minimumSpendUsdnumberYesMinimum-spend floor captured when this invoice was issued, in USD.
monthlyFeeTotalUsdnumberYesMonthly-fee charges linked to this invoice, in USD.
outstandingTotalUsdnumberYesAmount still outstanding in USD. Settlement is full-only.
periodstringYesFirst day of the invoiced UTC calendar month.
settlementobject or nullNoAdditive settlement state. Null for invoices issued before settlement tracking began.
settlement.collectionMethodstringYesAllowed values: automatic, manual.
settlement.methodstring or nullNoAllowed values: stripe_card, bank_transfer, other.
settlement.settledAtstring (date-time) or nullNoEffective settlement date and time.
settlement.statusstringYesAllowed values: awaiting_manual, pending, processing, retryable_failed, retry_exhausted, paid.
statusstringYesAllowed values: issued, paid, void.
taxTotalUsdnumber or nullNoReserved tax total; null while tax is out of scope.
totalUsdnumberYesNet invoice total in USD.
transactionFeeTotalUsdnumberYesFinalised transaction fees belonging to this period, in USD.

Errors

StatusDescription
400The supplied pagination query is invalid.
401Client Basic or OAuth2 bearer authentication is required.
404No invoice with the requested id exists for this client.

ClientInvoices_list

List Flo billing invoices for the authenticated client

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

Arguments

ArgumentInTypeRequiredDescription
pagequerynumberNoPage number for paginated list endpoints. Pagination is 1-based. Default: 1. Minimum: 1.
limitquerynumberNoMaximum number of records to return per page for paginated list endpoints. Default: 20. Minimum: 1. Maximum: 100.

Result

Returns 200 with a JSON body.

FieldTypeRequiredDescription
dataarray of objectYes
data[].adjustmentTotalUsdnumberYesSigned source-period billing adjustments applied to this invoice, in USD.
data[].chargesarray of objectYesDurable monthly charges swept onto this invoice.
data[].charges[].amountUsdnumberYesCharge amount in USD.
data[].charges[].createdAtstring (date-time)YesWhen the durable charge was created.
data[].charges[].currencystringYesAllowed values: USD.
data[].charges[].idstring (uuid)YesThe durable client charge UUID.
data[].charges[].periodstringYesUTC calendar month to which the charge belongs.
data[].charges[].typestringYesAllowed values: monthly_fee.
data[].clientIdstring (uuid)YesThe client organisation billed by this invoice.
data[].createdAtstring (date-time)YesWhen the invoice record was created.
data[].currencystringYesAllowed values: USD.
data[].idstring (uuid)YesThe Flo-to-client invoice UUID.
data[].invoiceDatestringYesFinal UTC calendar date of the invoiced period.
data[].invoiceNumberstringYesGlobal human-readable invoice number.
data[].issuedAtstring (date-time)YesWhen the invoice was issued.
data[].issuerAddressstringYesIssuer address snapshotted at issuance.
data[].issuerLegalNamestringYesIssuing legal entity snapshotted at issuance.
data[].minimumSpendAdjustmentUsdnumberYesAdjustment required to reach the minimum-spend floor, in USD.
data[].minimumSpendUsdnumberYesMinimum-spend floor captured when this invoice was issued, in USD.
data[].monthlyFeeTotalUsdnumberYesMonthly-fee charges linked to this invoice, in USD.
data[].outstandingTotalUsdnumberYesAmount still outstanding in USD. Settlement is full-only.
data[].periodstringYesFirst day of the invoiced UTC calendar month.
data[].settlementobject or nullNoAdditive settlement state. Null for invoices issued before settlement tracking began.
data[].settlement.collectionMethodstringYesAllowed values: automatic, manual.
data[].settlement.methodstring or nullNoAllowed values: stripe_card, bank_transfer, other.
data[].settlement.settledAtstring (date-time) or nullNoEffective settlement date and time.
data[].settlement.statusstringYesAllowed values: awaiting_manual, pending, processing, retryable_failed, retry_exhausted, paid.
data[].statusstringYesAllowed values: issued, paid, void.
data[].taxTotalUsdnumber or nullNoReserved tax total; null while tax is out of scope.
data[].totalUsdnumberYesNet invoice total in USD.
data[].transactionFeeTotalUsdnumberYesFinalised transaction fees belonging to this period, in USD.
limitnumberYes
pagenumberYes
pagesnumberYes
totalnumberYes

Errors

StatusDescription
400The supplied pagination query is invalid.
401Client Basic or OAuth2 bearer authentication is required.

Company_get

Get Company

Returns the authenticated merchant company.

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

Arguments

This tool takes no arguments.

Result

Returns 200 with a JSON body.

FieldTypeRequiredDescription
createdAtstring (date-time)Yes
currencystringYes
idstringYes
slugstringYes
updatedAtstring (date-time)Yes

Errors

StatusDescription
401Missing or invalid Basic API key or OAuth2 bearer token.

Company_update

Update Company

Updates the authenticated merchant company. The reporting currency is the unit every merchant report and aggregate is expressed in; transactions keep their own source currency. Owners and admins only.

PolicyValue
OperationPATCH /v1/company
Classmutating
Riskmedium
Confirmationrequired
Retrysame-idempotency-key
Rate-limit tiermutation
Rolesowner, admin
Scopesmcp:write

Arguments

ArgumentInTypeRequiredDescription
currencybodystringYesAllowed values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLE, SOS, SRD, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VES, VND, VUV, WST, XAF, XCD, XOF, XPF, YER, ZAR, ZMW. Minimum length: 3. Maximum length: 3.

Result

Returns 200 with a JSON body.

FieldTypeRequiredDescription
createdAtstring (date-time)Yes
currencystringYes
idstringYes
slugstringYes
updatedAtstring (date-time)Yes

Errors

StatusDescription
401Missing or invalid Basic API key or OAuth2 bearer token.

DunningPolicy_get

Read the authenticated client's effective subscription dunning policy

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

Arguments

This tool takes no arguments.

Result

Returns 200 with a JSON body.

FieldTypeRequiredDescription
activeCampaignChangesstringYesAllowed values: future_campaigns_only. Default: future_campaigns_only.
cadenceobjectYes
cadence.dayobjectYes
cadence.day.maxScheduledRetriesnumberYesMinimum: 1. Maximum: 8.
cadence.day.retryWindowHoursnumberYesMinimum: 1. Maximum: 1440.
cadence.monthobjectYes
cadence.month.maxScheduledRetriesnumberYesMinimum: 1. Maximum: 8.
cadence.month.retryWindowHoursnumberYesMinimum: 1. Maximum: 1440.
cadence.weekobjectYes
cadence.week.maxScheduledRetriesnumberYesMinimum: 1. Maximum: 8.
cadence.week.retryWindowHoursnumberYesMinimum: 1. Maximum: 1440.
cadence.yearobjectYes
cadence.year.maxScheduledRetriesnumberYesMinimum: 1. Maximum: 8.
cadence.year.retryWindowHoursnumberYesMinimum: 1. Maximum: 1440.
effectiveAtstring (date-time) or nullYes
eligibleDeclineReasonsarray of stringYesAllowed values: INSUFFICIENT_FUNDS, DO_NOT_HONOUR, TOO_MANY_ATTEMPTS, PARTIAL_APPROVAL, PAYMENT_GATEWAY_ERROR, TECHNICAL_ERROR, RETRYABLE_DECLINE, UNSUPPORTED_CARD_PURCHASE, USER_ERROR, CVV_INVALID, AVS_FAIL, POSTCODE_INVALID, 3DS_FAIL, EXCEEDS_CARD_LIMIT, CLIENT_ERROR, UNKNOWN_DECLINE_REASON.
permittedRetryTimesUtcarray of string or nullYes
platformLimitsobjectYesDefault: {"clientCanChangeLifecycleEvents":false,"clientCanRetryNonRetryableOutcomes":false,"maxRetryWindowHours":1440,"maxRetryWindowHoursScope":"client_override","maxScheduledRetries":8,"platformDefaultRetryWindowScaling":"interval_count_before_next_billing_cycle","retriesMustBeBeforeNextBillingCycle":true}.
platformLimits.clientCanChangeLifecycleEventsbooleanYesAllowed values: false. Default: false.
platformLimits.clientCanRetryNonRetryableOutcomesbooleanYesAllowed values: false. Default: false.
platformLimits.maxRetryWindowHoursobjectYesMaximum retry window enforced for activated client overrides; the released platform default keeps interval-count scaling. Default: 1440. Maximum: 1440.
platformLimits.maxRetryWindowHoursScopestringYesAllowed values: client_override. Default: client_override.
platformLimits.maxScheduledRetriesobjectYesDefault: 8. Maximum: 8.
platformLimits.platformDefaultRetryWindowScalingstringYesAllowed values: interval_count_before_next_billing_cycle. Default: interval_count_before_next_billing_cycle.
platformLimits.retriesMustBeBeforeNextBillingCyclebooleanYesAllowed values: true. Default: true.
policyIdstring (uuid) or nullYes
revisionnumber or nullYesMinimum: 1.
sourcestringYesAllowed values: platform_default, client_override.

Errors

StatusDescription
401Client Basic or OAuth2 bearer authentication is required.
403Members cannot manage dunning policy settings.

ProductPrices_list

List Product Prices

Returns the authenticated merchant’s locally persisted product prices. Every row includes stable Flopay price and product identifiers, ISO-4217 currency, and catalog lifecycle status. Use relation=product to include the owning product identity. Invalid or unsupported list parameters return 400.

PolicyValue
OperationGET /v1/product-prices
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, currency, updatedAt, product.code, product.id, product.name, product.status. Default: createdAt DESC. Allowed values: amount, createdAt, currency, updatedAt, product.code, product.id, product.name, product.status.
relationquerystringNoComma-separated relation aliases to include. Allowed aliases: product. Unknown aliases return 400.
amountquerynumberNoBase price in major currency units. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
createdAtquerystring (date-time)NoPrice creation timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
currencyquerystringNoISO-4217 price 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.
idquerystring (uuid)NoStable Flopay product-price 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.
productIdquerystring (uuid)NoStable Flopay identifier of the owning product. 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.
statusquerystringNoCatalog 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: active, inactive.
updatedAtquerystring (date-time)NoPrice update timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
variantIdquerystring (uuid)NoStable Flopay identifier of the optional product variant. 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 tenant-scoped, paginated inventory of stable product-price records.

FieldTypeRequiredDescription
dataarray of objectYes
data[].amountnumberYesBase price in major units.
data[].createdAtstring (date-time)Yes
data[].currencystringYesISO-4217 currency code.
data[].effectiveAmountnumberYesSale price when the current time is in the sale window, otherwise the base amount.
data[].idstringYes
data[].productobjectNoOwning product identity, present when relation=product is requested.
data[].product.codestringYes
data[].product.idstring (uuid)Yes
data[].product.namestringYes
data[].product.statusstringYesAllowed values: active, inactive.
data[].productIdstring (uuid)YesStable Flopay identifier of the owning product.
data[].rebillAtSaleAmountbooleanYesWhen false an active sale applies to the first subscription charge only (rebills revert to the full amount); when true the sale price is retained for the subscription lifetime.
data[].saleAmountnumber or nullYesSale price; populated only when sale window is set.
data[].saleEndsAtstring (date-time) or nullYes
data[].saleStartsAtstring (date-time) or nullYes
data[].statusstringYesInactive prices remain readable but cannot be selected for new purchases. Allowed values: active, inactive.
data[].updatedAtstring (date-time)Yes
data[].variantIdstring (uuid) or nullYes
limitnumberYes
pagenumberYes
pagesnumberYes
totalnumberYes

Errors

StatusDescription
400The sort, filter, relation, or pagination query parameters were invalid.
401A valid client API key or OAuth2 bearer token is required.
403The authenticated principal lacks merchant read access.

SalesWatcherReviewHistory_findOne

Get one Sales Watcher review

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

Arguments

ArgumentInTypeRequiredDescription
idpathstringYes
relationquerystringNoThis endpoint does not support relation aliases. Supplying relation returns 400.

Result

Returns 200 with a JSON body.

FieldTypeRequiredDescription
confidencestring or nullNoAllowed values: low, medium, high.
expiresAtstring (date-time)YesWhen this derived review expires under the 90-day retention policy.
idstring (uuid)YesThe immutable Sales Watcher review id.
outcomestringYesAllowed values: clear, concern, inconclusive.
resourceIdstringYesThe safe opaque Flo resource id reviewed by the watcher.
resourceTypestringYesAllowed values: transaction, checkout_attempt, subscription, processed_event, invoice, client_webhook_event.
reviewedAtstring (date-time)Yes
safeLinksarray of stringYesRead-only Flo dashboard links available to the client.
severitystring or nullNoAllowed values: warning, critical, inconclusive.
summarystringYesBounded, server-rendered summary without raw evidence or model content.

Errors

StatusDescription
400The supplied path or list query is invalid.
401Client authentication is required.
404No active review with the requested id exists for this client.

SalesWatcherReviewHistory_list

List Sales Watcher review history

PolicyValue
OperationGET /v1/sales-watcher/reviews
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, expiresAt, reviewedAt. Default: reviewedAt DESC. Allowed values: createdAt, expiresAt, reviewedAt.
relationquerystringNoThis endpoint does not support relation aliases. Supplying relation returns 400.
confidencequerystringNoAI confidence recorded for the review, when an AI review ran. 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: low, medium, high.
expiresAtquerystring (date-time)NoReview retention expiry timestamp. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
idquerystring (uuid)NoImmutable Sales Watcher review 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.
outcomequerystringNoDerived Sales Watcher review outcome. 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: clear, concern, inconclusive.
resourceIdquerystringNoSafe opaque Flo resource id. 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.
resourceTypequerystringNoType of Flo resource reviewed. 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: transaction, checkout_attempt, subscription, processed_event, invoice, client_webhook_event.
reviewedAtquerystring (date-time)NoTimestamp at which the resource was reviewed. Equality filter. Pass without operator for exact match or pass any of the following operators: [gt] [gte] [lt] [lte].
severityquerystringNoHighest derived concern severity, when present. 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: warning, critical, inconclusive.

Result

Returns 200 with a JSON body.

FieldTypeRequiredDescription
dataarray of objectYes
data[].confidencestring or nullNoAllowed values: low, medium, high.
data[].expiresAtstring (date-time)YesWhen this derived review expires under the 90-day retention policy.
data[].idstring (uuid)YesThe immutable Sales Watcher review id.
data[].outcomestringYesAllowed values: clear, concern, inconclusive.
data[].resourceIdstringYesThe safe opaque Flo resource id reviewed by the watcher.
data[].resourceTypestringYesAllowed values: transaction, checkout_attempt, subscription, processed_event, invoice, client_webhook_event.
data[].reviewedAtstring (date-time)Yes
data[].safeLinksarray of stringYesRead-only Flo dashboard links available to the client.
data[].severitystring or nullNoAllowed values: warning, critical, inconclusive.
data[].summarystringYesBounded, server-rendered summary without raw evidence or model content.
limitnumberYes
pagenumberYes
pagesnumberYes
totalnumberYes

Errors

StatusDescription
400The supplied path or list query is invalid.
401Client authentication is required.

On this page