Skip to main content
To add integrator fees to Ultra Swap API, refer to the Add Fees To Ultra guide.

Key Points

The Jupiter Ultra Swap API allows you to add integrator fees to the orders.
The Ultra Swap Integrator Fees are governed by the Referral Program.It is required to create a valid referral account and it’s referral token accounts for the specific token mints to collect fees in. These accounts are initalized under the Jupiter Ultra Referral Project.
In the /order response, you will see the feeMint field which is the token mint we will collect the fees in for that particular order.Since Jupiter will always dictate which token mint to collect the fees in, you must ensure that you have the valid referral token account created for the specific fee mint.
The feeMint is based on a priority list, you can refer to this JSON file for the list.For example,
  • If the inputMint=SOL and the outputMint=USDC, the feeMint will be SOL, as it is of highest priority.
  • If the inputMint=USDC and the outputMint=SOL, the feeMint will be SOL, as it is of highest priority, regardless of side.
  • If the inputMint=MEME and the outputMint=USDC, the feeMint will be USDC, as the stablecoin has higher priority.
If the referralTokenAccount for the feeMint is not initialized, the order will still return and can be executed without your fees. This is to ensure your user still receives a quote to proceed with the swap.For example, if the feeMint is SOL, but the referralTokenAccount for SOL is not initialized, the order will still return and can be executed without your fees.You can refer to if feeBps tallies with what you specified in referralFee, in this case, the feeBps will default to Jupiter Ultra’s default fees.
By default, Jupiter Ultra Swap incurs a 5 to 10 bps fee based on token mint.When you add integrator fee, Jupiter will take a flat 20% of your integrator fees.For example, if you plan to take 100bps, Jupiter will take 20bps for the fee split (there will be no Ultra base fee).
You can configure referralFee to be between 50bps to 255bps. The /order response will show the total fee in feeBps field which should be exactly what you specified in referralFee.Do note that, the referral token account has to be created before calling /order because during the request, we will check if the token account is initialized before applying your referral fee (if it is not applied, we will only apply our default fees).
You can now take fees in SPL and Token2022 tokens. As long as feeMint is a Token2022 and you have the valid referral token account created for the specific fee mint, you can take fees in them.

Limitations

JupiterZ does not support integrator fees and it will not be routed when referral params are passed in to get an order.
I