Pricing
Dashboard endpoints (JWT)
All /v1/pricing/* endpoints resolve the partner from your Keycloak JWT. Use Authorization: Bearer $PARTNER_TOKEN.
Simulate a fee breakdown (dry-run, no quote created)
curl -G "$BASE_URL/v1/pricing/simulate" \
-H "Authorization: Bearer $PARTNER_TOKEN" \
--data-urlencode "source_amount=150000" \
--data-urlencode "source_currency=AED" \
--data-urlencode "dest_currency=INR" \
--data-urlencode "exchange_rate=22.5" \
--data-urlencode "counterparty_id=$PARTICIPANT_ID"
| Query | Required | Notes |
|---|---|---|
source_amount | yes | minor units, string |
source_currency | yes | asset code |
dest_currency | yes | asset code |
exchange_rate | yes | mid-market rate |
counterparty_id | no | applies per-participant overrides |
Global markup
curl "$BASE_URL/v1/pricing/markup" -H "Authorization: Bearer $PARTNER_TOKEN"
curl -X PUT "$BASE_URL/v1/pricing/markup" \
-H "Authorization: Bearer $PARTNER_TOKEN" -H "Content-Type: application/json" \
-d '{ "kind": "BPS", "value": 20 }'
kind: BPS (basis points; 20 = 0.20%) or FLAT (minor units; requires currency). Optional min_fee, max_fee (minor units). All math is integer/bps — no floats.
Corridors & per-participant overrides
curl "$BASE_URL/v1/pricing/corridors" -H "Authorization: Bearer $PARTNER_TOKEN"
curl "$BASE_URL/v1/pricing/counterparties" -H "Authorization: Bearer $PARTNER_TOKEN"
curl -X PUT "$BASE_URL/v1/pricing/counterparties/$PARTICIPANT_ID/markup" \
-H "Authorization: Bearer $PARTNER_TOKEN" -H "Content-Type: application/json" \
-d '{ "kind": "BPS", "value": 10 }'
curl -X DELETE "$BASE_URL/v1/pricing/counterparties/$PARTICIPANT_ID/markup" \
-H "Authorization: Bearer $PARTNER_TOKEN"