Sales and transactions

Destructive

What it covers#

This group covers reading transactions and analysing your sales, plus modifying a transaction: capture, refund or reversal. The modification moves real money and is marked as sensitive.

Tools#

Sales summary and trends

Read only

tilopay_sales_summary

Computes sales metrics from the transactions: totals by currency, average ticket, approval rate, sales by day, weekday and hour, top customers, decline reasons and trend.

API operation: POST /api/v1/consultTransactions (y cálculo local) — see the operation page

Parameters

ParameterTypeRequiredDescription
startDatestringyesStart date "YYYY-MM-DD HH:mm:ss"
endDatestringyesEnd date "YYYY-MM-DD HH:mm:ss"
includeDeclinedboolean—Include declined transactions to measure the approval rate (true by default)
environmentstring (production | test)——
currencyarray<string>——

Returns

{ summary, trends, environmentNote }

summary carries range, timezoneNote, totalRows, payments {total, approved, declined, approvalRate}, refunds {total, approved, failed, successRate}, byCurrency per currency with payments, itemised costs (commission, iva_commission, cost, cost_iva, retention_iva, retention_rent, totalDeducted, taxWithholdings, pspCost), netToLiquidate, reconciles and reconciliationDelta; refunds; and netForPeriod. It also returns daily, sample, byWeekday, byHour, topCustomers, declineReasons, refundFailureReasons and transactionTypes. byWeekday, byHour and topCustomers come back null when the sample is too small (fewer than 30 rows or fewer than 5 distinct days). trends comes back null in that same case. Hours and days are in UTC.

Sales analyst agent

Read only

tilopay_analyze_sales

Agent that analyses the transactions in a date range and returns a natural-language report: performance, trends, seasonality, approval quality, risks and actionable recommendations.

API operation: POST /api/v1/consultTransactions (y análisis con modelo) — see the operation page

Parameters

ParameterTypeRequiredDescription
startDatestringyesStart date "YYYY-MM-DD HH:mm:ss"
endDatestringyesEnd date "YYYY-MM-DD HH:mm:ss"
questionstring—Specific question or focus for the analysis
environmentstring (production | test)——
currencyarray<string>——

Returns

{ report, summary, trends, environmentNote }

report is the natural-language report; summary and trends are the same ones from tilopay_sales_summary. When there are no transactions in the range it returns only a text saying so, with no structuredContent.

Did they pay me yet?

Read only

tilopay_find_payment

Checks whether a customer already paid: it reviews the Tilopay charges and, if the banking session is open, also the incoming entries of the bank account. Use it for questions like 'did Ana pay me yet?' or 'did the ₡25,000 payment come in?'.

Parameters

ParameterTypeRequiredDescription
namestring—Nombre del cliente (coincidencia parcial)
amountnumber—Monto del pago esperado
currencystring—Moneda del monto, ej. CRC o USD
hoursinteger—Horas hacia atrás a revisar (por defecto 24)
referencestring—Número de orden o referencia

Returns

List Tilopay transactions

Read only

tilopay_list_transactions

Queries Tilopay transactions in a date range. It can filter by currency, order number, customer email and environment.

API operation: POST /api/v1/consultTransactions — see the operation page

Parameters

ParameterTypeRequiredDescription
startDatestringyesStart date, e.g. "2026-08-01 00:00:00"
endDatestringyesEnd date, e.g. "2026-08-31 23:59:59"
statusstring (approved | declined | all)—approved = only approved, declined = only declined, all = all
sortstring (newest | oldest)—newest = most recent first
onlyAprovedboolean—Compatibility: false is equivalent to status: "all"
environmentstring (production | test)—Environment, production by default
currencyarray<string>—Currencies, e.g. ["USD","CRC"]
orderNumberstring—Filter by order number
emailstring—Filter by customer email
limitinteger—Maximum rows to return (100 by default, 500 maximum)

Returns

{ total, transactions[], environmentNote }

total = rows found before applying limit; transactions = the rows returned; environmentNote warns when the queried environment returned no rows.

Get one transaction

Read only

tilopay_get_transaction

Gets the detail of a specific Tilopay transaction from your order number.

API operation: POST /api/v1/consult — see the operation page

Parameters

ParameterTypeRequiredDescription
orderNumberstringyesOrder number of the transaction
merchantIdstring—Merchant ID (optional)

Returns

{ result }

Raw Tilopay API response under the `result` key.

Capture, refund or reverse

Sensitive

tilopay_modify_transaction

Modifies a Tilopay transaction: capture, refund or reversal for the given amount. The amount can never exceed that of the original sale: if the user asks for more, tell them the real sale amount and ask whether to refund that amount or part of it; do not ask for confirmation of a larger amount. It only refunds approved sales, never an order that is already a refund (it starts with «Re-»). When Tilopay confirms the refund, a text receipt ready to forward to the customer is generated. Sensitive operation: it affects real money and requires a second factor. Call it first without `confirmation_code`: a 6-digit code is sent to the merchant's email and the response includes `requires_confirmation`. Repeat the same call, with the same parameters, adding `confirmation_code`. Report the result exactly as the tool returns it (state): if it is pending or not confirmed, never say the refund was already made.

API operation: POST /api/v1/processModification — see the operation page

Parameters

ParameterTypeRequiredDescription
orderNumberstringyesOrder number of the transaction
actionstring (capture | refund | reversal)yesType of modification
amountnumberyesAmount to modify, greater than zero
currencystring—Moneda del movimiento, ej. CRC o USD
client_namestring—Nombre del cliente, para el comprobante
client_emailstring—Correo del cliente, para el comprobante
confirmation_codestring—6-digit code received by email to authorize the operation

Returns

{ result }

Raw Tilopay API response under the `result` key.

Refund history

Read only

tilopay_refunds_list

The merchant's refunds. pending=true returns the refunds pending processing; otherwise, the history. Query only: to refund use tilopay_modify_transaction.

Parameters

ParameterTypeRequiredDescription
pendingboolean—Solo pendientes
pageinteger—Página (por defecto 1)
limitinteger—Registros por página (por defecto 20)
searchstring—Texto a buscar

Returns

Scheduled cash close

Write

tilopay_cash_close

Daily cash close by WhatsApp: the day's sales per currency, declines grouped by reason and the next Tilopay settlement. Action 'get' shows the configuration; 'set' changes it (enabled, time_of_day 'HH:mm' in local time, days 0=Sunday…6=Saturday; 'Monday to Saturday' = [1,2,3,4,5,6]); 'preview' builds today's close right now. For 'turn off the close' use set with enabled=false. Only the owner can configure it.

Parameters

ParameterTypeRequiredDescription
actionstring (get | set | preview)yes—
enabledboolean——
time_of_daystring—Hora local 'HH:mm' (24 h). 8 pm = '20:00'
daysarray<integer>—0=domingo … 6=sábado

Returns

Last verified: 2026-10-07 · Owner: equipo-integraciones

View as raw Markdown