Depa LogoDocsv1
API Reference

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, with percentage as a decimal fraction (0.05 is 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=true to get the fee that actually applies.
  • Limits: percentage can't exceed 1.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.
GET/accounts/{account_id}/vendor_fees

Returns 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
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

account_id*string

Account ID

Formatuuid

Query Parameters

rail?string

Return only the fee for this rail.

Value in

  • "sepa"
  • "swift"
  • "ach"
  • "fedwire"
  • "trade"
  • "fps"
  • "chaps"
effective?boolean

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  }}
DELETE/accounts/{account_id}/vendor_fees

Removes 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
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

account_id*string

Account ID

Formatuuid

Query Parameters

rail*string

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"}
PUT/accounts/{account_id}/vendor_fees

Creates 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
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

account_id*string

Account ID

Formatuuid

Query Parameters

rail?string

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  }}
GET/accounts/{account_id}/vendor_fees/estimate

Calculates 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
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

account_id*string

Account ID

Formatuuid

Query Parameters

rail*string

Rail of the payment.

Value in

  • "sepa"
  • "swift"
  • "ach"
  • "fedwire"
  • "trade"
  • "fps"
  • "chaps"
amount*number

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  }}
GET/vaults/{vault_id}/vendor_fees

Returns the default vendor fees of a vault, which apply to every account that doesn't override them. Pass rail for one fee.

Authorization

BearerAuth
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

vault_id*string

Vault ID

Formatuuid

Query Parameters

rail?string

Return only the fee for this rail.

Value in

  • "sepa"
  • "swift"
  • "ach"
  • "fedwire"
  • "trade"
  • "fps"
  • "chaps"
effective?boolean

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  }}
DELETE/vaults/{vault_id}/vendor_fees

Removes the vault's default vendor fee for one rail. Accounts without their own override fall back to the contractual floor.

Authorization

BearerAuth
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

vault_id*string

Vault ID

Formatuuid

Query Parameters

rail*string

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"}
PUT/vaults/{vault_id}/vendor_fees

Creates 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
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

vault_id*string

Vault ID

Formatuuid

Query Parameters

rail?string

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  }}
GET/vaults/{vault_id}/vendor_fees/estimate

Calculates the fee for a payment of amount on rail using the vault's default fee.

Authorization

BearerAuth
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

vault_id*string

Vault ID

Formatuuid

Query Parameters

rail*string

Rail of the payment.

Value in

  • "sepa"
  • "swift"
  • "ach"
  • "fedwire"
  • "trade"
  • "fps"
  • "chaps"
amount*number

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  }}
🍪 We do not track your behaviour or use any cookie on this site.