IPXO API reference
159 operations 16 resources 7% of fields described

Subnets & LOA

27 operations

The object API.Pub.Resources.IPMarket.IPMarketServiceResource

Declared in the spec. Shown from GET /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}.

Attributes
uuid
string
No description in the spec
address
string
No description in the spec
cidr
integer
No description in the spec
start
string
No description in the spec
abuse_email
string
No description in the spec
registry
string
No description in the spec
status
string
No description in the spec
auth_pending auth_failed_verify auth_failed_verify_email_not_found auth_failed_verify_email_not_sent validity_pending validity_active validity_invalid validity_terminated
auth
object
No description in the spec
auth.type
string
No description in the spec
auth.status
string
No description in the spec
auth.description
string
No description in the spec
whois
object
No description in the spec
whois.status
string
No description in the spec
whois.description
string
No description in the spec
bgp
object
No description in the spec
bgp.status
string
No description in the spec
bgp.description
string
No description in the spec
dns
object
No description in the spec
dns.status
string
No description in the spec
dns.description
string
No description in the spec
iprep
object
No description in the spec
iprep.status
string
No description in the spec
iprep.description
string
No description in the spec
loaa
object
No description in the spec
loaa.status
string
No description in the spec
loaa.description
string
No description in the spec
roa
object
No description in the spec
roa.status
string
No description in the spec
roa.description
string
No description in the spec
hidden
boolean
No description in the spec
reservation_id
string
No description in the spec
minimum_split
integer
No description in the spec
maximum_split
integer
No description in the spec
loa-a
object
No description in the spec
loa-a.email
string
No description in the spec
loa-a.status
string
No description in the spec
loa-a.created_at
integer
No description in the spec
ips
object
No description in the spec
ips.run_rate
numberfloat
No description in the spec
ips.run_rate_ip
numberfloat
No description in the spec
ips.total
integer
No description in the spec
ips.used
integer
No description in the spec
ips.free
integer
No description in the spec
ips.utilisation_percent
integer
No description in the spec
pricings
object
No description in the spec
pricings.data
array<object>
No description in the spec
pricings.meta
any
No description in the spec
terminated
integer
No description in the spec
expires_at
integer
No description in the spec
has_commitments
boolean
No description in the spec
can_initiate_expiration
boolean
No description in the spec
services
object
No description in the spec
services.uuid
string
No description in the spec
services.cidr
integer
No description in the spec
services.address
string
No description in the spec
services.status
string
No description in the spec
services.pricing
any
No description in the spec
services.commitment
any
No description in the spec
commitmentReservations
object
No description in the spec
commitmentReservations.uuid
string
No description in the spec
commitmentReservations.address
string
No description in the spec
commitmentReservations.cidr
numberint
No description in the spec
commitmentReservations.price
numberfloat
No description in the spec
commitmentReservations.commitment_period
numberint
No description in the spec
commitmentReservations.created_at
numberint
No description in the spec
commitmentReservations.tenant
any
No description in the spec
commitmentReservations.ipmarket_service
any
No description in the spec
commitmentReservations.commitment
any
No description in the spec
serviceReservations
object
No description in the spec
serviceReservations.address
string
No description in the spec
serviceReservations.cidr
numberint
No description in the spec
serviceReservations.pricing
any
No description in the spec

Hide or unhide child subnets

POST/v1/{tenantUUID}/market/ipv4/child/toggle

Hide or unhide child subnets

API-Pub-Market-IPV4-Child-Togglebilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
childs
array<object>required
No description in the spec
childs.address
string
No description in the spec
market_service_uuid
stringuuidrequired
No description in the spec
cidr
integerrequired
No description in the spec
reason
string
No description in the spec
Response 200
batchId
string
The ID of the batch
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/child/toggle' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "childs": [
         {
           "address": "string"
         }
       ],
       "market_service_uuid": "00000000-0000-0000-0000-000000000000",
       "cidr": 1,
       "reason": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/child/toggle"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "childs": [
    {
      "address": "string"
    }
  ],
  "market_service_uuid": "00000000-0000-0000-0000-000000000000",
  "cidr": 1,
  "reason": "string"
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/child/toggle";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "childs": [
      {
        "address": "string"
      }
    ],
    "market_service_uuid": "00000000-0000-0000-0000-000000000000",
    "cidr": 1,
    "reason": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "childs": [
    {
      "address": "string"
    }
  ],
  "market_service_uuid": "00000000-0000-0000-0000-000000000000",
  "cidr": 1,
  "reason": "string"
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/child/toggle", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/child/toggle");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "childs" => [[
                "address" => "string"
            ]],
            "market_service_uuid" => "00000000-0000-0000-0000-000000000000",
            "cidr" => 1,
            "reason" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Batch id
{
  "batchId": "string"
}
401
Unauthorized
403
Forbidden
404
Not Found
422
Unprocessable Entity

Export to CSV Tenant IPv4 Services

GET/v1/{tenantUUID}/market/ipv4/csv

Export to CSV Tenant IPv4 Services

API-Pub-IPMarket-IPv4-Services-CSVbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
uuid
string
Filter By IPv4 Service UUID
address
string
Filter By IPv4 Service Address
cidr
integer
Filter by IPv4 Service CIDR
registry
string
Filter by IPv4 Service Registry
sort
string
Sort By Key
page
integer
List Page
per_page
integer
Items Per Page
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/csv' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/csv"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/csv";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/csv", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/csv");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IPv4 Services Collection
400
Invalid Request
401
Unauthorized
403
Forbidden

List Tenant IPv4 Services

GET/v1/{tenantUUID}/market/ipv4/services

List Tenant IPv4 Services

API-Pub-IPMarket-IPv4-Services-Indexbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
uuid
string
Filter By IPv4 Service UUID
address
string
Filter By IPv4 Service Address
cidr
integer
Filter by IPv4 Service CIDR
registry
string
Filter by IPv4 Service Registry
status
array
Search by Subnet status
display
array
Search by Subnet Display status
sort
string
Sort By Key
direction
array
Sorting direction
asn
integer
Filter by asn
page
integer
List Page
per_page
integer
Items Per Page
Response 200
billing_service
object
No description in the spec
billing_service.address
stringipv4
No description in the spec
billing_service.cidr
integer
No description in the spec
billing_service.next_due_date
numberinteger
No description in the spec
billing_service.recurring_amount
numberfloat
No description in the spec
billing_service.status
string
No description in the spec
billing_service.pricing
any
No description in the spec
billing_service.pricing.type
any
No description in the spec
billing_service.pricing.x-truncated
any
No description in the spec
billing_service.uuid
string
No description in the spec
billing_service.ecommerce_subscription_uuid
string
No description in the spec
loa
array<object>
list of LOA documents
loa.data
any
No description in the spec
market_service
object
No description in the spec
market_service.expires_at
numberinteger
No description in the spec
market_service.registry
string
No description in the spec
market_service.uuid
stringuuid
No description in the spec
ecommerce_subscription_uuid
string
No description in the spec
ecommerce_pending_order
object
No description in the spec
ecommerce_pending_order.uuid
object
No description in the spec
ecommerce_pending_order.status
object
No description in the spec
ecommerce_pending_order.expires_at
object
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IPv4 Services Collection
{
  "billing_service": {
    "address": "string",
    "cidr": 1,
    "next_due_date": 1.0,
    "recurring_amount": 1.0,
    "status": {
      "type": "object",
      "x-truncated": true
    },
    "pricing": {
      "type": "string",
      "x-truncated": "string"
    },
    "uuid": "00000000-0000-0000-0000-000000000000",
    "ecommerce_subscription_uuid": "00000000-0000-0000-0000-000000000000"
  },
  "loa": [
    {
      "data": "string"
    }
  ],
  "market_service": {
    "expires_at": 1.0,
    "registry": "string",
    "uuid": "00000000-0000-0000-0000-000000000000"
  },
  "ecommerce_subscription_uuid": "00000000-0000-0000-0000-000000000000",
  "ecommerce_pending_order": {
    "uuid": {},
    "status": {},
    "expires_at": {}
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Revoke LOA documents for multiple subnets

POST/v1/{tenantUUID}/market/ipv4/services/loa/revoke

Revoke LOA documents for multiple subnets

API-Pub-IPMarket-IPv4-Services-LOA-BulkRevokebilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/loa/revoke' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/loa/revoke"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/loa/revoke";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/loa/revoke", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/loa/revoke");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
OK
401
Unauthorized
403
Forbidden
404
Not Found

Reserve Subnet

POST/v1/{tenantUUID}/market/ipv4/services/reserve

Reserve Subnet

API-Pub-IPMarket-IPv4-Services-Reservebilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
pricing_uuid
stringuuidrequired
No description in the spec
address
stringrequired
No description in the spec
cidr
integerrequired
No description in the spec
ip_price
stringrequired
No description in the spec
contract_length
integerrequired
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/reserve' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "pricing_uuid": "00000000-0000-0000-0000-000000000000",
       "address": "string",
       "cidr": 1,
       "ip_price": "string",
       "contract_length": 1
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/reserve"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "pricing_uuid": "00000000-0000-0000-0000-000000000000",
  "address": "string",
  "cidr": 1,
  "ip_price": "string",
  "contract_length": 1
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/reserve";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "pricing_uuid": "00000000-0000-0000-0000-000000000000",
    "address": "string",
    "cidr": 1,
    "ip_price": "string",
    "contract_length": 1
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "pricing_uuid": "00000000-0000-0000-0000-000000000000",
  "address": "string",
  "cidr": 1,
  "ip_price": "string",
  "contract_length": 1
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/reserve", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/reserve");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "pricing_uuid" => "00000000-0000-0000-0000-000000000000",
            "address" => "string",
            "cidr" => 1,
            "ip_price" => "string",
            "contract_length" => 1
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Success
400
Invalid Request
401
Unauthorized
403
Forbidden
404
Not Found

Billing Terminate Request

GET/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}

Billing Terminate Request

API-Pub-IPMarket-IPv4-Services-Showbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
serviceUUID
stringrequired
Service UUID
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Success
400
Invalid Request
401
Unauthorized
403
Forbidden
404
Not Found

IPv4 Service Geodata

GET/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/geodata

IPv4 Service Geodata

API-Pub-IPMarket-IPv4-Services-Geodatabilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
serviceUUID
stringrequired
Service UUID
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/geodata' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/geodata"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/geodata";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/geodata", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/geodata");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Success
400
Invalid Request
401
Unauthorized
403
Forbidden
404
Not Found

Immediate termination request for IPv4 Service

POST/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/immediate-termination

Immediate termination request for IPv4 Service

API-Pub-IPv4-Services-ImmediateTerminationbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
serviceUUID
stringrequired
Service UUID
Request body
description
stringrequired
Termination reason description
use_again
booleanrequired
No description in the spec
reason
stringuuidrequired
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/immediate-termination' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "description": "string",
       "use_again": true,
       "reason": "00000000-0000-0000-0000-000000000000"
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/immediate-termination"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "description": "string",
  "use_again": true,
  "reason": "00000000-0000-0000-0000-000000000000"
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/immediate-termination";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "description": "string",
    "use_again": true,
    "reason": "00000000-0000-0000-0000-000000000000"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "description": "string",
  "use_again": true,
  "reason": "00000000-0000-0000-0000-000000000000"
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/immediate-termination", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/immediate-termination");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "description" => "string",
            "use_again" => true,
            "reason" => "00000000-0000-0000-0000-000000000000"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Success
401
Unauthorized
403
Forbidden
404
Not Found

List of Billing Service LOA documents

GET/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa

List of Billing Service LOA documents

API-Pub-IPMarket-IPv4-Services-LOA-Indexbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
serviceUUID
stringrequired
Service UUID
Query parameters
statuses
array
Filter By LOA Document Statuses
Response 200
data
array<object>
No description in the spec
data.uuid
stringuuid
No description in the spec
data.asn
numberinteger
No description in the spec
data.as_name
string
No description in the spec
data.status
string
No description in the spec
data.created_at
numberinteger
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
List of Billing Service LOA documents
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "asn": 1.0,
      "as_name": "string",
      "status": "string",
      "created_at": 1.0
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 1,
    "to": 1,
    "total": 1
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Get LOA documents Zip

GET/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa/download

Get LOA documents Zip

API-Pub-IPMarket-IPv4-Services-LOA-Downloadbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
serviceUUID
stringrequired
Service UUID
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa/download' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa/download"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa/download";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa/download", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa/download");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
LOA Documents
204
No Content
401
Unauthorized
403
Forbidden
404
Not Found

List IP Market Services

GET/v1/{tenantUUID}/market/services

List IP Market Services

API-Pub-IPMarket-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
include
string
No description in the spec
sort
array
Sort
filter
object
Filters
Request body
cidr
integer
CIDR
address
string
IP Address
hidden
boolean
Show only Subnets hidden from market
status
array<string>
No description in the spec
registry
string
Registry
sort
array<string>
No description in the spec
Response 200
data
array<object>
No description in the spec
data.uuid
any
No description in the spec
data.address
any
No description in the spec
data.cidr
any
No description in the spec
data.start
any
No description in the spec
data.abuse_email
any
No description in the spec
data.registry
any
No description in the spec
data.status
any
No description in the spec
data.auth
any
No description in the spec
data.auth.type
any
No description in the spec
data.auth.x-truncated
any
No description in the spec
data.whois
any
No description in the spec
data.whois.type
any
No description in the spec
data.whois.x-truncated
any
No description in the spec
data.bgp
any
No description in the spec
data.bgp.type
any
No description in the spec
data.bgp.x-truncated
any
No description in the spec
data.dns
any
No description in the spec
data.dns.type
any
No description in the spec
data.dns.x-truncated
any
No description in the spec
data.iprep
any
No description in the spec
data.iprep.type
any
No description in the spec
data.iprep.x-truncated
any
No description in the spec
data.loaa
any
No description in the spec
data.loaa.type
any
No description in the spec
data.loaa.x-truncated
any
No description in the spec
data.roa
any
No description in the spec
data.roa.type
any
No description in the spec
data.roa.x-truncated
any
No description in the spec
data.hidden
any
No description in the spec
data.reservation_id
any
No description in the spec
data.minimum_split
any
No description in the spec
data.maximum_split
any
No description in the spec
data.loa-a
object
No description in the spec
data.ips
object
No description in the spec
data.pricings
object
No description in the spec
data.terminated
any
No description in the spec
data.expires_at
any
No description in the spec
data.has_commitments
any
No description in the spec
data.can_initiate_expiration
any
No description in the spec
data.services
object
No description in the spec
data.commitmentReservations
object
No description in the spec
data.serviceReservations
object
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "cidr": 1,
       "address": "string",
       "hidden": true,
       "status": [
         "auth_pending"
       ],
       "registry": "string",
       "sort": [
         "cidr"
       ]
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "cidr": 1,
  "address": "string",
  "hidden": true,
  "status": [
    "auth_pending"
  ],
  "registry": "string",
  "sort": [
    "cidr"
  ]
}

r = requests.get(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "cidr": 1,
    "address": "string",
    "hidden": true,
    "status": [
      "auth_pending"
    ],
    "registry": "string",
    "sort": [
      "cidr"
    ]
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "cidr": 1,
  "address": "string",
  "hidden": true,
  "status": [
    "auth_pending"
  ],
  "registry": "string",
  "sort": [
    "cidr"
  ]
}`)
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "cidr" => 1,
            "address" => "string",
            "hidden" => true,
            "status" => ["auth_pending"],
            "registry" => "string",
            "sort" => ["cidr"]
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IP Market Service
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "address": "string",
      "cidr": "string",
      "start": "string",
      "abuse_email": "[email protected]",
      "registry": "string",
      "status": "string",
      "auth": {
        "type": "string",
        "x-truncated": "string"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 1,
    "to": 1,
    "total": 1
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Create IP Market Service

POST/v1/{tenantUUID}/market/services

Creates and returns IP Market Service

API-Pub-IPMarket-Createbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
subnets
array<object>
No description in the spec
subnets.address
string
Subnet Address
subnets.cidr
integer
Subnet CIDR
subnets.minimum_split
integer
No description in the spec
subnets.maximum_split
integer
No description in the spec
subnets.pricings
array<object>
list of allowed to purchase CIDR pricings. Example: {'/30': 3.21, '/32': 1.23}
subnets.pricings.cidr
object
No description in the spec
subnets.pricings.value
object
No description in the spec
subnets.pricings.wants_to_negotiate
object
No description in the spec
subnets.pricings.selected_commitment_periods
object
No description in the spec
subnets.hidden
boolean
No description in the spec
subnets.maintainer_id
string
APNIC maintainer ID
subnets.maintainer_password
string
APNIC maintainer password
subnets.registry
string
Registry name, e.g. apnic
tos_accepted
booleanrequired
No description in the spec
subnet_actions_accepted
booleanrequired
No description in the spec
Response 201
data
array<object>
No description in the spec
data.uuid
any
No description in the spec
data.address
any
No description in the spec
data.cidr
any
No description in the spec
data.start
any
No description in the spec
data.abuse_email
any
No description in the spec
data.registry
any
No description in the spec
data.status
any
No description in the spec
data.auth
any
No description in the spec
data.auth.type
any
No description in the spec
data.auth.x-truncated
any
No description in the spec
data.whois
any
No description in the spec
data.whois.type
any
No description in the spec
data.whois.x-truncated
any
No description in the spec
data.bgp
any
No description in the spec
data.bgp.type
any
No description in the spec
data.bgp.x-truncated
any
No description in the spec
data.dns
any
No description in the spec
data.dns.type
any
No description in the spec
data.dns.x-truncated
any
No description in the spec
data.iprep
any
No description in the spec
data.iprep.type
any
No description in the spec
data.iprep.x-truncated
any
No description in the spec
data.loaa
any
No description in the spec
data.loaa.type
any
No description in the spec
data.loaa.x-truncated
any
No description in the spec
data.roa
any
No description in the spec
data.roa.type
any
No description in the spec
data.roa.x-truncated
any
No description in the spec
data.hidden
any
No description in the spec
data.reservation_id
any
No description in the spec
data.minimum_split
any
No description in the spec
data.maximum_split
any
No description in the spec
data.loa-a
object
No description in the spec
data.ips
object
No description in the spec
data.pricings
object
No description in the spec
data.terminated
any
No description in the spec
data.expires_at
any
No description in the spec
data.has_commitments
any
No description in the spec
data.can_initiate_expiration
any
No description in the spec
data.services
object
No description in the spec
data.commitmentReservations
object
No description in the spec
data.serviceReservations
object
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "subnets": [
         {
           "address": "string",
           "cidr": 1,
           "minimum_split": 1,
           "maximum_split": 1,
           "pricings": [
             {
               "cidr": "\u2026",
               "value": "\u2026",
               "wants_to_negotiate": "\u2026",
               "selected_commitment_periods": "\u2026"
             }
           ],
           "hidden": true,
           "maintainer_id": "string",
           "maintainer_password": "string"
         }
       ],
       "tos_accepted": true,
       "subnet_actions_accepted": true
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "subnets": [
    {
      "address": "string",
      "cidr": 1,
      "minimum_split": 1,
      "maximum_split": 1,
      "pricings": [
        {
          "cidr": "\u2026",
          "value": "\u2026",
          "wants_to_negotiate": "\u2026",
          "selected_commitment_periods": "\u2026"
        }
      ],
      "hidden": true,
      "maintainer_id": "string",
      "maintainer_password": "string"
    }
  ],
  "tos_accepted": true,
  "subnet_actions_accepted": true
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "subnets": [
      {
        "address": "string",
        "cidr": 1,
        "minimum_split": 1,
        "maximum_split": 1,
        "pricings": [
          {
            "cidr": "\u2026",
            "value": "\u2026",
            "wants_to_negotiate": "\u2026",
            "selected_commitment_periods": "\u2026"
          }
        ],
        "hidden": true,
        "maintainer_id": "string",
        "maintainer_password": "string"
      }
    ],
    "tos_accepted": true,
    "subnet_actions_accepted": true
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "subnets": [
    {
      "address": "string",
      "cidr": 1,
      "minimum_split": 1,
      "maximum_split": 1,
      "pricings": [
        {
          "cidr": "\u2026",
          "value": "\u2026",
          "wants_to_negotiate": "\u2026",
          "selected_commitment_periods": "\u2026"
        }
      ],
      "hidden": true,
      "maintainer_id": "string",
      "maintainer_password": "string"
    }
  ],
  "tos_accepted": true,
  "subnet_actions_accepted": true
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "subnets" => [[
                "address" => "string",
                "cidr" => 1,
                "minimum_split" => 1,
                "maximum_split" => 1,
                "pricings" => [[
                    "cidr" => "\u2026",
                    "value" => "\u2026",
                    "wants_to_negotiate" => "\u2026",
                    "selected_commitment_periods" => "\u2026"
                ]],
                "hidden" => true,
                "maintainer_id" => "string",
                "maintainer_password" => "string"
            ]],
            "tos_accepted" => true,
            "subnet_actions_accepted" => true
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
201
IP Market Service
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "address": "string",
      "cidr": "string",
      "start": "string",
      "abuse_email": "[email protected]",
      "registry": "string",
      "status": "string",
      "auth": {
        "type": "string",
        "x-truncated": "string"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 1,
    "to": 1,
    "total": 1
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Export CSV IP Market Services

GET/v1/{tenantUUID}/market/services/csv

Export CSV IP Market Services

API-Pub-IPMarket-exportToCsvbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
cidr
integer
CIDR
address
string
IP Address
hidden
boolean
Show only Subnets hidden from market
status
array<string>
No description in the spec
registry
string
Registry
sort
array<string>
No description in the spec
Response 200
data
array<object>
No description in the spec
data.uuid
any
No description in the spec
data.address
any
No description in the spec
data.cidr
any
No description in the spec
data.start
any
No description in the spec
data.abuse_email
any
No description in the spec
data.registry
any
No description in the spec
data.status
any
No description in the spec
data.auth
any
No description in the spec
data.auth.type
any
No description in the spec
data.auth.x-truncated
any
No description in the spec
data.whois
any
No description in the spec
data.whois.type
any
No description in the spec
data.whois.x-truncated
any
No description in the spec
data.bgp
any
No description in the spec
data.bgp.type
any
No description in the spec
data.bgp.x-truncated
any
No description in the spec
data.dns
any
No description in the spec
data.dns.type
any
No description in the spec
data.dns.x-truncated
any
No description in the spec
data.iprep
any
No description in the spec
data.iprep.type
any
No description in the spec
data.iprep.x-truncated
any
No description in the spec
data.loaa
any
No description in the spec
data.loaa.type
any
No description in the spec
data.loaa.x-truncated
any
No description in the spec
data.roa
any
No description in the spec
data.roa.type
any
No description in the spec
data.roa.x-truncated
any
No description in the spec
data.hidden
any
No description in the spec
data.reservation_id
any
No description in the spec
data.minimum_split
any
No description in the spec
data.maximum_split
any
No description in the spec
data.loa-a
object
No description in the spec
data.ips
object
No description in the spec
data.pricings
object
No description in the spec
data.terminated
any
No description in the spec
data.expires_at
any
No description in the spec
data.has_commitments
any
No description in the spec
data.can_initiate_expiration
any
No description in the spec
data.services
object
No description in the spec
data.commitmentReservations
object
No description in the spec
data.serviceReservations
object
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/csv' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "cidr": 1,
       "address": "string",
       "hidden": true,
       "status": [
         "auth_pending"
       ],
       "registry": "string",
       "sort": [
         "cidr"
       ]
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/csv"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "cidr": 1,
  "address": "string",
  "hidden": true,
  "status": [
    "auth_pending"
  ],
  "registry": "string",
  "sort": [
    "cidr"
  ]
}

r = requests.get(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/csv";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "cidr": 1,
    "address": "string",
    "hidden": true,
    "status": [
      "auth_pending"
    ],
    "registry": "string",
    "sort": [
      "cidr"
    ]
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "cidr": 1,
  "address": "string",
  "hidden": true,
  "status": [
    "auth_pending"
  ],
  "registry": "string",
  "sort": [
    "cidr"
  ]
}`)
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/csv", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/csv");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "cidr" => 1,
            "address" => "string",
            "hidden" => true,
            "status" => ["auth_pending"],
            "registry" => "string",
            "sort" => ["cidr"]
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IP Market Service
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "address": "string",
      "cidr": "string",
      "start": "string",
      "abuse_email": "[email protected]",
      "registry": "string",
      "status": "string",
      "auth": {
        "type": "string",
        "x-truncated": "string"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 1,
    "to": 1,
    "total": 1
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Get IP Market Service

GET/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}

Get IP Market Service

API-Pub-Market-Showbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Query parameters
include
string
No description in the spec
Response 200
uuid
string
No description in the spec
address
string
No description in the spec
cidr
integer
No description in the spec
start
string
No description in the spec
abuse_email
string
No description in the spec
registry
string
No description in the spec
status
string
No description in the spec
auth_pending auth_failed_verify auth_failed_verify_email_not_found auth_failed_verify_email_not_sent validity_pending validity_active validity_invalid validity_terminated
auth
object
No description in the spec
auth.type
string
No description in the spec
auth.status
string
No description in the spec
auth.description
string
No description in the spec
whois
object
No description in the spec
whois.status
string
No description in the spec
whois.description
string
No description in the spec
bgp
object
No description in the spec
bgp.status
string
No description in the spec
bgp.description
string
No description in the spec
dns
object
No description in the spec
dns.status
string
No description in the spec
dns.description
string
No description in the spec
iprep
object
No description in the spec
iprep.status
string
No description in the spec
iprep.description
string
No description in the spec
loaa
object
No description in the spec
loaa.status
string
No description in the spec
loaa.description
string
No description in the spec
roa
object
No description in the spec
roa.status
string
No description in the spec
roa.description
string
No description in the spec
hidden
boolean
No description in the spec
reservation_id
string
No description in the spec
minimum_split
integer
No description in the spec
maximum_split
integer
No description in the spec
loa-a
object
No description in the spec
loa-a.email
string
No description in the spec
loa-a.status
string
No description in the spec
loa-a.created_at
integer
No description in the spec
ips
object
No description in the spec
ips.run_rate
numberfloat
No description in the spec
ips.run_rate_ip
numberfloat
No description in the spec
ips.total
integer
No description in the spec
ips.used
integer
No description in the spec
ips.free
integer
No description in the spec
ips.utilisation_percent
integer
No description in the spec
pricings
object
No description in the spec
pricings.data
array<object>
No description in the spec
pricings.meta
any
No description in the spec
pricings.meta.type
any
No description in the spec
pricings.meta.x-truncated
any
No description in the spec
terminated
integer
No description in the spec
expires_at
integer
No description in the spec
has_commitments
boolean
No description in the spec
can_initiate_expiration
boolean
No description in the spec
services
object
No description in the spec
services.uuid
string
No description in the spec
services.cidr
integer
No description in the spec
services.address
string
No description in the spec
services.status
string
No description in the spec
services.pricing
any
No description in the spec
services.pricing.type
any
No description in the spec
services.pricing.x-truncated
any
No description in the spec
services.commitment
any
No description in the spec
services.commitment.type
any
No description in the spec
services.commitment.x-truncated
any
No description in the spec
commitmentReservations
object
No description in the spec
commitmentReservations.uuid
string
No description in the spec
commitmentReservations.address
string
No description in the spec
commitmentReservations.cidr
numberint
No description in the spec
commitmentReservations.price
numberfloat
No description in the spec
commitmentReservations.commitment_period
numberint
No description in the spec
commitmentReservations.created_at
numberint
No description in the spec
commitmentReservations.tenant
any
No description in the spec
commitmentReservations.tenant.type
any
No description in the spec
commitmentReservations.tenant.x-truncated
any
No description in the spec
commitmentReservations.ipmarket_service
any
No description in the spec
commitmentReservations.ipmarket_service.type
any
No description in the spec
commitmentReservations.ipmarket_service.x-truncated
any
No description in the spec
commitmentReservations.commitment
any
No description in the spec
commitmentReservations.commitment.type
any
No description in the spec
commitmentReservations.commitment.x-truncated
any
No description in the spec
serviceReservations
object
No description in the spec
serviceReservations.address
string
No description in the spec
serviceReservations.cidr
numberint
No description in the spec
serviceReservations.pricing
any
No description in the spec
serviceReservations.pricing.type
any
No description in the spec
serviceReservations.pricing.x-truncated
any
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IP Market Service
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "address": "string",
  "cidr": 1,
  "start": "string",
  "abuse_email": "[email protected]",
  "registry": "string",
  "status": "auth_pending",
  "auth": {
    "type": "string",
    "status": "string",
    "description": "string"
  }
}
401
Unauthorized
403
Forbidden
404
Not Found

Update IP Market Service

PATCH/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}

Updates and returns IP Market Service

API-Pub-IPMarket-Updatebilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Query parameters
include
string
No description in the spec
Request body
hidden
boolean
No description in the spec
minimum_split
integer
No description in the spec
maximum_split
integer
No description in the spec
pricings
array<object>
list of allowed to purchase CIDR pricings. Example: {'/30': 3.21, '/32': 1.23}
pricings.uuid
stringuuid
No description in the spec
pricings.cidr
integer
No description in the spec
pricings.value
numberfloat
No description in the spec
pricings.wants_to_negotiate
boolean
No description in the spec
pricings.selected_commitment_periods
array<integer>
Commitment period in months
maintainer_id
string
APNIC maintainer ID
maintainer_password
string
APNIC maintainer password
Response 200
uuid
string
No description in the spec
address
string
No description in the spec
cidr
integer
No description in the spec
start
string
No description in the spec
abuse_email
string
No description in the spec
registry
string
No description in the spec
status
string
No description in the spec
auth_pending auth_failed_verify auth_failed_verify_email_not_found auth_failed_verify_email_not_sent validity_pending validity_active validity_invalid validity_terminated
auth
object
No description in the spec
auth.type
string
No description in the spec
auth.status
string
No description in the spec
auth.description
string
No description in the spec
whois
object
No description in the spec
whois.status
string
No description in the spec
whois.description
string
No description in the spec
bgp
object
No description in the spec
bgp.status
string
No description in the spec
bgp.description
string
No description in the spec
dns
object
No description in the spec
dns.status
string
No description in the spec
dns.description
string
No description in the spec
iprep
object
No description in the spec
iprep.status
string
No description in the spec
iprep.description
string
No description in the spec
loaa
object
No description in the spec
loaa.status
string
No description in the spec
loaa.description
string
No description in the spec
roa
object
No description in the spec
roa.status
string
No description in the spec
roa.description
string
No description in the spec
hidden
boolean
No description in the spec
reservation_id
string
No description in the spec
minimum_split
integer
No description in the spec
maximum_split
integer
No description in the spec
loa-a
object
No description in the spec
loa-a.email
string
No description in the spec
loa-a.status
string
No description in the spec
loa-a.created_at
integer
No description in the spec
ips
object
No description in the spec
ips.run_rate
numberfloat
No description in the spec
ips.run_rate_ip
numberfloat
No description in the spec
ips.total
integer
No description in the spec
ips.used
integer
No description in the spec
ips.free
integer
No description in the spec
ips.utilisation_percent
integer
No description in the spec
pricings
object
No description in the spec
pricings.data
array<object>
No description in the spec
pricings.meta
any
No description in the spec
pricings.meta.type
any
No description in the spec
pricings.meta.x-truncated
any
No description in the spec
terminated
integer
No description in the spec
expires_at
integer
No description in the spec
has_commitments
boolean
No description in the spec
can_initiate_expiration
boolean
No description in the spec
services
object
No description in the spec
services.uuid
string
No description in the spec
services.cidr
integer
No description in the spec
services.address
string
No description in the spec
services.status
string
No description in the spec
services.pricing
any
No description in the spec
services.pricing.type
any
No description in the spec
services.pricing.x-truncated
any
No description in the spec
services.commitment
any
No description in the spec
services.commitment.type
any
No description in the spec
services.commitment.x-truncated
any
No description in the spec
commitmentReservations
object
No description in the spec
commitmentReservations.uuid
string
No description in the spec
commitmentReservations.address
string
No description in the spec
commitmentReservations.cidr
numberint
No description in the spec
commitmentReservations.price
numberfloat
No description in the spec
commitmentReservations.commitment_period
numberint
No description in the spec
commitmentReservations.created_at
numberint
No description in the spec
commitmentReservations.tenant
any
No description in the spec
commitmentReservations.tenant.type
any
No description in the spec
commitmentReservations.tenant.x-truncated
any
No description in the spec
commitmentReservations.ipmarket_service
any
No description in the spec
commitmentReservations.ipmarket_service.type
any
No description in the spec
commitmentReservations.ipmarket_service.x-truncated
any
No description in the spec
commitmentReservations.commitment
any
No description in the spec
commitmentReservations.commitment.type
any
No description in the spec
commitmentReservations.commitment.x-truncated
any
No description in the spec
serviceReservations
object
No description in the spec
serviceReservations.address
string
No description in the spec
serviceReservations.cidr
numberint
No description in the spec
serviceReservations.pricing
any
No description in the spec
serviceReservations.pricing.type
any
No description in the spec
serviceReservations.pricing.x-truncated
any
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "hidden": true,
       "minimum_split": 1,
       "maximum_split": 1,
       "pricings": [
         {
           "uuid": "00000000-0000-0000-0000-000000000000",
           "cidr": 1,
           "value": 1.0,
           "wants_to_negotiate": true,
           "selected_commitment_periods": [
             {
               "type": "object",
               "x-truncated": true
             }
           ]
         }
       ],
       "maintainer_id": "string",
       "maintainer_password": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "hidden": true,
  "minimum_split": 1,
  "maximum_split": 1,
  "pricings": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "cidr": 1,
      "value": 1.0,
      "wants_to_negotiate": true,
      "selected_commitment_periods": [
        {
          "type": "object",
          "x-truncated": true
        }
      ]
    }
  ],
  "maintainer_id": "string",
  "maintainer_password": "string"
}

r = requests.patch(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "hidden": true,
    "minimum_split": 1,
    "maximum_split": 1,
    "pricings": [
      {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "cidr": 1,
        "value": 1.0,
        "wants_to_negotiate": true,
        "selected_commitment_periods": [
          {
            "type": "object",
            "x-truncated": true
          }
        ]
      }
    ],
    "maintainer_id": "string",
    "maintainer_password": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "hidden": true,
  "minimum_split": 1,
  "maximum_split": 1,
  "pricings": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "cidr": 1,
      "value": 1.0,
      "wants_to_negotiate": true,
      "selected_commitment_periods": [
        {
          "type": "object",
          "x-truncated": true
        }
      ]
    }
  ],
  "maintainer_id": "string",
  "maintainer_password": "string"
}`)
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "hidden" => true,
            "minimum_split" => 1,
            "maximum_split" => 1,
            "pricings" => [[
                "uuid" => "00000000-0000-0000-0000-000000000000",
                "cidr" => 1,
                "value" => 1.0,
                "wants_to_negotiate" => true,
                "selected_commitment_periods" => [[
                    "type" => "object",
                    "x-truncated" => true
                ]]
            ]],
            "maintainer_id" => "string",
            "maintainer_password" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IP Market Service
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "address": "string",
  "cidr": 1,
  "start": "string",
  "abuse_email": "[email protected]",
  "registry": "string",
  "status": "auth_pending",
  "auth": {
    "type": "string",
    "status": "string",
    "description": "string"
  }
}
401
Unauthorized
403
Forbidden
404
Not Found
422
Unprocessable Entity

Cancel IP Market Service

DELETE/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}

Cancel IP Market Service

API-Pub-IPMarket-Terminatebilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Response 200
uuid
string
No description in the spec
address
string
No description in the spec
cidr
integer
No description in the spec
start
string
No description in the spec
abuse_email
string
No description in the spec
registry
string
No description in the spec
status
string
No description in the spec
auth_pending auth_failed_verify auth_failed_verify_email_not_found auth_failed_verify_email_not_sent validity_pending validity_active validity_invalid validity_terminated
auth
object
No description in the spec
auth.type
string
No description in the spec
auth.status
string
No description in the spec
auth.description
string
No description in the spec
whois
object
No description in the spec
whois.status
string
No description in the spec
whois.description
string
No description in the spec
bgp
object
No description in the spec
bgp.status
string
No description in the spec
bgp.description
string
No description in the spec
dns
object
No description in the spec
dns.status
string
No description in the spec
dns.description
string
No description in the spec
iprep
object
No description in the spec
iprep.status
string
No description in the spec
iprep.description
string
No description in the spec
loaa
object
No description in the spec
loaa.status
string
No description in the spec
loaa.description
string
No description in the spec
roa
object
No description in the spec
roa.status
string
No description in the spec
roa.description
string
No description in the spec
hidden
boolean
No description in the spec
reservation_id
string
No description in the spec
minimum_split
integer
No description in the spec
maximum_split
integer
No description in the spec
loa-a
object
No description in the spec
loa-a.email
string
No description in the spec
loa-a.status
string
No description in the spec
loa-a.created_at
integer
No description in the spec
ips
object
No description in the spec
ips.run_rate
numberfloat
No description in the spec
ips.run_rate_ip
numberfloat
No description in the spec
ips.total
integer
No description in the spec
ips.used
integer
No description in the spec
ips.free
integer
No description in the spec
ips.utilisation_percent
integer
No description in the spec
pricings
object
No description in the spec
pricings.data
array<object>
No description in the spec
pricings.meta
any
No description in the spec
pricings.meta.type
any
No description in the spec
pricings.meta.x-truncated
any
No description in the spec
terminated
integer
No description in the spec
expires_at
integer
No description in the spec
has_commitments
boolean
No description in the spec
can_initiate_expiration
boolean
No description in the spec
services
object
No description in the spec
services.uuid
string
No description in the spec
services.cidr
integer
No description in the spec
services.address
string
No description in the spec
services.status
string
No description in the spec
services.pricing
any
No description in the spec
services.pricing.type
any
No description in the spec
services.pricing.x-truncated
any
No description in the spec
services.commitment
any
No description in the spec
services.commitment.type
any
No description in the spec
services.commitment.x-truncated
any
No description in the spec
commitmentReservations
object
No description in the spec
commitmentReservations.uuid
string
No description in the spec
commitmentReservations.address
string
No description in the spec
commitmentReservations.cidr
numberint
No description in the spec
commitmentReservations.price
numberfloat
No description in the spec
commitmentReservations.commitment_period
numberint
No description in the spec
commitmentReservations.created_at
numberint
No description in the spec
commitmentReservations.tenant
any
No description in the spec
commitmentReservations.tenant.type
any
No description in the spec
commitmentReservations.tenant.x-truncated
any
No description in the spec
commitmentReservations.ipmarket_service
any
No description in the spec
commitmentReservations.ipmarket_service.type
any
No description in the spec
commitmentReservations.ipmarket_service.x-truncated
any
No description in the spec
commitmentReservations.commitment
any
No description in the spec
commitmentReservations.commitment.type
any
No description in the spec
commitmentReservations.commitment.x-truncated
any
No description in the spec
serviceReservations
object
No description in the spec
serviceReservations.address
string
No description in the spec
serviceReservations.cidr
numberint
No description in the spec
serviceReservations.pricing
any
No description in the spec
serviceReservations.pricing.type
any
No description in the spec
serviceReservations.pricing.x-truncated
any
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.delete(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IP Market Service
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "address": "string",
  "cidr": 1,
  "start": "string",
  "abuse_email": "[email protected]",
  "registry": "string",
  "status": "auth_pending",
  "auth": {
    "type": "string",
    "status": "string",
    "description": "string"
  }
}
401
Unauthorized
403
Forbidden
404
Not Found

Get LOA-A document PDF

GET/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/documents/download

Get LOA-A document PDF

API-Pub-IPMarket-Services-Documents-Downloadbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/documents/download' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/documents/download"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/documents/download";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/documents/download", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/documents/download");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
LOA-A Documents
401
Unauthorized
403
Forbidden
404
Not Found

Cancel IP Market Service expiration

DELETE/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/expiration

Cancel IP Market Service expiration

API-Pub-IPMarket-Cancel-Expirationbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Response 200
uuid
string
No description in the spec
address
string
No description in the spec
cidr
integer
No description in the spec
start
string
No description in the spec
abuse_email
string
No description in the spec
registry
string
No description in the spec
status
string
No description in the spec
auth_pending auth_failed_verify auth_failed_verify_email_not_found auth_failed_verify_email_not_sent validity_pending validity_active validity_invalid validity_terminated
auth
object
No description in the spec
auth.type
string
No description in the spec
auth.status
string
No description in the spec
auth.description
string
No description in the spec
whois
object
No description in the spec
whois.status
string
No description in the spec
whois.description
string
No description in the spec
bgp
object
No description in the spec
bgp.status
string
No description in the spec
bgp.description
string
No description in the spec
dns
object
No description in the spec
dns.status
string
No description in the spec
dns.description
string
No description in the spec
iprep
object
No description in the spec
iprep.status
string
No description in the spec
iprep.description
string
No description in the spec
loaa
object
No description in the spec
loaa.status
string
No description in the spec
loaa.description
string
No description in the spec
roa
object
No description in the spec
roa.status
string
No description in the spec
roa.description
string
No description in the spec
hidden
boolean
No description in the spec
reservation_id
string
No description in the spec
minimum_split
integer
No description in the spec
maximum_split
integer
No description in the spec
loa-a
object
No description in the spec
loa-a.email
string
No description in the spec
loa-a.status
string
No description in the spec
loa-a.created_at
integer
No description in the spec
ips
object
No description in the spec
ips.run_rate
numberfloat
No description in the spec
ips.run_rate_ip
numberfloat
No description in the spec
ips.total
integer
No description in the spec
ips.used
integer
No description in the spec
ips.free
integer
No description in the spec
ips.utilisation_percent
integer
No description in the spec
pricings
object
No description in the spec
pricings.data
array<object>
No description in the spec
pricings.meta
any
No description in the spec
pricings.meta.type
any
No description in the spec
pricings.meta.x-truncated
any
No description in the spec
terminated
integer
No description in the spec
expires_at
integer
No description in the spec
has_commitments
boolean
No description in the spec
can_initiate_expiration
boolean
No description in the spec
services
object
No description in the spec
services.uuid
string
No description in the spec
services.cidr
integer
No description in the spec
services.address
string
No description in the spec
services.status
string
No description in the spec
services.pricing
any
No description in the spec
services.pricing.type
any
No description in the spec
services.pricing.x-truncated
any
No description in the spec
services.commitment
any
No description in the spec
services.commitment.type
any
No description in the spec
services.commitment.x-truncated
any
No description in the spec
commitmentReservations
object
No description in the spec
commitmentReservations.uuid
string
No description in the spec
commitmentReservations.address
string
No description in the spec
commitmentReservations.cidr
numberint
No description in the spec
commitmentReservations.price
numberfloat
No description in the spec
commitmentReservations.commitment_period
numberint
No description in the spec
commitmentReservations.created_at
numberint
No description in the spec
commitmentReservations.tenant
any
No description in the spec
commitmentReservations.tenant.type
any
No description in the spec
commitmentReservations.tenant.x-truncated
any
No description in the spec
commitmentReservations.ipmarket_service
any
No description in the spec
commitmentReservations.ipmarket_service.type
any
No description in the spec
commitmentReservations.ipmarket_service.x-truncated
any
No description in the spec
commitmentReservations.commitment
any
No description in the spec
commitmentReservations.commitment.type
any
No description in the spec
commitmentReservations.commitment.x-truncated
any
No description in the spec
serviceReservations
object
No description in the spec
serviceReservations.address
string
No description in the spec
serviceReservations.cidr
numberint
No description in the spec
serviceReservations.pricing
any
No description in the spec
serviceReservations.pricing.type
any
No description in the spec
serviceReservations.pricing.x-truncated
any
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/expiration' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/expiration"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.delete(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/expiration";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/expiration", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/expiration");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IP Market Service
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "address": "string",
  "cidr": 1,
  "start": "string",
  "abuse_email": "[email protected]",
  "registry": "string",
  "status": "auth_pending",
  "auth": {
    "type": "string",
    "status": "string",
    "description": "string"
  }
}
401
Unauthorized
403
Forbidden
404
Not Found

Search hidden children subnets

GET/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/ipv4/hidden/children

Returns hidden children subnets for market service

API-Pub-Market-IPV4-Hidden-Childrenbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Query parameters
mask
integer
Filter by mask
address
string
Filter by address
page
integer
List Page
per_page
integer
Items Per Page
Response 200
address
string
No description in the spec
mask
integer
No description in the spec
price
numberfloat
No description in the spec
associated_subnets
array<string>
No description in the spec
hiding_reason
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/ipv4/hidden/children' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/ipv4/hidden/children"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/ipv4/hidden/children";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/ipv4/hidden/children", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/ipv4/hidden/children");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful operation
{
  "address": "string",
  "mask": 1,
  "price": 1.0,
  "associated_subnets": [
    "string"
  ],
  "hiding_reason": "string"
}
401
Unauthorized
403
Forbidden
404
Not Found

List IP Market Service Pricing

GET/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/pricing

List IP Market Service Pricing

API-Pub-Market-Pricingbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Response 200
data
array<object>
No description in the spec
data.uuid
any
No description in the spec
data.subnet_size
any
No description in the spec
data.ip_count
any
No description in the spec
data.price
any
No description in the spec
data.commission
any
No description in the spec
data.wants_to_negotiate
any
No description in the spec
data.selected_commitment_periods
any
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/pricing' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/pricing"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/pricing";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/pricing", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/pricing");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IP Market Service
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "subnet_size": "string",
      "ip_count": "string",
      "price": "string",
      "commission": "string",
      "wants_to_negotiate": "string",
      "selected_commitment_periods": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 1,
    "to": 1,
    "total": 1
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Get IP Market service reputation scan result list

GET/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reputations

Get IP Market service reputation scan result list

API-Pub-IPMarket-Services-Reputation-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Response 200
data
array<object>
No description in the spec
data.id
any
No description in the spec
data.ip
any
No description in the spec
data.ip_int
any
No description in the spec
data.country_code
any
No description in the spec
data.detection_rate
any
No description in the spec
data.detections
any
No description in the spec
data.detections_engine_list
any
No description in the spec
data.engines_count
any
No description in the spec
data.is_listed
any
No description in the spec
data.is_proxy
any
No description in the spec
data.is_tor
any
No description in the spec
data.is_vpn
any
No description in the spec
data.session_id
any
No description in the spec
data.created
any
No description in the spec
data.meta
object
No description in the spec
meta
object
No description in the spec
meta.limit
integer
No description in the spec
meta.offset
integer
No description in the spec
meta.count
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reputations' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reputations"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reputations";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reputations", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reputations");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IP Market service reputation scan results list
{
  "data": [
    {
      "id": "string",
      "ip": "string",
      "ip_int": "string",
      "country_code": "string",
      "detection_rate": "string",
      "detections": "string",
      "detections_engine_list": "string",
      "engines_count": "string"
    }
  ],
  "meta": {
    "limit": 1,
    "offset": 1,
    "count": 1
  }
}
401
Unauthorized
403
Forbidden
404
Not Found

Resend IP Market Service Verification Email

POST/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/resend_verification

Resend IP Market Service Verification Email

API-Pub-IPMarket-ResendVerificationbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/resend_verification' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/resend_verification"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/resend_verification";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/resend_verification", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/resend_verification");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
400
Invalid Request
401
Unauthorized
403
Forbidden
406
Service has no abuse email set!

Update The Commitment Reservation ID

POST/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reservation_id

Update The Commitment Reservation ID

API-Pub-IPMarket-UpdateReservationIdbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Query parameters
remove
boolean
Remove The Commitment Reservation Id
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reservation_id' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reservation_id"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reservation_id";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reservation_id", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reservation_id");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
400
Invalid Request
401
Unauthorized
403
Forbidden

Return the status report for service

GET/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/status

Return the status report for service

API-Pub-Market-Statusbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Response 200
abuse_email
string
No description in the spec
registry
string
No description in the spec
status
string
No description in the spec
auth_pending auth_failed_verify auth_failed_verify_email_not_found auth_failed_verify_email_not_sent validity_pending validity_active validity_invalid validity_terminated
auth
object
No description in the spec
auth.type
string
No description in the spec
auth.status
string
No description in the spec
auth.description
string
No description in the spec
whois
object
No description in the spec
whois.status
string
No description in the spec
whois.description
string
No description in the spec
bgp
object
No description in the spec
bgp.status
string
No description in the spec
bgp.description
string
No description in the spec
dns
object
No description in the spec
dns.status
string
No description in the spec
dns.description
string
No description in the spec
iprep
object
No description in the spec
iprep.status
string
No description in the spec
iprep.description
string
No description in the spec
loaa
object
No description in the spec
loaa.status
string
No description in the spec
loaa.description
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/status' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/status"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/status";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/status", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/status");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IP Market Service Status Report
{
  "abuse_email": "[email protected]",
  "registry": "string",
  "status": "auth_pending",
  "auth": {
    "type": "string",
    "status": "string",
    "description": "string"
  },
  "whois": {
    "status": "string",
    "description": "string"
  },
  "bgp": {
    "status": "string",
    "description": "string"
  },
  "dns": {
    "status": "string",
    "description": "string"
  },
  "iprep": {
    "status": "string",
    "description": "string"
  }
}
401
Unauthorized
403
Forbidden
404
Not Found

Cart & checkout

16 operations

The object synthesised

The spec declares no named object for this resource, so the renderer synthesised one from its richest response body (GET /public/{user_id}/cart). Fields no endpoint returns cannot appear here.

Attributes
data
object
No description in the spec
data.uuid
string
No description in the spec
data.total
object
No description in the spec
data.sub_total
object
No description in the spec
data.tax_total
object
No description in the spec
data.credits_total
object
No description in the spec
data.discount_total
object
No description in the spec
data.remaining_total
object
No description in the spec
data.credits_eligible_amount
object
No description in the spec
data.total_before_tax
object
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.expires_at
string
No description in the spec

Current Cart

GET/public/{user_id}/cart

Show the current Cart.

currentCartecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
string
No description in the spec
data.remaining_total.amount
string
No description in the spec
data.remaining_total.amount_minor
integer
No description in the spec
data.credits_eligible_amount
object
No description in the spec
data.credits_eligible_amount.currency
string
No description in the spec
data.credits_eligible_amount.amount
string
No description in the spec
data.credits_eligible_amount.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
any
No description in the spec
data.tax_breakdown.amount.type
any
No description in the spec
data.tax_breakdown.amount.x-truncated
any
No description in the spec
data.tax_breakdown.code
any
No description in the spec
data.tax_breakdown.name
any
No description in the spec
data.tax_breakdown.rate
any
No description in the spec
data.tax_breakdown.calculator_type
any
No description in the spec
data.tax_breakdown.notice
any
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
any
No description in the spec
data.discount_breakdown.amount.type
any
No description in the spec
data.discount_breakdown.amount.x-truncated
any
No description in the spec
data.discount_breakdown.code
any
No description in the spec
data.discount_breakdown.name
any
No description in the spec
data.discount_breakdown.rate
any
No description in the spec
data.discount_breakdown.calculator_type
any
No description in the spec
data.discount_breakdown.notice
any
No description in the spec
data.expires_at
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "tax_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "remaining_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_eligible_amount": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}

Show Cart

GET/public/{user_id}/cart/{cart_uuid}

Show the Cart.

showCartecommerce

Path parameters
user_id
stringrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
string
No description in the spec
data.remaining_total.amount
string
No description in the spec
data.remaining_total.amount_minor
integer
No description in the spec
data.credits_eligible_amount
object
No description in the spec
data.credits_eligible_amount.currency
string
No description in the spec
data.credits_eligible_amount.amount
string
No description in the spec
data.credits_eligible_amount.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
any
No description in the spec
data.tax_breakdown.amount.type
any
No description in the spec
data.tax_breakdown.amount.x-truncated
any
No description in the spec
data.tax_breakdown.code
any
No description in the spec
data.tax_breakdown.name
any
No description in the spec
data.tax_breakdown.rate
any
No description in the spec
data.tax_breakdown.calculator_type
any
No description in the spec
data.tax_breakdown.notice
any
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
any
No description in the spec
data.discount_breakdown.amount.type
any
No description in the spec
data.discount_breakdown.amount.x-truncated
any
No description in the spec
data.discount_breakdown.code
any
No description in the spec
data.discount_breakdown.name
any
No description in the spec
data.discount_breakdown.rate
any
No description in the spec
data.discount_breakdown.calculator_type
any
No description in the spec
data.discount_breakdown.notice
any
No description in the spec
data.expires_at
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "tax_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "remaining_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_eligible_amount": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}

Create Cart Address

POST/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}

Create a single Cart Address.

createCartAddressecommerce

Path parameters
user_id
integerrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
customerAddress_id
integerrequired
The ID of the customerAddress.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.first_name
string
No description in the spec
data.last_name
string
No description in the spec
data.company_name
string
No description in the spec
data.vat_number
string
No description in the spec
data.vat_validation_status
string
No description in the spec
data.vat_validated_at
string
No description in the spec
data.line_one
string
No description in the spec
data.line_two
string
No description in the spec
data.line_three
string
No description in the spec
data.city
string
No description in the spec
data.province_code
string
No description in the spec
data.country_code
string
No description in the spec
data.postcode
string
No description in the spec
data.contact_email
string
No description in the spec
data.contact_phone
string
No description in the spec
data.company_code
string
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "first_name": "string",
    "last_name": "string",
    "company_name": "string",
    "vat_number": "string",
    "vat_validation_status": "string",
    "vat_validated_at": "string",
    "line_one": "string"
  }
}

Update Cart Address

PATCH/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}

Update a Cart Address.

updateCartAddressecommerce

Path parameters
user_id
integerrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
customerAddress_id
integerrequired
The ID of the customerAddress.
Request body
line_one
stringrequired
Must not be greater than 255 characters.
line_two
string
Must not be greater than 255 characters.
city
stringrequired
Must not be greater than 255 characters.
postcode
stringrequired
Must not be greater than 20 characters.
province_code
string
Must not be greater than 10 characters.
contact_email
string
Must be a valid email address. Must not be greater than 255 characters.
vat_number
string
Must not be greater than 50 characters.
company_code
string
Must not be greater than 50 characters.
first_name
string
Must not be greater than 255 characters.
last_name
string
Must not be greater than 255 characters.
company_name
string
Must not be greater than 255 characters.
contact_phone
string
Must not be greater than 50 characters.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.first_name
string
No description in the spec
data.last_name
string
No description in the spec
data.company_name
string
No description in the spec
data.vat_number
string
No description in the spec
data.vat_validation_status
string
No description in the spec
data.vat_validated_at
string
No description in the spec
data.line_one
string
No description in the spec
data.line_two
string
No description in the spec
data.line_three
string
No description in the spec
data.city
string
No description in the spec
data.province_code
string
No description in the spec
data.country_code
string
No description in the spec
data.postcode
string
No description in the spec
data.contact_email
string
No description in the spec
data.contact_phone
string
No description in the spec
data.company_code
string
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "line_one": "string",
       "line_two": "string",
       "city": "string",
       "postcode": "string",
       "province_code": "string",
       "contact_email": "[email protected]",
       "vat_number": "string",
       "company_code": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "line_one": "string",
  "line_two": "string",
  "city": "string",
  "postcode": "string",
  "province_code": "string",
  "contact_email": "[email protected]",
  "vat_number": "string",
  "company_code": "string"
}

r = requests.patch(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "line_one": "string",
    "line_two": "string",
    "city": "string",
    "postcode": "string",
    "province_code": "string",
    "contact_email": "[email protected]",
    "vat_number": "string",
    "company_code": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "line_one": "string",
  "line_two": "string",
  "city": "string",
  "postcode": "string",
  "province_code": "string",
  "contact_email": "[email protected]",
  "vat_number": "string",
  "company_code": "string"
}`)
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/addresses/{customerAddress_id}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "line_one" => "string",
            "line_two" => "string",
            "city" => "string",
            "postcode" => "string",
            "province_code" => "string",
            "contact_email" => "[email protected]",
            "vat_number" => "string",
            "company_code" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "first_name": "string",
    "last_name": "string",
    "company_name": "string",
    "vat_number": "string",
    "vat_validation_status": "string",
    "vat_validated_at": "string",
    "line_one": "string"
  }
}

Checkout Cart

POST/public/{user_id}/cart/{cart_uuid}/checkout

Checkout the current Cart.

checkoutCartecommerce

Path parameters
user_id
stringrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.order
object
No description in the spec
data.order.uuid
string
No description in the spec
data.order.status
string
No description in the spec
data.order.placed_at
string
No description in the spec
data.order.expires_at
string
No description in the spec
data.order.sub_total
object
No description in the spec
data.order.sub_total.currency
object
No description in the spec
data.order.sub_total.amount
object
No description in the spec
data.order.sub_total.amount_minor
object
No description in the spec
data.order.discount_total
object
No description in the spec
data.order.discount_total.currency
object
No description in the spec
data.order.discount_total.amount
object
No description in the spec
data.order.discount_total.amount_minor
object
No description in the spec
data.order.tax_total
object
No description in the spec
data.order.tax_total.currency
object
No description in the spec
data.order.tax_total.amount
object
No description in the spec
data.order.tax_total.amount_minor
object
No description in the spec
data.order.credits_total
object
No description in the spec
data.order.credits_total.currency
object
No description in the spec
data.order.credits_total.amount
object
No description in the spec
data.order.credits_total.amount_minor
object
No description in the spec
data.order.total
object
No description in the spec
data.order.total.currency
object
No description in the spec
data.order.total.amount
object
No description in the spec
data.order.total.amount_minor
object
No description in the spec
data.order.remaining_total
object
No description in the spec
data.order.remaining_total.currency
object
No description in the spec
data.order.remaining_total.amount
object
No description in the spec
data.order.remaining_total.amount_minor
object
No description in the spec
data.order.total_before_tax
object
No description in the spec
data.order.total_before_tax.currency
object
No description in the spec
data.order.total_before_tax.amount
object
No description in the spec
data.order.total_before_tax.amount_minor
object
No description in the spec
data.order.tax_breakdown
array<{'type': 'object', 'x-truncated': True}>
No description in the spec
data.order.tax_breakdown.type
any
No description in the spec
data.order.tax_breakdown.x-truncated
any
No description in the spec
data.order.discount_breakdown
array<{'type': 'object', 'x-truncated': True}>
No description in the spec
data.order.discount_breakdown.type
any
No description in the spec
data.order.discount_breakdown.x-truncated
any
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/checkout' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/checkout"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/checkout";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/checkout", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/checkout");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "order": {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "status": "string",
      "placed_at": "string",
      "expires_at": "string",
      "sub_total": {
        "currency": {},
        "amount": {},
        "amount_minor": {}
      },
      "discount_total": {
        "currency": {},
        "amount": {},
        "amount_minor": {}
      },
      "tax_total": {
        "currency": {},
        "amount": {},
        "amount_minor": {}
      },
      "credits_total": {
        "currency": {},
        "amount": {},
        "amount_minor": {}
      }
    }
  }
}

Remove Credits From Cart

DELETE/public/{user_id}/cart/{cart_uuid}/credits

Remove Credits from Cart

removeCreditsFromCartecommerce

Path parameters
user_id
stringrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
Request body
amount
number
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
string
No description in the spec
data.remaining_total.amount
string
No description in the spec
data.remaining_total.amount_minor
integer
No description in the spec
data.credits_eligible_amount
object
No description in the spec
data.credits_eligible_amount.currency
string
No description in the spec
data.credits_eligible_amount.amount
string
No description in the spec
data.credits_eligible_amount.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
any
No description in the spec
data.tax_breakdown.amount.type
any
No description in the spec
data.tax_breakdown.amount.x-truncated
any
No description in the spec
data.tax_breakdown.code
any
No description in the spec
data.tax_breakdown.name
any
No description in the spec
data.tax_breakdown.rate
any
No description in the spec
data.tax_breakdown.calculator_type
any
No description in the spec
data.tax_breakdown.notice
any
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
any
No description in the spec
data.discount_breakdown.amount.type
any
No description in the spec
data.discount_breakdown.amount.x-truncated
any
No description in the spec
data.discount_breakdown.code
any
No description in the spec
data.discount_breakdown.name
any
No description in the spec
data.discount_breakdown.rate
any
No description in the spec
data.discount_breakdown.calculator_type
any
No description in the spec
data.discount_breakdown.notice
any
No description in the spec
data.expires_at
string
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/credits' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "amount": 1.0
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/credits"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "amount": 1.0
}

r = requests.delete(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/credits";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "amount": 1.0
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "amount": 1.0
}`)
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/credits", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/credits");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "amount" => 1.0
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "tax_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "remaining_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_eligible_amount": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}

Apply Credits To Cart

POST/public/{user_id}/cart/{cart_uuid}/credits/apply

Apply Credits to Cart

applyCreditsToCartecommerce

Path parameters
user_id
stringrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
Request body
amount
number
Must be at least 0.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
string
No description in the spec
data.remaining_total.amount
string
No description in the spec
data.remaining_total.amount_minor
integer
No description in the spec
data.credits_eligible_amount
object
No description in the spec
data.credits_eligible_amount.currency
string
No description in the spec
data.credits_eligible_amount.amount
string
No description in the spec
data.credits_eligible_amount.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
any
No description in the spec
data.tax_breakdown.amount.type
any
No description in the spec
data.tax_breakdown.amount.x-truncated
any
No description in the spec
data.tax_breakdown.code
any
No description in the spec
data.tax_breakdown.name
any
No description in the spec
data.tax_breakdown.rate
any
No description in the spec
data.tax_breakdown.calculator_type
any
No description in the spec
data.tax_breakdown.notice
any
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
any
No description in the spec
data.discount_breakdown.amount.type
any
No description in the spec
data.discount_breakdown.amount.x-truncated
any
No description in the spec
data.discount_breakdown.code
any
No description in the spec
data.discount_breakdown.name
any
No description in the spec
data.discount_breakdown.rate
any
No description in the spec
data.discount_breakdown.calculator_type
any
No description in the spec
data.discount_breakdown.notice
any
No description in the spec
data.expires_at
string
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/credits/apply' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "amount": 1.0
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/credits/apply"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "amount": 1.0
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/credits/apply";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "amount": 1.0
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "amount": 1.0
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/credits/apply", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/credits/apply");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "amount" => 1.0
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "tax_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "remaining_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_eligible_amount": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}

Apply Discount Code

POST/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}

Applies discount code to cart.

applyDiscountCodeecommerce

Path parameters
user_id
stringrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
discountCode_code
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
string
No description in the spec
data.remaining_total.amount
string
No description in the spec
data.remaining_total.amount_minor
integer
No description in the spec
data.credits_eligible_amount
object
No description in the spec
data.credits_eligible_amount.currency
string
No description in the spec
data.credits_eligible_amount.amount
string
No description in the spec
data.credits_eligible_amount.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
any
No description in the spec
data.tax_breakdown.amount.type
any
No description in the spec
data.tax_breakdown.amount.x-truncated
any
No description in the spec
data.tax_breakdown.code
any
No description in the spec
data.tax_breakdown.name
any
No description in the spec
data.tax_breakdown.rate
any
No description in the spec
data.tax_breakdown.calculator_type
any
No description in the spec
data.tax_breakdown.notice
any
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
any
No description in the spec
data.discount_breakdown.amount.type
any
No description in the spec
data.discount_breakdown.amount.x-truncated
any
No description in the spec
data.discount_breakdown.code
any
No description in the spec
data.discount_breakdown.name
any
No description in the spec
data.discount_breakdown.rate
any
No description in the spec
data.discount_breakdown.calculator_type
any
No description in the spec
data.discount_breakdown.notice
any
No description in the spec
data.expires_at
string
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "tax_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "remaining_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_eligible_amount": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}
204
Successfully applied discount code to cart
{}

Remove Discount Code from Cart

DELETE/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}

Remove discount code from a cart.

removeDiscountCodeFromCartecommerce

Path parameters
user_id
stringrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
discountCode_code
stringrequired
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.delete(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/discount-code/{discountCode_code}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
204
Successfully removed discount code from cart
{}

List Cart Lines

GET/public/{user_id}/cart/{cart_uuid}/lines

List the current Cart Lines.

listCartLinesecommerce

Path parameters
user_id
stringrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.reference_id
string
No description in the spec
data.title
string
No description in the spec
data.description
string
No description in the spec
data.quantity
integer
No description in the spec
data.unit_quantity
integer
No description in the spec
data.purchasable_type
string
No description in the spec
data.purchasable_id
string
No description in the spec
data.unit_price
object
No description in the spec
data.unit_price.currency
any
No description in the spec
data.unit_price.amount
any
No description in the spec
data.unit_price.amount_minor
any
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
any
No description in the spec
data.sub_total.amount
any
No description in the spec
data.sub_total.amount_minor
any
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
any
No description in the spec
data.discount_total.amount
any
No description in the spec
data.discount_total.amount_minor
any
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
any
No description in the spec
data.tax_total.amount
any
No description in the spec
data.tax_total.amount_minor
any
No description in the spec
data.total
object
No description in the spec
data.total.currency
any
No description in the spec
data.total.amount
any
No description in the spec
data.total.amount_minor
any
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
any
No description in the spec
data.total_before_tax.amount
any
No description in the spec
data.total_before_tax.amount_minor
any
No description in the spec
data.exchange_rate
string
No description in the spec
data.exchange_rate_fetched_at
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "reference_id": "string",
      "title": "string",
      "description": "string",
      "quantity": 1,
      "unit_quantity": 1,
      "purchasable_type": "string",
      "purchasable_id": "string"
    }
  ]
}

Add To Cart

POST/public/{user_id}/cart/{cart_uuid}/lines

Add a Purchasable to the Cart.

addToCartecommerce

Path parameters
user_id
stringrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
Request body
price_id
stringrequired
Must be a valid UUID. The <code>uuid</code> of an existing record in the prices table.
quantity
number
Must be at least 1.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.reference_id
string
No description in the spec
data.title
string
No description in the spec
data.description
string
No description in the spec
data.quantity
integer
No description in the spec
data.unit_quantity
integer
No description in the spec
data.purchasable_type
string
No description in the spec
data.purchasable_id
string
No description in the spec
data.unit_price
object
No description in the spec
data.unit_price.currency
string
No description in the spec
data.unit_price.amount
string
No description in the spec
data.unit_price.amount_minor
integer
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.exchange_rate
string
No description in the spec
data.exchange_rate_fetched_at
string
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "price_id": "string",
       "quantity": 1.0
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "price_id": "string",
  "quantity": 1.0
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "price_id": "string",
    "quantity": 1.0
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "price_id": "string",
  "quantity": 1.0
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "price_id" => "string",
            "quantity" => 1.0
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "reference_id": "string",
    "title": "string",
    "description": "string",
    "quantity": 1,
    "unit_quantity": 1,
    "purchasable_type": "string",
    "purchasable_id": "string"
  }
}

Remove Line

DELETE/public/{user_id}/cart/{cart_uuid}/lines/{cartLine_uuid}

Remove a Cart Line.

removeLineecommerce

Path parameters
user_id
stringrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
cartLine_uuid
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
string
No description in the spec
data.remaining_total.amount
string
No description in the spec
data.remaining_total.amount_minor
integer
No description in the spec
data.credits_eligible_amount
object
No description in the spec
data.credits_eligible_amount.currency
string
No description in the spec
data.credits_eligible_amount.amount
string
No description in the spec
data.credits_eligible_amount.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
any
No description in the spec
data.tax_breakdown.amount.type
any
No description in the spec
data.tax_breakdown.amount.x-truncated
any
No description in the spec
data.tax_breakdown.code
any
No description in the spec
data.tax_breakdown.name
any
No description in the spec
data.tax_breakdown.rate
any
No description in the spec
data.tax_breakdown.calculator_type
any
No description in the spec
data.tax_breakdown.notice
any
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
any
No description in the spec
data.discount_breakdown.amount.type
any
No description in the spec
data.discount_breakdown.amount.x-truncated
any
No description in the spec
data.discount_breakdown.code
any
No description in the spec
data.discount_breakdown.name
any
No description in the spec
data.discount_breakdown.rate
any
No description in the spec
data.discount_breakdown.calculator_type
any
No description in the spec
data.discount_breakdown.notice
any
No description in the spec
data.expires_at
string
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines/{cartLine_uuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines/{cartLine_uuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.delete(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines/{cartLine_uuid}";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines/{cartLine_uuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/lines/{cartLine_uuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "tax_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "remaining_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_eligible_amount": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}

Show Cart Payment Method

GET/public/{user_id}/cart/{cart_uuid}/payment-method

Show cart payment method.

showCartPaymentMethodecommerce

Path parameters
user_id
stringrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.type
string
No description in the spec
data.is_default
boolean
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/payment-method' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/payment-method"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/payment-method";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/payment-method", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/payment-method");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "type": "string",
    "is_default": true
  }
}

Update Cart Payment Method

PATCH/public/{user_id}/cart/{cart_uuid}/payment-method/{paymentMethod_uuid}

Update the Cart Payment Method.

updateCartPaymentMethodecommerce

Path parameters
user_id
stringrequired
The ID of the user.
cart_uuid
stringrequired
No description in the spec
paymentMethod_uuid
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
string
No description in the spec
data.remaining_total.amount
string
No description in the spec
data.remaining_total.amount_minor
integer
No description in the spec
data.credits_eligible_amount
object
No description in the spec
data.credits_eligible_amount.currency
string
No description in the spec
data.credits_eligible_amount.amount
string
No description in the spec
data.credits_eligible_amount.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
any
No description in the spec
data.tax_breakdown.amount.type
any
No description in the spec
data.tax_breakdown.amount.x-truncated
any
No description in the spec
data.tax_breakdown.code
any
No description in the spec
data.tax_breakdown.name
any
No description in the spec
data.tax_breakdown.rate
any
No description in the spec
data.tax_breakdown.calculator_type
any
No description in the spec
data.tax_breakdown.notice
any
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
any
No description in the spec
data.discount_breakdown.amount.type
any
No description in the spec
data.discount_breakdown.amount.x-truncated
any
No description in the spec
data.discount_breakdown.code
any
No description in the spec
data.discount_breakdown.name
any
No description in the spec
data.discount_breakdown.rate
any
No description in the spec
data.discount_breakdown.calculator_type
any
No description in the spec
data.discount_breakdown.notice
any
No description in the spec
data.expires_at
string
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/payment-method/{paymentMethod_uuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/payment-method/{paymentMethod_uuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.patch(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/payment-method/{paymentMethod_uuid}";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/payment-method/{paymentMethod_uuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/cart/{cart_uuid}/payment-method/{paymentMethod_uuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "tax_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "remaining_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_eligible_amount": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}

Add item to shopping cart

POST/v1/{tenantUUID}/cart/items

Adds new item to shopping cart. For LOA product type with AWS BYOIP provisioning, include aws_account_id, aws_service, and aws_region in product_fields.

API-Pub-Cart-AddItembilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
product_type
stringrequired
Product Type
ipv4 ipv6 loa asn
billing_cycle
integerrequired
Billing Cycle
0 1 3 6 12 24
label
string
Service label
product_options
object
Product options are different per product. Please lookup the options from the respective product endpoint
product_options.quantity
object
No description in the spec
product_options.quantity.<key1>
integer
No description in the spec
product_options.quantity.<key2>
integer
No description in the spec
product_options.quantity.<key..>
integer
No description in the spec
product_options.quantity.<keyN>
integer
No description in the spec
product_options.selection
object
No description in the spec
product_options.selection.<key1>
string
No description in the spec
product_options.selection.<key2>
string
No description in the spec
product_options.selection.<key..>
string
No description in the spec
product_options.selection.<keyN>
string
No description in the spec
product_fields
object
Product fields are different per product, and requirements differ. Please lookup the needed fields from the respective product endpoint e.g. `/v1/{tenantUUID}/market/ipv4/product-info` for `ipv4`. For LOA product type with AWS BYOIP, include aws_account_id, aws_service, and aws_region.
product_fields.<key1>
string
No description in the spec
product_fields.<key2>
string
No description in the spec
product_fields.<key..>
string
No description in the spec
product_fields.<keyN>
string
No description in the spec
product_fields.aws_account_id
string
AWS account ID for BYOIP provisioning (LOA only)
product_fields.aws_service
string
AWS service for BYOIP provisioning (LOA only)
product_fields.aws_region
string
AWS region for BYOIP provisioning (LOA only)
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "product_type": "ipv4",
       "billing_cycle": 0,
       "label": "string",
       "product_options": {
         "quantity": {
           "<key1>": 1,
           "<key2>": 1,
           "<key..>": 1,
           "<keyN>": 1
         },
         "selection": {
           "<key1>": "string",
           "<key2>": "string",
           "<key..>": "string",
           "<keyN>": "string"
         }
       },
       "product_fields": {
         "<key1>": "string",
         "<key2>": "string",
         "<key..>": "string",
         "<keyN>": "string",
         "aws_account_id": "string",
         "aws_service": "string",
         "aws_region": "string"
       }
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "product_type": "ipv4",
  "billing_cycle": 0,
  "label": "string",
  "product_options": {
    "quantity": {
      "<key1>": 1,
      "<key2>": 1,
      "<key..>": 1,
      "<keyN>": 1
    },
    "selection": {
      "<key1>": "string",
      "<key2>": "string",
      "<key..>": "string",
      "<keyN>": "string"
    }
  },
  "product_fields": {
    "<key1>": "string",
    "<key2>": "string",
    "<key..>": "string",
    "<keyN>": "string",
    "aws_account_id": "string",
    "aws_service": "string",
    "aws_region": "string"
  }
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "product_type": "ipv4",
    "billing_cycle": 0,
    "label": "string",
    "product_options": {
      "quantity": {
        "<key1>": 1,
        "<key2>": 1,
        "<key..>": 1,
        "<keyN>": 1
      },
      "selection": {
        "<key1>": "string",
        "<key2>": "string",
        "<key..>": "string",
        "<keyN>": "string"
      }
    },
    "product_fields": {
      "<key1>": "string",
      "<key2>": "string",
      "<key..>": "string",
      "<keyN>": "string",
      "aws_account_id": "string",
      "aws_service": "string",
      "aws_region": "string"
    }
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "product_type": "ipv4",
  "billing_cycle": 0,
  "label": "string",
  "product_options": {
    "quantity": {
      "<key1>": 1,
      "<key2>": 1,
      "<key..>": 1,
      "<keyN>": 1
    },
    "selection": {
      "<key1>": "string",
      "<key2>": "string",
      "<key..>": "string",
      "<keyN>": "string"
    }
  },
  "product_fields": {
    "<key1>": "string",
    "<key2>": "string",
    "<key..>": "string",
    "<keyN>": "string",
    "aws_account_id": "string",
    "aws_service": "string",
    "aws_region": "string"
  }
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "product_type" => "ipv4",
            "billing_cycle" => 0,
            "label" => "string",
            "product_options" => [
                "quantity" => [
                    "<key1>" => 1,
                    "<key2>" => 1,
                    "<key..>" => 1,
                    "<keyN>" => 1
                ],
                "selection" => [
                    "<key1>" => "string",
                    "<key2>" => "string",
                    "<key..>" => "string",
                    "<keyN>" => "string"
                ]
            ],
            "product_fields" => [
                "<key1>" => "string",
                "<key2>" => "string",
                "<key..>" => "string",
                "<keyN>" => "string",
                "aws_account_id" => "string",
                "aws_service" => "string",
                "aws_region" => "string"
            ]
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
204
Successful operation
401
Unauthorized
403
Forbidden
404
Not Found

Get cart extra information

GET/v1/{tenantUUID}/cart/{cartUUID}/extra-info

Returns extra information for all items in the specified cart

API-Pub-Cart-GetExtraInfobilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
cartUUID
stringrequired
Cart UUID
Response 200
data
array<object>
No description in the spec
data.cart_line_uuid
stringuuid
Cart line UUID
data.extra
object
Extra information object
data.product_type
string
Product type
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/{cartUUID}/extra-info' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/{cartUUID}/extra-info"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/{cartUUID}/extra-info";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/{cartUUID}/extra-info", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/{cartUUID}/extra-info");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Cart items extra information collection
{
  "data": [
    {
      "cart_line_uuid": "00000000-0000-0000-0000-000000000000",
      "extra": {},
      "product_type": "string"
    }
  ]
}
401
Unauthorized
403
Forbidden
404
Cart not found

Orders

15 operations

The object synthesised

The spec declares no named object for this resource, so the renderer synthesised one from its richest response body (POST /public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}). Fields no endpoint returns cannot appear here.

Attributes
data
object
No description in the spec
data.uuid
string
No description in the spec
data.status
string
No description in the spec
data.placed_at
string
No description in the spec
data.expires_at
string
No description in the spec
data.sub_total
object
No description in the spec
data.discount_total
object
No description in the spec
data.tax_total
object
No description in the spec
data.total
object
No description in the spec
data.credits_total
object
No description in the spec
data.remaining_total
object
No description in the spec
data.total_before_tax
object
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.enabled_free_checkout
boolean
No description in the spec
data.auto_charge
boolean
No description in the spec

List Orders

GET/public/{user_id}/orders

Returns a list of Orders.

listOrdersecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Query parameters
sort
string
A comma-separated list of fields to sort. Multiple allowed. Prefix with `-` to sort descending.
filter[uuid]
string
No description in the spec
filter[status]
string
No description in the spec
filter[purchasable_uuid]
string
No description in the spec
filter[purchasable_type]
string
No description in the spec
filter[placed_at]
string
No description in the spec
filter[reference_id]
string
No description in the spec
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.status
string
No description in the spec
data.placed_at
string
No description in the spec
data.expires_at
string
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
any
No description in the spec
data.sub_total.amount
any
No description in the spec
data.sub_total.amount_minor
any
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
any
No description in the spec
data.discount_total.amount
any
No description in the spec
data.discount_total.amount_minor
any
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
any
No description in the spec
data.tax_total.amount
any
No description in the spec
data.tax_total.amount_minor
any
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
any
No description in the spec
data.credits_total.amount
any
No description in the spec
data.credits_total.amount_minor
any
No description in the spec
data.total
object
No description in the spec
data.total.currency
any
No description in the spec
data.total.amount
any
No description in the spec
data.total.amount_minor
any
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
any
No description in the spec
data.remaining_total.amount
any
No description in the spec
data.remaining_total.amount_minor
any
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
any
No description in the spec
data.total_before_tax.amount
any
No description in the spec
data.total_before_tax.amount_minor
any
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
object
No description in the spec
data.tax_breakdown.code
object
No description in the spec
data.tax_breakdown.name
object
No description in the spec
data.tax_breakdown.rate
object
No description in the spec
data.tax_breakdown.calculator_type
object
No description in the spec
data.tax_breakdown.notice
object
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
object
No description in the spec
data.discount_breakdown.code
object
No description in the spec
data.discount_breakdown.name
object
No description in the spec
data.discount_breakdown.rate
object
No description in the spec
data.discount_breakdown.calculator_type
object
No description in the spec
data.discount_breakdown.notice
object
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "status": "string",
      "placed_at": "string",
      "expires_at": "string",
      "sub_total": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      },
      "discount_total": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      },
      "tax_total": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      },
      "credits_total": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

Show Order

GET/public/{user_id}/orders/{publicOrder_uuid}

Returns a single Order extended information.

showOrderecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder_uuid
stringrequired
No description in the spec
Query parameters
include
string
A comma-separated list of relationships to include. Multiple parameters are allowed.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.status
string
No description in the spec
data.placed_at
string
No description in the spec
data.expires_at
string
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
string
No description in the spec
data.remaining_total.amount
string
No description in the spec
data.remaining_total.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
any
No description in the spec
data.tax_breakdown.amount.type
any
No description in the spec
data.tax_breakdown.amount.x-truncated
any
No description in the spec
data.tax_breakdown.code
any
No description in the spec
data.tax_breakdown.name
any
No description in the spec
data.tax_breakdown.rate
any
No description in the spec
data.tax_breakdown.calculator_type
any
No description in the spec
data.tax_breakdown.notice
any
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
any
No description in the spec
data.discount_breakdown.amount.type
any
No description in the spec
data.discount_breakdown.amount.x-truncated
any
No description in the spec
data.discount_breakdown.code
any
No description in the spec
data.discount_breakdown.name
any
No description in the spec
data.discount_breakdown.rate
any
No description in the spec
data.discount_breakdown.calculator_type
any
No description in the spec
data.discount_breakdown.notice
any
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "status": "string",
    "placed_at": "string",
    "expires_at": "string",
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "tax_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}

Create Order Address

POST/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}

Creates a new Order address.

createOrderAddressecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder_uuid
stringrequired
No description in the spec
customerAddress_id
integerrequired
The ID of the customerAddress.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.first_name
string
No description in the spec
data.last_name
string
No description in the spec
data.company_name
string
No description in the spec
data.vat_number
string
No description in the spec
data.vat_validation_status
string
No description in the spec
data.vat_validated_at
string
No description in the spec
data.line_one
string
No description in the spec
data.line_two
string
No description in the spec
data.line_three
string
No description in the spec
data.city
string
No description in the spec
data.province_code
string
No description in the spec
data.country_code
string
No description in the spec
data.postcode
string
No description in the spec
data.contact_email
string
No description in the spec
data.contact_phone
string
No description in the spec
data.company_code
string
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "first_name": "string",
    "last_name": "string",
    "company_name": "string",
    "vat_number": "string",
    "vat_validation_status": "string",
    "vat_validated_at": "string",
    "line_one": "string"
  }
}

Update Order Address

PATCH/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}

Updates an Order address.

updateOrderAddressecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder_uuid
stringrequired
No description in the spec
customerAddress_id
integerrequired
The ID of the customerAddress.
Request body
line_one
stringrequired
Must not be greater than 255 characters.
line_two
string
Must not be greater than 255 characters.
city
stringrequired
Must not be greater than 255 characters.
postcode
stringrequired
Must not be greater than 20 characters.
province_code
string
Must not be greater than 10 characters.
contact_email
string
Must be a valid email address. Must not be greater than 255 characters.
vat_number
string
Must not be greater than 50 characters.
company_code
string
Must not be greater than 50 characters.
first_name
string
Must not be greater than 255 characters.
last_name
string
Must not be greater than 255 characters.
company_name
string
Must not be greater than 255 characters.
contact_phone
string
Must not be greater than 50 characters.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.first_name
string
No description in the spec
data.last_name
string
No description in the spec
data.company_name
string
No description in the spec
data.vat_number
string
No description in the spec
data.vat_validation_status
string
No description in the spec
data.vat_validated_at
string
No description in the spec
data.line_one
string
No description in the spec
data.line_two
string
No description in the spec
data.line_three
string
No description in the spec
data.city
string
No description in the spec
data.province_code
string
No description in the spec
data.country_code
string
No description in the spec
data.postcode
string
No description in the spec
data.contact_email
string
No description in the spec
data.contact_phone
string
No description in the spec
data.company_code
string
No description in the spec
data.async_processing_required
boolean
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "line_one": "string",
       "line_two": "string",
       "city": "string",
       "postcode": "string",
       "province_code": "string",
       "contact_email": "[email protected]",
       "vat_number": "string",
       "company_code": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "line_one": "string",
  "line_two": "string",
  "city": "string",
  "postcode": "string",
  "province_code": "string",
  "contact_email": "[email protected]",
  "vat_number": "string",
  "company_code": "string"
}

r = requests.patch(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "line_one": "string",
    "line_two": "string",
    "city": "string",
    "postcode": "string",
    "province_code": "string",
    "contact_email": "[email protected]",
    "vat_number": "string",
    "company_code": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "line_one": "string",
  "line_two": "string",
  "city": "string",
  "postcode": "string",
  "province_code": "string",
  "contact_email": "[email protected]",
  "vat_number": "string",
  "company_code": "string"
}`)
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/addresses/{customerAddress_id}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "line_one" => "string",
            "line_two" => "string",
            "city" => "string",
            "postcode" => "string",
            "province_code" => "string",
            "contact_email" => "[email protected]",
            "vat_number" => "string",
            "company_code" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "first_name": "string",
    "last_name": "string",
    "company_name": "string",
    "vat_number": "string",
    "vat_validation_status": "string",
    "vat_validated_at": "string",
    "line_one": "string"
  }
}

Checkout Order

POST/public/{user_id}/orders/{publicOrder_uuid}/checkout

Checkout the Order.

checkoutOrderecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder_uuid
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.order
object
No description in the spec
data.order.uuid
string
No description in the spec
data.order.status
string
No description in the spec
data.order.placed_at
string
No description in the spec
data.order.expires_at
string
No description in the spec
data.order.sub_total
object
No description in the spec
data.order.sub_total.currency
object
No description in the spec
data.order.sub_total.amount
object
No description in the spec
data.order.sub_total.amount_minor
object
No description in the spec
data.order.discount_total
object
No description in the spec
data.order.discount_total.currency
object
No description in the spec
data.order.discount_total.amount
object
No description in the spec
data.order.discount_total.amount_minor
object
No description in the spec
data.order.tax_total
object
No description in the spec
data.order.tax_total.currency
object
No description in the spec
data.order.tax_total.amount
object
No description in the spec
data.order.tax_total.amount_minor
object
No description in the spec
data.order.credits_total
object
No description in the spec
data.order.credits_total.currency
object
No description in the spec
data.order.credits_total.amount
object
No description in the spec
data.order.credits_total.amount_minor
object
No description in the spec
data.order.total
object
No description in the spec
data.order.total.currency
object
No description in the spec
data.order.total.amount
object
No description in the spec
data.order.total.amount_minor
object
No description in the spec
data.order.remaining_total
object
No description in the spec
data.order.remaining_total.currency
object
No description in the spec
data.order.remaining_total.amount
object
No description in the spec
data.order.remaining_total.amount_minor
object
No description in the spec
data.order.total_before_tax
object
No description in the spec
data.order.total_before_tax.currency
object
No description in the spec
data.order.total_before_tax.amount
object
No description in the spec
data.order.total_before_tax.amount_minor
object
No description in the spec
data.order.tax_breakdown
array<{'type': 'object', 'x-truncated': True}>
No description in the spec
data.order.tax_breakdown.type
any
No description in the spec
data.order.tax_breakdown.x-truncated
any
No description in the spec
data.order.discount_breakdown
array<{'type': 'object', 'x-truncated': True}>
No description in the spec
data.order.discount_breakdown.type
any
No description in the spec
data.order.discount_breakdown.x-truncated
any
No description in the spec
data.payment_response
object
No description in the spec
data.payment_response.key
string
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/checkout' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/checkout"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/checkout";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/checkout", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/checkout");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "order": {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "status": "string",
      "placed_at": "string",
      "expires_at": "string",
      "sub_total": {
        "currency": {},
        "amount": {},
        "amount_minor": {}
      },
      "discount_total": {
        "currency": {},
        "amount": {},
        "amount_minor": {}
      },
      "tax_total": {
        "currency": {},
        "amount": {},
        "amount_minor": {}
      },
      "credits_total": {
        "currency": {},
        "amount": {},
        "amount_minor": {}
      }
    },
    "payment_response": {
      "key": "string"
    }
  }
}

Download Order

GET/public/{user_id}/orders/{publicOrder_uuid}/download

Download an Order.

downloadOrderecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder_uuid
stringrequired
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/download' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/download"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/download";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/download", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/download");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successfully generated and returned an Order file.
{}

List Order Lines

GET/public/{user_id}/orders/{publicOrder_uuid}/lines

List the Order Lines.

listOrderLinesecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder_uuid
stringrequired
No description in the spec
Query parameters
include
string
A comma-separated list of relationships to include. Multiple parameters are allowed.
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.title
string
No description in the spec
data.description
string
No description in the spec
data.quantity
integer
No description in the spec
data.unit_quantity
integer
No description in the spec
data.exchange_rate
string
No description in the spec
data.exchange_rate_fetched_at
string
No description in the spec
data.unit_price
object
No description in the spec
data.unit_price.currency
any
No description in the spec
data.unit_price.amount
any
No description in the spec
data.unit_price.amount_minor
any
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
any
No description in the spec
data.sub_total.amount
any
No description in the spec
data.sub_total.amount_minor
any
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
any
No description in the spec
data.discount_total.amount
any
No description in the spec
data.discount_total.amount_minor
any
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
any
No description in the spec
data.tax_total.amount
any
No description in the spec
data.tax_total.amount_minor
any
No description in the spec
data.total
object
No description in the spec
data.total.currency
any
No description in the spec
data.total.amount
any
No description in the spec
data.total.amount_minor
any
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
any
No description in the spec
data.total_before_tax.amount
any
No description in the spec
data.total_before_tax.amount_minor
any
No description in the spec
data.notes
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/lines' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/lines"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/lines";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/lines", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/lines");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "title": "string",
      "description": "string",
      "quantity": 1,
      "unit_quantity": 1,
      "exchange_rate": "string",
      "exchange_rate_fetched_at": "string",
      "unit_price": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

List Refunds for Order

GET/public/{user_id}/orders/{publicOrder_uuid}/refunds

List all Refunds for Order.

listRefundsForOrderecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder_uuid
stringrequired
No description in the spec
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.invoice_id
string
No description in the spec
data.order_uuid
string
No description in the spec
data.reference_id
string
No description in the spec
data.refund_reason
string
No description in the spec
data.refund_method
string
No description in the spec
data.status
string
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
any
No description in the spec
data.tax_total.amount
any
No description in the spec
data.tax_total.amount_minor
any
No description in the spec
data.total
object
No description in the spec
data.total.currency
any
No description in the spec
data.total.amount
any
No description in the spec
data.total.amount_minor
any
No description in the spec
data.items
object
No description in the spec
data.items.data
any
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/refunds' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/refunds"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/refunds";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/refunds", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/refunds");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "invoice_id": "string",
      "order_uuid": "00000000-0000-0000-0000-000000000000",
      "reference_id": "string",
      "refund_reason": "string",
      "refund_method": "string",
      "status": "string",
      "tax_total": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

List Order Transactions

GET/public/{user_id}/orders/{publicOrder_uuid}/transactions

List the Order Transactions.

listOrderTransactionsecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder_uuid
stringrequired
No description in the spec
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.type
string
No description in the spec
data.status
string
No description in the spec
data.gateway_driver
string
No description in the spec
data.amount
object
No description in the spec
data.amount.currency
any
No description in the spec
data.amount.amount
any
No description in the spec
data.amount.amount_minor
any
No description in the spec
data.reference
string
No description in the spec
data.initiated_at
string
No description in the spec
data.created_at
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/transactions' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/transactions"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/transactions";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/transactions", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder_uuid}/transactions");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "type": "string",
      "status": "string",
      "gateway_driver": "string",
      "amount": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      },
      "reference": "string",
      "initiated_at": "string",
      "created_at": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

Remove Credits From Order

DELETE/public/{user_id}/orders/{publicOrder}/credits

Remove Credits from Order

removeCreditsFromOrderecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder
stringrequired
No description in the spec
Request body
amount
number
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.status
string
No description in the spec
data.placed_at
string
No description in the spec
data.expires_at
string
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
string
No description in the spec
data.remaining_total.amount
string
No description in the spec
data.remaining_total.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
any
No description in the spec
data.tax_breakdown.amount.type
any
No description in the spec
data.tax_breakdown.amount.x-truncated
any
No description in the spec
data.tax_breakdown.code
any
No description in the spec
data.tax_breakdown.name
any
No description in the spec
data.tax_breakdown.rate
any
No description in the spec
data.tax_breakdown.calculator_type
any
No description in the spec
data.tax_breakdown.notice
any
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
any
No description in the spec
data.discount_breakdown.amount.type
any
No description in the spec
data.discount_breakdown.amount.x-truncated
any
No description in the spec
data.discount_breakdown.code
any
No description in the spec
data.discount_breakdown.name
any
No description in the spec
data.discount_breakdown.rate
any
No description in the spec
data.discount_breakdown.calculator_type
any
No description in the spec
data.discount_breakdown.notice
any
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/credits' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "amount": 1.0
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/credits"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "amount": 1.0
}

r = requests.delete(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/credits";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "amount": 1.0
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "amount": 1.0
}`)
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/credits", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/credits");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "amount" => 1.0
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "status": "string",
    "placed_at": "string",
    "expires_at": "string",
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "tax_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}

Apply Credits To Order

POST/public/{user_id}/orders/{publicOrder}/credits/apply

Apply Credits to Order

applyCreditsToOrderecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder
stringrequired
No description in the spec
Request body
amount
number
Must be at least 0.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.status
string
No description in the spec
data.placed_at
string
No description in the spec
data.expires_at
string
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
string
No description in the spec
data.remaining_total.amount
string
No description in the spec
data.remaining_total.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
any
No description in the spec
data.tax_breakdown.amount.type
any
No description in the spec
data.tax_breakdown.amount.x-truncated
any
No description in the spec
data.tax_breakdown.code
any
No description in the spec
data.tax_breakdown.name
any
No description in the spec
data.tax_breakdown.rate
any
No description in the spec
data.tax_breakdown.calculator_type
any
No description in the spec
data.tax_breakdown.notice
any
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
any
No description in the spec
data.discount_breakdown.amount.type
any
No description in the spec
data.discount_breakdown.amount.x-truncated
any
No description in the spec
data.discount_breakdown.code
any
No description in the spec
data.discount_breakdown.name
any
No description in the spec
data.discount_breakdown.rate
any
No description in the spec
data.discount_breakdown.calculator_type
any
No description in the spec
data.discount_breakdown.notice
any
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/credits/apply' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "amount": 1.0
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/credits/apply"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "amount": 1.0
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/credits/apply";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "amount": 1.0
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "amount": 1.0
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/credits/apply", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/credits/apply");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "amount" => 1.0
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "status": "string",
    "placed_at": "string",
    "expires_at": "string",
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "tax_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "credits_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}

Apply Discount Code To Order

POST/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}

Apply Discount Code to Order

applyDiscountCodeToOrderecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder
stringrequired
No description in the spec
discountCode_code
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.status
string
No description in the spec
data.placed_at
string
No description in the spec
data.expires_at
string
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.remaining_total
object
No description in the spec
data.remaining_total.currency
string
No description in the spec
data.remaining_total.amount
string
No description in the spec
data.remaining_total.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.tax_breakdown
array<object>
No description in the spec
data.tax_breakdown.amount
any
No description in the spec
data.tax_breakdown.amount.type
any
No description in the spec
data.tax_breakdown.amount.x-truncated
any
No description in the spec
data.tax_breakdown.code
any
No description in the spec
data.tax_breakdown.name
any
No description in the spec
data.tax_breakdown.rate
any
No description in the spec
data.tax_breakdown.calculator_type
any
No description in the spec
data.tax_breakdown.notice
any
No description in the spec
data.discount_breakdown
array<object>
No description in the spec
data.discount_breakdown.amount
any
No description in the spec
data.discount_breakdown.amount.type
any
No description in the spec
data.discount_breakdown.amount.x-truncated
any
No description in the spec
data.discount_breakdown.code
any
No description in the spec
data.discount_breakdown.name
any
No description in the spec
data.discount_breakdown.rate
any
No description in the spec
data.discount_breakdown.calculator_type
any
No description in the spec
data.discount_breakdown.notice
any
No description in the spec
data.enabled_free_checkout
boolean
No description in the spec
data.auto_charge
boolean
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "status": "string",
    "placed_at": "string",
    "expires_at": "string",
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "tax_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}

Remove Discount Code

DELETE/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}

Remove discount code from order.

removeDiscountCodeecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder
stringrequired
No description in the spec
discountCode_code
stringrequired
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.delete(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/discount-code/{discountCode_code}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
204
Successfully removed discount code from order
{}

Show Payment Method

GET/public/{user_id}/orders/{publicOrder}/payment-method

Show Order payment method

showPaymentMethodecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.type
string
No description in the spec
data.is_default
boolean
No description in the spec
data.details
object
No description in the spec
data.details.card_brand
string
No description in the spec
data.details.card_last_four
string
No description in the spec
data.details.card_expiry_month
integer
No description in the spec
data.details.card_expiry_year
integer
No description in the spec
data.status
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/payment-method' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/payment-method"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/payment-method";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/payment-method", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/payment-method");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "type": "string",
    "is_default": true,
    "details": {
      "card_brand": "string",
      "card_last_four": "string",
      "card_expiry_month": 1,
      "card_expiry_year": 1
    },
    "status": "string"
  }
}

Update Payment Method

PATCH/public/{user_id}/orders/{publicOrder}/payment-methods/{paymentMethod_uuid}

Update a Payment Method to Order

updatePaymentMethodecommerce

Path parameters
user_id
stringrequired
The ID of the user.
publicOrder
stringrequired
No description in the spec
paymentMethod_uuid
stringrequired
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/payment-methods/{paymentMethod_uuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/payment-methods/{paymentMethod_uuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.patch(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/payment-methods/{paymentMethod_uuid}";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/payment-methods/{paymentMethod_uuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/orders/{publicOrder}/payment-methods/{paymentMethod_uuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
204
Successfully Updated Payment Method to Order
{}

Subscriptions

12 operations

The object synthesised

The spec declares no named object for this resource, so the renderer synthesised one from its richest response body (GET /public/{user_id}/subscriptions). Fields no endpoint returns cannot appear here.

Attributes
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.name
string
No description in the spec
data.short_description
string
No description in the spec
data.status
string
No description in the spec
data.current_period_start
string
No description in the spec
data.current_period_end
string
No description in the spec
data.previous_period_start
string
No description in the spec
data.previous_period_end
string
No description in the spec
data.started_at
string
No description in the spec
data.terminated_at
string
No description in the spec
data.terminate_at
string
No description in the spec
data.terminate_at_period_end
boolean
No description in the spec
data.is_scheduled_for_termination
boolean
No description in the spec
data.billing_anchor_day
integer
No description in the spec
data.customer
object
No description in the spec
data.total
object
No description in the spec
data.sub_total
object
No description in the spec
data.discount_total
object
No description in the spec
data.current_phase
object
No description in the spec
data.has_immediate_termination
boolean
No description in the spec
data.is_in_grace_period
boolean
No description in the spec
data.expires_at
string
No description in the spec
data.reference_id
string
No description in the spec
data.order_uuid
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec

List Billing Settings

GET/public/{user_id}/billing-settings

List all Billing Settings.

listBillingSettingsecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.billing_anchor_day
integer
No description in the spec
data.payment_term_days
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/billing-settings' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/billing-settings"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/billing-settings";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/billing-settings", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/billing-settings");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "billing_anchor_day": 1,
    "payment_term_days": 1
  }
}

Update Billing Settings

PATCH/public/{user_id}/billing-settings

Update Billing Settings

updateBillingSettingsecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Request body
billing_anchor_day
string
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.billing_anchor_day
integer
No description in the spec
data.payment_term_days
integer
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/ecommerce/public/{user_id}/billing-settings' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "billing_anchor_day": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/billing-settings"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "billing_anchor_day": "string"
}

r = requests.patch(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/billing-settings";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "billing_anchor_day": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "billing_anchor_day": "string"
}`)
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/ecommerce/public/{user_id}/billing-settings", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/billing-settings");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "billing_anchor_day" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "billing_anchor_day": 1,
    "payment_term_days": 1
  }
}
201
Successfully created and updated
{}

List Subscription Category Views

GET/public/{user_id}/subscription-category-views

Returns a list of subscription category views for the customer.

listSubscriptionCategoryViewsecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Query parameters
filter[category_id]
string
No description in the spec
filter[status]
string
No description in the spec
filter[statuses]
string
No description in the spec
sort
string
A comma-separated list of fields to sort. Multiple allowed. Prefix with `-` to sort descending.
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.subscription_id
string
No description in the spec
data.subscription_name
string
No description in the spec
data.status
string
No description in the spec
data.product_category_id
string
No description in the spec
data.product_category_name
string
No description in the spec
data.purchasable_id
string
No description in the spec
data.purchasable_type
string
No description in the spec
data.customer_id
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/subscription-category-views' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscription-category-views"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscription-category-views";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscription-category-views", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/subscription-category-views");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "subscription_id": "string",
      "subscription_name": "string",
      "status": "string",
      "product_category_id": "string",
      "product_category_name": "string",
      "purchasable_id": "string",
      "purchasable_type": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

List Subscriptions

GET/public/{user_id}/subscriptions

List all Subscriptions.

listSubscriptionsecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Query parameters
filter[status]
string
No description in the spec
filter[name]
string
No description in the spec
filter[current_period_end]
string
No description in the spec
include
string
A comma-separated list of relationships to include. Multiple parameters are allowed.
sort
string
A comma-separated list of fields to sort. Multiple allowed. Prefix with `-` to sort descending.
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.name
string
No description in the spec
data.short_description
string
No description in the spec
data.status
string
No description in the spec
data.current_period_start
string
No description in the spec
data.current_period_end
string
No description in the spec
data.previous_period_start
string
No description in the spec
data.previous_period_end
string
No description in the spec
data.started_at
string
No description in the spec
data.terminated_at
string
No description in the spec
data.terminate_at
string
No description in the spec
data.terminate_at_period_end
boolean
No description in the spec
data.is_scheduled_for_termination
boolean
No description in the spec
data.billing_anchor_day
integer
No description in the spec
data.customer
object
No description in the spec
data.customer.uuid
any
No description in the spec
data.customer.auth_id
any
No description in the spec
data.customer.name
any
No description in the spec
data.customer.business_entity_id
any
No description in the spec
data.customer.currency
any
No description in the spec
data.total
object
No description in the spec
data.total.currency
any
No description in the spec
data.total.amount
any
No description in the spec
data.total.amount_minor
any
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
any
No description in the spec
data.sub_total.amount
any
No description in the spec
data.sub_total.amount_minor
any
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
any
No description in the spec
data.discount_total.amount
any
No description in the spec
data.discount_total.amount_minor
any
No description in the spec
data.current_phase
object
No description in the spec
data.current_phase.uuid
any
No description in the spec
data.current_phase.name
any
No description in the spec
data.current_phase.short_description
any
No description in the spec
data.current_phase.start_at
any
No description in the spec
data.current_phase.occurrence
any
No description in the spec
data.current_phase.period
any
No description in the spec
data.current_phase.end_at
any
No description in the spec
data.current_phase.status
any
No description in the spec
data.current_phase.created_at
any
No description in the spec
data.has_immediate_termination
boolean
No description in the spec
data.is_in_grace_period
boolean
No description in the spec
data.expires_at
string
No description in the spec
data.reference_id
string
No description in the spec
data.order_uuid
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "name": "string",
      "short_description": "string",
      "status": "string",
      "current_period_start": "string",
      "current_period_end": "string",
      "previous_period_start": "string",
      "previous_period_end": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

Search Subscriptions

POST/public/{user_id}/subscriptions/search

Search subscriptions with enhanced filtering capabilities including UUID arrays.

searchSubscriptionsecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Request body
per_page
integer
Number of results per page. Must be at least 1. Must not be greater than 100.
page
integer
Page number for pagination. Must be at least 1.
sort
string
Sort by field. Prefix with - for descending order.
include
string
Comma-separated list of relationships to include.
filter
object
Object containing filter criteria.
filter.status
string
No description in the spec
filter.name
string
Must not be greater than 255 characters.
filter.current_period_end
string
Must be a valid date.
filter.uuids
array<string>
This field is required when <code>filter.uuids</code> is present. Must be a valid UUID.
filter.customer
object
No description in the spec
filter.customer.user_id
string
Must not be greater than 255 characters.
filter.customer.name
string
Must not be greater than 255 characters.
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.name
string
No description in the spec
data.short_description
string
No description in the spec
data.status
string
No description in the spec
data.current_period_start
string
No description in the spec
data.current_period_end
string
No description in the spec
data.previous_period_start
string
No description in the spec
data.previous_period_end
string
No description in the spec
data.started_at
string
No description in the spec
data.terminated_at
string
No description in the spec
data.terminate_at
string
No description in the spec
data.terminate_at_period_end
boolean
No description in the spec
data.is_scheduled_for_termination
boolean
No description in the spec
data.billing_anchor_day
integer
No description in the spec
data.customer
object
No description in the spec
data.customer.uuid
any
No description in the spec
data.customer.auth_id
any
No description in the spec
data.customer.name
any
No description in the spec
data.customer.business_entity_id
any
No description in the spec
data.customer.currency
any
No description in the spec
data.total
object
No description in the spec
data.total.currency
any
No description in the spec
data.total.amount
any
No description in the spec
data.total.amount_minor
any
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
any
No description in the spec
data.sub_total.amount
any
No description in the spec
data.sub_total.amount_minor
any
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
any
No description in the spec
data.discount_total.amount
any
No description in the spec
data.discount_total.amount_minor
any
No description in the spec
data.current_phase
object
No description in the spec
data.current_phase.uuid
any
No description in the spec
data.current_phase.name
any
No description in the spec
data.current_phase.short_description
any
No description in the spec
data.current_phase.start_at
any
No description in the spec
data.current_phase.occurrence
any
No description in the spec
data.current_phase.period
any
No description in the spec
data.current_phase.end_at
any
No description in the spec
data.current_phase.status
any
No description in the spec
data.current_phase.created_at
any
No description in the spec
data.has_immediate_termination
boolean
No description in the spec
data.is_in_grace_period
boolean
No description in the spec
data.expires_at
string
No description in the spec
data.reference_id
string
No description in the spec
data.order_uuid
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/search' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "per_page": 1,
       "page": 1,
       "sort": "string",
       "include": "string",
       "filter": {
         "status": "string",
         "name": "string",
         "current_period_end": "string",
         "uuids": [
           "00000000-0000-0000-0000-000000000000"
         ],
         "customer": {
           "user_id": "string",
           "name": "string"
         }
       }
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/search"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "per_page": 1,
  "page": 1,
  "sort": "string",
  "include": "string",
  "filter": {
    "status": "string",
    "name": "string",
    "current_period_end": "string",
    "uuids": [
      "00000000-0000-0000-0000-000000000000"
    ],
    "customer": {
      "user_id": "string",
      "name": "string"
    }
  }
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/search";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "per_page": 1,
    "page": 1,
    "sort": "string",
    "include": "string",
    "filter": {
      "status": "string",
      "name": "string",
      "current_period_end": "string",
      "uuids": [
        "00000000-0000-0000-0000-000000000000"
      ],
      "customer": {
        "user_id": "string",
        "name": "string"
      }
    }
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "per_page": 1,
  "page": 1,
  "sort": "string",
  "include": "string",
  "filter": {
    "status": "string",
    "name": "string",
    "current_period_end": "string",
    "uuids": [
      "00000000-0000-0000-0000-000000000000"
    ],
    "customer": {
      "user_id": "string",
      "name": "string"
    }
  }
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/search", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/search");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "per_page" => 1,
            "page" => 1,
            "sort" => "string",
            "include" => "string",
            "filter" => [
                "status" => "string",
                "name" => "string",
                "current_period_end" => "string",
                "uuids" => ["00000000-0000-0000-0000-000000000000"],
                "customer" => [
                    "user_id" => "string",
                    "name" => "string"
                ]
            ]
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "name": "string",
      "short_description": "string",
      "status": "string",
      "current_period_start": "string",
      "current_period_end": "string",
      "previous_period_start": "string",
      "previous_period_end": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

List Customer Termination Requests

GET/public/{user_id}/subscriptions/termination-requests

Returns a list of Termination Requests for the authenticated customer

listCustomerTerminationRequestsecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Query parameters
filter[subscription_id]
string
No description in the spec
filter[status]
string
No description in the spec
sort
string
A comma-separated list of fields to sort. Multiple allowed. Prefix with `-` to sort descending.
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.type
string
No description in the spec
data.status
string
No description in the spec
data.reason
string
No description in the spec
data.details
string
No description in the spec
data.meta
object
No description in the spec
data.meta.use_again
any
No description in the spec
data.requested_at
string
No description in the spec
data.terminated_at
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "type": "string",
      "status": "string",
      "reason": "string",
      "details": "string",
      "meta": {
        "use_again": "string"
      },
      "requested_at": "string",
      "terminated_at": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

Show Termination Request

GET/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}

Returns a single Termination Request extended information.

showTerminationRequestecommerce

Path parameters
user_id
stringrequired
The ID of the user.
terminationRequest_uuid
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.type
string
No description in the spec
data.status
string
No description in the spec
data.reason
string
No description in the spec
data.details
string
No description in the spec
data.meta
object
No description in the spec
data.meta.use_again
boolean
No description in the spec
data.requested_at
string
No description in the spec
data.terminated_at
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "type": "string",
    "status": "string",
    "reason": "string",
    "details": "string",
    "meta": {
      "use_again": true
    },
    "requested_at": "string",
    "terminated_at": "string"
  }
}

Cancel Termination Request

POST/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}/cancel

Cancel a pending termination request.

cancelTerminationRequestecommerce

Path parameters
user_id
stringrequired
The ID of the user.
terminationRequest_uuid
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.type
string
No description in the spec
data.status
string
No description in the spec
data.reason
string
No description in the spec
data.details
string
No description in the spec
data.meta
object
No description in the spec
data.meta.use_again
boolean
No description in the spec
data.requested_at
string
No description in the spec
data.terminated_at
string
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}/cancel' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}/cancel"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}/cancel";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}/cancel", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/termination-requests/{terminationRequest_uuid}/cancel");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "type": "string",
    "status": "string",
    "reason": "string",
    "details": "string",
    "meta": {
      "use_again": true
    },
    "requested_at": "string",
    "terminated_at": "string"
  }
}

Show Customer Subscription

GET/public/{user_id}/subscriptions/{subscription_uuid}

Returns a single Customer Subscription extended information.

showCustomerSubscriptionecommerce

Path parameters
user_id
stringrequired
The ID of the user.
subscription_uuid
stringrequired
No description in the spec
Query parameters
include
string
A comma-separated list of relationships to include. Multiple parameters are allowed.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.name
string
No description in the spec
data.short_description
string
No description in the spec
data.status
string
No description in the spec
data.current_period_start
string
No description in the spec
data.current_period_end
string
No description in the spec
data.previous_period_start
string
No description in the spec
data.previous_period_end
string
No description in the spec
data.started_at
string
No description in the spec
data.terminated_at
string
No description in the spec
data.terminate_at
string
No description in the spec
data.terminate_at_period_end
boolean
No description in the spec
data.is_scheduled_for_termination
boolean
No description in the spec
data.billing_anchor_day
integer
No description in the spec
data.customer
object
No description in the spec
data.customer.uuid
string
No description in the spec
data.customer.auth_id
string
No description in the spec
data.customer.name
string
No description in the spec
data.customer.business_entity_id
string
No description in the spec
data.customer.currency
string
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.current_phase
object
No description in the spec
data.current_phase.uuid
string
No description in the spec
data.current_phase.name
string
No description in the spec
data.current_phase.short_description
string
No description in the spec
data.current_phase.start_at
string
No description in the spec
data.current_phase.occurrence
string
No description in the spec
data.current_phase.period
integer
No description in the spec
data.current_phase.end_at
string
No description in the spec
data.current_phase.status
string
No description in the spec
data.current_phase.created_at
string
No description in the spec
data.has_immediate_termination
boolean
No description in the spec
data.is_in_grace_period
boolean
No description in the spec
data.expires_at
string
No description in the spec
data.reference_id
string
No description in the spec
data.order_uuid
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "short_description": "string",
    "status": "string",
    "current_period_start": "string",
    "current_period_end": "string",
    "previous_period_start": "string",
    "previous_period_end": "string"
  }
}

Update Subscription

PATCH/public/{user_id}/subscriptions/{subscription_uuid}

Update Single Subscription

updateSubscriptionecommerce

Path parameters
user_id
stringrequired
The ID of the user.
subscription_uuid
stringrequired
No description in the spec
Request body
billing_anchor_day
string
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.name
string
No description in the spec
data.short_description
string
No description in the spec
data.status
string
No description in the spec
data.current_period_start
string
No description in the spec
data.current_period_end
string
No description in the spec
data.previous_period_start
string
No description in the spec
data.previous_period_end
string
No description in the spec
data.started_at
string
No description in the spec
data.terminated_at
string
No description in the spec
data.terminate_at
string
No description in the spec
data.terminate_at_period_end
boolean
No description in the spec
data.is_scheduled_for_termination
boolean
No description in the spec
data.billing_anchor_day
integer
No description in the spec
data.customer
object
No description in the spec
data.customer.uuid
string
No description in the spec
data.customer.auth_id
string
No description in the spec
data.customer.name
string
No description in the spec
data.customer.business_entity_id
string
No description in the spec
data.customer.currency
string
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.current_phase
object
No description in the spec
data.current_phase.uuid
string
No description in the spec
data.current_phase.name
string
No description in the spec
data.current_phase.short_description
string
No description in the spec
data.current_phase.start_at
string
No description in the spec
data.current_phase.occurrence
string
No description in the spec
data.current_phase.period
integer
No description in the spec
data.current_phase.end_at
string
No description in the spec
data.current_phase.status
string
No description in the spec
data.current_phase.created_at
string
No description in the spec
data.has_immediate_termination
boolean
No description in the spec
data.is_in_grace_period
boolean
No description in the spec
data.expires_at
string
No description in the spec
data.reference_id
string
No description in the spec
data.order_uuid
string
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "billing_anchor_day": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "billing_anchor_day": "string"
}

r = requests.patch(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "billing_anchor_day": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "billing_anchor_day": "string"
}`)
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "billing_anchor_day" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "short_description": "string",
    "status": "string",
    "current_period_start": "string",
    "current_period_end": "string",
    "previous_period_start": "string",
    "previous_period_end": "string"
  }
}

List Subscription Phases

GET/public/{user_id}/subscriptions/{subscription_uuid}/phases

Return a list of Subscription Phases.

listSubscriptionPhasesecommerce

Path parameters
user_id
stringrequired
The ID of the user.
subscription_uuid
stringrequired
No description in the spec
Query parameters
sort
string
A comma-separated list of fields to sort. Multiple allowed. Prefix with `-` to sort descending.
filter[start_at]
string
No description in the spec
filter[end_at]
string
No description in the spec
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.name
string
No description in the spec
data.short_description
string
No description in the spec
data.start_at
string
No description in the spec
data.occurrence
string
No description in the spec
data.period
integer
No description in the spec
data.end_at
string
No description in the spec
data.status
string
No description in the spec
data.created_at
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}/phases' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}/phases"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}/phases";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}/phases", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}/phases");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "name": "string",
      "short_description": "string",
      "start_at": "string",
      "occurrence": "string",
      "period": 1,
      "end_at": "string",
      "status": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

Terminate Subscription

POST/public/{user_id}/subscriptions/{subscription_uuid}/terminate

Creates termination request for customer subscription.

terminateSubscriptionecommerce

Path parameters
user_id
stringrequired
The ID of the user.
subscription_uuid
stringrequired
No description in the spec
Request body
type
stringrequired
No description in the spec
end_of_period
reason
stringrequired
Must not be greater than 255 characters.
details
string
Must not be greater than 600 characters.
meta
objectrequired
The meta data of the termination request.
meta.use_again
boolean
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.type
string
No description in the spec
data.status
string
No description in the spec
data.reason
string
No description in the spec
data.details
string
No description in the spec
data.meta
object
No description in the spec
data.meta.use_again
boolean
No description in the spec
data.requested_at
string
No description in the spec
data.terminated_at
string
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}/terminate' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "type": "end_of_period",
       "reason": "string",
       "details": "string",
       "meta": {
         "use_again": true
       }
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}/terminate"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "type": "end_of_period",
  "reason": "string",
  "details": "string",
  "meta": {
    "use_again": true
  }
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}/terminate";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "type": "end_of_period",
    "reason": "string",
    "details": "string",
    "meta": {
      "use_again": true
    }
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "type": "end_of_period",
  "reason": "string",
  "details": "string",
  "meta": {
    "use_again": true
  }
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}/terminate", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/subscriptions/{subscription_uuid}/terminate");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "type" => "end_of_period",
            "reason" => "string",
            "details" => "string",
            "meta" => [
                "use_again" => true
            ]
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "type": "string",
    "status": "string",
    "reason": "string",
    "details": "string",
    "meta": {
      "use_again": true
    },
    "requested_at": "string",
    "terminated_at": "string"
  }
}

Invoices

8 operations

The object API.Pub.Resources.Invoices.InvoiceResource

Declared in the spec. Shown from GET /v1/{tenantUUID}/invoices/{invoiceUUID}.

Attributes
uuid
string
No description in the spec
tenant_uuid
string
No description in the spec
invoice_number
string
No description in the spec
date
integer
No description in the spec
date_due
integer
No description in the spec
date_paid
integer
No description in the spec
subtotal
numberfloat
No description in the spec
subtotal_with_taxes
numberfloat
No description in the spec
total
numberfloat
No description in the spec
total_left_to_pay
numberfloat
No description in the spec
total_paid
numberfloat
No description in the spec
total_tax
numberfloat
No description in the spec
status
string
No description in the spec
items_count
integer
No description in the spec
items
array<object>
No description in the spec
items.invoice_uuid
object
No description in the spec
items.service_uuid
object
No description in the spec
items.description
object
No description in the spec
items.amount
object
No description in the spec
items.taxed
object
No description in the spec
items.period_start
object
No description in the spec
items.period_end
object
No description in the spec
items.type
object
No description in the spec
items.metadata
object
No description in the spec
taxes
array<object>
No description in the spec
taxes.description
object
No description in the spec
taxes.percentage
object
No description in the spec
taxes.amount
object
No description in the spec
taxes.order
object
No description in the spec
taxes.stacks
object
No description in the spec
transactions
array<object>
No description in the spec
transactions.invoice_uuid
object
No description in the spec
transactions.service_uuid
object
No description in the spec
transactions.description
object
No description in the spec
transactions.amount
object
No description in the spec
transactions.taxed
object
No description in the spec
transactions.period_start
object
No description in the spec
transactions.period_end
object
No description in the spec
transactions.type
object
No description in the spec
transactions.metadata
object
No description in the spec

List Invoices

GET/public/{user_id}/invoices

List the current User's Invoices.

listInvoicesecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Query parameters
sort
string
A comma-separated list of fields to sort. Multiple allowed. Prefix with `-` to sort descending.
filter[invoicable_id]
string
No description in the spec
filter[invoicable_type]
string
No description in the spec
filter[uuid]
string
No description in the spec
filter[status]
string
No description in the spec
filter[placed_at]
string
No description in the spec
filter[type]
string
No description in the spec
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.reference
string
No description in the spec
data.status
string
No description in the spec
data.type
string
No description in the spec
data.placed_at
string
No description in the spec
data.due_date
string
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
any
No description in the spec
data.sub_total.amount
any
No description in the spec
data.sub_total.amount_minor
any
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
any
No description in the spec
data.discount_total.amount
any
No description in the spec
data.discount_total.amount_minor
any
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
any
No description in the spec
data.tax_total.amount
any
No description in the spec
data.tax_total.amount_minor
any
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
any
No description in the spec
data.credits_total.amount
any
No description in the spec
data.credits_total.amount_minor
any
No description in the spec
data.total
object
No description in the spec
data.total.currency
any
No description in the spec
data.total.amount
any
No description in the spec
data.total.amount_minor
any
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
any
No description in the spec
data.total_before_tax.amount
any
No description in the spec
data.total_before_tax.amount_minor
any
No description in the spec
data.invoicable_id
string
No description in the spec
data.invoicable_type
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "reference": "string",
      "status": "string",
      "type": "string",
      "placed_at": "string",
      "due_date": "string",
      "sub_total": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      },
      "discount_total": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

Show Invoice

GET/public/{user_id}/invoices/{invoice_uuid}

Returns a single Invoice extended information.

showInvoiceecommerce

Path parameters
user_id
stringrequired
The ID of the user.
invoice_uuid
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.reference
string
No description in the spec
data.status
string
No description in the spec
data.type
string
No description in the spec
data.placed_at
string
No description in the spec
data.due_date
string
No description in the spec
data.sub_total
object
No description in the spec
data.sub_total.currency
string
No description in the spec
data.sub_total.amount
string
No description in the spec
data.sub_total.amount_minor
integer
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
string
No description in the spec
data.discount_total.amount
string
No description in the spec
data.discount_total.amount_minor
integer
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
string
No description in the spec
data.tax_total.amount
string
No description in the spec
data.tax_total.amount_minor
integer
No description in the spec
data.credits_total
object
No description in the spec
data.credits_total.currency
string
No description in the spec
data.credits_total.amount
string
No description in the spec
data.credits_total.amount_minor
integer
No description in the spec
data.total
object
No description in the spec
data.total.currency
string
No description in the spec
data.total.amount
string
No description in the spec
data.total.amount_minor
integer
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
string
No description in the spec
data.total_before_tax.amount
string
No description in the spec
data.total_before_tax.amount_minor
integer
No description in the spec
data.invoicable_id
string
No description in the spec
data.invoicable_type
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "reference": "string",
    "status": "string",
    "type": "string",
    "placed_at": "string",
    "due_date": "string",
    "sub_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    },
    "discount_total": {
      "currency": "string",
      "amount": "string",
      "amount_minor": 1
    }
  }
}

Download Invoice

GET/public/{user_id}/invoices/{invoice_uuid}/download

Download an Invoice.

downloadInvoiceecommerce

Path parameters
user_id
stringrequired
The ID of the user.
invoice_uuid
stringrequired
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}/download' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}/download"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}/download";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}/download", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}/download");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successfully generated and returned an Invoice file.
{}

List Invoice Lines

GET/public/{user_id}/invoices/{invoice_uuid}/lines

List the Invoice Lines.

listInvoiceLinesecommerce

Path parameters
user_id
stringrequired
The ID of the user.
invoice_uuid
stringrequired
No description in the spec
Query parameters
include
string
A comma-separated list of relationships to include. Multiple parameters are allowed.
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.title
string
No description in the spec
data.description
string
No description in the spec
data.unit_quantity
integer
No description in the spec
data.quantity
integer
No description in the spec
data.subtotal
object
No description in the spec
data.subtotal.currency
any
No description in the spec
data.subtotal.amount
any
No description in the spec
data.subtotal.amount_minor
any
No description in the spec
data.unit_price
object
No description in the spec
data.unit_price.currency
any
No description in the spec
data.unit_price.amount
any
No description in the spec
data.unit_price.amount_minor
any
No description in the spec
data.tax_total
object
No description in the spec
data.tax_total.currency
any
No description in the spec
data.tax_total.amount
any
No description in the spec
data.tax_total.amount_minor
any
No description in the spec
data.discount_total
object
No description in the spec
data.discount_total.currency
any
No description in the spec
data.discount_total.amount
any
No description in the spec
data.discount_total.amount_minor
any
No description in the spec
data.total
object
No description in the spec
data.total.currency
any
No description in the spec
data.total.amount
any
No description in the spec
data.total.amount_minor
any
No description in the spec
data.total_before_tax
object
No description in the spec
data.total_before_tax.currency
any
No description in the spec
data.total_before_tax.amount
any
No description in the spec
data.total_before_tax.amount_minor
any
No description in the spec
data.exchange_rate
string
No description in the spec
data.exchange_rate_fetched_at
string
No description in the spec
data.notes
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}/lines' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}/lines"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}/lines";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}/lines", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/invoices/{invoice_uuid}/lines");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "title": "string",
      "description": "string",
      "unit_quantity": 1,
      "quantity": 1,
      "subtotal": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      },
      "unit_price": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      },
      "tax_total": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

List Tenant Invoices

GET/v1/{tenantUUID}/invoices

List Tenant Invoices

API-Pub-Invoices-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
invoice_number
string
Filter By Invoice Number (ID)
invoice_number_bulk
array
Filter By Invoice Numbers Bulk
period_start
integer
Filter by Period Start Date Timestamp
period_end
integer
Filter by Period End Date Timestamp
statuses
array
Filter by Invoice Statuses
sort
string
Sort By Key
direction
string
Sort Direction
per_page
integer
Items Per Page
Response 200
uuid
string
No description in the spec
invoice_number
string
No description in the spec
date
integer
No description in the spec
date_due
integer
No description in the spec
subtotal_with_taxes
numberfloat
No description in the spec
status
string
No description in the spec
items_count
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Invoices Collection
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "invoice_number": "string",
  "date": 1,
  "date_due": 1,
  "subtotal_with_taxes": 1.0,
  "status": "string",
  "items_count": 1
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Get multi invoices PDF

GET/v1/{tenantUUID}/invoices/export/pdf

Export multi invoices PDF

API-Pub-Invoices-exportPdfbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
invoice_uuids
array<string>required
The invoices uuid of which PDF files you want download.
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/export/pdf' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "invoice_uuids": [
         "00000000-0000-0000-0000-000000000000"
       ]
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/export/pdf"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "invoice_uuids": [
    "00000000-0000-0000-0000-000000000000"
  ]
}

r = requests.get(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/export/pdf";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "invoice_uuids": [
      "00000000-0000-0000-0000-000000000000"
    ]
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "invoice_uuids": [
    "00000000-0000-0000-0000-000000000000"
  ]
}`)
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/export/pdf", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/export/pdf");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "invoice_uuids" => ["00000000-0000-0000-0000-000000000000"]
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Invoice
401
Unauthorized
403
Forbidden

Get invoice

GET/v1/{tenantUUID}/invoices/{invoiceUUID}

Returns invoice

API-Pub-Invoices-Getbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
invoiceUUID
stringrequired
Invoice UUID
Response 200
uuid
string
No description in the spec
tenant_uuid
string
No description in the spec
invoice_number
string
No description in the spec
date
integer
No description in the spec
date_due
integer
No description in the spec
date_paid
integer
No description in the spec
subtotal
numberfloat
No description in the spec
subtotal_with_taxes
numberfloat
No description in the spec
total
numberfloat
No description in the spec
total_left_to_pay
numberfloat
No description in the spec
total_paid
numberfloat
No description in the spec
total_tax
numberfloat
No description in the spec
status
string
No description in the spec
items_count
integer
No description in the spec
items
array<object>
No description in the spec
items.invoice_uuid
object
No description in the spec
items.service_uuid
object
No description in the spec
items.description
object
No description in the spec
items.amount
object
No description in the spec
items.taxed
object
No description in the spec
items.period_start
object
No description in the spec
items.period_end
object
No description in the spec
items.type
object
No description in the spec
items.metadata
object
No description in the spec
taxes
array<object>
No description in the spec
taxes.description
object
No description in the spec
taxes.percentage
object
No description in the spec
taxes.amount
object
No description in the spec
taxes.order
object
No description in the spec
taxes.stacks
object
No description in the spec
transactions
array<object>
No description in the spec
transactions.invoice_uuid
object
No description in the spec
transactions.service_uuid
object
No description in the spec
transactions.description
object
No description in the spec
transactions.amount
object
No description in the spec
transactions.taxed
object
No description in the spec
transactions.period_start
object
No description in the spec
transactions.period_end
object
No description in the spec
transactions.type
object
No description in the spec
transactions.metadata
object
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/{invoiceUUID}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/{invoiceUUID}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/{invoiceUUID}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/{invoiceUUID}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/{invoiceUUID}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Invoice
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "tenant_uuid": "00000000-0000-0000-0000-000000000000",
  "invoice_number": "string",
  "date": 1,
  "date_due": 1,
  "date_paid": 1,
  "subtotal": 1.0,
  "subtotal_with_taxes": 1.0
}
401
Unauthorized
403
Forbidden

Get invoices PDF

GET/v1/{tenantUUID}/invoices/{invoiceUUID}/pdf

Returns invoice pdf

API-Pub-Invoices-getPDFbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
invoiceUUID
stringrequired
Invoice UUID
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/{invoiceUUID}/pdf' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/{invoiceUUID}/pdf"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/{invoiceUUID}/pdf";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/{invoiceUUID}/pdf", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/invoices/{invoiceUUID}/pdf");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Invoice
401
Unauthorized
403
Forbidden

Payouts

18 operations

The object API.Pub.Resources.IPMarket.PayoutInvoiceStatsResource

Declared in the spec. Shown from GET /v1/{tenantUUID}/market/payouts/stats/v2.

Attributes
period
object
Statistics period
period.from
string
starting date in YYYY-MM-DD format
period.to
string
ending date in YYYY-MM-DD format
data
array<object>
No description in the spec
data.invoice_uuid
string
Invoice UUID
data.invoice_number
string
Invoice number
data.period
string
Period in Y-m-d format
data.payout_date
integer
Payout date timestamp
data.payout_status
string
Payout status
data.ips_count
integer
Number of IPs leased
data.total_sales
numberfloat
Total sales (gross)
data.average_net_per_ip
numberfloat
Average net payout per IP
data.transaction_fee
numberfloat
Transaction fee
data.holder_fee
numberfloat
5% holder fee
data.deductions
numberfloat
Other deductions
data.net_payout
numberfloat
Net payout amount
data.payment_confirmation_uuid
stringuuid
Payment confirmation UUID
data.payment_confirmation_number
string
Payment confirmation invoice number
data.holder_fee_invoice_uuid
stringuuid
Invoice UUID for holder fee deduction PDF
meta
object
Pagination metadata (only present when pagination is requested)
meta.current_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.to
integer
No description in the spec
total_sales
numberfloat
Total sales (for all filtered data, not just current page when paginated)
total_net_payout
numberfloat
Total net payout (for all filtered data, not just current page when paginated)

List Deductions

GET/v1/{tenantUUID}/market/deductions

List IP Market Deductions

API-Pub-IPmarket-Deductions-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
subnet
string
Filter by IP
status
string
Filter by status
completed cancelled pending
created_at
integer
Filter by created_at date
sort
string
Sort by date field
direction
string
Sort direction
asc desc
payout_uuid
stringuuid
Filter by payout invoice UUID
invoice_uuid
stringuuid
Filter by deduction invoice UUID
Response 200
uuid
stringuuid
No description in the spec
tenant_uuid
stringuuid
No description in the spec
ipmarket_service_uuid
stringuuid
No description in the spec
subnet
string
No description in the spec
amount
numberfloat
No description in the spec
status
string
No description in the spec
pending completed cancelled
comment
string
No description in the spec
evidence
string
No description in the spec
all_sum
boolean
No description in the spec
lease_period
number
No description in the spec
deduction_invoice_uuid
string
No description in the spec
created_at
number
No description in the spec
updated_at
number
No description in the spec
type
string
No description in the spec
service ip_holder_fee
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/deductions' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "subnet": "string",
       "status": "completed",
       "created_at": 1,
       "sort": "string",
       "direction": "asc",
       "payout_uuid": "00000000-0000-0000-0000-000000000000",
       "invoice_uuid": "00000000-0000-0000-0000-000000000000"
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/deductions"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "subnet": "string",
  "status": "completed",
  "created_at": 1,
  "sort": "string",
  "direction": "asc",
  "payout_uuid": "00000000-0000-0000-0000-000000000000",
  "invoice_uuid": "00000000-0000-0000-0000-000000000000"
}

r = requests.get(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/deductions";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "subnet": "string",
    "status": "completed",
    "created_at": 1,
    "sort": "string",
    "direction": "asc",
    "payout_uuid": "00000000-0000-0000-0000-000000000000",
    "invoice_uuid": "00000000-0000-0000-0000-000000000000"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "subnet": "string",
  "status": "completed",
  "created_at": 1,
  "sort": "string",
  "direction": "asc",
  "payout_uuid": "00000000-0000-0000-0000-000000000000",
  "invoice_uuid": "00000000-0000-0000-0000-000000000000"
}`)
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/deductions", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/deductions");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "subnet" => "string",
            "status" => "completed",
            "created_at" => 1,
            "sort" => "string",
            "direction" => "asc",
            "payout_uuid" => "00000000-0000-0000-0000-000000000000",
            "invoice_uuid" => "00000000-0000-0000-0000-000000000000"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
IP Market Deductions Collection
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "tenant_uuid": "00000000-0000-0000-0000-000000000000",
  "ipmarket_service_uuid": "00000000-0000-0000-0000-000000000000",
  "subnet": "string",
  "amount": 1.0,
  "status": "pending",
  "comment": "string",
  "evidence": "string"
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Get deduction invoice as PDF

GET/v1/{tenantUUID}/market/deductions/invoices/{invoiceUUID}/pdf

Returns deduction invoice as pdf

API-Pub-IPmarket-Invoices-PDFbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
invoiceUUID
stringrequired
Invoice UUID
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/deductions/invoices/{invoiceUUID}/pdf' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/deductions/invoices/{invoiceUUID}/pdf"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/deductions/invoices/{invoiceUUID}/pdf";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/deductions/invoices/{invoiceUUID}/pdf", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/deductions/invoices/{invoiceUUID}/pdf");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Deduction Invoice
400
Invalid Request
401
Unauthorized
403
Forbidden
404
Not Found

List Payment Confirmations

GET/v1/{tenantUUID}/market/payment_confirmations

List Payment Confirmations

API-Pub-IPmarket-PaymentConfirmations-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
page
integer
List Page
per_page
integer
Items Per Page
confirmation_number
string
Confirmation Number
method
string
Method
transaction_id
string
Transaction Id
from_date
integer
From Date
to_date
integer
To Date
Response 200
data
array<object>
No description in the spec
data.uuid
stringuuid
No description in the spec
data.confirmation_number
string
No description in the spec
data.method
string
No description in the spec
data.method_details
any
No description in the spec
data.date
integer
No description in the spec
data.transaction_id
string
No description in the spec
data.amount
numberfloat
No description in the spec
data.fee
numberfloat
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Confirmation Invoices Collection
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "confirmation_number": "string",
      "method": {
        "type": "object",
        "x-truncated": true
      },
      "method_details": "string",
      "date": 1,
      "transaction_id": "string",
      "amount": 1.0,
      "fee": 1.0
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 1,
    "to": 1,
    "total": 1
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Get single payment confirmation

GET/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}

Returns single payment confirmation

API-Pub-IPmarket-PaymentConfirmations-Showbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
paymentConfirmationUuid
stringrequired
Payment Confirmation UUID
Response 200
uuid
stringuuid
No description in the spec
confirmation_number
string
No description in the spec
method
string
No description in the spec
banktransfer paypal credit
method_details
any
No description in the spec
date
integer
No description in the spec
transaction_id
string
No description in the spec
amount
numberfloat
No description in the spec
fee
numberfloat
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Payment Confirmation
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "confirmation_number": "string",
  "method": "banktransfer",
  "method_details": "string",
  "date": 1,
  "transaction_id": "string",
  "amount": 1.0,
  "fee": 1.0
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Get payment confirmation as PDF

GET/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}/pdf

Returns payment confirmation as pdf

API-Pub-IPmarket-PaymentConfirmations-getPDFbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
paymentConfirmationUuid
stringrequired
Payment Confirmation UUID
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}/pdf' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}/pdf"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}/pdf";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}/pdf", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}/pdf");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Payment Confirmation
401
Unauthorized
403
Forbidden

Get Current Payout Method

GET/v1/{tenantUUID}/market/payoutmethod

Get Current Payout Method

API-Pub-Market-PayoutMethod-Showbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Response 200
type
string
No description in the spec
details
array<any>
No description in the spec
cycle
integer
No description in the spec
minimal_amount
numberfloat
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payoutmethod' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payoutmethod"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payoutmethod";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payoutmethod", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payoutmethod");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Payout Method
{
  "type": "string",
  "details": [
    "string"
  ],
  "cycle": 1,
  "minimal_amount": 1.0
}
401
Unauthorized
403
Forbidden
404
Not Found

Set Payout Method

PUT/v1/{tenantUUID}/market/payoutmethod

Set Payout Method

API-Pub-Market-PayoutMethod-Editbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
details
object
Details
details.beneficiary
string
No description in the spec
details.address
string
No description in the spec
details.bic
string
No description in the spec
details.iban
string
No description in the spec
details.bank_name
string
No description in the spec
details.email
string
No description in the spec
details.note
string
No description in the spec
type
stringrequired
No description in the spec
banktransfer credit paypal
cycle
integerrequired
No description in the spec
0 1 3 6 12
minimal_amount
numberfloat
No description in the spec
Response 200
type
string
No description in the spec
details
array<any>
No description in the spec
cycle
integer
No description in the spec
minimal_amount
numberfloat
No description in the spec
Request
curl -X PUT 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payoutmethod' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "details": {
         "beneficiary": "string",
         "address": "string",
         "bic": "string",
         "iban": "string",
         "bank_name": "string",
         "email": "[email protected]",
         "note": "string"
       },
       "type": "banktransfer",
       "cycle": 0,
       "minimal_amount": 1.0
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payoutmethod"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "details": {
    "beneficiary": "string",
    "address": "string",
    "bic": "string",
    "iban": "string",
    "bank_name": "string",
    "email": "[email protected]",
    "note": "string"
  },
  "type": "banktransfer",
  "cycle": 0,
  "minimal_amount": 1.0
}

r = requests.put(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payoutmethod";
const res = await fetch(url, {
  method: "PUT",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "details": {
      "beneficiary": "string",
      "address": "string",
      "bic": "string",
      "iban": "string",
      "bank_name": "string",
      "email": "[email protected]",
      "note": "string"
    },
    "type": "banktransfer",
    "cycle": 0,
    "minimal_amount": 1.0
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "details": {
    "beneficiary": "string",
    "address": "string",
    "bic": "string",
    "iban": "string",
    "bank_name": "string",
    "email": "[email protected]",
    "note": "string"
  },
  "type": "banktransfer",
  "cycle": 0,
  "minimal_amount": 1.0
}`)
	req, _ := http.NewRequest("PUT", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payoutmethod", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payoutmethod");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PUT",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "details" => [
                "beneficiary" => "string",
                "address" => "string",
                "bic" => "string",
                "iban" => "string",
                "bank_name" => "string",
                "email" => "[email protected]",
                "note" => "string"
            ],
            "type" => "banktransfer",
            "cycle" => 0,
            "minimal_amount" => 1.0
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Payout Method
{
  "type": "string",
  "details": [
    "string"
  ],
  "cycle": 1,
  "minimal_amount": 1.0
}
401
Unauthorized
403
Forbidden
404
Not Found

List Payouts

GET/v1/{tenantUUID}/market/payouts

List IP Market Payouts

API-Pub-IPmarket-Payouts-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
uuid
string
Filter By Payout UUID
service_uuid
string
Filter By Service UUID
address
string
Filter By IPv4 Address
cidr
integer
Filter By CIDR
amount
number
Filter By Amount
total
number
Filter By Total
lease_count
integer
Filter By Lease Count
status
string
Filter by Status
method
string
Filter By Method
start
integer
Filter By Start period date in unix timestamp format
end
integer
Filter By End period date in unix timestamp format
from
integer
Filter by Start period date in unix timestamp format which is greater or equal to input
to
integer
Filter By End period date in unix timestamp format which is lower or equal to input
status_date
integer
Filter By Status change date in unix timestamp format
created_at
integer
Filter By Created date in unix timestamp format
sort
string
Sort By Key
page
integer
List Page
per_page
integer
Items Per Page
Response 200
data
array<object>
No description in the spec
data.uuid
any
No description in the spec
data.tenant_uuid
any
No description in the spec
data.service_uuid
any
No description in the spec
data.address
any
No description in the spec
data.cidr
any
No description in the spec
data.amount
any
No description in the spec
data.total
any
No description in the spec
data.lease_count
any
No description in the spec
data.status
any
No description in the spec
data.status_details
any
No description in the spec
data.method
any
No description in the spec
data.transaction_id
any
No description in the spec
data.start
any
No description in the spec
data.end
any
No description in the spec
data.status_date
any
No description in the spec
data.created_at
any
No description in the spec
data.earnings
any
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Payout Collection
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "tenant_uuid": "00000000-0000-0000-0000-000000000000",
      "service_uuid": "00000000-0000-0000-0000-000000000000",
      "address": "string",
      "cidr": "string",
      "amount": "string",
      "total": "string",
      "lease_count": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 1,
    "to": 1,
    "total": 1
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Get Payouts Statistics

GET/v1/{tenantUUID}/market/payouts/stats

IP Market Payouts Statistics

API-Pub-IPmarket-Payouts-Statsbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
service_uuid
string
Filter By Service UUID
address
string
Filter By IPv4 Address
cidr
integer
Filter By CIDR
status_date_from
integer
Filter by Start period date in unix timestamp format which is greater or equal to input
status_date_to
integer
Filter By End period date in unix timestamp format which is lower or equal to input
Response 200
period
object
Statistics period
period.from
integer
starting date
period.to
integer
ending date
data
array<object>
No description in the spec
data.date
integer
No description in the spec
data.amount
numberfloat
No description in the spec
data.subnet
string
No description in the spec
data.service_uuid
string
No description in the spec
total
numberfloat
Total amount for period
last_payout_date
numberint
Last payout date
next_payout_date
numberint
Next payout date
min_amount_reached
boolean
Min amount reached
unpaid
numberfloat
Unpaid amount
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Payouts Statistics
{
  "period": {
    "from": 1,
    "to": 1
  },
  "data": [
    {
      "date": 1,
      "amount": 1.0,
      "subnet": "string",
      "service_uuid": "00000000-0000-0000-0000-000000000000"
    }
  ],
  "total": 1.0,
  "last_payout_date": 1.0,
  "next_payout_date": 1.0,
  "min_amount_reached": true,
  "unpaid": 1.0
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Get Payout Invoice Statistics (v2)

GET/v1/{tenantUUID}/market/payouts/stats/v2

IP Market Payout Invoice Statistics with detailed breakdown. Add pagination params for table view.

API-Pub-IPmarket-Payouts-StatsV2billing

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
period_start_date
string
Filter by start period in YYYY-MM-DD format (e.g., 2025-01-15)
period_end_date
string
Filter by end period in YYYY-MM-DD format (e.g., 2025-03-31)
status
string
Filter by payout invoice status
sort
string
Sort field (prefix with - for descending, e.g., -date_paid). Optional, only used with pagination.
page
integer
Page number for pagination. When provided, response will be paginated.
per_page
integer
Items per page (default: 15, max: 100). Only used when page is provided.
Response 200
period
object
Statistics period
period.from
string
starting date in YYYY-MM-DD format
period.to
string
ending date in YYYY-MM-DD format
data
array<object>
No description in the spec
data.invoice_uuid
string
Invoice UUID
data.invoice_number
string
Invoice number
data.period
string
Period in Y-m-d format
data.payout_date
integer
Payout date timestamp
data.payout_status
string
Payout status
data.ips_count
integer
Number of IPs leased
data.total_sales
numberfloat
Total sales (gross)
data.average_net_per_ip
numberfloat
Average net payout per IP
data.transaction_fee
numberfloat
Transaction fee
data.holder_fee
numberfloat
5% holder fee
data.deductions
numberfloat
Other deductions
data.net_payout
numberfloat
Net payout amount
data.payment_confirmation_uuid
stringuuid
Payment confirmation UUID
data.payment_confirmation_number
string
Payment confirmation invoice number
data.holder_fee_invoice_uuid
stringuuid
Invoice UUID for holder fee deduction PDF
meta
object
Pagination metadata (only present when pagination is requested)
meta.current_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.to
integer
No description in the spec
total_sales
numberfloat
Total sales (for all filtered data, not just current page when paginated)
total_net_payout
numberfloat
Total net payout (for all filtered data, not just current page when paginated)
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats/v2' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats/v2"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats/v2";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats/v2", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats/v2");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Payout Invoice Statistics
{
  "period": {
    "from": "string",
    "to": "string"
  },
  "data": [
    {
      "invoice_uuid": "00000000-0000-0000-0000-000000000000",
      "invoice_number": "string",
      "period": "string",
      "payout_date": 1,
      "payout_status": {
        "type": "object",
        "x-truncated": true
      },
      "ips_count": 1,
      "total_sales": 1.0,
      "average_net_per_ip": 1.0
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 1,
    "total": 1,
    "last_page": 1,
    "from": 1,
    "to": 1
  },
  "total_sales": 1.0,
  "total_net_payout": 1.0
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Export Payout Invoice Statistics to CSV

GET/v1/{tenantUUID}/market/payouts/stats/v2/export

Export IP Market Payout Invoice Statistics with detailed breakdown as CSV file

API-Pub-IPmarket-Payouts-StatsV2Exportbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
period_start_date
string
Filter by start period in YYYY-MM-DD format (e.g., 2025-01-15)
period_end_date
string
Filter by end period in YYYY-MM-DD format (e.g., 2025-03-31)
status
string
Filter by payout invoice status
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats/v2/export' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats/v2/export"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats/v2/export";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats/v2/export", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/stats/v2/export");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
CSV file with payout invoice statistics
400
Invalid Request
401
Unauthorized
403
Forbidden

Get single payout

GET/v1/{tenantUUID}/market/payouts/{payoutUuid}

Returns single payout identified by target UUID

API-Pub-IPmarket-Payouts-Showbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
payoutUuid
stringrequired
Payout UUID
Response 200
uuid
stringuuid
No description in the spec
tenant_uuid
stringuuid
No description in the spec
service_uuid
stringuuid
No description in the spec
address
stringipv4
No description in the spec
cidr
integer
No description in the spec
amount
numberfloat
No description in the spec
total
numberfloat
No description in the spec
lease_count
integer
No description in the spec
status
string
No description in the spec
pending completed rejected graph
status_details
string
No description in the spec
method
string
No description in the spec
transaction_id
string
No description in the spec
start
integer
No description in the spec
end
integer
No description in the spec
status_date
integer
No description in the spec
created_at
integer
No description in the spec
earnings
array<object>
list of Service Lease Earnings
earnings.service_uuid
any
No description in the spec
earnings.payout_uuid
any
No description in the spec
earnings.amount
any
No description in the spec
earnings.start
any
No description in the spec
earnings.end
any
No description in the spec
earnings.created_at
any
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/{payoutUuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/{payoutUuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/{payoutUuid}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/{payoutUuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts/{payoutUuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Payout
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "tenant_uuid": "00000000-0000-0000-0000-000000000000",
  "service_uuid": "00000000-0000-0000-0000-000000000000",
  "address": "string",
  "cidr": 1,
  "amount": 1.0,
  "total": 1.0,
  "lease_count": 1
}
400
Invalid Request
401
Unauthorized
403
Forbidden

List Payouts Invoices

GET/v1/{tenantUUID}/market/payouts_invoices

List IP Market Payouts Invoices

API-Pub-IPmarket-PayoutsInvoices-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
uuid
string
Filter By Payout Invoice UUID
invoice_number
string
Filter By Payout Invoice Number
service_uuid
string
Filter By Service UUID
subnet
string
Filter By Subnet
total
number
Filter By Total
status
string
Filter by Status
start
integer
Filter by Start period date in unix timestamp format which is greater or equal to input
end
integer
Filter By End period date in unix timestamp format which is lower or equal to input
sort
string
Sort By Key
page
integer
List Page
per_page
integer
Items Per Page
Response 200
data
array<object>
No description in the spec
data.uuid
stringuuid
No description in the spec
data.invoice_number
string
No description in the spec
data.tenant_uuid
stringuuid
No description in the spec
data.total
numberfloat
No description in the spec
data.fees
numberfloat
No description in the spec
data.status
string
No description in the spec
data.date
integer
No description in the spec
data.date_paid
integer
No description in the spec
data.payment_confirmation_uuid
stringuuid
No description in the spec
data.items
any
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Payout Invoices Collection
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "invoice_number": "string",
      "tenant_uuid": "00000000-0000-0000-0000-000000000000",
      "total": 1.0,
      "fees": 1.0,
      "status": {
        "type": "object",
        "x-truncated": true
      },
      "date": 1,
      "date_paid": 1
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 1,
    "to": 1,
    "total": 1
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Export payout invoices CSV

GET/v1/{tenantUUID}/market/payouts_invoices/export/csv

Export payout invoices CSV

API-Pub-IPmarket-PayoutsInvoices-exportCSVbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/export/csv' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/export/csv"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/export/csv";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/export/csv", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/export/csv");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Invoice
401
Unauthorized
403
Forbidden

Get single payout invoice

GET/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}

Returns single payout invoice

API-Pub-IPmarket-PayoutsInvoices-Showbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
payoutInvoiceUuid
stringrequired
Payout Invoice UUID
Response 200
uuid
stringuuid
No description in the spec
invoice_number
string
No description in the spec
tenant_uuid
stringuuid
No description in the spec
total
numberfloat
No description in the spec
fees
numberfloat
No description in the spec
status
string
No description in the spec
paid unpaid
date
integer
No description in the spec
date_paid
integer
No description in the spec
payment_confirmation_uuid
stringuuid
No description in the spec
items
array<object>
No description in the spec
items.uuid
object
No description in the spec
items.type
object
No description in the spec
items.description
object
No description in the spec
items.period_start
object
No description in the spec
items.period_end
object
No description in the spec
items.amount
object
No description in the spec
items.cidr
object
No description in the spec
items.address
object
No description in the spec
items.service_uuid
object
No description in the spec
items.start
object
No description in the spec
items.end
object
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Payout
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "invoice_number": "string",
  "tenant_uuid": "00000000-0000-0000-0000-000000000000",
  "total": 1.0,
  "fees": 1.0,
  "status": "paid",
  "date": 1,
  "date_paid": 1
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Get Self-Billing Invoice Lease Items

GET/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/items

Get detailed breakdown of individual lease items within a self-billing (payout) invoice

API-Pub-IPmarket-PayoutsInvoices-Itemsbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
payoutInvoiceUuid
stringrequired
Payout Invoice UUID
Query parameters
sort
string
Sort field (prefix with - for descending)
page
integer
Page number for pagination
per_page
integer
Items per page (default: 15, max: 100)
Response 200
data
array<object>
No description in the spec
data.subnet
string
Subnet that was leased (e.g., 10.0.0.0/24)
data.lease_period_from
string
Lease period start in Y-m-d H:i:s format
data.lease_period_to
string
Lease period end in Y-m-d H:i:s format
data.sales
numberfloat
Amount IP Holder initially set
data.holder_fee
numberfloat
5% holder fee
data.deductions
numberfloat
Other deductions
data.net_earnings
numberfloat
Net earnings after fees and deductions
meta
object
Pagination metadata
meta.current_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.to
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/items' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/items"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/items";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/items", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/items");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Self-Billing Invoice Lease Items
{
  "data": [
    {
      "subnet": "string",
      "lease_period_from": "string",
      "lease_period_to": "string",
      "sales": 1.0,
      "holder_fee": 1.0,
      "deductions": 1.0,
      "net_earnings": 1.0
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 1,
    "total": 1,
    "last_page": 1,
    "from": 1,
    "to": 1
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Get payout invoice as PDF

GET/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/pdf

Returns payout invoice as pdf

API-Pub-IPmarket-PayoutsInvoices-getPDFbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
payoutInvoiceUuid
stringrequired
Payout Invoice UUID
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/pdf' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/pdf"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/pdf";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/pdf", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/pdf");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Payout Invoice
401
Unauthorized
403
Forbidden

Get Self-Billing Invoice Statistics

GET/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/stats

Get detailed statistics for a specific self-billing (payout) invoice

API-Pub-IPmarket-PayoutsInvoices-Statsbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
payoutInvoiceUuid
stringrequired
Payout Invoice UUID
Response 200
period
object
Statistics period
period.from
string
starting date in YYYY-MM-DD format
period.to
string
ending date in YYYY-MM-DD format
data
array<object>
No description in the spec
data.invoice_uuid
string
Invoice UUID
data.invoice_number
string
Invoice number
data.period
string
Period in Y-m-d format
data.payout_date
integer
Payout date timestamp
data.payout_status
string
Payout status
data.ips_count
integer
Number of IPs leased
data.total_sales
numberfloat
Total sales (gross)
data.average_net_per_ip
numberfloat
Average net payout per IP
data.transaction_fee
numberfloat
Transaction fee
data.holder_fee
numberfloat
5% holder fee
data.deductions
numberfloat
Other deductions
data.net_payout
numberfloat
Net payout amount
data.payment_confirmation_uuid
stringuuid
Payment confirmation UUID
data.payment_confirmation_number
string
Payment confirmation invoice number
data.holder_fee_invoice_uuid
stringuuid
Invoice UUID for holder fee deduction PDF
meta
object
Pagination metadata (only present when pagination is requested)
meta.current_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.to
integer
No description in the spec
total_sales
numberfloat
Total sales (for all filtered data, not just current page when paginated)
total_net_payout
numberfloat
Total net payout (for all filtered data, not just current page when paginated)
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/stats' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/stats"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/stats";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/stats", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/stats");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Self-Billing Invoice Statistics
{
  "period": {
    "from": "string",
    "to": "string"
  },
  "data": [
    {
      "invoice_uuid": "00000000-0000-0000-0000-000000000000",
      "invoice_number": "string",
      "period": "string",
      "payout_date": 1,
      "payout_status": {
        "type": "object",
        "x-truncated": true
      },
      "ips_count": 1,
      "total_sales": 1.0,
      "average_net_per_ip": 1.0
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 1,
    "total": 1,
    "last_page": 1,
    "from": 1,
    "to": 1
  },
  "total_sales": 1.0,
  "total_net_payout": 1.0
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Credits

1 operations

The object synthesised

The spec declares no named object for this resource, so the renderer synthesised one from its richest response body (GET /public/{user_id}/balances). Fields no endpoint returns cannot appear here.

Attributes
data
object
No description in the spec
data.available_balance
number
No description in the spec
data.total_balance
number
No description in the spec
data.currency
string
No description in the spec
data.updated_at
string
No description in the spec

Show Balance

GET/public/{user_id}/balances

Show customer Balance

showBalancecredits

Path parameters
user_id
stringrequired
The ID of the user.
Query parameters
filter[currency]
string
No description in the spec
Response 200
data
object
No description in the spec
data.available_balance
number
No description in the spec
data.total_balance
number
No description in the spec
data.currency
string
No description in the spec
data.updated_at
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/credits/public/{user_id}/balances' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/credits/public/{user_id}/balances"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/credits/public/{user_id}/balances";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/credits/public/{user_id}/balances", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/credits/public/{user_id}/balances");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "available_balance": 1.0,
    "total_balance": 1.0,
    "currency": "string",
    "updated_at": "string"
  }
}

Prefixes

14 operations

The object PrefixHolder

Declared in the spec. Shown from PATCH /{tenantUUID}/prefixes/{notation}/metadata.

Attributes
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
string
No description in the spec
ipNet.mask
string
No description in the spec
internalMetadata
object
No description in the spec
internalMetadata.internal
boolean
No description in the spec
internalMetadata.readOnly
boolean
No description in the spec
internalMetadata.master
boolean
No description in the spec
internalMetadata.prefixLengthLimits
any
No description in the spec
internalMetadata.holders
array<object>
No description in the spec
externalMetadata
object
No description in the spec
holderMetadata
object
No description in the spec
geodata
array<object>
No description in the spec
geodata.provider
any
No description in the spec
geodata.countryName
any
No description in the spec
geodata.countryCode
any
No description in the spec
geodata.cityName
any
No description in the spec
geodata.date
any
No description in the spec
geodata.state
any
No description in the spec
whois
object
No description in the spec
whois.inetnum
stringrequired
No description in the spec
whois.registrar
stringrequired
No description in the spec
whois.source
stringrequired
No description in the spec
whois.recordActive
boolean
No description in the spec
whois.nets
array<object>required
No description in the spec
whois.domains
array<object>required
No description in the spec
bgp
object
No description in the spec
bgp.peerCount
any
No description in the spec
bgp.asOrigins
array<object>
No description in the spec
bgp.asSetOrigins
array<object>
No description in the spec
rpki
object
No description in the spec
rpki.roas
array<object>
No description in the spec
rpki.suggestions
array<object>
No description in the spec
routes
array<object>
No description in the spec
routes.route
any
No description in the spec
routes.origin
any
No description in the spec
routes.descr
any
No description in the spec
routes.mnt_by
any
No description in the spec
routes.changed
any
No description in the spec
routes.source
any
No description in the spec
routingHealth
object
No description in the spec
routingHealth.criticalityStatus
string
No description in the spec
routingHealth.bgpStatus
any
No description in the spec
routingHealth.bgpActions
array<object>
No description in the spec
routingHealth.rpkiStatus
any
No description in the spec
routingHealth.rpkiActions
array<object>
No description in the spec
routingHealth.irrStatus
any
No description in the spec
routingHealth.irrActions
array<object>
No description in the spec
routingHealth.irmActions
array<object>
No description in the spec
cacheDerrived
object
No description in the spec
cacheDerrived.registrar
string
No description in the spec

Set Holder Metadata

PATCH/{tenantUUID}/prefixes/metadata

Updates target prefix holder metadata and returns updated prefixes.

patch-tenantuuid-prefixes-metadatanethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
notation
stringrequired
A string field representing the notation.
metadata
objectrequired
A map to hold the metadata. Map keys can only contain following symbols: [A-Z, a-z, 0-9, -, _]
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
any
No description in the spec
ipNet.mask
any
No description in the spec
internalMetadata
object
No description in the spec
internalMetadata.internal
any
No description in the spec
internalMetadata.readOnly
any
No description in the spec
internalMetadata.master
any
No description in the spec
internalMetadata.prefixLengthLimits
object
No description in the spec
internalMetadata.holders
any
No description in the spec
externalMetadata
object
No description in the spec
holderMetadata
object
No description in the spec
geodata
array<object>
No description in the spec
geodata.provider
object
No description in the spec
geodata.countryName
object
No description in the spec
geodata.countryCode
object
No description in the spec
geodata.cityName
object
No description in the spec
geodata.date
object
No description in the spec
geodata.state
object
No description in the spec
whois
object
No description in the spec
whois.inetnum
anyrequired
No description in the spec
whois.registrar
anyrequired
No description in the spec
whois.source
anyrequired
No description in the spec
whois.recordActive
any
No description in the spec
whois.nets
anyrequired
No description in the spec
whois.domains
anyrequired
No description in the spec
bgp
object
No description in the spec
bgp.peerCount
object
No description in the spec
bgp.asOrigins
any
No description in the spec
bgp.asSetOrigins
any
No description in the spec
rpki
object
No description in the spec
rpki.roas
any
No description in the spec
rpki.suggestions
any
No description in the spec
routes
array<object>
No description in the spec
routes.route
object
No description in the spec
routes.origin
object
No description in the spec
routes.descr
object
No description in the spec
routes.mnt_by
object
No description in the spec
routes.changed
object
No description in the spec
routes.source
object
No description in the spec
routingHealth
object
No description in the spec
routingHealth.criticalityStatus
any
No description in the spec
routingHealth.bgpStatus
object
No description in the spec
routingHealth.bgpActions
any
No description in the spec
routingHealth.rpkiStatus
object
No description in the spec
routingHealth.rpkiActions
any
No description in the spec
routingHealth.irrStatus
object
No description in the spec
routingHealth.irrActions
any
No description in the spec
routingHealth.irmActions
any
No description in the spec
cacheDerrived
object
No description in the spec
cacheDerrived.registrar
any
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
       {
         "notation": "string",
         "metadata": {}
       }
     ]'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = [
  {
    "notation": "string",
    "metadata": {}
  }
]

r = requests.patch(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify([
    {
      "notation": "string",
      "metadata": {}
    }
  ]),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`[
  {
    "notation": "string",
    "metadata": {}
  }
]`)
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([[
            "notation" => "string",
            "metadata" => [

            ]
        ]]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
A list of updated prefixes.
[
  {
    "notation": "string",
    "ipNet": {
      "ip": "string",
      "mask": "string"
    },
    "internalMetadata": {
      "internal": "string",
      "readOnly": "string",
      "master": "string",
      "prefixLengthLimits": {},
      "holders": "string"
    },
    "externalMetadata": {},
    "holderMetadata": {},
    "geodata": [
      {
        "provider": {},
        "countryName": {},
        "countryCode": {},
        "cityName": {},
        "date": {},
        "state": {}
      }
    ],
    "whois": {
      "inetnum": "string",
      "registrar": "string",
      "source": "string",
      "recordActive": "string",
      "nets": "string",
      "domains": "string"
    },
    "bgp": {
      "peerCount": {},
      "asOrigins": "string",
      "asSetOrigins": "string"
    }
  }
]
400
Bad request
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Delete Holder Metadata

DELETE/{tenantUUID}/prefixes/metadata

Deletes target prefix holder metadata by requested keys and returns updated prefixes.

delete-tenantuuid-prefixes-metadatanethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
notation
stringrequired
A string field representing the notation.
metadata
array<string>required
An array of strings representing metadata keys. Values can only contain following symbols: [A-Z, a-z, 0-9, -, _]
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
any
No description in the spec
ipNet.mask
any
No description in the spec
internalMetadata
object
No description in the spec
internalMetadata.internal
any
No description in the spec
internalMetadata.readOnly
any
No description in the spec
internalMetadata.master
any
No description in the spec
internalMetadata.prefixLengthLimits
object
No description in the spec
internalMetadata.holders
any
No description in the spec
externalMetadata
object
No description in the spec
holderMetadata
object
No description in the spec
geodata
array<object>
No description in the spec
geodata.provider
object
No description in the spec
geodata.countryName
object
No description in the spec
geodata.countryCode
object
No description in the spec
geodata.cityName
object
No description in the spec
geodata.date
object
No description in the spec
geodata.state
object
No description in the spec
whois
object
No description in the spec
whois.inetnum
anyrequired
No description in the spec
whois.registrar
anyrequired
No description in the spec
whois.source
anyrequired
No description in the spec
whois.recordActive
any
No description in the spec
whois.nets
anyrequired
No description in the spec
whois.domains
anyrequired
No description in the spec
bgp
object
No description in the spec
bgp.peerCount
object
No description in the spec
bgp.asOrigins
any
No description in the spec
bgp.asSetOrigins
any
No description in the spec
rpki
object
No description in the spec
rpki.roas
any
No description in the spec
rpki.suggestions
any
No description in the spec
routes
array<object>
No description in the spec
routes.route
object
No description in the spec
routes.origin
object
No description in the spec
routes.descr
object
No description in the spec
routes.mnt_by
object
No description in the spec
routes.changed
object
No description in the spec
routes.source
object
No description in the spec
routingHealth
object
No description in the spec
routingHealth.criticalityStatus
any
No description in the spec
routingHealth.bgpStatus
object
No description in the spec
routingHealth.bgpActions
any
No description in the spec
routingHealth.rpkiStatus
object
No description in the spec
routingHealth.rpkiActions
any
No description in the spec
routingHealth.irrStatus
object
No description in the spec
routingHealth.irrActions
any
No description in the spec
routingHealth.irmActions
any
No description in the spec
cacheDerrived
object
No description in the spec
cacheDerrived.registrar
any
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
       {
         "notation": "string",
         "metadata": [
           "string"
         ]
       }
     ]'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = [
  {
    "notation": "string",
    "metadata": [
      "string"
    ]
  }
]

r = requests.delete(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify([
    {
      "notation": "string",
      "metadata": [
        "string"
      ]
    }
  ]),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`[
  {
    "notation": "string",
    "metadata": [
      "string"
    ]
  }
]`)
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([[
            "notation" => "string",
            "metadata" => ["string"]
        ]]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
A list of updated prefixes.
[
  {
    "notation": "string",
    "ipNet": {
      "ip": "string",
      "mask": "string"
    },
    "internalMetadata": {
      "internal": "string",
      "readOnly": "string",
      "master": "string",
      "prefixLengthLimits": {},
      "holders": "string"
    },
    "externalMetadata": {},
    "holderMetadata": {},
    "geodata": [
      {
        "provider": {},
        "countryName": {},
        "countryCode": {},
        "cityName": {},
        "date": {},
        "state": {}
      }
    ],
    "whois": {
      "inetnum": "string",
      "registrar": "string",
      "source": "string",
      "recordActive": "string",
      "nets": "string",
      "domains": "string"
    },
    "bgp": {
      "peerCount": {},
      "asOrigins": "string",
      "asSetOrigins": "string"
    }
  }
]
400
Bad request
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Delete All Holder Metadata

DELETE/{tenantUUID}/prefixes/metadata/all

Deletes target prefix holder metadata and returns updated prefixes.

delete-tenantuuid-prefixes-metadata-allnethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
notation
stringrequired
A string field representing the notation.
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
any
No description in the spec
ipNet.mask
any
No description in the spec
internalMetadata
object
No description in the spec
internalMetadata.internal
any
No description in the spec
internalMetadata.readOnly
any
No description in the spec
internalMetadata.master
any
No description in the spec
internalMetadata.prefixLengthLimits
object
No description in the spec
internalMetadata.holders
any
No description in the spec
externalMetadata
object
No description in the spec
holderMetadata
object
No description in the spec
geodata
array<object>
No description in the spec
geodata.provider
object
No description in the spec
geodata.countryName
object
No description in the spec
geodata.countryCode
object
No description in the spec
geodata.cityName
object
No description in the spec
geodata.date
object
No description in the spec
geodata.state
object
No description in the spec
whois
object
No description in the spec
whois.inetnum
anyrequired
No description in the spec
whois.registrar
anyrequired
No description in the spec
whois.source
anyrequired
No description in the spec
whois.recordActive
any
No description in the spec
whois.nets
anyrequired
No description in the spec
whois.domains
anyrequired
No description in the spec
bgp
object
No description in the spec
bgp.peerCount
object
No description in the spec
bgp.asOrigins
any
No description in the spec
bgp.asSetOrigins
any
No description in the spec
rpki
object
No description in the spec
rpki.roas
any
No description in the spec
rpki.suggestions
any
No description in the spec
routes
array<object>
No description in the spec
routes.route
object
No description in the spec
routes.origin
object
No description in the spec
routes.descr
object
No description in the spec
routes.mnt_by
object
No description in the spec
routes.changed
object
No description in the spec
routes.source
object
No description in the spec
routingHealth
object
No description in the spec
routingHealth.criticalityStatus
any
No description in the spec
routingHealth.bgpStatus
object
No description in the spec
routingHealth.bgpActions
any
No description in the spec
routingHealth.rpkiStatus
object
No description in the spec
routingHealth.rpkiActions
any
No description in the spec
routingHealth.irrStatus
object
No description in the spec
routingHealth.irrActions
any
No description in the spec
routingHealth.irmActions
any
No description in the spec
cacheDerrived
object
No description in the spec
cacheDerrived.registrar
any
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/all' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
       {
         "notation": "string"
       }
     ]'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/all"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = [
  {
    "notation": "string"
  }
]

r = requests.delete(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/all";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify([
    {
      "notation": "string"
    }
  ]),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`[
  {
    "notation": "string"
  }
]`)
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/all", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/all");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([[
            "notation" => "string"
        ]]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
A list of updated prefixes.
[
  {
    "notation": "string",
    "ipNet": {
      "ip": "string",
      "mask": "string"
    },
    "internalMetadata": {
      "internal": "string",
      "readOnly": "string",
      "master": "string",
      "prefixLengthLimits": {},
      "holders": "string"
    },
    "externalMetadata": {},
    "holderMetadata": {},
    "geodata": [
      {
        "provider": {},
        "countryName": {},
        "countryCode": {},
        "cityName": {},
        "date": {},
        "state": {}
      }
    ],
    "whois": {
      "inetnum": "string",
      "registrar": "string",
      "source": "string",
      "recordActive": "string",
      "nets": "string",
      "domains": "string"
    },
    "bgp": {
      "peerCount": {},
      "asOrigins": "string",
      "asSetOrigins": "string"
    }
  }
]
400
Bad request
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Add metadata array elements to existing prefix holders metadata

POST/{tenantUUID}/prefixes/metadata/array

This endpoint allows for the addition of array elements to the metadata arrays of existing prefix holders. If matching values already exist no action is performed.

post-tenantuuid-prefixes-metadata-arraynethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
notation
string
The notation identifier for the metadata array.
items
array<object>
No description in the spec
items.pathToArray
object
No description in the spec
items.elements
object
No description in the spec
items.position
object
No description in the spec
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
any
No description in the spec
ipNet.mask
any
No description in the spec
maskSize
integer
No description in the spec
type
integer
0 - IPv4, 1 - IPv6
0 1
holderMetadata
object
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
       {
         "notation": "string",
         "items": [
           {
             "pathToArray": {},
             "elements": {},
             "position": {}
           }
         ]
       }
     ]'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = [
  {
    "notation": "string",
    "items": [
      {
        "pathToArray": {},
        "elements": {},
        "position": {}
      }
    ]
  }
]

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify([
    {
      "notation": "string",
      "items": [
        {
          "pathToArray": {},
          "elements": {},
          "position": {}
        }
      ]
    }
  ]),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`[
  {
    "notation": "string",
    "items": [
      {
        "pathToArray": {},
        "elements": {},
        "position": {}
      }
    ]
  }
]`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([[
            "notation" => "string",
            "items" => [[
                "pathToArray" => [

                ],
                "elements" => [

                ],
                "position" => [

                ]
            ]]
        ]]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful addition of metadata array elements.
[
  {
    "notation": "string",
    "ipNet": {
      "ip": "string",
      "mask": "string"
    },
    "maskSize": 1,
    "type": 0,
    "holderMetadata": {}
  }
]
400
Bad request.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
404
Not Found.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error.
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Add metadata array elements to existing prefix holders metadata

PATCH/{tenantUUID}/prefixes/metadata/array

This endpoint allows for the addition of array elements to the metadata arrays of existing prefix holders. Values are always added to the target array. Position can be provided to set where exactly in the array new values should be added. If element in the target position already exists the value is overwritten.

patch-tenantuuid-prefixes-metadata-arraynethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
notation
string
The notation identifier for the metadata array.
items
array<object>
No description in the spec
items.pathToArray
object
No description in the spec
items.elements
object
No description in the spec
items.position
object
No description in the spec
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
any
No description in the spec
ipNet.mask
any
No description in the spec
maskSize
integer
No description in the spec
type
integer
0 - IPv4, 1 - IPv6
0 1
holderMetadata
object
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
       {
         "notation": "string",
         "items": [
           {
             "pathToArray": {},
             "elements": {},
             "position": {}
           }
         ]
       }
     ]'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = [
  {
    "notation": "string",
    "items": [
      {
        "pathToArray": {},
        "elements": {},
        "position": {}
      }
    ]
  }
]

r = requests.patch(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify([
    {
      "notation": "string",
      "items": [
        {
          "pathToArray": {},
          "elements": {},
          "position": {}
        }
      ]
    }
  ]),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`[
  {
    "notation": "string",
    "items": [
      {
        "pathToArray": {},
        "elements": {},
        "position": {}
      }
    ]
  }
]`)
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([[
            "notation" => "string",
            "items" => [[
                "pathToArray" => [

                ],
                "elements" => [

                ],
                "position" => [

                ]
            ]]
        ]]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful addition of metadata array elements.
[
  {
    "notation": "string",
    "ipNet": {
      "ip": "string",
      "mask": "string"
    },
    "maskSize": 1,
    "type": 0,
    "holderMetadata": {}
  }
]
400
Bad request.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
404
Not Found.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error.
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Remove metadata array elements from existing prefix holders metadata

DELETE/{tenantUUID}/prefixes/metadata/array

This endpoint allows for the deletion of array elements from the metadata arrays of existing prefix holders. This endpoint can be combined with `DELETE - /{tenantUUID}/prefixes/metadata` by removing specific array components with that endpoint first and since it sets values to `NULL` when performing delete operations on array positions, one can execute this API call by providing single value of `NULL` to `elements` and it will easily remove all those elements, freeing up array space and resetting positions.

delete-tenantuuid-prefixes-metadata-arraynethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
notation
string
The notation identifier for the metadata array.
items
array<object>
No description in the spec
items.pathToArray
object
No description in the spec
items.elements
object
No description in the spec
items.position
object
No description in the spec
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
any
No description in the spec
ipNet.mask
any
No description in the spec
maskSize
integer
No description in the spec
type
integer
0 - IPv4, 1 - IPv6
0 1
holderMetadata
object
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
       {
         "notation": "string",
         "items": [
           {
             "pathToArray": {},
             "elements": {},
             "position": {}
           }
         ]
       }
     ]'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = [
  {
    "notation": "string",
    "items": [
      {
        "pathToArray": {},
        "elements": {},
        "position": {}
      }
    ]
  }
]

r = requests.delete(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify([
    {
      "notation": "string",
      "items": [
        {
          "pathToArray": {},
          "elements": {},
          "position": {}
        }
      ]
    }
  ]),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`[
  {
    "notation": "string",
    "items": [
      {
        "pathToArray": {},
        "elements": {},
        "position": {}
      }
    ]
  }
]`)
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/metadata/array");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([[
            "notation" => "string",
            "items" => [[
                "pathToArray" => [

                ],
                "elements" => [

                ],
                "position" => [

                ]
            ]]
        ]]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful deletion of metadata array elements.
[
  {
    "notation": "string",
    "ipNet": {
      "ip": "string",
      "mask": "string"
    },
    "maskSize": 1,
    "type": 0,
    "holderMetadata": {}
  }
]
400
Bad request.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
404
Not Found.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error.
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Search for Prefixes

POST/{tenantUUID}/prefixes/search

Returns a list of prefixes that match the given search parameters.

post-tenantuuid-prefixes-searchnethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
notation
object
No description in the spec
notation.field
string
The field to be searched.
notation.op
stringrequired
The operation to be performed. Possible values include 'or', 'and', 'eq', 'ne', 'lt', 'lte', 'gt', 'gte'.
notation.vals
array<string>required
The values to be used for the operation.
notation.children
array<object>
An array of child filters, if any.
internalMetadata
object
No description in the spec
internalMetadata.field
string
The field to be searched.
internalMetadata.op
stringrequired
The operation to be performed. Possible values include 'or', 'and', 'eq', 'ne', 'lt', 'lte', 'gt', 'gte'.
internalMetadata.vals
array<string>required
The values to be used for the operation.
internalMetadata.children
array<object>
An array of child filters, if any.
externalMetadata
object
No description in the spec
externalMetadata.field
string
The field to be searched.
externalMetadata.op
stringrequired
The operation to be performed. Possible values include 'or', 'and', 'eq', 'ne', 'lt', 'lte', 'gt', 'gte'.
externalMetadata.vals
array<string>required
The values to be used for the operation.
externalMetadata.children
array<object>
An array of child filters, if any.
holderMetadata
object
No description in the spec
holderMetadata.field
string
The field to be searched.
holderMetadata.op
stringrequired
The operation to be performed. Possible values include 'or', 'and', 'eq', 'ne', 'lt', 'lte', 'gt', 'gte'.
holderMetadata.vals
array<string>required
The values to be used for the operation.
holderMetadata.children
array<object>
An array of child filters, if any.
geodata
object
No description in the spec
geodata.field
string
The field to be searched.
geodata.op
stringrequired
The operation to be performed. Possible values include 'or', 'and', 'eq', 'ne', 'lt', 'lte', 'gt', 'gte'.
geodata.vals
array<string>required
The values to be used for the operation.
geodata.children
array<object>
An array of child filters, if any.
whois
object
No description in the spec
whois.field
string
The field to be searched.
whois.op
stringrequired
The operation to be performed. Possible values include 'or', 'and', 'eq', 'ne', 'lt', 'lte', 'gt', 'gte'.
whois.vals
array<string>required
The values to be used for the operation.
whois.children
array<object>
An array of child filters, if any.
bgp
object
No description in the spec
bgp.field
string
The field to be searched.
bgp.op
stringrequired
The operation to be performed. Possible values include 'or', 'and', 'eq', 'ne', 'lt', 'lte', 'gt', 'gte'.
bgp.vals
array<string>required
The values to be used for the operation.
bgp.children
array<object>
An array of child filters, if any.
rpki
object
No description in the spec
rpki.field
string
The field to be searched.
rpki.op
stringrequired
The operation to be performed. Possible values include 'or', 'and', 'eq', 'ne', 'lt', 'lte', 'gt', 'gte'.
rpki.vals
array<string>required
The values to be used for the operation.
rpki.children
array<object>
An array of child filters, if any.
routes
object
No description in the spec
routes.field
string
The field to be searched.
routes.op
stringrequired
The operation to be performed. Possible values include 'or', 'and', 'eq', 'ne', 'lt', 'lte', 'gt', 'gte'.
routes.vals
array<string>required
The values to be used for the operation.
routes.children
array<object>
An array of child filters, if any.
routingHealth
object
No description in the spec
routingHealth.field
string
The field to be searched.
routingHealth.op
stringrequired
The operation to be performed. Possible values include 'or', 'and', 'eq', 'ne', 'lt', 'lte', 'gt', 'gte'.
routingHealth.vals
array<string>required
The values to be used for the operation.
routingHealth.children
array<object>
An array of child filters, if any.
cacheDerrived
object
No description in the spec
cacheDerrived.field
string
The field to be searched.
cacheDerrived.op
stringrequired
The operation to be performed. Possible values include 'or', 'and', 'eq', 'ne', 'lt', 'lte', 'gt', 'gte'.
cacheDerrived.vals
array<string>required
The values to be used for the operation.
cacheDerrived.children
array<object>
An array of child filters, if any.
offset
integerint64
No description in the spec
limit
integerint64
No description in the spec
sort
string
Sort order for the returned items. Keys must be provided in a single string, separated by `,`. Order determines sorting priority. Adding `-` in front of the key enables DESCENDING sort. Supported keys: [`notation`, `ipNet`]. To achieve correct "IP sort" use `ipNet`.
fields
array<string>
array of prefix object fields to return in response. Supports sub-object projection by using `.`, i.e.: `geodata.provider`. **NOTE**: `internalMetadata` does not fully support sub-object field projection and will always return entire structure, with non-requested fields initialized with default type values (i.e. booleans will be equal to `FALSE` and strings to `""`), so it is advised to always request entire `internalMetadata` to avoid data analysis inconsistencies.
Response 200
data
array<object>
No description in the spec
data.notation
any
No description in the spec
data.ipNet
object
No description in the spec
data.internalMetadata
object
No description in the spec
data.externalMetadata
object
No description in the spec
data.holderMetadata
object
No description in the spec
data.geodata
any
No description in the spec
data.whois
object
No description in the spec
data.bgp
object
No description in the spec
data.rpki
object
No description in the spec
data.routes
any
No description in the spec
data.routingHealth
object
No description in the spec
data.cacheDerrived
object
No description in the spec
metadata
object
No description in the spec
metadata.limit
integer
No description in the spec
metadata.offset
integer
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "notation": {
         "field": "string",
         "op": "string",
         "vals": [
           "string"
         ],
         "children": [
           {}
         ]
       },
       "internalMetadata": {
         "field": "string",
         "op": "string",
         "vals": [
           "string"
         ],
         "children": [
           {}
         ]
       },
       "externalMetadata": {
         "field": "string",
         "op": "string",
         "vals": [
           "string"
         ],
         "children": [
           {}
         ]
       },
       "holderMetadata": {
         "field": "string",
         "op": "string",
         "vals": [
           "string"
         ],
         "children": [
           {}
         ]
       },
       "geodata": {
         "field": "string",
         "op": "string",
         "vals": [
           "string"
         ],
         "children": [
           {}
         ]
       },
       "whois": {
         "field": "string",
         "op": "string",
         "vals": [
           "string"
         ],
         "children": [
           {}
         ]
       },
       "bgp": {
         "field": "string",
         "op": "string",
         "vals": [
           "string"
         ],
         "children": [
           {}
         ]
       },
       "rpki": {
         "field": "string",
         "op": "string",
         "vals": [
           "string"
         ],
         "children": [
           {}
         ]
       }
     }'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "notation": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "internalMetadata": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "externalMetadata": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "holderMetadata": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "geodata": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "whois": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "bgp": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "rpki": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  }
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "notation": {
      "field": "string",
      "op": "string",
      "vals": [
        "string"
      ],
      "children": [
        {}
      ]
    },
    "internalMetadata": {
      "field": "string",
      "op": "string",
      "vals": [
        "string"
      ],
      "children": [
        {}
      ]
    },
    "externalMetadata": {
      "field": "string",
      "op": "string",
      "vals": [
        "string"
      ],
      "children": [
        {}
      ]
    },
    "holderMetadata": {
      "field": "string",
      "op": "string",
      "vals": [
        "string"
      ],
      "children": [
        {}
      ]
    },
    "geodata": {
      "field": "string",
      "op": "string",
      "vals": [
        "string"
      ],
      "children": [
        {}
      ]
    },
    "whois": {
      "field": "string",
      "op": "string",
      "vals": [
        "string"
      ],
      "children": [
        {}
      ]
    },
    "bgp": {
      "field": "string",
      "op": "string",
      "vals": [
        "string"
      ],
      "children": [
        {}
      ]
    },
    "rpki": {
      "field": "string",
      "op": "string",
      "vals": [
        "string"
      ],
      "children": [
        {}
      ]
    }
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "notation": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "internalMetadata": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "externalMetadata": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "holderMetadata": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "geodata": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "whois": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "bgp": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  },
  "rpki": {
    "field": "string",
    "op": "string",
    "vals": [
      "string"
    ],
    "children": [
      {}
    ]
  }
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "notation" => [
                "field" => "string",
                "op" => "string",
                "vals" => ["string"],
                "children" => [[

                ]]
            ],
            "internalMetadata" => [
                "field" => "string",
                "op" => "string",
                "vals" => ["string"],
                "children" => [[

                ]]
            ],
            "externalMetadata" => [
                "field" => "string",
                "op" => "string",
                "vals" => ["string"],
                "children" => [[

                ]]
            ],
            "holderMetadata" => [
                "field" => "string",
                "op" => "string",
                "vals" => ["string"],
                "children" => [[

                ]]
            ],
            "geodata" => [
                "field" => "string",
                "op" => "string",
                "vals" => ["string"],
                "children" => [[

                ]]
            ],
            "whois" => [
                "field" => "string",
                "op" => "string",
                "vals" => ["string"],
                "children" => [[

                ]]
            ],
            "bgp" => [
                "field" => "string",
                "op" => "string",
                "vals" => ["string"],
                "children" => [[

                ]]
            ],
            "rpki" => [
                "field" => "string",
                "op" => "string",
                "vals" => ["string"],
                "children" => [[

                ]]
            ]
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
A list of matching prefixes.
{
  "data": [
    {
      "notation": "string",
      "ipNet": {},
      "internalMetadata": {},
      "externalMetadata": {},
      "holderMetadata": {},
      "geodata": "string",
      "whois": {},
      "bgp": {}
    }
  ],
  "metadata": {
    "limit": 1,
    "offset": 1
  }
}
400
Bad request
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Find master prefixes with subsets metadata

GET/{tenantUUID}/prefixes/subsets/metadata

Returns the master prefixes with subsets metadata based on the provided search criteria

get-tenantuuid-prefixes-subsets-metadatanethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
notation
string
list of starting point notations. If provided will use these notations to find prefixes to use as top-levels to begin calculating subsets. If not provided will default to master level prefixes. Can provide multiple values by using the same key.
offset
integer
The number of items to skip before starting to collect the result set
limit
integer
The numbers of items to return
sort
string
Sort order for the returned items. Keys must be provided in a single string, separated by `,`. Order determines sorting priority. Adding `-` in front of the key enables DESCENDING sort. Supported keys: [`notation`, `ipNet`]. To achieve correct "IP sort" use `ipNet`.
fields
string
Comma (`,`) separated list of prefix object fields to return in response. Supports sub-object projection by using `.`, i.e.: `geodata.provider`. **NOTE**: `internalMetadata` does not fully support sub-object field projection and will always return entire structure, with non-requested fields initialized with default type values (i.e. booleans will be equal to `FALSE` and strings to `""`), so it is advised to always request entire `internalMetadata` to avoid data analysis inconsistencies.
Response 200
data
array<object>
No description in the spec
data.notation
any
No description in the spec
data.ipNet
object
No description in the spec
data.internalMetadata
object
No description in the spec
data.externalMetadata
object
No description in the spec
data.holderMetadata
object
No description in the spec
data.geodata
any
No description in the spec
data.whois
object
No description in the spec
data.bgp
object
No description in the spec
data.rpki
object
No description in the spec
data.routes
any
No description in the spec
data.routingHealth
object
No description in the spec
data.cacheDerrived
object
No description in the spec
data.subsets
any
No description in the spec
metadata
object
No description in the spec
metadata.limit
integer
No description in the spec
metadata.offset
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/subsets/metadata' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/subsets/metadata"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/subsets/metadata";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/subsets/metadata", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/subsets/metadata");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successfully retrieved master prefixes with subsets metadata
{
  "data": [
    {
      "notation": "string",
      "ipNet": {},
      "internalMetadata": {},
      "externalMetadata": {},
      "holderMetadata": {},
      "geodata": "string",
      "whois": {},
      "bgp": {}
    }
  ],
  "metadata": {
    "limit": 1,
    "offset": 1
  }
}
400
Bad request
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error.
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Set Holder Metadata for a single Prefix

PATCH/{tenantUUID}/prefixes/{notation}/metadata

Updates target prefix holder metadata and returns updated prefix.

patch-tenantuuid-prefixes-notation-metadatanethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
notation
stringrequired
Prefix notation
Request body
metadata
objectrequired
A map to hold the metadata. Map keys can only contain following symbols: [A-Z, a-z, 0-9, -, _]
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
string
No description in the spec
ipNet.mask
string
No description in the spec
internalMetadata
object
No description in the spec
internalMetadata.internal
boolean
No description in the spec
internalMetadata.readOnly
boolean
No description in the spec
internalMetadata.master
boolean
No description in the spec
internalMetadata.prefixLengthLimits
any
No description in the spec
internalMetadata.prefixLengthLimits.type
any
No description in the spec
internalMetadata.prefixLengthLimits.x-truncated
any
No description in the spec
internalMetadata.holders
array<object>
No description in the spec
externalMetadata
object
No description in the spec
holderMetadata
object
No description in the spec
geodata
array<object>
No description in the spec
geodata.provider
any
No description in the spec
geodata.countryName
any
No description in the spec
geodata.countryCode
any
No description in the spec
geodata.cityName
any
No description in the spec
geodata.date
any
No description in the spec
geodata.state
any
No description in the spec
whois
object
No description in the spec
whois.inetnum
stringrequired
No description in the spec
whois.registrar
stringrequired
No description in the spec
whois.source
stringrequired
No description in the spec
whois.recordActive
boolean
No description in the spec
whois.nets
array<object>required
No description in the spec
whois.domains
array<object>required
No description in the spec
bgp
object
No description in the spec
bgp.peerCount
any
No description in the spec
bgp.peerCount.type
any
No description in the spec
bgp.peerCount.x-truncated
any
No description in the spec
bgp.asOrigins
array<object>
No description in the spec
bgp.asSetOrigins
array<object>
No description in the spec
rpki
object
No description in the spec
rpki.roas
array<object>
No description in the spec
rpki.suggestions
array<object>
No description in the spec
routes
array<object>
No description in the spec
routes.route
any
No description in the spec
routes.origin
any
No description in the spec
routes.descr
any
No description in the spec
routes.mnt_by
any
No description in the spec
routes.changed
any
No description in the spec
routes.source
any
No description in the spec
routingHealth
object
No description in the spec
routingHealth.criticalityStatus
string
No description in the spec
routingHealth.bgpStatus
any
No description in the spec
routingHealth.bgpActions
array<object>
No description in the spec
routingHealth.rpkiStatus
any
No description in the spec
routingHealth.rpkiActions
array<object>
No description in the spec
routingHealth.irrStatus
any
No description in the spec
routingHealth.irrActions
array<object>
No description in the spec
routingHealth.irmActions
array<object>
No description in the spec
cacheDerrived
object
No description in the spec
cacheDerrived.registrar
string
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "metadata": {}
     }'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "metadata": {}
}

r = requests.patch(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "metadata": {}
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "metadata": {}
}`)
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "metadata" => [

            ]
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Updated prefix
{
  "notation": "string",
  "ipNet": {
    "ip": "string",
    "mask": "string"
  },
  "internalMetadata": {
    "internal": true,
    "readOnly": true,
    "master": true,
    "prefixLengthLimits": {
      "type": "string",
      "x-truncated": "string"
    },
    "holders": [
      {}
    ]
  },
  "externalMetadata": {},
  "holderMetadata": {},
  "geodata": [
    {
      "provider": "string",
      "countryName": "string",
      "countryCode": "string",
      "cityName": "string",
      "date": "string",
      "state": "string"
    }
  ],
  "whois": {
    "inetnum": "string",
    "registrar": "string",
    "source": "string",
    "recordActive": true,
    "nets": [
      {}
    ],
    "domains": [
      {}
    ]
  },
  "bgp": {
    "peerCount": {
      "type": "string",
      "x-truncated": "string"
    },
    "asOrigins": [
      {}
    ],
    "asSetOrigins": [
      {}
    ]
  }
}
400
Bad request
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Delete Holder Metadata for a single Prefix

DELETE/{tenantUUID}/prefixes/{notation}/metadata

Deletes target prefix holder metadata and returns updated prefix.

delete-tenantuuid-prefixes-notation-metadatanethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
notation
stringrequired
Prefix notation
Request body
metadata
array<string>required
An array of strings representing metadata keys. Values can only contain following symbols: [A-Z, a-z, 0-9, -, _]
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
string
No description in the spec
ipNet.mask
string
No description in the spec
internalMetadata
object
No description in the spec
internalMetadata.internal
boolean
No description in the spec
internalMetadata.readOnly
boolean
No description in the spec
internalMetadata.master
boolean
No description in the spec
internalMetadata.prefixLengthLimits
any
No description in the spec
internalMetadata.prefixLengthLimits.type
any
No description in the spec
internalMetadata.prefixLengthLimits.x-truncated
any
No description in the spec
internalMetadata.holders
array<object>
No description in the spec
externalMetadata
object
No description in the spec
holderMetadata
object
No description in the spec
geodata
array<object>
No description in the spec
geodata.provider
any
No description in the spec
geodata.countryName
any
No description in the spec
geodata.countryCode
any
No description in the spec
geodata.cityName
any
No description in the spec
geodata.date
any
No description in the spec
geodata.state
any
No description in the spec
whois
object
No description in the spec
whois.inetnum
stringrequired
No description in the spec
whois.registrar
stringrequired
No description in the spec
whois.source
stringrequired
No description in the spec
whois.recordActive
boolean
No description in the spec
whois.nets
array<object>required
No description in the spec
whois.domains
array<object>required
No description in the spec
bgp
object
No description in the spec
bgp.peerCount
any
No description in the spec
bgp.peerCount.type
any
No description in the spec
bgp.peerCount.x-truncated
any
No description in the spec
bgp.asOrigins
array<object>
No description in the spec
bgp.asSetOrigins
array<object>
No description in the spec
rpki
object
No description in the spec
rpki.roas
array<object>
No description in the spec
rpki.suggestions
array<object>
No description in the spec
routes
array<object>
No description in the spec
routes.route
any
No description in the spec
routes.origin
any
No description in the spec
routes.descr
any
No description in the spec
routes.mnt_by
any
No description in the spec
routes.changed
any
No description in the spec
routes.source
any
No description in the spec
routingHealth
object
No description in the spec
routingHealth.criticalityStatus
string
No description in the spec
routingHealth.bgpStatus
any
No description in the spec
routingHealth.bgpActions
array<object>
No description in the spec
routingHealth.rpkiStatus
any
No description in the spec
routingHealth.rpkiActions
array<object>
No description in the spec
routingHealth.irrStatus
any
No description in the spec
routingHealth.irrActions
array<object>
No description in the spec
routingHealth.irmActions
array<object>
No description in the spec
cacheDerrived
object
No description in the spec
cacheDerrived.registrar
string
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "metadata": [
         "string"
       ]
     }'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "metadata": [
    "string"
  ]
}

r = requests.delete(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "metadata": [
      "string"
    ]
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "metadata": [
    "string"
  ]
}`)
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "metadata" => ["string"]
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Updated prefix.
{
  "notation": "string",
  "ipNet": {
    "ip": "string",
    "mask": "string"
  },
  "internalMetadata": {
    "internal": true,
    "readOnly": true,
    "master": true,
    "prefixLengthLimits": {
      "type": "string",
      "x-truncated": "string"
    },
    "holders": [
      {}
    ]
  },
  "externalMetadata": {},
  "holderMetadata": {},
  "geodata": [
    {
      "provider": "string",
      "countryName": "string",
      "countryCode": "string",
      "cityName": "string",
      "date": "string",
      "state": "string"
    }
  ],
  "whois": {
    "inetnum": "string",
    "registrar": "string",
    "source": "string",
    "recordActive": true,
    "nets": [
      {}
    ],
    "domains": [
      {}
    ]
  },
  "bgp": {
    "peerCount": {
      "type": "string",
      "x-truncated": "string"
    },
    "asOrigins": [
      {}
    ],
    "asSetOrigins": [
      {}
    ]
  }
}
400
Bad request
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Delete All Holder Metadata for a single Prefix

DELETE/{tenantUUID}/prefixes/{notation}/metadata/all

Deletes target prefix holder metadata and returns updated prefix.

delete-tenantuuid-prefixes-notation-metadata-allnethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
notation
stringrequired
Prefix notation
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
string
No description in the spec
ipNet.mask
string
No description in the spec
internalMetadata
object
No description in the spec
internalMetadata.internal
boolean
No description in the spec
internalMetadata.readOnly
boolean
No description in the spec
internalMetadata.master
boolean
No description in the spec
internalMetadata.prefixLengthLimits
any
No description in the spec
internalMetadata.prefixLengthLimits.type
any
No description in the spec
internalMetadata.prefixLengthLimits.x-truncated
any
No description in the spec
internalMetadata.holders
array<object>
No description in the spec
externalMetadata
object
No description in the spec
holderMetadata
object
No description in the spec
geodata
array<object>
No description in the spec
geodata.provider
any
No description in the spec
geodata.countryName
any
No description in the spec
geodata.countryCode
any
No description in the spec
geodata.cityName
any
No description in the spec
geodata.date
any
No description in the spec
geodata.state
any
No description in the spec
whois
object
No description in the spec
whois.inetnum
stringrequired
No description in the spec
whois.registrar
stringrequired
No description in the spec
whois.source
stringrequired
No description in the spec
whois.recordActive
boolean
No description in the spec
whois.nets
array<object>required
No description in the spec
whois.domains
array<object>required
No description in the spec
bgp
object
No description in the spec
bgp.peerCount
any
No description in the spec
bgp.peerCount.type
any
No description in the spec
bgp.peerCount.x-truncated
any
No description in the spec
bgp.asOrigins
array<object>
No description in the spec
bgp.asSetOrigins
array<object>
No description in the spec
rpki
object
No description in the spec
rpki.roas
array<object>
No description in the spec
rpki.suggestions
array<object>
No description in the spec
routes
array<object>
No description in the spec
routes.route
any
No description in the spec
routes.origin
any
No description in the spec
routes.descr
any
No description in the spec
routes.mnt_by
any
No description in the spec
routes.changed
any
No description in the spec
routes.source
any
No description in the spec
routingHealth
object
No description in the spec
routingHealth.criticalityStatus
string
No description in the spec
routingHealth.bgpStatus
any
No description in the spec
routingHealth.bgpActions
array<object>
No description in the spec
routingHealth.rpkiStatus
any
No description in the spec
routingHealth.rpkiActions
array<object>
No description in the spec
routingHealth.irrStatus
any
No description in the spec
routingHealth.irrActions
array<object>
No description in the spec
routingHealth.irmActions
array<object>
No description in the spec
cacheDerrived
object
No description in the spec
cacheDerrived.registrar
string
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/all' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/all"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.delete(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/all";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/all", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/all");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Updated prefix.
{
  "notation": "string",
  "ipNet": {
    "ip": "string",
    "mask": "string"
  },
  "internalMetadata": {
    "internal": true,
    "readOnly": true,
    "master": true,
    "prefixLengthLimits": {
      "type": "string",
      "x-truncated": "string"
    },
    "holders": [
      {}
    ]
  },
  "externalMetadata": {},
  "holderMetadata": {},
  "geodata": [
    {
      "provider": "string",
      "countryName": "string",
      "countryCode": "string",
      "cityName": "string",
      "date": "string",
      "state": "string"
    }
  ],
  "whois": {
    "inetnum": "string",
    "registrar": "string",
    "source": "string",
    "recordActive": true,
    "nets": [
      {}
    ],
    "domains": [
      {}
    ]
  },
  "bgp": {
    "peerCount": {
      "type": "string",
      "x-truncated": "string"
    },
    "asOrigins": [
      {}
    ],
    "asSetOrigins": [
      {}
    ]
  }
}
400
Bad request
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Add metadata array elements to existing prefix holders metadata of a specified notation

POST/{tenantUUID}/prefixes/{notation}/metadata/array

This endpoint allows for the addition of array elements to the metadata arrays of existing prefix holders notation. If matching values already exist no action is performed.

post-tenantuuid-prefixes-notation-metadata-arraynethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
notation
stringrequired
Prefix notation
Request body
pathToArray
string
The path to the metadata array in the holder.
elements
array<object>
The elements to add to the array.
position
integer
The position at which to add elements in the array. Only works with push. Optional.
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
any
No description in the spec
ipNet.mask
any
No description in the spec
maskSize
integer
No description in the spec
type
integer
0 - IPv4, 1 - IPv6
0 1
holderMetadata
object
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
       {
         "pathToArray": "string",
         "elements": [
           {}
         ],
         "position": 1
       }
     ]'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = [
  {
    "pathToArray": "string",
    "elements": [
      {}
    ],
    "position": 1
  }
]

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify([
    {
      "pathToArray": "string",
      "elements": [
        {}
      ],
      "position": 1
    }
  ]),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`[
  {
    "pathToArray": "string",
    "elements": [
      {}
    ],
    "position": 1
  }
]`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([[
            "pathToArray" => "string",
            "elements" => [[

            ]],
            "position" => 1
        ]]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful addition of metadata array elements.
[
  {
    "notation": "string",
    "ipNet": {
      "ip": "string",
      "mask": "string"
    },
    "maskSize": 1,
    "type": 0,
    "holderMetadata": {}
  }
]
400
Bad request.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
404
Not Found.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error.
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Add metadata array elements to existing prefix holders metadata of a specified notation

PATCH/{tenantUUID}/prefixes/{notation}/metadata/array

This endpoint allows for the addition of array elements to the metadata arrays of existing prefix holders notation. Values are always added to the target array. Position can be provided to set where exactly in the array new values should be added. If element in the target position already exists the value is overwritten.

patch-tenantuuid-prefixes-notation-metadata-arraynethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
notation
stringrequired
Prefix notation
Request body
pathToArray
string
The path to the metadata array in the holder.
elements
array<object>
The elements to add to the array.
position
integer
The position at which to add elements in the array. Only works with push. Optional.
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
any
No description in the spec
ipNet.mask
any
No description in the spec
maskSize
integer
No description in the spec
type
integer
0 - IPv4, 1 - IPv6
0 1
holderMetadata
object
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
       {
         "pathToArray": "string",
         "elements": [
           {}
         ],
         "position": 1
       }
     ]'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = [
  {
    "pathToArray": "string",
    "elements": [
      {}
    ],
    "position": 1
  }
]

r = requests.patch(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify([
    {
      "pathToArray": "string",
      "elements": [
        {}
      ],
      "position": 1
    }
  ]),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`[
  {
    "pathToArray": "string",
    "elements": [
      {}
    ],
    "position": 1
  }
]`)
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([[
            "pathToArray" => "string",
            "elements" => [[

            ]],
            "position" => 1
        ]]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful addition of metadata array elements.
[
  {
    "notation": "string",
    "ipNet": {
      "ip": "string",
      "mask": "string"
    },
    "maskSize": 1,
    "type": 0,
    "holderMetadata": {}
  }
]
400
Bad request.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
404
Not Found.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error.
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Remove metadata array elements from existing prefix holders metadata of a specified notation

DELETE/{tenantUUID}/prefixes/{notation}/metadata/array

This endpoint allows for the deletion of array elements from the metadata arrays of existing prefix holders notation. This endpoint can be combined with `DELETE - /{tenantUUID}/prefixes/metadata` by removing specific array components with that endpoint first and since it sets values to `NULL` when performing delete operations on array positions, one can execute this API call by providing single value of `NULL` to `elements` and it will easily remove all those elements, freeing up array space and resetting positions.

delete-tenantuuid-prefixes-notation-metadata-arraynethub-data

Path parameters
tenantUUID
stringrequired
Tenant UUID
notation
stringrequired
Prefix notation
Request body
pathToArray
string
The path to the metadata array in the holder.
elements
array<object>
The elements to add to the array.
position
integer
The position at which to add elements in the array. Only works with push. Optional.
Response 200
notation
string
No description in the spec
ipNet
object
No description in the spec
ipNet.ip
any
No description in the spec
ipNet.mask
any
No description in the spec
maskSize
integer
No description in the spec
type
integer
0 - IPv4, 1 - IPv6
0 1
holderMetadata
object
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
       {
         "pathToArray": "string",
         "elements": [
           {}
         ],
         "position": 1
       }
     ]'
import os, requests

url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = [
  {
    "pathToArray": "string",
    "elements": [
      {}
    ],
    "position": 1
  }
]

r = requests.delete(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify([
    {
      "pathToArray": "string",
      "elements": [
        {}
      ],
      "position": 1
    }
  ]),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`[
  {
    "pathToArray": "string",
    "elements": [
      {}
    ],
    "position": 1
  }
]`)
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/{notation}/metadata/array");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([[
            "pathToArray" => "string",
            "elements" => [[

            ]],
            "position" => 1
        ]]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful removal of metadata array elements.
[
  {
    "notation": "string",
    "ipNet": {
      "ip": "string",
      "mask": "string"
    },
    "maskSize": 1,
    "type": 0,
    "holderMetadata": {}
  }
]
400
Bad request.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
403
Forbidden
{
  "status": "string",
  "code": 1,
  "error": "string"
}
404
Not Found.
{
  "status": "string",
  "code": 1,
  "error": "string"
}
500
Internal Server Error.
{
  "status": "string",
  "code": 1,
  "error": "string"
}

Payment methods

6 operations

The object synthesised

The spec declares no named object for this resource, so the renderer synthesised one from its richest response body (GET /public/{user_id}/payment-methods). Fields no endpoint returns cannot appear here.

Attributes
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.type
string
No description in the spec
data.is_default
boolean
No description in the spec
data.details
object
No description in the spec
data.status
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec

List Gateways

GET/public/{user_id}/gateways

List all Gateways.

listGatewaysecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.gateway
string
No description in the spec
data.config
object
No description in the spec
data.config.public_key
any
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "gateway": "string",
      "config": {
        "public_key": "string"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

Setup Gateway

POST/public/{user_id}/gateways/{gatewayConfig_uuid}/setup

Setup Gateway

setupGatewayecommerce

Path parameters
user_id
stringrequired
The ID of the user.
gatewayConfig_uuid
stringrequired
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways/{gatewayConfig_uuid}/setup' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways/{gatewayConfig_uuid}/setup"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways/{gatewayConfig_uuid}/setup";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways/{gatewayConfig_uuid}/setup", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways/{gatewayConfig_uuid}/setup");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{}

Add Payment Method

POST/public/{user_id}/gateways/{gatewayConfig_uuid}/{paymentMethodType}

Add Payment Method

addPaymentMethodecommerce

Path parameters
user_id
stringrequired
The ID of the user.
gatewayConfig_uuid
stringrequired
No description in the spec
paymentMethodType
stringrequired
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways/{gatewayConfig_uuid}/{paymentMethodType}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways/{gatewayConfig_uuid}/{paymentMethodType}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways/{gatewayConfig_uuid}/{paymentMethodType}";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways/{gatewayConfig_uuid}/{paymentMethodType}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/gateways/{gatewayConfig_uuid}/{paymentMethodType}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
204
Card added successfully
{}

List Payment Methods

GET/public/{user_id}/payment-methods

List the Payment Methods.

listPaymentMethodsecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Query parameters
filter[type]
string
No description in the spec
filter[status]
string
No description in the spec
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.type
string
No description in the spec
data.is_default
boolean
No description in the spec
data.details
object
No description in the spec
data.details.card_brand
any
No description in the spec
data.details.card_last_four
any
No description in the spec
data.details.card_expiry_month
any
No description in the spec
data.details.card_expiry_year
any
No description in the spec
data.status
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "type": "string",
      "is_default": true,
      "details": {
        "card_brand": "string",
        "card_last_four": "string",
        "card_expiry_month": "string",
        "card_expiry_year": "string"
      },
      "status": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

Updates Payment Method

PATCH/public/{user_id}/payment-methods/{paymentMethod_uuid}

Updates Payment Method information.

updatesPaymentMethodecommerce

Path parameters
user_id
stringrequired
The ID of the user.
paymentMethod_uuid
stringrequired
No description in the spec
Request body
make_default
boolean
No description in the spec
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.type
string
No description in the spec
data.is_default
boolean
No description in the spec
data.details
object
No description in the spec
data.details.card_brand
string
No description in the spec
data.details.card_last_four
string
No description in the spec
data.details.card_expiry_month
integer
No description in the spec
data.details.card_expiry_year
integer
No description in the spec
data.status
string
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods/{paymentMethod_uuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "make_default": true
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods/{paymentMethod_uuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "make_default": true
}

r = requests.patch(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods/{paymentMethod_uuid}";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "make_default": true
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "make_default": true
}`)
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods/{paymentMethod_uuid}", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods/{paymentMethod_uuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "make_default" => true
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "type": "string",
    "is_default": true,
    "details": {
      "card_brand": "string",
      "card_last_four": "string",
      "card_expiry_month": 1,
      "card_expiry_year": 1
    },
    "status": "string"
  }
}

Delete Payment Method

DELETE/public/{user_id}/payment-methods/{paymentMethod_uuid}

Delete a Payment Method

deletePaymentMethodecommerce

Path parameters
user_id
stringrequired
The ID of the user.
paymentMethod_uuid
stringrequired
No description in the spec
Request
curl -X DELETE 'https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods/{paymentMethod_uuid}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods/{paymentMethod_uuid}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.delete(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods/{paymentMethod_uuid}";
const res = await fetch(url, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods/{paymentMethod_uuid}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/payment-methods/{paymentMethod_uuid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "DELETE",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
204
Successful Deleted Payment Method
{}

Addresses

5 operations

The object synthesised

The spec declares no named object for this resource, so the renderer synthesised one from its richest response body (GET /public/{user_id}/addresses). Fields no endpoint returns cannot appear here.

Attributes
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.first_name
string
No description in the spec
data.last_name
string
No description in the spec
data.company_name
string
No description in the spec
data.vat_number
string
No description in the spec
data.vat_validation_status
string
No description in the spec
data.vat_validated_at
string
No description in the spec
data.line_one
string
No description in the spec
data.line_two
string
No description in the spec
data.line_three
string
No description in the spec
data.city
string
No description in the spec
data.province_code
string
No description in the spec
data.country_code
string
No description in the spec
data.postcode
string
No description in the spec
data.contact_email
string
No description in the spec
data.contact_phone
string
No description in the spec
data.company_code
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec

List Countries

GET/public/common/countries

List all Countries.

listCountriesecommerce

Response 200
data
array<object>
No description in the spec
data.name
string
No description in the spec
data.code
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/common/countries' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/common/countries"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/common/countries";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/common/countries", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/common/countries");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "name": "string",
      "code": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

List Provinces

GET/public/common/countries/{country_code}/provinces

List all Provinces for a Country.

listProvincesecommerce

Path parameters
country_code
stringrequired
No description in the spec
Response 200
data
array<object>
No description in the spec
data.country_code
string
No description in the spec
data.name
string
No description in the spec
data.code
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/common/countries/{country_code}/provinces' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/common/countries/{country_code}/provinces"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/common/countries/{country_code}/provinces";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/common/countries/{country_code}/provinces", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/common/countries/{country_code}/provinces");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "country_code": "string",
      "name": "string",
      "code": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

List Customer Billing Addresses

GET/public/{user_id}/addresses

List the customer billing addresses.

listCustomerBillingAddressesecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Query parameters
filter[addressable_type]
string
No description in the spec
filter[addressable_id]
string
No description in the spec
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.first_name
string
No description in the spec
data.last_name
string
No description in the spec
data.company_name
string
No description in the spec
data.vat_number
string
No description in the spec
data.vat_validation_status
string
No description in the spec
data.vat_validated_at
string
No description in the spec
data.line_one
string
No description in the spec
data.line_two
string
No description in the spec
data.line_three
string
No description in the spec
data.city
string
No description in the spec
data.province_code
string
No description in the spec
data.country_code
string
No description in the spec
data.postcode
string
No description in the spec
data.contact_email
string
No description in the spec
data.contact_phone
string
No description in the spec
data.company_code
string
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "first_name": "string",
      "last_name": "string",
      "company_name": "string",
      "vat_number": "string",
      "vat_validation_status": "string",
      "vat_validated_at": "string",
      "line_one": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

Create Address

POST/public/{user_id}/addresses

Create a single Address.

createAddressecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Request body
country_code
stringrequired
The <code>code</code> of an existing record in the countries table.
vat_number
string
No description in the spec
first_name
string
Must not be greater than 20 characters.
last_name
string
Must not be greater than 30 characters.
company_name
stringrequired
Must match the regex /^[A-Za-z0-9.()[\],'"_\/@&!*+\-, ]+$/. Must not be greater than 150 characters.
company_code
string
Must be at least 3 characters. Must not be greater than 20 characters.
line_one
stringrequired
Must be at least 2 characters. Must not be greater than 100 characters.
line_two
string
Must not be greater than 100 characters.
line_three
string
Must not be greater than 100 characters.
city
stringrequired
Must not be greater than 90 characters.
province_code
string
The <code>code</code> of an existing record in the provinces table. Must not be greater than 20 characters.
postcode
stringrequired
Must not be greater than 20 characters.
contact_email
string
Must be a valid email address. Must not be greater than 255 characters.
contact_phone
string
Must not be greater than 20 characters.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.first_name
string
No description in the spec
data.last_name
string
No description in the spec
data.company_name
string
No description in the spec
data.vat_number
string
No description in the spec
data.vat_validation_status
string
No description in the spec
data.vat_validated_at
string
No description in the spec
data.line_one
string
No description in the spec
data.line_two
string
No description in the spec
data.line_three
string
No description in the spec
data.city
string
No description in the spec
data.province_code
string
No description in the spec
data.country_code
string
No description in the spec
data.postcode
string
No description in the spec
data.contact_email
string
No description in the spec
data.contact_phone
string
No description in the spec
data.company_code
string
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "country_code": "string",
       "vat_number": "string",
       "first_name": "string",
       "last_name": "string",
       "company_name": "string",
       "company_code": "string",
       "line_one": "string",
       "line_two": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "country_code": "string",
  "vat_number": "string",
  "first_name": "string",
  "last_name": "string",
  "company_name": "string",
  "company_code": "string",
  "line_one": "string",
  "line_two": "string"
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "country_code": "string",
    "vat_number": "string",
    "first_name": "string",
    "last_name": "string",
    "company_name": "string",
    "company_code": "string",
    "line_one": "string",
    "line_two": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "country_code": "string",
  "vat_number": "string",
  "first_name": "string",
  "last_name": "string",
  "company_name": "string",
  "company_code": "string",
  "line_one": "string",
  "line_two": "string"
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "country_code" => "string",
            "vat_number" => "string",
            "first_name" => "string",
            "last_name" => "string",
            "company_name" => "string",
            "company_code" => "string",
            "line_one" => "string",
            "line_two" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "first_name": "string",
    "last_name": "string",
    "company_name": "string",
    "vat_number": "string",
    "vat_validation_status": "string",
    "vat_validated_at": "string",
    "line_one": "string"
  }
}

Update Address

PUT/public/{user_id}/addresses/{customerAddress_id}

Update customer address.

updateAddressecommerce

Path parameters
user_id
stringrequired
The ID of the user.
customerAddress_id
integerrequired
The ID of the customerAddress.
Request body
line_one
stringrequired
Must not be greater than 255 characters.
line_two
string
Must not be greater than 255 characters.
city
stringrequired
Must not be greater than 255 characters.
postcode
stringrequired
Must not be greater than 20 characters.
province_code
string
Must not be greater than 10 characters.
contact_email
string
Must be a valid email address. Must not be greater than 255 characters.
vat_number
string
Must not be greater than 50 characters.
company_code
string
Must not be greater than 50 characters.
first_name
string
Must not be greater than 255 characters.
last_name
string
Must not be greater than 255 characters.
company_name
string
Must not be greater than 255 characters.
contact_phone
string
Must not be greater than 50 characters.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.first_name
string
No description in the spec
data.last_name
string
No description in the spec
data.company_name
string
No description in the spec
data.vat_number
string
No description in the spec
data.vat_validation_status
string
No description in the spec
data.vat_validated_at
string
No description in the spec
data.line_one
string
No description in the spec
data.line_two
string
No description in the spec
data.line_three
string
No description in the spec
data.city
string
No description in the spec
data.province_code
string
No description in the spec
data.country_code
string
No description in the spec
data.postcode
string
No description in the spec
data.contact_email
string
No description in the spec
data.contact_phone
string
No description in the spec
data.company_code
string
No description in the spec
Request
curl -X PUT 'https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses/{customerAddress_id}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "line_one": "string",
       "line_two": "string",
       "city": "string",
       "postcode": "string",
       "province_code": "string",
       "contact_email": "[email protected]",
       "vat_number": "string",
       "company_code": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses/{customerAddress_id}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "line_one": "string",
  "line_two": "string",
  "city": "string",
  "postcode": "string",
  "province_code": "string",
  "contact_email": "[email protected]",
  "vat_number": "string",
  "company_code": "string"
}

r = requests.put(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses/{customerAddress_id}";
const res = await fetch(url, {
  method: "PUT",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "line_one": "string",
    "line_two": "string",
    "city": "string",
    "postcode": "string",
    "province_code": "string",
    "contact_email": "[email protected]",
    "vat_number": "string",
    "company_code": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "line_one": "string",
  "line_two": "string",
  "city": "string",
  "postcode": "string",
  "province_code": "string",
  "contact_email": "[email protected]",
  "vat_number": "string",
  "company_code": "string"
}`)
	req, _ := http.NewRequest("PUT", "https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses/{customerAddress_id}", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/addresses/{customerAddress_id}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PUT",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "line_one" => "string",
            "line_two" => "string",
            "city" => "string",
            "postcode" => "string",
            "province_code" => "string",
            "contact_email" => "[email protected]",
            "vat_number" => "string",
            "company_code" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "first_name": "string",
    "last_name": "string",
    "company_name": "string",
    "vat_number": "string",
    "vat_validation_status": "string",
    "vat_validated_at": "string",
    "line_one": "string"
  }
}

Products

3 operations

The object synthesised

The spec declares no named object for this resource, so the renderer synthesised one from its richest response body (GET /public/{user_id}/products). Fields no endpoint returns cannot appear here.

Attributes
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.name
string
No description in the spec
data.code
string
No description in the spec
data.short_description
string
No description in the spec
data.price
object
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec

List Product Variants

GET/public/{user_id}/products

Return the List of all Product Variants that are purchasable.

listProductVariantsecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Query parameters
filter[code]
string
No description in the spec
filter[uuid]
string
No description in the spec
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.name
string
No description in the spec
data.code
string
No description in the spec
data.short_description
string
No description in the spec
data.price
object
No description in the spec
data.price.uuid
any
No description in the spec
data.price.price
any
No description in the spec
data.price.price.type
any
No description in the spec
data.price.price.x-truncated
any
No description in the spec
data.price.type
any
No description in the spec
data.price.recurrence
any
No description in the spec
data.price.recurrence.type
any
No description in the spec
data.price.recurrence.x-truncated
any
No description in the spec
data.price.code
any
No description in the spec
data.price.is_default
any
No description in the spec
data.price.created_at
any
No description in the spec
data.price.requires_external_termination
any
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/products' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/products"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/products";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/products", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/products");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "name": "string",
      "code": "string",
      "short_description": "string",
      "price": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "price": {
          "type": "\u2026",
          "x-truncated": "\u2026"
        },
        "type": "string",
        "recurrence": {
          "type": "\u2026",
          "x-truncated": "\u2026"
        },
        "code": "string",
        "is_default": "string",
        "created_at": "string",
        "requires_external_termination": "string"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

List Bundle Variants

GET/public/{user_id}/products/bundles

Return the List of all Bundle Variants that are purchasable.

listBundleVariantsecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Query parameters
include
string
A comma-separated list of relationships to include. Multiple parameters are allowed.
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.name
string
No description in the spec
data.short_description
string
No description in the spec
data.type
string
No description in the spec
data.price
object
No description in the spec
data.price.currency
any
No description in the spec
data.price.amount
any
No description in the spec
data.price.amount_minor
any
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/products/bundles' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/products/bundles"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/products/bundles";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/products/bundles", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/products/bundles");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "name": "string",
      "short_description": "string",
      "type": "string",
      "price": {
        "currency": "string",
        "amount": "string",
        "amount_minor": "string"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

List Product Categories

GET/public/{user_id}/products/categories

Returns a list of Product Categories.

listProductCategoriesecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Query parameters
filter[slugs]
string
Filter by product category slugs (comma-separated)
Response 200
data
array<object>
No description in the spec
data.uuid
string
No description in the spec
data.slug
string
No description in the spec
data.enabled
boolean
No description in the spec
data.is_cart_enabled
boolean
No description in the spec
data.is_stock_enabled
boolean
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.total
integer
No description in the spec
meta.per_page
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/products/categories' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/products/categories"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/products/categories";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/products/categories", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/products/categories");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "slug": "string",
      "enabled": true,
      "is_cart_enabled": true,
      "is_stock_enabled": true
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 1,
    "per_page": 1
  }
}

Account

14 operations

The object API.Pub.Resources.Tenants.TenantShowResource

Declared in the spec. Shown from GET /v1/{tenantUUID}.

Attributes
uuid
string
No description in the spec
title
string
No description in the spec
email
string
No description in the spec
business_since
string
No description in the spec
company_size
string
No description in the spec
address1
string
No description in the spec
address2
string
No description in the spec
city
string
No description in the spec
postcode
string
No description in the spec
country
string
No description in the spec
state
string
No description in the spec
status
string
No description in the spec
abuse_email
string
No description in the spec
created_at
integer
No description in the spec
options
array<object>
No description in the spec
options.key
any
No description in the spec
options.value
any
No description in the spec
meta
array<object>
No description in the spec
meta.key
any
No description in the spec
meta.value
any
No description in the spec
industry
object
No description in the spec
industry.uuid
string
No description in the spec
industry.name
number
No description in the spec
credit
object
No description in the spec
credit.uuid
string
No description in the spec
credit.amount
numberfloat
No description in the spec
credit.auto_payment
boolean
No description in the spec
summary
string
No description in the spec
logo
object
No description in the spec
logo.image
string
No description in the spec
payment_gateways
array<string>
No description in the spec
flags
array<object>
No description in the spec
flags.uuid
any
No description in the spec
flags.slug
any
No description in the spec
status_reason
object
No description in the spec
status_reason.uuid
stringuuid
No description in the spec
status_reason.slug
string
No description in the spec
status_reason.title
string
No description in the spec
vat_number
string
No description in the spec
email_verified
boolean
No description in the spec
abuse_email_verified
boolean
No description in the spec

Show Customer

GET/public/{user_id}

Show the current Customer

showCustomerecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.auth_id
string
No description in the spec
data.name
string
No description in the spec
data.business_entity_id
string
No description in the spec
data.currency
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "auth_id": "string",
    "name": "string",
    "business_entity_id": "string",
    "currency": "string"
  }
}

Show Business Entity

GET/public/{user_id}/business-entity

Show the Business Entity assigned to the current Customer

showBusinessEntityecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.country_code
string
No description in the spec
data.company_name
string
No description in the spec
data.line_one
string
No description in the spec
data.line_two
string
No description in the spec
data.line_three
string
No description in the spec
data.city
string
No description in the spec
data.province_code
string
No description in the spec
data.postcode
string
No description in the spec
data.contact_email
string
No description in the spec
data.bank_transfer_details
object
No description in the spec
data.bank_transfer_details.accounts
array<{'type': 'object', 'x-truncated': True}>
No description in the spec
data.bank_transfer_details.accounts.type
any
No description in the spec
data.bank_transfer_details.accounts.x-truncated
any
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/business-entity' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/business-entity"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/business-entity";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/business-entity", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/business-entity");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "country_code": "string",
    "company_name": "string",
    "line_one": "string",
    "line_two": "string",
    "line_three": "string",
    "city": "string",
    "province_code": "string"
  }
}

List Customer Flags

GET/public/{user_id}/flags

Returns flags attached to a customer.

listCustomerFlagsecommerce

Path parameters
user_id
stringrequired
The ID of the user.
Response 200
data
object
No description in the spec
data.uuid
string
No description in the spec
data.name
string
No description in the spec
data.slug
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/ecommerce/public/{user_id}/flags' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/flags"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/{user_id}/flags";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/ecommerce/public/{user_id}/flags", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/{user_id}/flags");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "slug": "string"
  }
}

Get list of tenants

GET/v1

Returns list of tenants

API-Pub-Tenants-Listbilling

Response 200
data
array<object>
No description in the spec
data.uuid
any
No description in the spec
data.email
any
No description in the spec
data.business_since
any
No description in the spec
data.company_size
any
No description in the spec
data.title
any
No description in the spec
data.status
any
No description in the spec
data.code
any
No description in the spec
data.options
any
No description in the spec
data.meta
any
No description in the spec
data.credit
any
No description in the spec
data.credit.type
any
No description in the spec
data.credit.x-truncated
any
No description in the spec
data.summary
any
No description in the spec
data.logo
object
No description in the spec
data.payment_gateways
any
No description in the spec
data.flags
any
No description in the spec
data.status_reason
object
No description in the spec
data.vat_number
any
No description in the spec
data.email_verified
any
No description in the spec
data.abuse_email_verified
any
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Tenants Collection
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "email": "[email protected]",
      "business_since": "string",
      "company_size": "string",
      "title": "string",
      "status": "string",
      "code": "string",
      "options": "string"
    }
  ]
}
401
Unauthorized
403
Forbidden

Create Tenant

POST/v1

Create Tenant

API-Pub-Tenants-Createbilling

Request body
title
stringrequired
No description in the spec
email
stringrequired
No description in the spec
business_since
string
No description in the spec
company_size
string
No description in the spec
address1
stringrequired
No description in the spec
address2
string
No description in the spec
city
stringrequired
No description in the spec
country
stringrequired
No description in the spec
postcode
stringrequired
No description in the spec
state
stringrequired
No description in the spec
abuse_email
stringrequired
No description in the spec
vat_number
string
No description in the spec
industry_uuid
stringuuid
No description in the spec
reuse_address
boolean
No description in the spec
options
object
No description in the spec
options.website
string
No description in the spec
options.social_network
array<string>
No description in the spec
options.has_social_network
boolean
No description in the spec
options.found_us
string
No description in the spec
options.primary_intention
string
No description in the spec
options.proprata
boolean
No description in the spec
options.prorata_day
integer
Tenant Option Prorata Day
Response 200
uuid
string
No description in the spec
email
string
No description in the spec
business_since
string
No description in the spec
company_size
string
No description in the spec
title
string
No description in the spec
status
string
No description in the spec
code
string
No description in the spec
options
array<object>
No description in the spec
options.key
any
No description in the spec
options.value
any
No description in the spec
meta
array<object>
No description in the spec
meta.key
any
No description in the spec
meta.value
any
No description in the spec
credit
object
No description in the spec
credit.amount
numberfloat
No description in the spec
credit.auto_payment
boolean
No description in the spec
summary
string
No description in the spec
logo
object
No description in the spec
logo.image
string
No description in the spec
payment_gateways
array<string>
No description in the spec
flags
array<object>
No description in the spec
flags.uuid
any
No description in the spec
flags.slug
any
No description in the spec
status_reason
object
No description in the spec
status_reason.uuid
stringuuid
No description in the spec
status_reason.slug
string
No description in the spec
status_reason.title
string
No description in the spec
vat_number
string
No description in the spec
email_verified
boolean
No description in the spec
abuse_email_verified
boolean
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "title": "string",
       "email": "[email protected]",
       "business_since": "string",
       "company_size": "string",
       "address1": "string",
       "address2": "string",
       "city": "string",
       "country": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "title": "string",
  "email": "[email protected]",
  "business_since": "string",
  "company_size": "string",
  "address1": "string",
  "address2": "string",
  "city": "string",
  "country": "string"
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "title": "string",
    "email": "[email protected]",
    "business_since": "string",
    "company_size": "string",
    "address1": "string",
    "address2": "string",
    "city": "string",
    "country": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "title": "string",
  "email": "[email protected]",
  "business_since": "string",
  "company_size": "string",
  "address1": "string",
  "address2": "string",
  "city": "string",
  "country": "string"
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "title" => "string",
            "email" => "[email protected]",
            "business_since" => "string",
            "company_size" => "string",
            "address1" => "string",
            "address2" => "string",
            "city" => "string",
            "country" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful operation
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "email": "[email protected]",
  "business_since": "string",
  "company_size": "string",
  "title": "string",
  "status": "string",
  "code": "string",
  "options": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
401
Unauthorized
403
Forbidden
422
Unprocessable Entity

Get list of tenants with Summary

GET/v1/common/summary

Returns list of tenants with Summary

API-Pub-Tenants-Summarybilling

Response 200
data
array<object>
No description in the spec
data.uuid
any
No description in the spec
data.address1
any
No description in the spec
data.address2
any
No description in the spec
data.email
any
No description in the spec
data.city
any
No description in the spec
data.postcode
any
No description in the spec
data.abuse_email
any
No description in the spec
data.country
any
No description in the spec
data.state
any
No description in the spec
data.title
any
No description in the spec
data.created_at
any
No description in the spec
data.status
any
No description in the spec
data.users_count
any
No description in the spec
data.industry
object
No description in the spec
data.vat_number
any
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/common/summary' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/common/summary"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/common/summary";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/common/summary", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/common/summary");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Tenants With Summary Collection
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "address1": "string",
      "address2": "string",
      "email": "[email protected]",
      "city": "string",
      "postcode": "string",
      "abuse_email": "[email protected]",
      "country": "string"
    }
  ]
}
401
Unauthorized
403
Forbidden

Get Single Tenant information

GET/v1/{tenantUUID}

Get Single Tenant information

API-Pub-Tenants-Showbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Response 200
uuid
string
No description in the spec
title
string
No description in the spec
email
string
No description in the spec
business_since
string
No description in the spec
company_size
string
No description in the spec
address1
string
No description in the spec
address2
string
No description in the spec
city
string
No description in the spec
postcode
string
No description in the spec
country
string
No description in the spec
state
string
No description in the spec
status
string
No description in the spec
abuse_email
string
No description in the spec
created_at
integer
No description in the spec
options
array<object>
No description in the spec
options.key
any
No description in the spec
options.value
any
No description in the spec
meta
array<object>
No description in the spec
meta.key
any
No description in the spec
meta.value
any
No description in the spec
industry
object
No description in the spec
industry.uuid
string
No description in the spec
industry.name
number
No description in the spec
credit
object
No description in the spec
credit.uuid
string
No description in the spec
credit.amount
numberfloat
No description in the spec
credit.auto_payment
boolean
No description in the spec
summary
string
No description in the spec
logo
object
No description in the spec
logo.image
string
No description in the spec
payment_gateways
array<string>
No description in the spec
flags
array<object>
No description in the spec
flags.uuid
any
No description in the spec
flags.slug
any
No description in the spec
status_reason
object
No description in the spec
status_reason.uuid
stringuuid
No description in the spec
status_reason.slug
string
No description in the spec
status_reason.title
string
No description in the spec
vat_number
string
No description in the spec
email_verified
boolean
No description in the spec
abuse_email_verified
boolean
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Tenant
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "title": "string",
  "email": "[email protected]",
  "business_since": "string",
  "company_size": "string",
  "address1": "string",
  "address2": "string",
  "city": "string"
}
401
Unauthorized
403
Forbidden
404
Not Found

Update Tenant Information

PATCH/v1/{tenantUUID}

Update Tenant Information

API-Pub-Tenants-Updatebilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
title
string
No description in the spec
email
string
No description in the spec
business_since
string
No description in the spec
company_size
string
No description in the spec
address1
string
No description in the spec
address2
string
No description in the spec
city
string
No description in the spec
postcode
string
No description in the spec
state
string
No description in the spec
abuse_email
string
No description in the spec
vat_number
string
No description in the spec
industry_uuid
stringuuid
No description in the spec
options
array<object>
No description in the spec
options.website
string
No description in the spec
options.has_website
boolean
No description in the spec
options.social_network
array<string>
No description in the spec
options.has_social_network
boolean
No description in the spec
options.found_us
string
No description in the spec
options.proprata
boolean
No description in the spec
options.prorata_day
integer
Tenant Option Prorata Day
Response 200
uuid
string
No description in the spec
email
string
No description in the spec
business_since
string
No description in the spec
company_size
string
No description in the spec
title
string
No description in the spec
status
string
No description in the spec
code
string
No description in the spec
options
array<object>
No description in the spec
options.key
any
No description in the spec
options.value
any
No description in the spec
meta
array<object>
No description in the spec
meta.key
any
No description in the spec
meta.value
any
No description in the spec
credit
object
No description in the spec
credit.amount
numberfloat
No description in the spec
credit.auto_payment
boolean
No description in the spec
summary
string
No description in the spec
logo
object
No description in the spec
logo.image
string
No description in the spec
payment_gateways
array<string>
No description in the spec
flags
array<object>
No description in the spec
flags.uuid
any
No description in the spec
flags.slug
any
No description in the spec
status_reason
object
No description in the spec
status_reason.uuid
stringuuid
No description in the spec
status_reason.slug
string
No description in the spec
status_reason.title
string
No description in the spec
vat_number
string
No description in the spec
email_verified
boolean
No description in the spec
abuse_email_verified
boolean
No description in the spec
Request
curl -X PATCH 'https://apigw.ipxo.com/billing/v1/{tenantUUID}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "title": "string",
       "email": "[email protected]",
       "business_since": "string",
       "company_size": "string",
       "address1": "string",
       "address2": "string",
       "city": "string",
       "postcode": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "title": "string",
  "email": "[email protected]",
  "business_since": "string",
  "company_size": "string",
  "address1": "string",
  "address2": "string",
  "city": "string",
  "postcode": "string"
}

r = requests.patch(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}";
const res = await fetch(url, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "title": "string",
    "email": "[email protected]",
    "business_since": "string",
    "company_size": "string",
    "address1": "string",
    "address2": "string",
    "city": "string",
    "postcode": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "title": "string",
  "email": "[email protected]",
  "business_since": "string",
  "company_size": "string",
  "address1": "string",
  "address2": "string",
  "city": "string",
  "postcode": "string"
}`)
	req, _ := http.NewRequest("PATCH", "https://apigw.ipxo.com/billing/v1/{tenantUUID}", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "PATCH",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "title" => "string",
            "email" => "[email protected]",
            "business_since" => "string",
            "company_size" => "string",
            "address1" => "string",
            "address2" => "string",
            "city" => "string",
            "postcode" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Tenant
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "email": "[email protected]",
  "business_since": "string",
  "company_size": "string",
  "title": "string",
  "status": "string",
  "code": "string",
  "options": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
401
Unauthorized
403
Forbidden
404
Not Found
422
Unprocessable Entity

Get Tenants Details

GET/v1/{tenantUUID}/details

Returns tenants Details

API-Pub-Tenants-Detailsbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Response 200
monetizing_ips_count
number
No description in the spec
renting_ips_count
number
No description in the spec
code
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/details' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/details"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/details";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/details", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/details");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Tenant Details
{
  "monetizing_ips_count": 1.0,
  "renting_ips_count": 1.0,
  "code": "string"
}
401
Unauthorized
403
Forbidden

Initiate email verification

POST/v1/{tenantUUID}/email_verification/initiate

Initiate email verification

API-Pub-Tenants-Verification-Initiatebilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
email_type
stringrequired
No description in the spec
email abuse_email
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/email_verification/initiate' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "email_type": "email"
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/email_verification/initiate"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "email_type": "email"
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/email_verification/initiate";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "email_type": "email"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "email_type": "email"
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/email_verification/initiate", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/email_verification/initiate");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "email_type" => "email"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Verification initiated
400
Bad Request
401
Unauthorized
403
Forbidden
409
Email is already verified

Verify email

POST/v1/{tenantUUID}/email_verification/verify

Verify email

API-Pub-Tenants-Verification-Verifybilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request body
email_type
stringrequired
No description in the spec
email abuse_email
code
stringrequired
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/email_verification/verify' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "email_type": "email",
       "code": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/email_verification/verify"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "email_type": "email",
  "code": "string"
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/email_verification/verify";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "email_type": "email",
    "code": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "email_type": "email",
  "code": "string"
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/email_verification/verify", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/email_verification/verify");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "email_type" => "email",
            "code" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Email verified successfully
400
Invalid Request
401
Unauthorized
403
Forbidden
409
Email is already verified

Get list of AWS connected accounts

GET/v1/{tenantUUID}/integrations/aws/connected-accounts

Returns list of AWS connected accounts for the tenant

API-Pub-Integrations-Aws-ConnectedAccounts-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Response 200
data
array<string>
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/integrations/aws/connected-accounts' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/integrations/aws/connected-accounts"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/integrations/aws/connected-accounts";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/integrations/aws/connected-accounts", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/integrations/aws/connected-accounts");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
AWS Connected Accounts List
{
  "data": [
    "string"
  ]
}
401
Unauthorized
403
Forbidden
404
Not Found

Activity log

2 operations

The object synthesised

The spec declares no named object for this resource, so the renderer synthesised one from its richest response body (GET /v1/{tenantUUID}/market/services/event_logs). Fields no endpoint returns cannot appear here.

Attributes
data
array<object>
No description in the spec
data.label
string
No description in the spec
data.type
string
No description in the spec
data.data
array<{'type': 'object', 'x-truncated': True}>
No description in the spec
data.created_at
integer
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec

List EventLog

GET/v1/{tenantUUID}/market/services/event_logs

List Tenant IP Market EventLog

API-Pub-IPmarket-EventLog-listTenantLogsbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
type
string
Filter by Event Type
label
string
Filter by subnet label
start
integer
Filter by Start period date in unix timestamp format which is greater or equal to input
end
integer
Filter By End period date in unix timestamp format which is lower or equal to input
sort
string
Sort by key
page
integer
List Page
per_page
integer
Items Per Page
Response 200
data
array<object>
No description in the spec
data.label
string
No description in the spec
data.type
string
No description in the spec
data.data
array<{'type': 'object', 'x-truncated': True}>
No description in the spec
data.data.type
any
No description in the spec
data.data.x-truncated
any
No description in the spec
data.created_at
integer
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/event_logs' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/event_logs"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/event_logs";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/event_logs", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/event_logs");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful operation
{
  "data": [
    {
      "label": "string",
      "type": "string",
      "data": [
        {
          "type": "\u2026",
          "x-truncated": "\u2026"
        }
      ],
      "created_at": 1
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 1,
    "to": 1,
    "total": 1
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden
422
Unprocessable Entity

List EventLog

GET/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/event_logs

List IP Market EventLog

API-Pub-IPmarket-EventLog-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Query parameters
event
string
Filter by Event Type
start
integer
Filter by Start period date in unix timestamp format which is greater or equal to input
end
integer
Filter By End period date in unix timestamp format which is lower or equal to input
sort
string
Sort by key
label
string
Filter By Subnet label
page
integer
List Page
per_page
integer
Items Per Page
Response 200
data
array<object>
No description in the spec
data.label
string
No description in the spec
data.type
string
No description in the spec
data.data
array<{'type': 'object', 'x-truncated': True}>
No description in the spec
data.data.type
any
No description in the spec
data.data.x-truncated
any
No description in the spec
data.created_at
integer
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/event_logs' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/event_logs"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/event_logs";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/event_logs", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/event_logs");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful operation
{
  "data": [
    {
      "label": "string",
      "type": "string",
      "data": [
        {
          "type": "\u2026",
          "x-truncated": "\u2026"
        }
      ],
      "created_at": 1
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 1,
    "to": 1,
    "total": 1
  }
}
400
Invalid Request
401
Unauthorized
403
Forbidden
422
Unprocessable Entity

Reference data

13 operations

The object API.Pub.Resources.IPMarket.Services.LeasedServiceResource

Declared in the spec. Shown from GET /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/leased.

Attributes
uuid
string
No description in the spec
prefix_length
integer
No description in the spec
address
string
No description in the spec
pricing
object
No description in the spec
pricing.uuid
stringuuid
No description in the spec
pricing.subnet_size
number
No description in the spec
pricing.ip_count
number
No description in the spec
pricing.price
numberfloat
No description in the spec
pricing.commission
numberfloat
No description in the spec
pricing.wants_to_negotiate
boolean
No description in the spec
pricing.selected_commitment_periods
array<{'type': 'object', 'x-truncated': True}>
Commitment period in months
commitments
array<object>
No description in the spec
commitments.uuid
any
No description in the spec
commitments.pricing_uuid
any
No description in the spec
commitments.status
any
No description in the spec
commitments.price
any
No description in the spec
commitments.period
any
No description in the spec
commitments.start_date
any
No description in the spec
commitments.end_date
any
No description in the spec

Validate Vat Number

POST/public/common/vat/validate

Validates a VAT number.

validateVatNumberecommerce

Request body
vat_number
stringrequired
No description in the spec
Response 200
data
object
No description in the spec
data.status
string
No description in the spec
data.validated_at
string
No description in the spec
data.company_name
string
No description in the spec
data.country_code
string
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/common/vat/validate' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "vat_number": "string"
     }'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/common/vat/validate"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "vat_number": "string"
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/common/vat/validate";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "vat_number": "string"
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "vat_number": "string"
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/common/vat/validate", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/common/vat/validate");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "vat_number" => "string"
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
{
  "data": {
    "status": "string",
    "validated_at": "string",
    "company_name": "string",
    "country_code": "string"
  }
}

ASN Validate

GET/v1/common/asn/validate/{asn}

ASN Validate

API-Pub-Common-ASN-Validatebilling

Path parameters
asn
objectrequired
ASN
Response 200
asn
integer
No description in the spec
valid
boolean
No description in the spec
as_name
string
No description in the spec
uce3
boolean
No description in the spec
ofac
boolean
No description in the spec
spamhaus
boolean
No description in the spec
country
string
No description in the spec
status
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/common/asn/validate/{asn}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/common/asn/validate/{asn}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/common/asn/validate/{asn}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/common/asn/validate/{asn}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/common/asn/validate/{asn}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
ASN Validate Resource
{
  "asn": 1,
  "valid": true,
  "as_name": "string",
  "uce3": true,
  "ofac": true,
  "spamhaus": true,
  "country": "string",
  "status": "string"
}
401
Unauthorized
403
Forbidden
404
Not Found

Get list of countries

GET/v1/common/countries

Returns list of countries

API-Pub-Common-Countries-Listbilling

Response 200
uuid
string
No description in the spec
alpha_2_code
string
No description in the spec
alpha_3_code
string
No description in the spec
name
string
No description in the spec
phone_code
string
No description in the spec
tenant_availability
boolean
No description in the spec
ofac_listed
boolean
No description in the spec
states
object
map of state_code => state_name
states.state_code1
string
No description in the spec
states.state_code2
string
No description in the spec
states.state_code..
string
No description in the spec
states.state_codeN
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/common/countries' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/common/countries"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/common/countries";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/common/countries", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/common/countries");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Countries resource
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "alpha_2_code": "string",
  "alpha_3_code": "string",
  "name": "string",
  "phone_code": "string",
  "tenant_availability": true,
  "ofac_listed": true,
  "states": {
    "state_code1": "string",
    "state_code2": "string",
    "state_code..": "string",
    "state_codeN": "string"
  }
}
401
Unauthorized
403
Forbidden

Get list of Tenant Industries

GET/v1/common/industries

Returns list of Tenant Industries

API-Pub-Common-Industries-Listbilling

Query parameters
sort
string
Sort By Key
direction
string
Sort Direction
Response 200
data
array<object>
No description in the spec
data.uuid
any
No description in the spec
data.name
any
No description in the spec
meta
object
No description in the spec
meta.current_page
integer
No description in the spec
meta.from
integer
No description in the spec
meta.last_page
integer
No description in the spec
meta.per_page
integer
No description in the spec
meta.to
integer
No description in the spec
meta.total
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/common/industries' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/common/industries"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/common/industries";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/common/industries", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/common/industries");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Industries Collection
{
  "data": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "name": "string"
    }
  ],
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 1,
    "to": 1,
    "total": 1
  }
}
401
Unauthorized
403
Forbidden
404
Not Found

List available registrars

GET/v1/common/market/registrars

Returns available registrars

API-Pub-Common-Market-Registrars-Listbilling

Response 200
uuid
string
No description in the spec
name
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/common/market/registrars' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/common/market/registrars"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/common/market/registrars";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/common/market/registrars", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/common/market/registrars");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful operation
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "name": "string"
  }
]
401
Unauthorized
403
Forbidden
404
Not Found

List aggregated subnet usage

GET/v1/common/market/subnetUsage

Returns subnet usage

API-Pub-Common-Market-SubnetUsagebilling

Query parameters
mask
integer
mask
period
string
time period
sort
array
Sort. If direction is not provided defaults to descending.
direction
array
Sorting direction. If not provided defaults to descending
Response 200
mask
integer
No description in the spec
free
integer
No description in the spec
in_use
integer
No description in the spec
price_min
numberfloat
No description in the spec
price_max
numberfloat
No description in the spec
price_avg
numberfloat
No description in the spec
period
stringdate-time
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/common/market/subnetUsage' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/common/market/subnetUsage"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/common/market/subnetUsage";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/common/market/subnetUsage", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/common/market/subnetUsage");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful operation
[
  {
    "mask": 1,
    "free": 1,
    "in_use": 1,
    "price_min": 1.0,
    "price_max": 1.0,
    "price_avg": 1.0,
    "period": "2026-01-01T00:00:00Z"
  }
]
401
Unauthorized
403
Forbidden
404
Not Found

Check if prefixes is valid for adding to Market

POST/v1/common/market/subnetValidity

Check if prefixes is valid for adding to Market

API-Pub-Common-Market-subnetValiditybilling

Request body
prefixes
array<string>required
No description in the spec
Response 200
address
string
No description in the spec
cidr
integer
No description in the spec
status
boolean
No description in the spec
message
string
No description in the spec
minimum_split
integer
No description in the spec
maximum_split
integer
No description in the spec
registry
string
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/common/market/subnetValidity' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "prefixes": [
         "string"
       ]
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/common/market/subnetValidity"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "prefixes": [
    "string"
  ]
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/common/market/subnetValidity";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "prefixes": [
      "string"
    ]
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "prefixes": [
    "string"
  ]
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/common/market/subnetValidity", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/common/market/subnetValidity");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "prefixes" => ["string"]
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful operation
[
  {
    "address": "string",
    "cidr": 1,
    "status": true,
    "message": "string",
    "minimum_split": 1,
    "maximum_split": 1,
    "registry": "string"
  }
]
401
Unauthorized
403
Forbidden

Market Service verification

GET/v1/common/market_auth_verify/{token}

Market Service verification

API-Pub-Market-ServiceVerifybilling

Path parameters
token
stringrequired
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/common/market_auth_verify/{token}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/common/market_auth_verify/{token}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/common/market_auth_verify/{token}";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/common/market_auth_verify/{token}", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/common/market_auth_verify/{token}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Successful operation
404
Verification token not found
500
Internal Server Error

Get list of Commission minimum pricings

GET/v1/common/pricing/commissions

Get list of Commission minimum pricings

API-Pub-Common-Commissions-Listbilling

Response 200
cidr
integer
No description in the spec
min_commission
numberfloat
No description in the spec
min_ip_price
numberfloat
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/common/pricing/commissions' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/common/pricing/commissions"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/common/pricing/commissions";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/common/pricing/commissions", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/common/pricing/commissions");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Commissions Collection
[
  {
    "cidr": 1,
    "min_commission": 1.0,
    "min_ip_price": 1.0
  }
]
401
Unauthorized
403
Forbidden
404
Not Found

Get Public Slack URL

GET/v1/common/slack

Get Public Slack URL

API-Pub-Common-Slack-Getbilling

Response 200
slack_url
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/common/slack' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/common/slack"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/common/slack";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/common/slack", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/common/slack");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Slack URL Resource
{
  "slack_url": "string"
}
401
Unauthorized
403
Forbidden
404
Not Found

List Services Terminations Reasons

GET/v1/common/termination-reasons

List of termination reasons for services

API-Pub-Common-TerminationReasons-Listbilling

Response 200
uuid
string
No description in the spec
title
string
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/common/termination-reasons' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/common/termination-reasons"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/common/termination-reasons";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/common/termination-reasons", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/common/termination-reasons");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Services terminations reasons Collection
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "title": "string"
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Validate subnets for ASN

POST/v1/{tenantUUID}/asn/validate/{asn}

Validates which subnets can be added to cart with the given ASN

API-Pub-Tenant-ASN-ValidateSubnetsbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
asn
objectrequired
ASN
Request body
subnets
array<string>required
No description in the spec
Response 200
asn
integer
No description in the spec
valid
boolean
No description in the spec
as_name
string
No description in the spec
uce3
boolean
No description in the spec
ofac
boolean
No description in the spec
spamhaus
boolean
No description in the spec
country
string
No description in the spec
status
string
No description in the spec
subnets
array<object>
No description in the spec
subnets.subnet
string
No description in the spec
subnets.already_added
boolean
No description in the spec
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/asn/validate/{asn}' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
       "subnets": [
         "string"
       ]
     }'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/asn/validate/{asn}"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = {
  "subnets": [
    "string"
  ]
}

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/asn/validate/{asn}";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "subnets": [
      "string"
    ]
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "subnets": [
    "string"
  ]
}`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/asn/validate/{asn}", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/asn/validate/{asn}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode([
            "subnets" => ["string"]
        ]),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Subnet validation results
{
  "asn": 1,
  "valid": true,
  "as_name": "string",
  "uce3": true,
  "ofac": true,
  "spamhaus": true,
  "country": "string",
  "status": "string"
}
401
Unauthorized
403
Forbidden
404
ASN Not Found
422
Validation Error

Get list of service leased pricings

GET/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/leased

Get list of service leased pricings

API-Pub-Common-Services-Leased-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
ipmarketServiceUUID
stringrequired
IPMarket Service UUID
Response 200
uuid
string
No description in the spec
prefix_length
integer
No description in the spec
address
string
No description in the spec
pricing
object
No description in the spec
pricing.uuid
stringuuid
No description in the spec
pricing.subnet_size
number
No description in the spec
pricing.ip_count
number
No description in the spec
pricing.price
numberfloat
No description in the spec
pricing.commission
numberfloat
No description in the spec
pricing.wants_to_negotiate
boolean
No description in the spec
pricing.selected_commitment_periods
array<{'type': 'object', 'x-truncated': True}>
Commitment period in months
commitments
array<object>
No description in the spec
commitments.uuid
any
No description in the spec
commitments.pricing_uuid
any
No description in the spec
commitments.status
any
No description in the spec
commitments.price
any
No description in the spec
commitments.period
any
No description in the spec
commitments.start_date
any
No description in the spec
commitments.end_date
any
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/leased' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/leased"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/leased";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/leased", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/leased");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Leased service resource
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "prefix_length": 1,
  "address": "string",
  "pricing": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "subnet_size": 1.0,
    "ip_count": 1.0,
    "price": 1.0,
    "commission": 1.0,
    "wants_to_negotiate": true,
    "selected_commitment_periods": [
      "string"
    ]
  },
  "commitments": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "pricing_uuid": "00000000-0000-0000-0000-000000000000",
      "status": "string",
      "price": "string",
      "period": "string",
      "start_date": "string",
      "end_date": "string"
    }
  ]
}
401
Unauthorized
403
Forbidden
404
Not Found

IPv6 & quarantine

3 operations

The object API.Pub.Resources.Jobs.BatchesResource

Declared in the spec. Shown from GET /v1/{tenantUUID}/batches.

Attributes
name
string
No description in the spec
total_jobs
integer
No description in the spec
results
object
No description in the spec
results.status
string
No description in the spec
results.metadata
array<object>
No description in the spec

Get list of batches

GET/v1/{tenantUUID}/batches

Returns list of batches

API-Pub-Batches-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
filter
object
Filters
include
array
Include relations
page
integer
List Page
per_page
integer
Items Per Page
Response 200
name
string
No description in the spec
total_jobs
integer
No description in the spec
results
object
No description in the spec
results.status
string
No description in the spec
results.metadata
array<object>
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/batches' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/batches"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.get(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/batches";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/batches", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/batches");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Batches Collection
{
  "name": "string",
  "total_jobs": 1,
  "results": {
    "status": "string",
    "metadata": [
      {}
    ]
  }
}
401
Unauthorized
403
Forbidden

Request IPV6

POST/v1/{tenantUUID}/ipv6/request

Request IPV6

API-Pub-IPV6-Requestbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Request
curl -X POST 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/ipv6/request' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '"string"'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/ipv6/request"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = "string"

r = requests.post(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/ipv6/request";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify("string"),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`"string"`)
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/ipv6/request", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/ipv6/request");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode("string"),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
204
Response status code
401
Unauthorized
403
Forbidden
404
Not Found
422
Unprocessable Entity

List Subnets In Quarantine

GET/v1/{tenantUUID}/market/ipv4/quarantine

List Subnets In Quarantine

API-Pub-IPmarket-Quarantine-Listbilling

Path parameters
tenantUUID
stringrequired
Tenant UUID
Query parameters
sort
string
Sort By Key
direction
string
Sort Direction
Response 200
subnet
string
No description in the spec
in_quarantine_since
integer
No description in the spec
roa_validation_last_updated
integer
No description in the spec
bgp_validation_last_updated
integer
No description in the spec
ip_reputation_last_updated
integer
No description in the spec
Request
curl -X GET 'https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/quarantine' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '"string"'
import os, requests

url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/quarantine"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}
payload = "string"

r = requests.get(url, headers=headers, json=payload)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/quarantine";
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify("string"),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`"string"`)
	req, _ := http.NewRequest("GET", "https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/quarantine", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/billing/v1/{tenantUUID}/market/ipv4/quarantine");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "GET",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS     => json_encode("string"),
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Subnets in quarantine collection
{
  "subnet": "string",
  "in_quarantine_since": 1,
  "roa_validation_last_updated": 1,
  "bgp_validation_last_updated": 1,
  "ip_reputation_last_updated": 1
}
400
Invalid Request
401
Unauthorized
403
Forbidden

Webhooks

2 operations

postPublicCommonStripeWebhook

POST/public/common/stripe/webhook

postPublicCommonStripeWebhookecommerce

Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/common/stripe/webhook' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/common/stripe/webhook"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/common/stripe/webhook";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/common/stripe/webhook", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/common/stripe/webhook");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Webhook Handled
{}

postPublicCommonStripeWebhookEu

POST/public/common/stripe/webhook/eu

postPublicCommonStripeWebhookEuecommerce

Request
curl -X POST 'https://apigw.ipxo.com/ecommerce/public/common/stripe/webhook/eu' \
  -H 'Authorization: Bearer $IPXO_TOKEN' \
  -H 'Accept: application/json'
import os, requests

url = "https://apigw.ipxo.com/ecommerce/public/common/stripe/webhook/eu"
headers = {
    "Authorization": f"Bearer {os.environ['IPXO_TOKEN']}",
    "Accept": "application/json",
}

r = requests.post(url, headers=headers)
r.raise_for_status()
print(r.json())
const url = "https://apigw.ipxo.com/ecommerce/public/common/stripe/webhook/eu";
const res = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.IPXO_TOKEN}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("POST", "https://apigw.ipxo.com/ecommerce/public/common/stripe/webhook/eu", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("IPXO_TOKEN"))
	req.Header.Set("Accept", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
<?php
$ch = curl_init("https://apigw.ipxo.com/ecommerce/public/common/stripe/webhook/eu");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => "POST",
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer " . getenv("IPXO_TOKEN"),
        "Accept: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Response
200
Webhook Handled
{}