Get conversion quote

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://docs.staging.lumepay.com/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "Lumepay Staging API MCP server": {
    "url": "https://docs.staging.lumepay.com/mcp"
  }
}

Close
POST /api/v1/conversions/quote

Requests a currency conversion quote for the authenticated API key owner.

Headers

  • X-API-KEY string Required

    Public API key issued from the Lumepay API key management flow.

  • X-API-SECRET string Required

    API secret paired with the public API key.

application/json

Body Required

  • fromAmount number

    How much the customer wants to send or pay. Provide either fromAmount or toAmount, not both.

  • toAmount number

    How much the customer wants to receive. Provide either toAmount or fromAmount, not both.

  • fromCurrency string

    Currency the customer sends or pays with.

  • toCurrency string

    Currency the customer wants to receive.

  • quoteIntent string

    Use client_linked when the customer may confirm this quote. Use indicative when the customer only needs a preview price.

    Format should match the following pattern: (?i)indicative|client_linked. Values are indicative or client_linked.

Responses

  • 200 application/json

    Conversion quote returned successfully

  • 400 application/json

    Request validation failed

    Hide response attributes Show response attributes object
    • code integer(int32)
    • message string
    • httpStatus integer(int32)
    • requestId string
    • timestamp string(date-time)
    • errors array[object]
      Hide errors attributes Show errors attributes object
      • field string
      • message string
  • 429 application/json

    Cloudflare API rate limit exceeded

    Hide response attributes Show response attributes object
    • error string
    • message string
  • 403 application/json

    Authenticated API key is not allowed to perform this action

    Hide response attributes Show response attributes object
    • code integer(int32)
    • message string
    • httpStatus integer(int32)
    • requestId string
    • timestamp string(date-time)
    • errors array[object]
      Hide errors attributes Show errors attributes object
      • field string
      • message string
  • 500 application/json

    Unexpected server error

    Hide response attributes Show response attributes object
    • code integer(int32)
    • message string
    • httpStatus integer(int32)
    • requestId string
    • timestamp string(date-time)
    • errors array[object]
      Hide errors attributes Show errors attributes object
      • field string
      • message string
  • 401 application/json

    API key authentication failed

    Hide response attributes Show response attributes object
    • code integer(int32)
    • message string
    • httpStatus integer(int32)
    • requestId string
    • timestamp string(date-time)
    • errors array[object]
      Hide errors attributes Show errors attributes object
      • field string
      • message string
POST /api/v1/conversions/quote
curl \
 --request POST 'https://api.staging.lumepay.com/api/v1/conversions/quote' \
 --header "Content-Type: application/json" \
 --header "X-API-KEY: string" \
 --header "X-API-SECRET: string" \
 --data '"{\n  \"fromAmount\": 1850,\n  \"fromCurrency\": \"ZAR\",\n  \"toCurrency\": \"USD\",\n  \"quoteIntent\": \"client_linked\"\n}"'
Request examples
Quote by send amount
{
  "fromAmount": 1850,
  "fromCurrency": "ZAR",
  "toCurrency": "USD",
  "quoteIntent": "client_linked"
}
Quote by receive amount
{
  "toAmount": 100,
  "fromCurrency": "ZAR",
  "toCurrency": "USD",
  "quoteIntent": "client_linked"
}
Response examples (200)
{}
Response examples (400)
{
  "httpStatus": 400,
  "requestId": "req_01HY0000000000000000000000",
  "message": "Request validation failed",
  "code": 400,
  "timestamp": "2026-01-01T00:00:00Z",
  "errors": []
}
Response examples (429)
{
  "error": "rate_limit_exceeded",
  "message": "API rate limit exceeded"
}
Response examples (403)
{
  "httpStatus": 403,
  "requestId": "req_01HY0000000000000000000000",
  "message": "Authenticated API key is not allowed to perform this action",
  "code": 403,
  "timestamp": "2026-01-01T00:00:00Z",
  "errors": []
}
Response examples (500)
{
  "httpStatus": 500,
  "requestId": "req_01HY0000000000000000000000",
  "message": "Unexpected server error",
  "code": 500,
  "timestamp": "2026-01-01T00:00:00Z",
  "errors": []
}
Response examples (401)
{
  "httpStatus": 401,
  "requestId": "req_01HY0000000000000000000000",
  "message": "API key authentication failed",
  "code": 401,
  "timestamp": "2026-01-01T00:00:00Z",
  "errors": []
}