Skip to content

Fees

The donor always pays exactly the amount you asked for. There is no processing fee added at checkout, no “cover the fees?” toggle, no surcharge line item. If you mint a link for 50000 COP, the donor is charged COP 50.000. Everything on this page is deducted from what is collected — never charged on top of it.

Every cause carries two independent fields: fee_model says who bears the payment gateway’s own cost, and fee_percent says what Vaki’s commission is.

fee_modelWhat it means
plus_gateway_costsVaki’s commission and the gateway’s cost for each payment are deducted from the cause
all_inclusiveOnly the single fee_percent is deducted; Vaki absorbs the gateway’s cost

The platform default is plus_gateway_costs at 5% — that is what a cause created through POST /v1/vakis gets unless your agreement sets something else. An all_inclusive rate (typically 10%) is available by agreement, for partners who want one number and no per-method variance.

A COP 50.000 donation, under each model:

plus_gateway_costs (5%)all_inclusive (10%)
Donation50.00050.000
Vaki commission− 2.500− 5.000
Gateway cost (per method)− e.g. 1.000 (PSE)absorbed by Vaki
Credited to the cause≈ 46.50045.000

The gateway’s own cost varies by payment method — PSE charges a flat fee per transaction; card networks charge a percentage plus cross-border and FX spread where it applies. Under all_inclusive that variance is Vaki’s problem rather than the cause’s, which is the point of the model.

POST /v1/checkout_links returns the cause’s fee_percent on the link it mints:

{
"id": "chl_01J9Z4M2K7QF3B",
"amount": 50000,
"currency": "COP",
"fee_percent": 5
}

And a cause resource carries both fields:

{
"key": "clinicalaliga",
"fee_percent": 5,
"fee_model": "plus_gateway_costs"
}

Both fields are part of your commercial agreement, not per-request choices. They are set on the cause when it is created, and a key without the vakis:set_fee permission that asks for a different fee_percent or fee_model is answered with fee_percent_not_permitted or fee_model_not_permitted rather than given a silently adjusted cause. You cannot override either on a checkout link, deliberately: what applies is resolved server-side from the cause, never from anything a request or a URL carries. A donor editing a query string can change what they pay; they cannot change what anyone is charged for it.

Some fee-adjacent mechanics are outside this API and are not documented here because we would be guessing at your case:

  • Withdrawal mechanics — minimums, timing and any fees on getting money out of a cause to a bank account. Those live with the withdrawal flow in the Vaki dashboard today, and they will be documented on this site alongside the withdrawals endpoint, not before.
  • Taxes and tax receipts. Colombian tax treatment depends on the cause’s legal entity. For US donors, Vaki does not issue donor acknowledgments today — see Known limitations before you tell anyone what their gift does for their taxes. Ask us about your specific case rather than inferring it from a docs page.
  • Negotiated rates. If the standard rates do not work for your volume, that is a conversation with Vaki, not a field in the API.

If you need any of these in writing before you integrate, mail soporte@vaki.co and ask for the specific number. We would rather answer than have you build against an assumption.