Fluveo MCP lists the tools below, and an agent reaches the API operations further down through them. A tool call sends the tool's name and an arguments object that matches its input. Fluveo MCP shows how to add the server to a client, and Authentication covers agent keys.
Tools#
The table groups the tools by what they act on. The server lists them by name. A key sees only the tools its permissions allow, so a key without Read on Account gets no get_account_info in its list.
| Tool | Group | What it does | Key needs |
|---|---|---|---|
get_account_info | Account | Returns the store behind the key and what the key may do on each resource. Call it first, to know which store the agent acts on. | rak_account_read |
fetch_fluveo_doc | Docs | Returns one page of these docs as Markdown, by its path or by its address on the docs site. | Nothing |
search_fluveo_docs | Docs | Finds the pages of these docs, guides and API reference both, that best answer a question. | Nothing |
fluveo_api_details | API | Describes one API operation by the id that fluveo_api_search returned. It reads the server's own copy of the API contract and calls no API. | Nothing |
fluveo_api_read | API | Runs one GET operation of the API with the agent's own key and returns the store's data. It runs only a GET operation whose available is true. | Nothing |
fluveo_api_search | API | Finds API operations from what the agent wants to do and the resource it acts on. It reads the server's own copy of the API contract and calls no API. | Nothing |
fluveo_api_write | API | Runs one POST or DELETE operation of the API with the agent's own key, such as creating a customer or a refund. It runs only an operation whose available is true. An operation that needs approval runs only after a person approves it in the Dashboard. | Nothing |
cancel_payment | Payments | Cancels a payment that is not paid or captured yet, such as one in requires_capture, and releases the amount held on the buyer's card. It writes. Its operation needs approval for an agent key: a person approves each cancellation in the Dashboard, within 15 minutes. | rak_payment_intent_write |
capture_payment | Payments | Takes the amount a payment holds on the buyer's card, so the store is paid: all of it, or amount_to_capture, and the rest of the hold is released. It works on a PaymentIntent in requires_capture, one made with capture_method manual. It writes. Its operation needs approval for an agent key: a person approves each capture in the Dashboard, within 15 minutes. | rak_payment_intent_write |
list_payments | Payments | Lists the store's payments, newest first, at most 25 per call. Each is a PaymentIntent, one per payment a buyer makes or tries, with its amount, currency, status and payment method. It only reads. | rak_payment_intent_read |
retrieve_payment | Payments | Returns one payment by its PaymentIntent id: its amount, the amount still held and the amount received, its currency, status, customer, payment method, latest charge and metadata. It only reads. | rak_payment_intent_read |
search_payments | Payments | Finds the store's payments that match a query, newest first, at most 25 per call. A query joins clauses of field:'value' with AND, or with OR, never both. The fields are status, amount, currency, customer, created and metadata['key'], and amount and created also take >, >=, < and <=. It only reads. | rak_payment_intent_read |
create_refund | Refunds | Gives the buyer back all or part of a payment that succeeded, by its PaymentIntent or its charge. It writes and moves money, so a person approves each refund in the Dashboard before it runs, within 15 minutes. Before it asks for that approval, it reads the payment's charges with the agent's key. When that read answers, it refuses at once, with no refund sent and no approval made, if the payment has nothing captured, if the amount is above what is left to refund, or if no amount is given and nothing is left. A read that fails, or that the key may not make, refuses nothing. That read only helps the agent: the API decides every refund. A Boleto payment cannot be refunded, and the API answers an error. | rak_charge_write |
list_refunds | Refunds | Lists the store's refunds, newest first, at most 25 per call, each with its amount, currency, status and the payment it belongs to. It only reads. | rak_charge_read |
retrieve_refund | Refunds | Returns one refund by its id: its amount, currency, status, reason and the payment it belongs to. It only reads. | rak_charge_read |
create_customer | Customers | Creates a customer of the store, to keep a buyer's contact details and link their payments, checkout sessions and refunds. It writes. Its operation is allowed for an agent key, so it runs at once, with no approval. | rak_customer_write |
list_customers | Customers | Lists the store's customers, newest first, at most 25 per call. It only reads. | rak_customer_read |
retrieve_customer | Customers | Returns one customer by its id, with its name, email, phone, address and metadata. It only reads. | rak_customer_read |
update_customer | Customers | Changes the fields given of one customer and keeps the rest. It writes. Its operation is allowed for an agent key, so it runs at once, with no approval. | rak_customer_write |
create_checkout_session | Checkout | Creates a Fluveo payment page for one purchase. The buyer opens the session's url and pays there with a method the store accepts, and types any card data on that page, never in the call. It writes. Its operation is allowed for an agent key, so it runs at once, with no approval. | rak_checkout_session_write |
create_payment_link | Checkout | Creates a link anyone can open to pay for the same items on a Fluveo payment page, as many times as the link stays active. It writes. Its operation is allowed for an agent key, so it runs at once, with no approval. | rak_payment_links_write |
get_balance | Store data | Returns the store's balance in test mode: what is available to pay out and what is still pending, per currency. It only reads. | rak_balance_read |
list_disputes | Store data | Lists the store's disputes, newest first, at most 25 per call. A dispute is a buyer contesting a payment with their bank. It only reads. | rak_dispute_read |
list_events | Store data | Lists what happened on the store in the last 30 days, newest first, at most 25 per call. Each event names its type, such as charge.succeeded, and carries the object as it was then. It only reads. | rak_event_read |
list_webhook_endpoints | Store data | Lists the URLs the store sends its events to, with the event types each receives and whether it is enabled, at most 25 per call. It only reads. | rak_webhook_read |
retrieve_dispute | Store data | Returns one dispute by its id: its amount, reason and status, the charge it contests, the deadline for evidence and the evidence sent so far. It only reads. | rak_dispute_read |
retrieve_event | Store data | Returns one event by its id: its type, when it happened, and the object as it was then, with the fields that changed in previous_attributes. It only reads. | rak_event_read |
retrieve_webhook_endpoint | Store data | Returns one webhook endpoint by its id: its URL, the event types it receives and whether it is enabled. It only reads. | rak_webhook_read |
get_account_info#
Returns the store behind the key and what the key may do on each resource. Call it first, to know which store the agent acts on.
It takes no arguments. Send an empty arguments object.
{
"name": "get_account_info",
"arguments": {}
}It answers the store's account_id, livemode (always false), country, default_currency, charges_enabled, payouts_enabled, the key's permissions, the dashboard_api_keys_link and a request_id, with the store's display name inside untrusted_data.
fetch_fluveo_doc#
Returns one page of these docs as Markdown, by its path or by its address on the docs site.
A docs path such as
/payments/pix, or a page address thatsearch_fluveo_docsreturned.
{
"name": "fetch_fluveo_doc",
"arguments": {
"path": "/payments/pix"
}
}It answers the page's url and title, its Markdown in content, and truncated, which is true when the page passed 60 KB and was cut there.
search_fluveo_docs#
Finds the pages of these docs, guides and API reference both, that best answer a question.
What to find in the docs, such as
refund a Pix payment. At most 1,000 characters.How many pages to return, from 1 to 10. The default is 5.
{
"name": "search_fluveo_docs",
"arguments": {
"question": "refund a Pix payment"
}
}It answers the best pages in results, each with its title, url, section, description and the passage that matches best in content.
fluveo_api_details#
Describes one API operation by the id that fluveo_api_search returned. It reads the server's own copy of the API contract and calls no API.
An operation id from
fluveo_api_search, such asget-v1-customers.
{
"name": "fluveo_api_details",
"arguments": {
"operation_id": "get-v1-customers"
}
}It answers the operation's method, path, summary, description, its path, query and body parameters, the response_object, access, permission, policy, window, llm_context, available and the errors_url of the errors page.
fluveo_api_read#
Runs one GET operation of the API with the agent's own key and returns the store's data. It runs only a GET operation whose available is true.
The id of a
GEToperation fromfluveo_api_search, such asget-v1-customers-customer.The operation's parameters by name, as
fluveo_api_detailslists them: each path parameter, such ascustomer, and any query parameter, such aslimitorstarting_after. Alimitabove 25 is sent as 25. Never card data.
{
"name": "fluveo_api_read",
"arguments": {
"operation_id": "get-v1-customers-customer",
"parameters": {
"customer": "cus_..."
}
}
}It answers the operation_id, the API's HTTP status and request_id, limit_capped, and the API's answer inside untrusted_data, with secrets withheld and, in a list, customer names, emails, phones, addresses and tax ids masked. When the key lacks the operation's permission, the tool error carries the API's 403, whose message names the permission.
fluveo_api_search#
Finds API operations from what the agent wants to do and the resource it acts on. It reads the server's own copy of the API contract and calls no API.
What to do, such as
create,listorretrieve. At most 200 characters.What it acts on, such as
refund,customerorpayment intent. At most 200 characters.How many operations to return, from 1 to 20. The default is 5.
{
"name": "fluveo_api_search",
"arguments": {
"intent": "list",
"resource": "refund",
"limit": 5
}
}It answers the api_version and, in data, the best operations, each with its id, method, path, summary, path_params, access, permission, policy, llm_context and available.
fluveo_api_write#
Runs one POST or DELETE operation of the API with the agent's own key, such as creating a customer or a refund. It runs only an operation whose available is true. An operation that needs approval runs only after a person approves it in the Dashboard.
The id of a
POSTorDELETEoperation fromfluveo_api_search, such aspost-v1-customersorpost-v1-refunds.The operation's path and body parameters together, by name, as
fluveo_api_detailslists them: the object's id for a path parameter, such asidfor/v1/products/{id}, and each body parameter. A nested field is JSON, such as an object formetadataor a list forline_items. Amounts are integers in the currency's smallest unit. An empty object or list is refused, and an empty string clears a field. Never card data.Leave it out on the first call. When an answer gives
human_confirmation, send it back unchanged on the next call, with the sameoperation_idandparameters. It holds one field,approval_token.
{
"name": "fluveo_api_write",
"arguments": {
"operation_id": "post-v1-refunds",
"parameters": {
"payment_intent": "pi_...",
"amount": 500
}
}
}It answers the operation_id, the API's HTTP status and request_id, and the API's answer inside untrusted_data, with secrets withheld. When the operation needs a person, nothing runs: the answer gives approval with status required, the approval_request id, the approval_url of the Dashboard and expires_at, then human_confirmation and an instruction. Agent approvals shows the retry. When the API gives no usable answer, the tool error api_unavailable gives a human_confirmation that sends the same request again, never a second one. When the key lacks the operation's permission, the tool error carries the API's 403.
cancel_payment#
Cancels a payment that is not paid or captured yet, such as one in requires_capture, and releases the amount held on the buyer's card. It writes. Its operation needs approval for an agent key: a person approves each cancellation in the Dashboard, within 15 minutes.
The PaymentIntent's id,
pi_..., fromlist_paymentsorsearch_payments.Why it is cancelled, kept on the PaymentIntent:
duplicate,fraudulent,requested_by_customerorabandoned.Leave it out on the first call. When an answer gives
human_confirmation, send it back unchanged on the next call, with the same arguments. It holds one field,approval_token.
{
"name": "cancel_payment",
"arguments": {
"payment_intent": "pi_...",
"cancellation_reason": "requested_by_customer"
}
}It answers like fluveo_api_write. The first call cancels nothing: the answer gives approval with status required, the approval_request id, the approval_url of the Dashboard and expires_at, then human_confirmation and an instruction. Once a person approves, call cancel_payment again with the same arguments and that human_confirmation: it answers the operation_id post-v1-payment-intents-intent-cancel, the API's HTTP status and request_id, and the PaymentIntent, now canceled, inside untrusted_data. When the person denies it, nothing is cancelled.
capture_payment#
Takes the amount a payment holds on the buyer's card, so the store is paid: all of it, or amount_to_capture, and the rest of the hold is released. It works on a PaymentIntent in requires_capture, one made with capture_method manual. It writes. Its operation needs approval for an agent key: a person approves each capture in the Dashboard, within 15 minutes.
The PaymentIntent's id,
pi_..., in statusrequires_capture, fromlist_paymentsorsearch_payments.How much to capture, a whole number in the currency's smallest unit, so 2000 is 20.00, at most the amount the payment holds. Left out, all of it.
Leave it out on the first call. When an answer gives
human_confirmation, send it back unchanged on the next call, with the same arguments. It holds one field,approval_token.
{
"name": "capture_payment",
"arguments": {
"payment_intent": "pi_...",
"amount_to_capture": 2000
}
}It answers like fluveo_api_write. The first call captures nothing: the answer gives approval with status required, the approval_request id, the approval_url of the Dashboard and expires_at, then human_confirmation and an instruction. Once a person approves, call capture_payment again with the same arguments and that human_confirmation: it answers the operation_id post-v1-payment-intents-intent-capture, the API's HTTP status and request_id, and the PaymentIntent, now succeeded, inside untrusted_data. A further retry answers the same capture, never a second one. When the person denies it, nothing is captured and the payment stays in requires_capture.
list_payments#
Lists the store's payments, newest first, at most 25 per call. Each is a PaymentIntent, one per payment a buyer makes or tries, with its amount, currency, status and payment method. It only reads.
Only the payments of this customer id,
cus_....When the payment was made, in Unix seconds: any of
gt,gte,ltandlte, each a whole number.How many payments to return. Above 25 it is read as 25, and
limit_cappedsays so.The last PaymentIntent id of a page,
pi_...: the list goes on after it.The first PaymentIntent id of a page,
pi_...: the list goes back before it.
{
"name": "list_payments",
"arguments": {
"customer": "cus_...",
"limit": 10
}
}It answers like fluveo_api_read: the operation_id get-v1-payment-intents, the API's HTTP status and request_id, limit_capped, and the API's list inside untrusted_data, with has_more for the next page.
retrieve_payment#
Returns one payment by its PaymentIntent id: its amount, the amount still held and the amount received, its currency, status, customer, payment method, latest charge and metadata. It only reads.
The PaymentIntent's id,
pi_..., fromlist_payments,search_paymentsor an event.
{
"name": "retrieve_payment",
"arguments": {
"payment_intent": "pi_..."
}
}It answers like fluveo_api_read: the operation_id get-v1-payment-intents-intent, the API's HTTP status and request_id, and the PaymentIntent inside untrusted_data.
search_payments#
Finds the store's payments that match a query, newest first, at most 25 per call. A query joins clauses of field:'value' with AND, or with OR, never both. The fields are status, amount, currency, customer, created and metadata['key'], and amount and created also take >, >=, < and <=. It only reads.
The search query, such as
status:'succeeded' AND amount>5000ormetadata['order']:'1234'.How many payments to return. Above 25 it is read as 25, and
limit_cappedsays so.The
next_pageof the previous answer: the search goes on from there.
{
"name": "search_payments",
"arguments": {
"query": "status:'requires_capture' AND currency:'brl'",
"limit": 10
}
}It answers like fluveo_api_read: the operation_id get-v1-payment-intents-search, the API's HTTP status and request_id, limit_capped, and the matching payments inside untrusted_data, with has_more and next_page for the next page.
create_refund#
Gives the buyer back all or part of a payment that succeeded, by its PaymentIntent or its charge. It writes and moves money, so a person approves each refund in the Dashboard before it runs, within 15 minutes. Before it asks for that approval, it reads the payment's charges with the agent's key. When that read answers, it refuses at once, with no refund sent and no approval made, if the payment has nothing captured, if the amount is above what is left to refund, or if no amount is given and nothing is left. A read that fails, or that the key may not make, refuses nothing. That read only helps the agent: the API decides every refund. A Boleto payment cannot be refunded, and the API answers an error.
The PaymentIntent of the payment,
pi_.... Send eitherpayment_intentorcharge, never both.The charge of the payment:
ch_...for a card,py_...for a Pix or a Boleto.How much to give back, a whole number in the currency's smallest unit, so 400 is 4.00. It is at most what was captured less what was already refunded. Left out, all that is left goes back.
Why the payment is refunded:
duplicate,fraudulentorrequested_by_customer.Key-value pairs of the store's own, such as
{"order": "1234"}. Never card data.Leave it out on the first call. When an answer gives
human_confirmation, send it back unchanged on the next call, with the same arguments. It holds one field,approval_token.
{
"name": "create_refund",
"arguments": {
"payment_intent": "pi_...",
"amount": 400,
"reason": "requested_by_customer"
}
}The first call runs nothing: it answers approval with status required, the approval_request id, the approval_url of the Dashboard and expires_at, then human_confirmation and an instruction. Show the URL to the person, and once they approve it, call create_refund again with the same arguments and that human_confirmation. That call answers like fluveo_api_write: the operation_id post-v1-refunds, the API's HTTP status and request_id, and the refund, re_..., inside untrusted_data. The same call again answers the same refund, never a second one. When the refund cannot fit, the tool error refund_exceeds_refundable says in its message that nothing was captured, or what is left to refund, names in param the amount or the payment's argument when one of them is at fault, and has no status, since no refund request reached the API.
list_refunds#
Lists the store's refunds, newest first, at most 25 per call, each with its amount, currency, status and the payment it belongs to. It only reads.
Only the refunds of this PaymentIntent id,
pi_....Only the refunds of this charge id,
ch_...orpy_....When the refund was made, in Unix seconds: any of
gt,gte,ltandlte, each a whole number.How many refunds to return. Above 25 it is read as 25, and
limit_cappedsays so.The last refund id of a page,
re_...: the list goes on after it.The first refund id of a page,
re_...: the list goes back before it.
{
"name": "list_refunds",
"arguments": {
"payment_intent": "pi_...",
"limit": 10
}
}It answers like fluveo_api_read: the operation_id get-v1-refunds, the API's HTTP status and request_id, limit_capped, and the API's list inside untrusted_data, with has_more for the next page.
retrieve_refund#
Returns one refund by its id: its amount, currency, status, reason and the payment it belongs to. It only reads.
The refund's id,
re_..., fromcreate_refundorlist_refunds.
{
"name": "retrieve_refund",
"arguments": {
"refund": "re_..."
}
}It answers like fluveo_api_read: the operation_id get-v1-refunds-refund, the API's HTTP status and request_id, and the refund inside untrusted_data.
create_customer#
Creates a customer of the store, to keep a buyer's contact details and link their payments, checkout sessions and refunds. It writes. Its operation is allowed for an agent key, so it runs at once, with no approval.
The customer's full name or business name.
The customer's email address.
The customer's phone number, with the country code.
A note about the customer, shown in the Dashboard.
The customer's address: any of
line1,line2,city,state,postal_codeandcountry, a two-letter code.Key-value pairs of the store's own, such as
{"order": "1234"}. Never card data.Leave it out on the first call. When an answer gives
human_confirmation, send it back unchanged on the next call, with the same arguments. It holds one field,approval_token.
{
"name": "create_customer",
"arguments": {
"name": "Jenny Rosen",
"email": "jenny@example.com",
"metadata": {
"order": "1234"
}
}
}It answers like fluveo_api_write: the operation_id post-v1-customers, the API's HTTP status and request_id, and the new customer, cus_..., inside untrusted_data, with secrets withheld. The server sends the request with an Idempotency-Key it draws for the call. When the API gives no usable answer, the tool error api_unavailable gives a human_confirmation: call create_customer again with the same arguments and that human_confirmation, and the same request is sent again, never a second one.
list_customers#
Lists the store's customers, newest first, at most 25 per call. It only reads.
Only the customers with exactly this email.
When the customer was made, in Unix seconds: any of
gt,gte,ltandlte, each a whole number.How many customers to return. Above 25 it is read as 25, and
limit_cappedsays so.The last customer id of a page,
cus_...: the list goes on after it.The first customer id of a page,
cus_...: the list goes back before it.
{
"name": "list_customers",
"arguments": {
"email": "jenny@example.com",
"limit": 10
}
}It answers like fluveo_api_read: the operation_id get-v1-customers, the API's HTTP status and request_id, limit_capped, and the API's list inside untrusted_data, with has_more for the next page. Each customer's name, email, phone, address, shipping and tax ids are masked in the list, and retrieve_customer shows them. Metadata and descriptions are not masked: they arrive as the store's data, inside untrusted_data.
retrieve_customer#
Returns one customer by its id, with its name, email, phone, address and metadata. It only reads.
The customer's id,
cus_..., fromlist_customersorcreate_customer.
{
"name": "retrieve_customer",
"arguments": {
"customer": "cus_..."
}
}It answers like fluveo_api_read: the operation_id get-v1-customers-customer, the API's HTTP status and request_id, and the customer inside untrusted_data, unmasked.
update_customer#
Changes the fields given of one customer and keeps the rest. It writes. Its operation is allowed for an agent key, so it runs at once, with no approval.
The customer's id,
cus_....The customer's new full name or business name. An empty string clears it.
The customer's new email address. An empty string clears it.
The customer's new phone number, with the country code. An empty string clears it.
A new note about the customer. An empty string clears it.
The fields of the address to change: any of
line1,line2,city,state,postal_codeandcountry, a two-letter code.Key-value pairs to set. A key with an empty string removes it. Never card data.
Leave it out on the first call. When an answer gives
human_confirmation, send it back unchanged on the next call, with the same arguments. It holds one field,approval_token.
{
"name": "update_customer",
"arguments": {
"customer": "cus_...",
"phone": "+15555550123"
}
}It answers like fluveo_api_write: the operation_id post-v1-customers-customer, the API's HTTP status and request_id, and the customer as it is now inside untrusted_data, with secrets withheld. When the API gives no usable answer, the tool error api_unavailable gives a human_confirmation: call update_customer again with the same arguments and that human_confirmation, and the same request is sent again.
create_checkout_session#
Creates a Fluveo payment page for one purchase. The buyer opens the session's url and pays there with a method the store accepts, and types any card data on that page, never in the call. It writes. Its operation is allowed for an agent key, so it runs at once, with no approval.
paymenttakes a payment now, andsetupsaves a payment method for later without charging. Left out, it ispayment.What the buyer pays for, in mode
payment: a list of{quantity, price}, with a price id, or{quantity, price_data: {currency, unit_amount, product_data: {name}}}.unit_amountis a whole number in the currency's smallest unit, so 2500 is 25.00.Where the page sends the buyer after paying.
{CHECKOUT_SESSION_ID}in it is replaced by the session's id.Where the page sends a buyer who goes back without paying.
A customer id of the store,
cus_.... Its email fills the page.The buyer's email, filled on the page, when no
customeris given.alwaysmakes a customer from what the buyer enters, andif_requiredmakes one only when needed.Leave it out on the first call. When an answer gives
human_confirmation, send it back unchanged on the next call, with the same arguments. It holds one field,approval_token.
{
"name": "create_checkout_session",
"arguments": {
"line_items": [
{
"quantity": 1,
"price_data": {
"currency": "usd",
"unit_amount": 2500,
"product_data": {
"name": "T-shirt"
}
}
}
],
"success_url": "https://shop.example.com/thanks?session={CHECKOUT_SESSION_ID}"
}
}It answers like fluveo_api_write: the operation_id post-v1-checkout-sessions, the API's HTTP status and request_id, and the session, cs_test_..., inside untrusted_data, with its url, the page to send the buyer to. The server sends the request with an Idempotency-Key it draws for the call. When the API gives no usable answer, the tool error api_unavailable gives a human_confirmation: call create_checkout_session again with the same arguments and that human_confirmation, and the same request is sent again, never a second one.
create_payment_link#
Creates a link anyone can open to pay for the same items on a Fluveo payment page, as many times as the link stays active. It writes. Its operation is allowed for an agent key, so it runs at once, with no approval.
What a buyer pays for: a list of
{quantity, price}, with a price id, or{quantity, price_data: {currency, unit_amount, product_data: {name}}}.unit_amountis a whole number in the currency's smallest unit, so 2500 is 25.00.Leave it out on the first call. When an answer gives
human_confirmation, send it back unchanged on the next call, with the same arguments. It holds one field,approval_token.
{
"name": "create_payment_link",
"arguments": {
"line_items": [
{
"quantity": 1,
"price_data": {
"currency": "usd",
"unit_amount": 2500,
"product_data": {
"name": "T-shirt"
}
}
}
]
}
}It answers like fluveo_api_write: the operation_id post-v1-payment-links, the API's HTTP status and request_id, and the link, plink_..., inside untrusted_data, with its url to share. The server sends the request with an Idempotency-Key it draws for the call. When the API gives no usable answer, the tool error api_unavailable gives a human_confirmation: call create_payment_link again with the same arguments and that human_confirmation, and the same request is sent again, never a second one.
get_balance#
Returns the store's balance in test mode: what is available to pay out and what is still pending, per currency. It only reads.
It takes no arguments. Send an empty arguments object.
{
"name": "get_balance",
"arguments": {}
}It answers like fluveo_api_read: the operation_id get-v1-balance, the API's HTTP status and request_id, and the API's balance object inside untrusted_data.
list_disputes#
Lists the store's disputes, newest first, at most 25 per call. A dispute is a buyer contesting a payment with their bank. It only reads.
Only the disputes of this charge id,
ch_....Only the disputes of this PaymentIntent id,
pi_....When the dispute opened, in Unix seconds: any of
gt,gte,ltandlte, each a whole number.How many disputes to return. Above 25 it is read as 25, and
limit_cappedsays so.The last dispute id of a page,
du_...: the list goes on after it.The first dispute id of a page,
du_...: the list goes back before it.
{
"name": "list_disputes",
"arguments": {
"payment_intent": "pi_...",
"limit": 10
}
}It answers like fluveo_api_read: the operation_id get-v1-disputes, the API's HTTP status and request_id, limit_capped, and the API's list inside untrusted_data, with has_more for the next page. Evidence and buyer text arrive as the store's data, inside untrusted_data.
list_events#
Lists what happened on the store in the last 30 days, newest first, at most 25 per call. Each event names its type, such as charge.succeeded, and carries the object as it was then. It only reads.
Only events of this type, such as
charge.succeeded. A*matches the rest of a name, as incharge.*.Only events of any of these types, up to 20, with no
*. Send eithertypeortypes.When the event happened, in Unix seconds: any of
gt,gte,ltandlte, each a whole number.truefor events every webhook endpoint received,falsefor events with a delivery still failing.How many events to return. Above 25 it is read as 25, and
limit_cappedsays so.The last event id of a page,
evt_...: the list goes on after it.The first event id of a page,
evt_...: the list goes back before it.
{
"name": "list_events",
"arguments": {
"type": "charge.*",
"limit": 10
}
}It answers like fluveo_api_read: the operation_id get-v1-events, the API's HTTP status and request_id, limit_capped, and the API's list inside untrusted_data, with has_more for the next page.
list_webhook_endpoints#
Lists the URLs the store sends its events to, with the event types each receives and whether it is enabled, at most 25 per call. It only reads.
How many endpoints to return. Above 25 it is read as 25, and
limit_cappedsays so.The last endpoint id of a page,
we_...: the list goes on after it.The first endpoint id of a page,
we_...: the list goes back before it.
{
"name": "list_webhook_endpoints",
"arguments": {
"limit": 10
}
}It answers like fluveo_api_read: the operation_id get-v1-webhook-endpoints, the API's HTTP status and request_id, limit_capped, and the API's list inside untrusted_data, with has_more for the next page. Signing secrets are withheld. The Dashboard shows them.
retrieve_dispute#
Returns one dispute by its id: its amount, reason and status, the charge it contests, the deadline for evidence and the evidence sent so far. It only reads.
The dispute's id,
du_..., fromlist_disputesor an event.
{
"name": "retrieve_dispute",
"arguments": {
"dispute": "du_..."
}
}It answers like fluveo_api_read: the operation_id get-v1-disputes-dispute, the API's HTTP status and request_id, and the dispute inside untrusted_data. Evidence and buyer text arrive as the store's data, inside untrusted_data.
retrieve_event#
Returns one event by its id: its type, when it happened, and the object as it was then, with the fields that changed in previous_attributes. It only reads.
The event's id,
evt_..., fromlist_eventsor a webhook delivery.
{
"name": "retrieve_event",
"arguments": {
"event": "evt_..."
}
}It answers like fluveo_api_read: the operation_id get-v1-events-id, the API's HTTP status and request_id, and the event inside untrusted_data.
retrieve_webhook_endpoint#
Returns one webhook endpoint by its id: its URL, the event types it receives and whether it is enabled. It only reads.
The endpoint's id,
we_..., fromlist_webhook_endpoints.
{
"name": "retrieve_webhook_endpoint",
"arguments": {
"webhook_endpoint": "we_..."
}
}It answers like fluveo_api_read: the operation_id get-v1-webhook-endpoints-webhook-endpoint, the API's HTTP status and request_id, and the endpoint inside untrusted_data. Its signing secret is withheld. The Dashboard shows it.
Operations#
Every operation of the API, with the permission a restricted key needs to call it and the policy for an agent key. The API applies that policy to each call an agent key makes. An allowed operation runs at once. An operation that needs approval runs only after a person approves that one request in the Dashboard, and the approval expires after the time the table gives. A denied operation always answers 403. Through this server, fluveo_api_read runs the allowed GET operations. fluveo_api_write runs the allowed POST and DELETE operations, and those that need approval once a person approves the request. It refuses a denied operation before the request reaches the API. fluveo_api_search and fluveo_api_details list every operation, each with available set to false when this server does not run it. Approvals covers what a person sees and approves.