---
title: Create account if it does not exist, if it exists authenticate account and create a subscription in the system for the service provided in the request object
slug: docs/demo/create-account-if-it-does-not-exist-if-it-exists-authenticate-account-and-create-a-subscription-in-the-system-for-the-service-provided-in-the-request-object
description: Learn how to make a POST request to a fictive API effortlessly with this code example. Discover how to include crucial headers, as well as vital data like Amazon receipt ID, user ID, email, password, account details, and price information. Enhance your de
docTags: 
createdAt: 2022-03-21T20:12:45.000Z
---

{
  "id": "jhIHVhLNNT8yuNqFO4JN-",
  "data": {
    "url": "https://api.fictive.com/REST/api/native-billing/amazon",
    "name": "Create account if it does not exist, if it exists authenticate account and create a subscription in the system for the service provided in the request object",
    "method": "POST",
    "request": {
      "pathParameters": [],
      "queryParameters": [],
      "headerParameters": [
        {
          "kind": "optional",
          "name": "X-TokenId",
          "type": "string",
          "description": "The eSuite Token Id"
        },
        {
          "kind": "optional",
          "name": "X-SessionId",
          "type": "string",
          "description": "The eSuite Session Id"
        },
        {
          "kind": "required",
          "name": "X-Version",
          "type": "string",
          "description": "The eSuite Version"
        },
        {
          "kind": "optional",
          "name": "Origin",
          "type": "string",
          "description": "The eSuite Origin"
        }
      ],
      "bodyDataParameters": [
        {
          "kind": "required",
          "name": "request",
          "type": "object",
          "schema": [
            {
              "kind": "optional",
              "name": "amazonReceiptId",
              "type": "string",
              "example": "",
              "description": "The encrypted receipt returned from the Amazon stored when the app was purchased."
            },
            {
              "kind": "optional",
              "name": "amazonUserId",
              "type": "string",
              "example": "",
              "description": "The encrypted user registered with an Amazon account with which the purchase was made."
            },
            {
              "kind": "optional",
              "name": "email",
              "type": "string",
              "example": "",
              "description": "Email address of the purchaser"
            },
            {
              "kind": "optional",
              "name": "password",
              "type": "string",
              "example": "",
              "description": "Password address of the subscriber"
            },
            {
              "kind": "optional",
              "name": "newAccountDetails",
              "type": "object",
              "schema": [
                {
                  "kind": "optional",
                  "name": "firstName",
                  "type": "string",
                  "example": "",
                  "description": "First name of the purchaser."
                },
                {
                  "kind": "optional",
                  "name": "lastName",
                  "type": "string",
                  "example": "",
                  "description": "Last name of the purchaser."
                }
              ],
              "modelRef": "#/definitions/FictiveGlobal.Api.Rest.Dtos.v1.NewAccountDetails",
              "customType": "FictiveGlobal.Api.Rest.Dtos.v1.NewAccountDetails",
              "description": "New account details of the purchaser"
            },
            {
              "kind": "optional",
              "name": "priceInfo",
              "type": "object",
              "schema": [
                {
                  "kind": "optional",
                  "name": "currency",
                  "type": "string",
                  "example": "",
                  "description": "(Optional) The currency to be used for the purchase flow"
                },
                {
                  "kind": "optional",
                  "name": "amount",
                  "type": "number<double>",
                  "example": "",
                  "description": "(Optional) The price of the subscription being purchased\r\n            Only used for dynamically priced services."
                }
              ],
              "modelRef": "#/definitions/FictiveGlobal.Api.Rest.Dtos.v1.AmazonPriceInfo",
              "customType": "FictiveGlobal.Api.Rest.Dtos.v1.AmazonPriceInfo",
              "description": "Price Info for Amazon"
            }
          ],
          "modelRef": "#/definitions/FictiveGlobal.Api.Rest.Dtos.v1.AmazonPurchaseReceipt",
          "customType": "FictiveGlobal.Api.Rest.Dtos.v1.AmazonPurchaseReceipt",
          "isExpanded": true,
          "description": "Information from a recently purchased Amazon application required for creating a new subscription"
        }
      ],
      "formDataParameters": []
    },
    "responses": [
      {
        "isExpanded": true,
        "statusCode": "400",
        "description": "• An error occurred while processing the request",
        "jsonExample": ""
      },
      {
        "isExpanded": true,
        "statusCode": "401",
        "description": "• Not Authorized",
        "jsonExample": ""
      },
      {
        "isExpanded": true,
        "statusCode": "412",
        "description": "Precondition Failed\r\n            <br />• Currency is not set up for this service.\r\n            <br />• The service is not configured correctly. The service must be active.\r\n            <br />• The service is not configured correctly. Amazon must be enabled for the service.\r\n            <br />• The service is not configured correctly.",
        "jsonExample": ""
      },
      {
        "isExpanded": true,
        "statusCode": "500",
        "description": "• Internal Server Error",
        "jsonExample": ""
      }
    ],
    "contentType": "application/json",
    "examples": {
      "languages": [
        {
          "id": "mxKQ8k_w-ZdvMlCOLmEhO",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request POST \\\n     --url https://api.fictive.com/REST/api/native-billing/amazon \\\n     --header 'accept: application/json' \\\n     --header 'x-version: string'"
        },
        {
          "id": "8kOpI44NKQPxIbK2MNEVi",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\nmyHeaders.append(\"x-version\", \"string\");\n\nvar requestOptions = {\n   method: 'POST',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"https://api.fictive.com/REST/api/native-billing/amazon\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "eHLSySp36-k-33igclgiS",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.fictive.com/REST/api/native-billing/amazon\")\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\"\nrequest[\"x-version\"] = \"string\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "OLgmhLmkqe9iOSLDUFIQX",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.fictive.com/REST/api/native-billing/amazon\"\n\npayload = {}\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json',\n   'x-version': 'string'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "mxKQ8k_w-ZdvMlCOLmEhO"
    },
    "results": {
      "languages": [
        {
          "id": "response-0-400",
          "language": "400",
          "code": "// • An error occurred while processing the request\n"
        },
        {
          "id": "response-1-401",
          "language": "401",
          "code": "// • Not Authorized\n"
        },
        {
          "id": "response-2-412",
          "language": "412",
          "code": "// Precondition Failed\r\n            • Currency is not set up for this service.\r\n            • The service is not configured correctly. The service must be active.\r\n            • The service is not configured correctly. Amazon must be enabled for the service.\r\n            • The service is not configured correctly.\n"
        },
        {
          "id": "response-3-500",
          "language": "500",
          "code": "// • Internal Server Error\n"
        }
      ],
      "selectedLanguageId": "response-0-400"
    }
  },
  "type": "api-oas-v2",
  "children": [
    {
      "text": ""
    }
  ]
}