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 cc71a476426ea531d369de5441cde85ab81ab52c9764406e5f09501857d7ed32.

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, pre_dispute_alert_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, pre_dispute_alert_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.

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_clear

Revert the authenticated client's future dunning campaigns to platform defaults

PolicyValue
OperationDELETE /v1/settings/dunning-policy
Classmutating
Riskhigh
Confirmationrequired
Retrysame-idempotency-key
Rate-limit tierrestricted
Rolesowner, admin
Scopesmcp:write

Arguments

This tool takes no arguments.

Result

Returns 204 with no body.

Errors

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

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.

DunningPolicy_update

Activate a new revision of the authenticated client's subscription dunning policy

PolicyValue
OperationPATCH /v1/settings/dunning-policy
Classmutating
Riskhigh
Confirmationrequired
Retrysame-idempotency-key
Rate-limit tierrestricted
Rolesowner, admin
Scopesmcp:write

Arguments

ArgumentInTypeRequiredDescription
cadencebodyobjectNo
cadence.daybodyobjectNo
cadence.day.maxScheduledRetriesbodynumber or nullNoMinimum: 1. Maximum: 8.
cadence.day.retryWindowHoursbodynumber or nullNoMinimum: 1. Maximum: 1440.
cadence.monthbodyobjectNo
cadence.month.maxScheduledRetriesbodynumber or nullNoMinimum: 1. Maximum: 8.
cadence.month.retryWindowHoursbodynumber or nullNoMinimum: 1. Maximum: 1440.
cadence.weekbodyobjectNo
cadence.week.maxScheduledRetriesbodynumber or nullNoMinimum: 1. Maximum: 8.
cadence.week.retryWindowHoursbodynumber or nullNoMinimum: 1. Maximum: 1440.
cadence.yearbodyobjectNo
cadence.year.maxScheduledRetriesbodynumber or nullNoMinimum: 1. Maximum: 8.
cadence.year.retryWindowHoursbodynumber or nullNoMinimum: 1. Maximum: 1440.
eligibleDeclineReasonsbodyarray of string or nullNoAllowed 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. Minimum items: 1.
permittedRetryTimesUtcbodyarray of string or nullNoMinimum items: 1.

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
400The override is unsafe, contradictory, or malformed.
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. Always 0 for a metered price, which is charged unitPrice per unit of usage.
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[].unitPricestring or nullYesExact unit price of a metered price as a decimal string (up to 6 places); null for flat prices.
data[].updatedAtstring (date-time)Yes
data[].usageTypestringYesflat charges amount per charge; metered is a metered item charged unitPrice per unit. Allowed values: flat, metered.
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.

On this page