This topic covers several tutorials with steps you must take to set and verify the following fees:
For conceptual details about RippleNet fees, see Fees.
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:
The FX conversion takes place in San Francisco, converting 1 USD to 0.77 GBP.
This tutorial assumes access and basic familiarity with the RippleNet API.
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.
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.
Here is the API request for the sending fee:
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
}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.
{
"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.
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.
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
500USD. - A quote type of receiver amount
500USD.
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"
}{
"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": []
}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:
{
"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"
}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:
{
"sending_amount": "495.00",
"receiving_amount": "495.00",
"sending_fee": "5.00",
"receiving_fee": "0.00"
}Sending fees impact transfer amounts before sending_amount values are calculated.
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:
{
"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
}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:
{
"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 tutorial sets a fee for this scenario.
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.
Create a quote for receiver amount 385 GBP, which is the equivalent of 500 USD with a 0.77 FX conversion rate to GBP.
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"
}{
"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": []
}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:
{
"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"
}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.
{
"sending_amount": "500.00",
"receiving_amount": "500.00",
"sending_fee": "5.00",
"receiving_fee": "0.00"
}RippleNet subtracts sending fees from origination amounts to produce sending_amount values.
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:
{
"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
}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:
{
"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 tutorial to set a fee for this scenario.
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.
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.
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.
Here is the API request for the receiving fee:
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
}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.
{
"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.
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.
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
500USD. - A quote type of receiver amount
500USD.
The SF instance has one sender fee set, which was previously created in the Sending fee tutorial.
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"
}{
"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": []
}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:
{
"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"
}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:
{
"sending_amount": "495.00",
"receiving_amount": "495.00",
"sending_fee": "5.00",
"receiving_fee": "0.00"
} Sending fees impact transfer amounts before sending_amount values are caclulated.
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:
{
"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
}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:
{
"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 tutorial sets a fee for this scenario.
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.
Create a quote for receiver amount 385 GBP, which is the equivalent of 500 USD with a 0.77 FX conversion rate to GBP.
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"
}{
"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": []
}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:
{
"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"
},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.
{
"sending_amount": "506.49",
"receiving_amount": "506.49",
"sending_fee": "5.00",
"receiving_fee": "0.00"
}RippleNet subtracts sending fees from origination amounts to produce sending_amount values.
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:
{
"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
},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:
{
"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"
}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.
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.
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.
- You set this fee's
role_typetoreceiving. 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 therole_typeindicates the role that account plays. - Partner fees only appear in the Quote Element Object when the fee's
partner_namematches theownerof the account charged with the fee. For example, if you set a fee'spartner_nametog.us.ca.san_francisco, then you must ensure that theownerfield of the account charged with the fee is also set tog.us.ca.san_francisco. Otherwise, the fee will not be applied to the quote.
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:
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"
}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.
{
"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.
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.
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.
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.
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_namefield - Specify the account name as the value for the
account_namefield.
Here is the API request for the sending fee:
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"
}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.
{
"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.
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.
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.
Use the Create payout method to add a payout method to the London instance for customers who want a cash payout.
The string used to assign the payout_method value must be unique among payout methods.
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."
}The successful request returns a JSON body with a UUID for the payout method.
{
"payout_method_id": "636538f1-b68d-43bf-9a38-bbc8dc9d77c5",
"payout_method": "cash",
"description": "Cash payout method."
}Add a payout method to the London instance for customers who want a bank account payout using the Create payout method.
The string used for the payout_method value must be unique among payout methods.
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."
}The successful request returns a JSON body with a UUID for the payout method.
{
"payout_method_id": "7b3af0b2-dae9-4c87-b1be-c1f2af812427",
"payout_method": "bank_account",
"description": "Payout method for bank accounts."
}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
cashpayout method. - A fee for the
bank_accountpayout 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.
Here is the API request for the cash payout method fee:
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"
}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.
{
"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.
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.
Here is the API request for the bank_account payout method fee:
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"
}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.
{
"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.
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 that are enabled for a sender amount payment
500USD. - The quotes for only the
cashpayout method for a sender amount payment of500USD.
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.
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
}The quote collection that RippleNet returns includes quotes for both the cash and bank_account payout methods, and includes the fees for each.
{
"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": []
}You can now chose to request quotes for only the cash payment method.
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.
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"
}{
"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.