---
title: Create a transaction quote.
slug: fx-api/create-a-transaction-quote
docTags: 
createdAt: 2025-05-30T02:39:22.452Z
---

{
  "id": "FWYvaqQhBnYzo_YtMtm4G",
  "type": "api-oas-v2",
  "data": {
    "method": "POST",
    "url": "https://sand-api.monoova.com/global/v1/transactions",
    "servers": [
      {
        "url": "https://sand-api.monoova.com/global/v1/transactions",
        "description": "Monoova Global server"
      }
    ],
    "name": "Create a transaction quote.",
    "description": "<p>This creates a foreign exchange transaction quote for a base and counter currency pair along with either the base or counter currency amount required. A desired value date can be optionally supplied, otherwise the next available date will be used. Both base and counter currency are required, and one of base or counter currency amount. Transaction quotes can then be updated, refreshed, or confirmed. You can also specify payments when creating a transaction, but this is only supported if you have specified the transaction counter_currency_amount. When creating a transaction with a single payment, the payment amount can be set to null to automatically use the full counter_currency_amount.\nIf the feature is enabled for the customer, you may supply a <code>rate_id</code> obtained from the Retrieve an FX Rate endpoint to use that specific rate for this transaction quote.</p>",
    "contentType": "application/json",
    "request": {
      "pathParameters": [],
      "headerParameters": [
        {
          "name": "accept",
          "type": "string",
          "kind": "optional",
          "description": "Generated from available response content types",
          "enum": [
            "application/json"
          ],
          "default": "application/json"
        }
      ],
      "queryParameters": [],
      "bodyDataParameters": [
        {
          "kind": "required",
          "name": "body",
          "type": "object",
          "description": "",
          "schema": [
            {
              "name": "transaction",
              "kind": "optional",
              "type": "object",
              "description": "",
              "modelRef": "#/components/schemas/TransactionRequest",
              "customType": "TransactionRequest",
              "schema": []
            }
          ],
          "isExpanded": true
        }
      ],
      "formDataParameters": [],
      "oAuthParameters": [],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "A transaction.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "Transaction",
            "schema": [],
            "modelRef": "#/components/schemas/Transaction",
            "isExpanded": true
          }
        ]
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "RKsVm2HRfWhLvsZaK9nxK",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request POST \\\n     --url https://sand-api.monoova.com/global/v1/transactions \\\n     --header 'accept: application/json'"
        },
        {
          "id": "tgB__L6Vezr2mVpGpq39-",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\n\nvar requestOptions = {\n   method: 'POST',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"https://sand-api.monoova.com/global/v1/transactions\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "lJroeig_7MtkFAD8B8wLa",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://sand-api.monoova.com/global/v1/transactions\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "cW4nIw5-RqVbjUsJIkCLt",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://sand-api.monoova.com/global/v1/transactions\"\n\npayload = {}\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "RKsVm2HRfWhLvsZaK9nxK"
    },
    "results": {
      "languages": [
        {
          "id": "FmighfadlcV7RMzh1P3DD",
          "language": "200",
          "code": "// A transaction.\n{}"
        }
      ],
      "selectedLanguageId": "FmighfadlcV7RMzh1P3DD"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}