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
BearerAuth Token from POST /sign_in, sent as Authorization: Bearer <token>.
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"{ "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
BearerAuth Token from POST /sign_in, sent as Authorization: Bearer <token>.
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"{ "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
BearerAuth Token from POST /sign_in, sent as Authorization: Bearer <token>.
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 "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
BearerAuth Token from POST /sign_in, sent as Authorization: Bearer <token>.
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"{ "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
BearerAuth Token from POST /sign_in, sent as Authorization: Bearer <token>.
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"{ "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
BearerAuth Token from POST /sign_in, sent as Authorization: Bearer <token>.
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"{ "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
BearerAuth Token from POST /sign_in, sent as Authorization: Bearer <token>.
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 "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
BearerAuth Token from POST /sign_in, sent as Authorization: Bearer <token>.
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"{ "data": { "rail": "sepa", "amount": 1000, "fee": 51, "fixed": 1, "percentage": 0.05 }}