Vendor Fees
Vendor fees are your markup per payment rail (`sepa`, `swift`, `ach`, `fedwire`, `trade`, `fps`, `chaps`), set as vault-wide defaults or per account.
- Fee formula:
fee = fixed + amount × percentage, withpercentageas a decimal fraction (0.05is 5%). - Your revenue: anything above the contractual floor for the rail is collected into your partner account.
- Hierarchy: an account-level fee overrides the vault default. Pass
effective=trueto get the fee that actually applies. - Limits:
percentagecan't exceed1.0(100%), and fees can't go below the contractual floor. - Estimates: preview the fee for a rail and amount before you send a payment.
/accounts/{account_id}/vendor_feesReturns the vendor fees set on an account: one fee when you pass rail, otherwise all of
them. With effective=true you get the fees that actually apply, falling back to the
vault defaults where the account has no override.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
Account ID
uuidQuery Parameters
Return only the fee for this rail.
Value in
- "sepa"
- "swift"
- "ach"
- "fedwire"
- "trade"
- "fps"
- "chaps"
Set to true to resolve vault defaults for rails the account doesn't override.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/accounts/e458c0ec-50e5-467f-8d84-74d7a5ede1fb/vendor_fees?rail=sepa&effective=true" \ -H "Authorization: <token>"{ "data": { "id": 1, "rail": "sepa", "enabled": true, "feeable_type": "Account", "feeable_id": "e458c0ec-50e5-467f-8d84-74d7a5ede1fb", "fixed": 1, "percentage": 0.05, "created_at": 1727265600, "updated_at": 1727265600 }}/accounts/{account_id}/vendor_feesRemoves the account's vendor fee for one rail. From then on the vault default applies, or the contractual floor if there's none.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
Account ID
uuidQuery Parameters
Rail to remove the fee for.
Value in
- "sepa"
- "swift"
- "ach"
- "fedwire"
- "trade"
- "fps"
- "chaps"
Response Body
application/json
application/json
application/json
curl -X DELETE "https://example.com/accounts/e458c0ec-50e5-467f-8d84-74d7a5ede1fb/vendor_fees?rail=sepa" \ -H "Authorization: <token>"{ "message": "Vendor fee for sepa removed successfully"}/accounts/{account_id}/vendor_feesCreates or updates vendor fees on an account. Send vendor_fee for one rail or
vendor_fees for several at once. percentage can't exceed 1.0 (100%), and fees can't
go below the contractual floor of the rail.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
Account ID
uuidQuery Parameters
Rail to set, as an alternative to vendor_fee.rail in the body.
Value in
- "sepa"
- "swift"
- "ach"
- "fedwire"
- "trade"
- "fps"
- "chaps"
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/accounts/e458c0ec-50e5-467f-8d84-74d7a5ede1fb/vendor_fees" \ -H "Authorization: <token>" \ -H "Content-Type: application/json" \ -d '{ "vendor_fee": { "rail": "sepa", "fixed": 1, "percentage": 0.005, "enabled": true } }'{ "data": { "id": 1, "rail": "sepa", "enabled": true, "feeable_type": "Account", "feeable_id": "e458c0ec-50e5-467f-8d84-74d7a5ede1fb", "fixed": 1, "percentage": 0.05, "created_at": 1727265600, "updated_at": 1727265600 }}/accounts/{account_id}/vendor_fees/estimateCalculates the fee for a payment of amount on rail from this account, using the fee that applies to it (account override, vault default or contractual floor).
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
Account ID
uuidQuery Parameters
Rail of the payment.
Value in
- "sepa"
- "swift"
- "ach"
- "fedwire"
- "trade"
- "fps"
- "chaps"
Amount of the payment.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/accounts/e458c0ec-50e5-467f-8d84-74d7a5ede1fb/vendor_fees/estimate?rail=sepa&amount=1000" \ -H "Authorization: <token>"{ "data": { "rail": "sepa", "amount": 1000, "fee": 51, "fixed": 1, "percentage": 0.05 }}/vaults/{vault_id}/vendor_feesReturns the default vendor fees of a vault, which apply to every account that doesn't override them. Pass rail for one fee.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
Vault ID
uuidQuery Parameters
Return only the fee for this rail.
Value in
- "sepa"
- "swift"
- "ach"
- "fedwire"
- "trade"
- "fps"
- "chaps"
Set to true to resolve the fee that applies.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/vaults/0197a670-90db-7bbc-9051-001e95aa6715/vendor_fees?rail=swift&effective=true" \ -H "Authorization: <token>"{ "data": { "id": 1, "rail": "sepa", "enabled": true, "feeable_type": "Account", "feeable_id": "e458c0ec-50e5-467f-8d84-74d7a5ede1fb", "fixed": 1, "percentage": 0.05, "created_at": 1727265600, "updated_at": 1727265600 }}/vaults/{vault_id}/vendor_feesRemoves the vault's default vendor fee for one rail. Accounts without their own override fall back to the contractual floor.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
Vault ID
uuidQuery Parameters
Rail to remove the fee for.
Value in
- "sepa"
- "swift"
- "ach"
- "fedwire"
- "trade"
- "fps"
- "chaps"
Response Body
application/json
application/json
application/json
curl -X DELETE "https://example.com/vaults/0197a670-90db-7bbc-9051-001e95aa6715/vendor_fees?rail=swift" \ -H "Authorization: <token>"{ "message": "Vendor fee for swift removed successfully"}/vaults/{vault_id}/vendor_feesCreates or updates the default vendor fees of a vault. They apply to every account without its own override. Send vendor_fee for one rail or vendor_fees for several.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
Vault ID
uuidQuery Parameters
Rail to set, as an alternative to vendor_fee.rail in the body.
Value in
- "sepa"
- "swift"
- "ach"
- "fedwire"
- "trade"
- "fps"
- "chaps"
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/vaults/0197a670-90db-7bbc-9051-001e95aa6715/vendor_fees" \ -H "Authorization: <token>" \ -H "Content-Type: application/json" \ -d '{ "vendor_fee": { "rail": "swift", "fixed": 25, "percentage": 0.001, "enabled": true } }'{ "data": { "id": 1, "rail": "sepa", "enabled": true, "feeable_type": "Account", "feeable_id": "e458c0ec-50e5-467f-8d84-74d7a5ede1fb", "fixed": 1, "percentage": 0.05, "created_at": 1727265600, "updated_at": 1727265600 }}/vaults/{vault_id}/vendor_fees/estimateCalculates the fee for a payment of amount on rail using the vault's default fee.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
Vault ID
uuidQuery Parameters
Rail of the payment.
Value in
- "sepa"
- "swift"
- "ach"
- "fedwire"
- "trade"
- "fps"
- "chaps"
Amount of the payment.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/vaults/0197a670-90db-7bbc-9051-001e95aa6715/vendor_fees/estimate?rail=swift&amount=1000" \ -H "Authorization: <token>"{ "data": { "rail": "sepa", "amount": 1000, "fee": 51, "fixed": 1, "percentage": 0.05 }}