# Configure fees This topic covers several tutorials with steps you must take to set and verify the following fees: - [Sending fee](#sending-fee) - [Receiving fee](#receiving-fee) - [Partner fee](#partner-fee) - [Account fee](#account-fee) - [Payout method fee](#payout-method-fee) Tip For conceptual details about RippleNet fees, see [Fees](/products/payments-odl/api-docs/ripplenet/best-practices/fees). ## Scenario All of the tutorials in this topic refer to an example set of RippleNet instances, one in San Francisco (SF) and one in London. The sending SF instance handles FX conversion and holds a nostro relationship account on the London instance. The following diagram shows the example instances, and their account liquidity and peer relationship: ![RippleNet Fees with Two Instance Path](/assets/fees-tutorial-two-node-path.833161c685ad4911665dab25dc932a17caee93db1a8e4a39196ebf0fba14681a.7135dee1.svg) The FX conversion takes place in San Francisco, converting `1` USD to `0.77` GBP. Note This tutorial assumes access and basic familiarity with the RippleNet API. ## Sending fee Follow the steps in this tutorial to configure a fee on your RippleNet that collects value from a payment transfer when the account acts as the sending account to another account on your server's ledger. ### Sending fee details Set a fee that will be collected by an account on your instance with the following configuration details: - The account acts in the sending role of transfers to other accounts on the instance. - Your RippleNet instance initiates the payment, acting as the first instance in the RippleNet payment. - The currency is in USD. - The fee applies only to regular (non-return) payments. - The fee collected is flat value (not percentage of payment). - The amount of the fee is `5`. #### Request Here is the API request for the sending fee: ```json POST /v4/config/fees Host: sf-bank.ripplenet.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "currency_code": "USD", "fee_type": "FLAT_RATE", "node_type": "INITIAL", "payment_type": "REGULAR", "role_type": "SENDING", "value": 5.00 } ``` #### Response (`200`) The successful response indicates you set the fee for `5` USD. RippleNet assigns a `feeId` for this fee for reference. You can also review the details of the fee by calling Get fee by ID and passing the `feeId` as a path parameter. ```json { "value": "5.00", "currency_code": "USD", "role_type": "SENDING", "payment_type": "REGULAR", "node_type": "INITIAL", "fee_type": "FLAT_RATE", "partner_name": null, "account_name": null, "upper_limit": null, "lower_limit": null, "feeId": "542e97c1-1308-4d1f-8f65-343b96598ce5", "payout_method": null } ``` For more information, see the *Get fee by ID* operation in the API Reference. ### Review fee impact with payment object To review how the fee impacts the RippleNet Payment Object, request two quote collections. One for a `500` USD sender quote type payment and the other an equivalent `385` GBP receiver quote type between the transactional accounts in San Francisco and London. The details in the `quote_elements` of the quotes returned highlight the impact of the sender fee on the sending and receiving amounts. ### Create quote collections With the `5` USD sending fee set, use the *Create quote collection* operation to retrieve all available quotes for two quote types: - A quote type of [sender amount](#sending-fee---sender-amount-quote-request) `500` USD. - A quote type of [receiver amount](#sending-fee---receiver-amount-quote-request) `500` USD. #### Sending fee - sender amount quote (Request) ```json POST /v4/quote_collections/ Host: sf-bank.ripplenet.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "sending_address": "trans_usd_sf@g.us.ca.san_francisco", "receiving_address": "trans_gbp_lon@g.eu.uk.london", "amount": 500, "currency": "USD", "quote_type": "SENDER_AMOUNT" } ``` #### Sending fee - sender amount quote (Response) (`200`) ```json { "quote_collection_id": "4c0c3d28-2696-4ec7-abd1-99c21b59f589", "quotes": [ { "quote_id": "6212809e-b9e2-4d00-aa2e-fe8c526e72b3", "created_at": "2020-01-28T21:07:11.127Z", "expires_at": "2020-01-28T22:07:11.127Z", "type": "SENDER_AMOUNT", "price_guarantee": "FIRM", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "amount": "500", "currency_code": "USD", "currency_code_filter": null, "service_type": null, "quote_elements": [ { "quote_element_id": "33b0dc8c-54ae-4a1d-9250-0c877997df97", "quote_element_type": "TRANSFER", "quote_element_order": "1", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "conct_usd_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "495.00", "sending_fee": "5.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "USD" }, { "quote_element_id": "0412d48f-60ae-4511-ac42-4294a23bd067", "quote_element_type": "EXCHANGE", "quote_element_order": "2", "sender_address": "conct_usd_sf@g.us.ca.san_francisco", "receiver_address": "alias_gbp_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "381.15", "sending_fee": "0", "receiving_fee": "0", "sending_currency_code": "USD", "receiving_currency_code": "GBP", "fx_rate": { "rate": "0.770000000", "base_currency_code": "USD", "counter_currency_code": "GBP", "type": "buy" }, "transfer_currency_code": null }, { "quote_element_id": "2b93af42-45fc-4232-a941-9b0767f0c724", "quote_element_type": "TRANSFER", "quote_element_order": "3", "sender_address": "conct_gbp_sf@g.eu.uk.london", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "sending_amount": "381.15", "receiving_amount": "381.15", "sending_fee": "0.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "GBP" } ], "liquidity_warning": null, "payment_method": null } ], "quote_errors": [] } ``` #### Initial quote element `33b0dc8c-54ae-4a1d-9250-0c877997df97` The first quote element in the quote describes the payment transfer between the SF transactional account and the SF connector account. This quote element includes the `5` USD sending fee that you set previously: ```json { "quote_element_id": "33b0dc8c-54ae-4a1d-9250-0c877997df97", "quote_element_type": "TRANSFER", "quote_element_order": "1", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "conct_usd_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "495.00", "sending_fee": "5.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "USD" } ``` ##### Fee calculation Your quote requested a payment for `500` USD, but the first quote element shows a sending amount of `495.00`. This is because RippleNet subtracts the `5` USD sending fee from the payment transfer amount before it calculates the resulting sending amount: ```json { "sending_amount": "495.00", "receiving_amount": "495.00", "sending_fee": "5.00", "receiving_fee": "0.00" } ``` Note Sending fees impact transfer amounts before `sending_amount` values are calculated. #### FX conversion quote element `0412d48f-60ae-4511-ac42-4294a23bd067` The second quote element shows the FX conversion from USD to GBP that takes place on the SF instance. There is no fee in this quoted transfer: ```json { "quote_element_id": "0412d48f-60ae-4511-ac42-4294a23bd067", "quote_element_type": "EXCHANGE", "quote_element_order": "2", "sender_address": "conct_usd_sf@g.us.ca.san_francisco", "receiver_address": "alias_gbp_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "381.15", "sending_fee": "0", "receiving_fee": "0", "sending_currency_code": "USD", "receiving_currency_code": "GBP", "fx_rate": { "rate": "0.770000000", "base_currency_code": "USD", "counter_currency_code": "GBP", "type": "buy" }, "transfer_currency_code": null } ``` #### Terminal quote element `2b93af42-45fc-4232-a941-9b0767f0c724` The last quote element in this quote describes the transfer from the San Francisco connector account on the London instance to the London transactional account: ```json { "quote_element_id": "2b93af42-45fc-4232-a941-9b0767f0c724", "quote_element_type": "TRANSFER", "quote_element_order": "3", "sender_address": "conct_gbp_sf@g.eu.uk.london", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "sending_amount": "381.15", "receiving_amount": "381.15", "sending_fee": "0.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "GBP" } ``` There are no fees set for transfers between these accounts. The [Receiving fee](#receiving-fee) tutorial sets a fee for this scenario. ##### Payout calculation The last quote element shows a transfer with the `receiving_amount` of `381.15` GBP, and the element shows no receiving fee. If there were a receiving fee, the payout would be the difference after subtracting the fee. The `500` USD sender amount payment pays out `381.15 GBP.` #### Sending fee - receiver amount quote (Request) Create a quote for receiver amount `385` GBP, which is the equivalent of `500` USD with a 0.77 FX conversion rate to GBP. ```json POST /v4/quote_collections/ Host: sf-bank.ripplenet.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "sending_address": "trans_usd_sf@g.us.ca.san_francisco", "receiving_address": "trans_gbp_lon@g.eu.uk.london", "amount": 500, "currency": "USD", "quote_type": "RECEIVER_AMOUNT" } ``` #### Sending fee - receiver amount quote (Response) (`200`) ```json { "quote_collection_id": "2d514ceb-2160-494f-8b25-9c7ad9abf4cb", "quotes": [ { "quote_id": "9c5aee52-b11d-483a-b307-9ccde9eedef9", "created_at": "2020-02-01T05:57:24.462Z", "expires_at": "2020-02-01T06:57:24.462Z", "type": "RECEIVER_AMOUNT", "price_guarantee": "FIRM", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "amount": "385", "currency_code": "GBP", "currency_code_filter": null, "service_type": null, "quote_elements": [ { "quote_element_id": "cf99af2b-13b2-4af0-a439-00ef0b285b24", "quote_element_type": "TRANSFER", "quote_element_order": "1", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "conct_usd_sf@g.us.ca.san_francisco", "sending_amount": "500.00", "receiving_amount": "500.00", "sending_fee": "5.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "USD" }, { "quote_element_id": "5237fed0-036b-4536-ba9b-0ecb6d4c1c53", "quote_element_type": "EXCHANGE", "quote_element_order": "2", "sender_address": "conct_usd_sf@g.us.ca.san_francisco", "receiver_address": "alias_gbp_sf@g.us.ca.san_francisco", "sending_amount": "500.00", "receiving_amount": "385.00", "sending_fee": "0", "receiving_fee": "0", "sending_currency_code": "USD", "receiving_currency_code": "GBP", "fx_rate": { "rate": "0.770000000", "base_currency_code": "USD", "counter_currency_code": "GBP", "type": "buy" }, "transfer_currency_code": null }, { "quote_element_id": "0e69a31b-7073-4068-a3c1-cca72ba665c2", "quote_element_type": "TRANSFER", "quote_element_order": "3", "sender_address": "conct_gbp_sf@g.eu.uk.london", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "sending_amount": "385.00", "receiving_amount": "385.00", "sending_fee": "0.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "GBP" } ], "liquidity_warning": null, "payment_method": null } ], "quote_errors": [] } ``` #### Initial quote element `cf99af2b-13b2-4af0-a439-00ef0b285b24` The first quote element in the quote describes the payment transfer between the SF transactional account and the SF connector account. This quote element includes the `5` USD sending fee that you set previously: ```json { "quote_element_id": "cf99af2b-13b2-4af0-a439-00ef0b285b24", "quote_element_type": "TRANSFER", "quote_element_order": "1", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "conct_usd_sf@g.us.ca.san_francisco", "sending_amount": "500.00", "receiving_amount": "500.00", "sending_fee": "5.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "USD" } ``` ##### Fee calculation Your quote requested a payment with a payout `385` GBP by using a receiver amount quote type. The first quote element shows a sending amount of `500.00`, with a sending fee of `5.00`. The sender must originate the payment with `505.00` USD. This is because RippleNet adds the `5` USD sending fee to the `sending_amount` to calculate the amount to originate the payment. ```json { "sending_amount": "500.00", "receiving_amount": "500.00", "sending_fee": "5.00", "receiving_fee": "0.00" } ``` Note RippleNet subtracts sending fees from origination amounts to produce `sending_amount` values. #### FX conversion quote element `5237fed0-036b-4536-ba9b-0ecb6d4c1c53` The second quote element shows the FX conversion from USD to GBP that takes place on the SF instance. There is no fee in this quoted transfer: ```json { "quote_element_id": "5237fed0-036b-4536-ba9b-0ecb6d4c1c53", "quote_element_type": "EXCHANGE", "quote_element_order": "2", "sender_address": "conct_usd_sf@g.us.ca.san_francisco", "receiver_address": "alias_gbp_sf@g.us.ca.san_francisco", "sending_amount": "500.00", "receiving_amount": "385.00", "sending_fee": "0", "receiving_fee": "0", "sending_currency_code": "USD", "receiving_currency_code": "GBP", "fx_rate": { "rate": "0.770000000", "base_currency_code": "USD", "counter_currency_code": "GBP", "type": "buy" }, "transfer_currency_code": null } ``` #### Terminal quote element `0e69a31b-7073-4068-a3c1-cca72ba665c2` The last quote element in this quote describes the transfer from the San Francisco connector account on the London instance to the London transactional account: ```json { "quote_element_id": "0e69a31b-7073-4068-a3c1-cca72ba665c2", "quote_element_type": "TRANSFER", "quote_element_order": "3", "sender_address": "conct_gbp_sf@g.eu.uk.london", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "sending_amount": "385.00", "receiving_amount": "385.00", "sending_fee": "0.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "GBP" } ``` There are no fees set for transfers between these accounts. See the [Receiving fee](#receiving-fee) tutorial to set a fee for this scenario. ##### Fee calculation The last quote element shows a transfer with the `receiving_amount` of `385.00` GBP, and the element shows no receiving fee, so the payment pays out `385.00 GBP.` If there were a receiving fee, the payout would be the difference after subtracting the fee. ## Receiving fee Follow the steps in this tutorial to configure a fee on your RippleNet that collects value from a payment transfer when the account acts as the receiving account from another account on your server's ledger. ### Receiving fee details Set a fee that will be collected by an account on your instance with the following configuration details: - The account acts in the receiving role of transfers from other accounts on the instance. - Your RippleNet instance terminates the payment, acting as the final instance in the RippleNet payment. - The currency is in GBP. - The fee applies only to regular (non-return) payments. - The fee collected is flat value (not percentage of payment). - The amount of the fee is `5`. #### Request Here is the API request for the receiving fee: ```json POST /v4/config/fees Host: lon-bank.ripple.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "currency_code": "GBP", "fee_type": "FLAT_RATE", "node_type": "TERMINAL", "payment_type": "REGULAR", "role_type": "RECEIVING", "value": 5.00 } ``` #### Response (`200`) The successful response indicates you set the fee for `5` USD. RippleNet assigns a `feeId` for this fee for reference. You can also review the details of the fee by calling Get fee by ID and passing the `feeId` as a path parameter. ```json { "value": "5.00", "currency_code": "GBP", "role_type": "RECEIVING", "payment_type": "REGULAR", "node_type": "TERMINAL", "fee_type": "FLAT_RATE", "partner_name": null, "account_name": null, "upper_limit": null, "lower_limit": null, "feeId": "753407d0-1b59-4f9a-bc0c-213a63646c8d", "payout_method": null } ``` For more information, see the *Get fee by ID* operation in the API Reference. ### Review fee impact with payment object To review how the fee impacts the RippleNet Payment Object, request two quote collections. One for a `500` USD sender quote type payment and the other an equivalent `385` GBP receiver quote type between the transactional accounts in San Francisco and London. The details in the `quote_elements` of the quotes returned highlight the impact of the sender fee on the sending and receiving amounts. ### Create quote collections With the `5` USD sending fee set, use the *Create quote collection* operation to retrieve all available quotes for two quote types: - A quote type of [sender amount](#receiving-fee---sender-amount-quote-request) `500` USD. - A quote type of [receiver amount](#receiving-fee---receiver-amount-quote-request) `500` USD. Note The SF instance has one sender fee set, which was previously created in the [Sending fee](#sending-fee) tutorial. #### Receiving fee - sender amount quote (Request) ```json POST /v4/quote_collections/ Host: sf-bank.ripplenet.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "sending_address": "trans_usd_sf@g.us.ca.san_francisco", "receiving_address": "trans_gbp_lon@g.eu.uk.london", "amount": 500, "currency": "USD", "quote_type": "SENDER_AMOUNT" } ``` #### Receiving fee - sender amount quote (Response) (`200`) ```json { "quote_collection_id": "a495c71c-56fe-48e1-96ed-90b4bcd19bc0", "quotes": [ { "quote_id": "fb071c2f-d19a-4989-9ca4-1df312d39e78", "created_at": "2020-02-01T06:11:39.021Z", "expires_at": "2020-02-01T07:11:39.021Z", "type": "SENDER_AMOUNT", "price_guarantee": "FIRM", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "amount": "500", "currency_code": "USD", "currency_code_filter": null, "service_type": null, "quote_elements": [ { "quote_element_id": "3063d609-c29a-42de-8850-27e65bf19cb9", "quote_element_type": "TRANSFER", "quote_element_order": "1", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "conct_usd_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "495.00", "sending_fee": "5.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "USD" }, { "quote_element_id": "9b318ee2-0321-42fa-9da0-47e3de599d53", "quote_element_type": "EXCHANGE", "quote_element_order": "2", "sender_address": "conct_usd_sf@g.us.ca.san_francisco", "receiver_address": "alias_gbp_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "381.15", "sending_fee": "0", "receiving_fee": "0", "sending_currency_code": "USD", "receiving_currency_code": "GBP", "fx_rate": { "rate": "0.770000000", "base_currency_code": "USD", "counter_currency_code": "GBP", "type": "buy" }, "transfer_currency_code": null }, { "quote_element_id": "0d2fd22d-e93a-47f9-ab5a-b4500c344a1a", "quote_element_type": "TRANSFER", "quote_element_order": "3", "sender_address": "conct_gbp_sf@g.eu.uk.london", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "sending_amount": "381.15", "receiving_amount": "381.15", "sending_fee": "0.00", "receiving_fee": "5.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "GBP" } ], "liquidity_warning": null, "payment_method": null } ], "quote_errors": [] } ``` #### Initial quote element `3063d609-c29a-42de-8850-27e65bf19cb9` The first quote element in the quote describes the payment transfer between the SF transactional account and the SF connector account. This quote element includes the `5` USD sending fee that you set previously: ```json { "quote_element_id": "3063d609-c29a-42de-8850-27e65bf19cb9", "quote_element_type": "TRANSFER", "quote_element_order": "1", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "conct_usd_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "495.00", "sending_fee": "5.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "USD" } ``` ##### Fee calculation Your quote requested a payment for `500` USD, but the first quote element shows a sending amount of `495.00`. This is because RippleNet subtracts the `5` USD sending fee from the payment transfer amount before it calculates the resulting sending amount: ```json { "sending_amount": "495.00", "receiving_amount": "495.00", "sending_fee": "5.00", "receiving_fee": "0.00" } ``` Note Sending fees impact transfer amounts before `sending_amount` values are caclulated. #### FX conversion quote element `9b318ee2-0321-42fa-9da0-47e3de599d53` The second quote element shows the FX conversion from USD to GBP that takes place on the SF instance. There is no fee in this quoted transfer: ```json { "quote_element_id": "9b318ee2-0321-42fa-9da0-47e3de599d53", "quote_element_type": "EXCHANGE", "quote_element_order": "2", "sender_address": "conct_usd_sf@g.us.ca.san_francisco", "receiver_address": "alias_gbp_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "381.15", "sending_fee": "0", "receiving_fee": "0", "sending_currency_code": "USD", "receiving_currency_code": "GBP", "fx_rate": { "rate": "0.770000000", "base_currency_code": "USD", "counter_currency_code": "GBP", "type": "buy" }, "transfer_currency_code": null } ``` #### Terminal quote element `0d2fd22d-e93a-47f9-ab5a-b4500c344a1a` The last quote element in this quote describes the transfer from the San Francisco connector account on the London instance to the London transactional account: ```json { "quote_element_id": "0d2fd22d-e93a-47f9-ab5a-b4500c344a1a", "quote_element_type": "TRANSFER", "quote_element_order": "3", "sender_address": "conct_gbp_sf@g.eu.uk.london", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "sending_amount": "381.15", "receiving_amount": "381.15", "sending_fee": "0.00", "receiving_fee": "5.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "GBP" } ``` There are no fees set for transfers between these accounts. The [Receiving fee](#receiving-fee) tutorial sets a fee for this scenario. ##### Payout calculation The last quote element shows a transfer with the `receiving_amount` of `381.15` GBP, and the element shows the `5` GBP receiving fee. The payout is the difference from the `receiving_amount` value after subtracting the fee. The `500` USD sender amount payment pays out `376.15` GBP. #### Receiving fee - receiver amount quote (Request) Create a quote for receiver amount `385` GBP, which is the equivalent of `500` USD with a 0.77 FX conversion rate to GBP. ```json POST /v4/quote_collections/ Host: sf-bank.ripplenet.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "sending_address": "trans_usd_sf@g.us.ca.san_francisco", "receiving_address": "trans_gbp_lon@g.eu.uk.london", "amount": 385, "currency": "GBP", "quote_type": "RECEIVER_AMOUNT" } ``` #### Receiving fee - receiver amount quote (Response) (`200`) ```json { "quote_collection_id": "c6b671b9-1d51-4a76-a16c-13b3208a614e", "quotes": [ { "quote_id": "763fc1a6-4a2f-46c7-9b64-0b3244df8a45", "created_at": "2020-02-01T06:14:01.592Z", "expires_at": "2020-02-01T07:14:01.592Z", "type": "RECEIVER_AMOUNT", "price_guarantee": "FIRM", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "amount": "385", "currency_code": "GBP", "currency_code_filter": null, "service_type": null, "quote_elements": [ { "quote_element_id": "c5c7c0a9-f18d-49c6-9776-cb376c17009c", "quote_element_type": "TRANSFER", "quote_element_order": "1", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "conct_usd_sf@g.us.ca.san_francisco", "sending_amount": "506.49", "receiving_amount": "506.49", "sending_fee": "5.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "USD" }, { "quote_element_id": "8355a8db-ae60-4ebd-abbd-acc75186ebb5", "quote_element_type": "EXCHANGE", "quote_element_order": "2", "sender_address": "conct_usd_sf@g.us.ca.san_francisco", "receiver_address": "alias_gbp_sf@g.us.ca.san_francisco", "sending_amount": "506.49", "receiving_amount": "390.00", "sending_fee": "0", "receiving_fee": "0", "sending_currency_code": "USD", "receiving_currency_code": "GBP", "fx_rate": { "rate": "0.770000000", "base_currency_code": "USD", "counter_currency_code": "GBP", "type": "buy" }, "transfer_currency_code": null }, { "quote_element_id": "6be73ca9-6fac-498b-828d-6dd852ba72f3", "quote_element_type": "TRANSFER", "quote_element_order": "3", "sender_address": "conct_gbp_sf@g.eu.uk.london", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "sending_amount": "390.00", "receiving_amount": "390.00", "sending_fee": "0.00", "receiving_fee": "5.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "GBP" } ], "liquidity_warning": null, "payment_method": null } ], "quote_errors": [] } ``` #### Initial quote element `c5c7c0a9-f18d-49c6-9776-cb376c17009c` The first quote element in the quote describes the payment transfer between the SF transactional account and the SF connector account. This quote element includes the `5` USD sending fee that was set previously: ```json { "quote_element_id": "c5c7c0a9-f18d-49c6-9776-cb376c17009c", "quote_element_type": "TRANSFER", "quote_element_order": "1", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "conct_usd_sf@g.us.ca.san_francisco", "sending_amount": "506.49", "receiving_amount": "506.49", "sending_fee": "5.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "USD" }, ``` ##### Fee calculation Your quote requested a payment with a payout `385` GBP by using a receiver amount quote type. The first quote element shows a sending amount of `506.49`, with a sending fee of `5.00`. The sender must originate the payment with `511.49` USD. This is because RippleNet adds the `5` USD sending fee to the `sending_amount` to calculate the amount to originate the payment. ```json { "sending_amount": "506.49", "receiving_amount": "506.49", "sending_fee": "5.00", "receiving_fee": "0.00" } ``` Note RippleNet subtracts sending fees from origination amounts to produce `sending_amount` values. #### FX conversion quote element `8355a8db-ae60-4ebd-abbd-acc75186ebb5` The second quote element shows the FX conversion from USD to GBP that takes place on the SF instance. There is no fee in this quoted transfer: ```json { "quote_element_id": "8355a8db-ae60-4ebd-abbd-acc75186ebb5", "quote_element_type": "EXCHANGE", "quote_element_order": "2", "sender_address": "conct_usd_sf@g.us.ca.san_francisco", "receiver_address": "alias_gbp_sf@g.us.ca.san_francisco", "sending_amount": "506.49", "receiving_amount": "390.00", "sending_fee": "0", "receiving_fee": "0", "sending_currency_code": "USD", "receiving_currency_code": "GBP", "fx_rate": { "rate": "0.770000000", "base_currency_code": "USD", "counter_currency_code": "GBP", "type": "buy" }, "transfer_currency_code": null }, ``` #### Terminal quote element `6be73ca9-6fac-498b-828d-6dd852ba72f3` The last quote element in this quote describes the transfer from the San Francisco connector account on the London instance to the London transactional account: ```json { "quote_element_id": "6be73ca9-6fac-498b-828d-6dd852ba72f3", "quote_element_type": "TRANSFER", "quote_element_order": "3", "sender_address": "conct_gbp_sf@g.eu.uk.london", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "sending_amount": "390.00", "receiving_amount": "390.00", "sending_fee": "0.00", "receiving_fee": "5.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "GBP" } ``` ##### Fee calculation The last quote element shows a transfer with the `receiving_amount` of `390.00` GBP, and the element shows a receiving fee of `5` USD, so the payment pays out `385.00 GBP.` The payout amount is the difference of the `receiving_amount` value and the `receiving_fee` value in GBP. ## Partner fee Follow the steps in this tutorial to configure a fee on your RippleNet that collects value from a payment transfer when the sender or receiver is a specified partner. ### Partner fee details Set a fee that will be collected by an account on your instance with the following configuration details: - The account collecting the fee acts in the receiving role of transfers to other accounts on the instance. - Your RippleNet instance receives the payment, acting as the terminal instance in the RippleNet payment. - The currency is in GBP. - The fee applies only to regular (non-return) payments. - The fee collected is flat value (not percentage of payment). - The amount of the fee is `1.00`. - The partner involved in the payment is San Francisco, specified as `g.us.ca.san_francisco`. Note - You set this fee's `role_type` to `receiving`. In this partner fee, your account only collects a fee if the specified San Francisco partner does the sending of the transfer. This is because when you configure a fee, you configure it for the account that collects the fee, and the `role_type` indicates the role that account plays. - Partner fees only appear in the Quote Element Object when the fee's `partner_name` matches the `owner` of the account charged with the fee. For example, if you set a fee's `partner_name` to `g.us.ca.san_francisco`, then you must ensure that the `owner` field of the account charged with the fee is also set to `g.us.ca.san_francisco`. Otherwise, the fee will not be applied to the quote. #### Request Specify the partner's RippleNet address as the value for the `partner_name` field to set the fee for that partner. Here is the API request for the sending fee: ```json POST /v4/config/fees Host: sf-bank.ripplenet.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "currency_code": "GBP", "fee_type": "FLAT_RATE", "node_type": "TERMINAL", "payment_type": "REGULAR", "role_type": "RECEIVING", "value": 1.00, "partner_name": "g.us.ca.san_francisco" } ``` #### Response (`200`) The successful response indicates you set the fee for `1` GBP. RippleNet assigns a `feeId` for this fee for reference. You can also review the details of the fee by calling Get fee by ID and passing the `feeId` as a path parameter. ```json { "value": "1.00", "currency_code": "GBP", "role_type": "TERMINAL", "payment_type": "REGULAR", "node_type": "RECEIVING", "fee_type": "FLAT_RATE", "partner_name": "g.us.ca.san_francisco", "account_name": null, "upper_limit": null, "lower_limit": null, "feeId": "48979ba3-bb06-49a0-8393-6edc820d8b5e", "payout_method": null } ``` For more information, see the *Get fee by ID* operation in the API Reference. ## Account fee Follow the steps in this tutorial to configure a fee on your RippleNet that collects value from a payment transfer when the account acts as the receiving account to another account on your server's ledger. The account fee will only apply when transfers that include the specified partner's account are involved in the payment. ### Account fee details Set a fee that will be collected by an account on your instance with the following configuration details: - The account acts in the receiving role of transfers to other accounts on the instance. - Your RippleNet instance receives the payment, acting as the terminal instance in the RippleNet payment. - The currency is in GBP. - The fee applies only to regular (non-return) payments. - The fee collected is flat value (not percentage of payment). - The amount of the fee is `0.5`. - The partner involved in the payment is San Francisco, specified as `g.us.ca.san_francisco`. - The account involved in the payment is the transactional account, specified as `conct_gbp_sf`. Note You set this fee's `role_type` to `receiving`. In this account fee, your account only collects a fee if the specified San Francisco partner's account does the sending of the transfer. This is because when you configure a fee, you configure it for the account that collects the fee, and the `role_type` indicates the role that account plays. #### Request Specify the account and partner RippleNet details to set the fee for an account. To set a fee for an account you must do the following: - Specify the partner's RippleNet address as the value for the `partner_name` field - Specify the account name as the value for the `account_name` field. Here is the API request for the sending fee: ```json POST /v4/config/fees Host: sf-bank.ripplenet.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "currency_code": "GBP", "fee_type": "FLAT_RATE", "node_type": "TERMINAL", "payment_type": "REGULAR", "role_type": "RECEIVING", "value": 0.50, "partner_name": "g.us.ca.san_francisco", "account_name": "conct_gbp_sf" } ``` #### Response (`200`) The successful response indicates you set the fee for `.50` GBP. RippleNet assigns a `feeId` for this fee for reference. You can also review the details of the fee by calling Get fee by ID and passing the `feeId` as a path parameter. ```json { "value": "0.50", "currency_code": "GBP", "role_type": "RECEIVING", "payment_type": "REGULAR", "node_type": "TERMINAL", "fee_type": "FLAT_RATE", "partner_name": "g.us.ca.san_francisco", "account_name": "conct_gbp_sf", "upper_limit": null, "lower_limit": null, "feeId": "7381b7ea-3cc2-4940-91ce-21481b8ada2d", "payout_method": null } ``` For more information, see the *Get fee by ID* operation in the API Reference. ## Payout method fee The `payout_method` field in the fee specifies the unique string for the fee. Use this tutorial if you want to set fees for payout method or partner account. ### Add payout methods Before adding fees for any payout methods, you must create the payout methods for the London instance. One will be for customers who want cash payouts and the other for payout to bank accounts. #### Add a cash payout method Use the Create payout method to add a payout method to the London instance for customers who want a cash payout. Note The string used to assign the `payout_method` value must be unique among payout methods. ##### Request ```json POST /v4/config/payout_methods Host: lon-bank.ripple.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "payout_method": "cash", "description": "Cash payout method." } ``` ##### Response (`200`) The successful request returns a JSON body with a UUID for the payout method. ```json { "payout_method_id": "636538f1-b68d-43bf-9a38-bbc8dc9d77c5", "payout_method": "cash", "description": "Cash payout method." } ``` #### Add a bank account payout method Add a payout method to the London instance for customers who want a bank account payout using the Create payout method. Note The string used for the `payout_method` value must be unique among payout methods. ##### Request ```json POST /v4/config/payout_methods Host: lon-bank.ripple.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "payout_method": "bank_account", "description": "Payout method for bank accounts." } ``` ##### Response (`200`) The successful request returns a JSON body with a UUID for the payout method. ```json { "payout_method_id": "7b3af0b2-dae9-4c87-b1be-c1f2af812427", "payout_method": "bank_account", "description": "Payout method for bank accounts." } ``` ### Add payout method fees Follow the steps in this tutorial to configure a fee on your RippleNet that collects value from a payment transfer when the quote requests specific payout methods: - A fee for the [`cash`](#fee-details-for-cash-payout-method) payout method. - A fee for the [`bank_account`](#fee-details-for-cash-payout-method) payout method. #### Fee details for `cash` payout method Set a fee that will be collected by an account on your instance with the following configuration details: - The account acts in the receiving role of transfers from other accounts on the instance. - Your RippleNet instance terminates the payment, acting as the final instance in the RippleNet payment. - The currency is in GBP. - The fee applies only to regular (non-return) payments. - The fee collected is flat value (not percentage of payment). - The amount of the fee is `9.50`. - The payout method is cash. ##### Request Here is the API request for the `cash` payout method fee: ```json POST /v4/config/fees Host: lon-bank.ripple.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "currency_code": "GBP", "fee_type": "FLAT_RATE", "node_type": "TERMINAL", "payment_type": "REGULAR", "role_type": "RECEIVING", "value": 9.50, "payout_method": "cash" } ``` ##### Response (`200`) The successful response indicates you set the fee for `9.50` GBP. RippleNet assigns a `feeId` for this fee for reference. You can also review the details of the fee by calling Get fee by ID and passing the `feeId` as a path parameter. ```json { "value": "9.50", "currency_code": "GBP", "role_type": "RECEIVING", "payment_type": "REGULAR", "node_type": "TERMINAL", "fee_type": "FLAT_RATE", "partner_name": null, "account_name": null, "upper_limit": null, "lower_limit": null, "feeId": "481d8bae-b806-4662-b3bb-6052206ea1df", "payout_method": "cash" } ``` For more information, see the *Get fee by ID* operation in the API Reference. #### Fee details for `bank_account` payout method Set a fee that will be collected by an account on your instance with the following configuration details: - The account acts in the receiving role of transfers from other accounts on the instance. - Your RippleNet instance terminates the payment, acting as the final instance in the RippleNet payment. - The currency is in GBP. - The fee applies only to regular (non-return) payments. - The fee collected is flat value (not percentage of payment). - The amount of the fee is `5.00`. - The payout method is bank account. ##### Request Here is the API request for the `bank_account` payout method fee: ```json POST /v4/config/fees Host: lon-bank.ripple.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "currency_code": "GBP", "fee_type": "FLAT_RATE", "node_type": "TERMINAL", "payment_type": "REGULAR", "role_type": "RECEIVING", "value": 5.00, "payout_method": "bank_account" } ``` ##### Response (`200`) The successful response indicates you set the fee for `5.00` GBP. RippleNet assigns a `feeId` for this fee for reference. You can also review the details of the fee by calling Get fee by ID and passing the `feeId` as a path parameter. ```json { "value": "5.00", "currency_code": "GBP", "role_type": "RECEIVING", "payment_type": "REGULAR", "node_type": "TERMINAL", "fee_type": "FLAT_RATE", "partner_name": null, "account_name": null, "upper_limit": null, "lower_limit": null, "feeId": "d4a8f8eb-424a-4603-b7ef-2c705f70a220", "payout_method": "bank_account" } ``` For more information, see the *Get fee by ID* operation in the API Reference. ### View payout method quotes With the `cash` and `bank_account` payout method fees set, use the *Create quote collection* operation to retrieve all available quotes for the following quotes: - The quotes for [all payout methods](#quotes-for-all-payout-methods) that are enabled for a sender amount payment `500` USD. - The quotes for only the [`cash`](#create-quote-collection-with-cash-payment-method) payout method for a sender amount payment of `500` USD. #### Quotes for all payout methods Pass the `enable_quote_per_payout_method` flag, set to true, with your request to return quotes for all payout methods that apply to the quote. ##### Request ```json POST /v4/quote_collections/ Host: sf-bank.ripplenet.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "sending_address": "trans_usd_sf@g.us.ca.san_francisco", "receiving_address": "trans_gbp_lon@g.eu.uk.london", "amount": 500, "currency": "USD", "quote_type": "SENDER_AMOUNT", "enable_quote_per_payout_method": true } ``` ##### Response (`200`) The quote collection that RippleNet returns includes quotes for both the `cash` and `bank_account` payout methods, and includes the fees for each. ```json { "quote_collection_id": "67f96691-4b7a-4b18-b1df-f974b873b082", "quotes": [ { "quote_id": "d10fd357-f7b7-4ea3-898d-77159a95242b", "created_at": "2020-02-01T06:42:06.804Z", "expires_at": "2020-02-01T07:42:06.804Z", "type": "SENDER_AMOUNT", "price_guarantee": "FIRM", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "amount": "500", "currency_code": "USD", "currency_code_filter": null, "service_type": null, "quote_elements": [ { "quote_element_id": "dc525444-55f6-400c-8656-4a12a27da800", "quote_element_type": "TRANSFER", "quote_element_order": "1", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "conct_usd_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "495.00", "sending_fee": "5.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "USD" }, { "quote_element_id": "92dbd3ac-1241-4c7b-ad4b-6cc719948d0d", "quote_element_type": "EXCHANGE", "quote_element_order": "2", "sender_address": "conct_usd_sf@g.us.ca.san_francisco", "receiver_address": "alias_gbp_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "381.15", "sending_fee": "0", "receiving_fee": "0", "sending_currency_code": "USD", "receiving_currency_code": "GBP", "fx_rate": { "rate": "0.770000000", "base_currency_code": "USD", "counter_currency_code": "GBP", "type": "buy" }, "transfer_currency_code": null }, { "quote_element_id": "684f6164-524e-4596-a048-7c4acbc48298", "quote_element_type": "TRANSFER", "quote_element_order": "3", "sender_address": "conct_gbp_sf@g.eu.uk.london", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "sending_amount": "381.15", "receiving_amount": "381.15", "sending_fee": "0.00", "receiving_fee": "9.50", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "GBP" } ], "liquidity_warning": null, "payment_method": "cash" }, { "quote_id": "d6e195e9-44a1-423a-9399-27d6ff9e732d", "created_at": "2020-02-01T06:42:06.852Z", "expires_at": "2020-02-01T07:42:06.852Z", "type": "SENDER_AMOUNT", "price_guarantee": "FIRM", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "amount": "500", "currency_code": "USD", "currency_code_filter": null, "service_type": null, "quote_elements": [ { "quote_element_id": "0c01266d-f6f5-4da1-bb80-11be602614d3", "quote_element_type": "TRANSFER", "quote_element_order": "1", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "conct_usd_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "495.00", "sending_fee": "5.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "USD" }, { "quote_element_id": "c70a9434-116b-435a-96cf-eee46ae4b187", "quote_element_type": "EXCHANGE", "quote_element_order": "2", "sender_address": "conct_usd_sf@g.us.ca.san_francisco", "receiver_address": "alias_gbp_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "381.15", "sending_fee": "0", "receiving_fee": "0", "sending_currency_code": "USD", "receiving_currency_code": "GBP", "fx_rate": { "rate": "0.770000000", "base_currency_code": "USD", "counter_currency_code": "GBP", "type": "buy" }, "transfer_currency_code": null }, { "quote_element_id": "0b92294a-4dd6-4815-ad90-7044be80256b", "quote_element_type": "TRANSFER", "quote_element_order": "3", "sender_address": "conct_gbp_sf@g.eu.uk.london", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "sending_amount": "381.15", "receiving_amount": "381.15", "sending_fee": "0.00", "receiving_fee": "5.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "GBP" } ], "liquidity_warning": null, "payment_method": "bank_account" } ], "quote_errors": [] } ``` #### Create quote collection with `cash` payment method You can now chose to request quotes for only the `cash` payment method. Tip Payout method fees must be set using the `payout_method` field in the *Create fee* operation, but when you request a quote collection, *Create quote collection* accepts values for the `payment_method` field. Notice the difference. ##### Request ```json POST /v4/quote_collections/ Host: sf-bank.ripplenet.com Content-Type: application/json Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlFUazFNa1V3TkVGQ04wVTNPRFl4TlRCRE0wRTROVVl6UlVJMk9UUXpNalpHUXpJM1JUbEZRZyJ9.ey { "sending_address": "trans_usd_sf@g.us.ca.san_francisco", "receiving_address": "trans_gbp_lon@g.eu.uk.london", "amount": 500, "currency": "USD", "quote_type": "SENDER_AMOUNT", "payment_method": "cash" } ``` ##### Response (`200`) ```json { "quote_collection_id": "a8a27b47-c44a-4db6-88a4-5b2abb5f8829", "quotes": [ { "quote_id": "df86d1f1-708a-4bf2-9503-fe7b1ea9571c", "created_at": "2020-02-01T07:09:25.279Z", "expires_at": "2020-02-01T08:09:25.279Z", "type": "SENDER_AMOUNT", "price_guarantee": "FIRM", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "amount": "500", "currency_code": "USD", "currency_code_filter": null, "service_type": null, "quote_elements": [ { "quote_element_id": "d83f0b8f-90a4-479b-80e3-ae0110da337d", "quote_element_type": "TRANSFER", "quote_element_order": "1", "sender_address": "trans_usd_sf@g.us.ca.san_francisco", "receiver_address": "conct_usd_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "495.00", "sending_fee": "5.00", "receiving_fee": "0.00", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "USD" }, { "quote_element_id": "a616a17b-58a1-475f-9df8-068af34c9847", "quote_element_type": "EXCHANGE", "quote_element_order": "2", "sender_address": "conct_usd_sf@g.us.ca.san_francisco", "receiver_address": "alias_gbp_sf@g.us.ca.san_francisco", "sending_amount": "495.00", "receiving_amount": "381.15", "sending_fee": "0", "receiving_fee": "0", "sending_currency_code": "USD", "receiving_currency_code": "GBP", "fx_rate": { "rate": "0.770000000", "base_currency_code": "USD", "counter_currency_code": "GBP", "type": "buy" }, "transfer_currency_code": null }, { "quote_element_id": "172133dd-7436-4bf1-8eb2-502c4f7969bb", "quote_element_type": "TRANSFER", "quote_element_order": "3", "sender_address": "conct_gbp_sf@g.eu.uk.london", "receiver_address": "trans_gbp_lon@g.eu.uk.london", "sending_amount": "381.15", "receiving_amount": "381.15", "sending_fee": "0.00", "receiving_fee": "9.50", "sending_currency_code": null, "receiving_currency_code": null, "fx_rate": null, "transfer_currency_code": "GBP" } ], "liquidity_warning": null, "payment_method": "cash" } ], "quote_errors": [] } ``` Notice the payment method is `cash`, and the receiving fee is `9.50` GBP, which is the value you set for the `cash` payout method fee.