Skip to main content
POST
/
v1
/
order
curl --location --request POST 'https://api.stateset.network/v1/order' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-raw '{
    "name": "Premium Subscription Order",
    "number": "ORD-2024-001",
    "source": "web_checkout",
    "customerID": "cust_123456",
    "items": [
        {
            "product_id": "prod_premium_annual",
            "quantity": 1,
            "price": "150.00",
            "name": "Premium Annual Subscription"
        }
    ],
    "totalAmount": {
        "value": "150.00",
        "denom": "ssusd"
    },
    "paymentStatus": "unpaid",
    "paymentMethod": {
        "type": "ssusd",
        "wallet_address": "stateset1qypqxpq9qcrsszg2pvxq6rs0zqg3yyc5lzv7xu",
        "chain": "stateset"
    }
}'
const axios = require('axios');

async function createOrderWithSSUSD(customerData) {
  try {
    const orderData = {
      name: `Order for ${customerData.name}`,
      number: `ORD-${Date.now()}`,
      source: 'api',
      customerID: customerData.id,
      items: customerData.items,
      totalAmount: {
        value: calculateTotal(customerData.items),
        denom: 'ssusd'
      },
      paymentStatus: 'unpaid',
      paymentMethod: {
        type: 'ssusd',
        wallet_address: customerData.wallet_address,
        chain: customerData.preferred_chain || 'stateset'
      }
    };

    const response = await axios.post(
      'https://api.stateset.network/v1/order',
      orderData,
      {
        headers: {
          'Authorization': 'Bearer YOUR_API_KEY',
          'Content-Type': 'application/json'
        }
      }
    );

    console.log('Order created:', response.data.order);
    return response.data;
  } catch (error) {
    console.error('Failed to create order:', error.response?.data || error.message);
    throw error;
  }
}

function calculateTotal(items) {
  return items.reduce((total, item) => {
    return total + (parseFloat(item.price) * item.quantity);
  }, 0).toFixed(2);
}
import requests
from typing import List, Dict

def create_order_with_ssusd(customer_data: Dict) -> Dict:
    """Create an order with ssUSD payment method"""
    
    url = "https://api.stateset.network/v1/order"
    
    headers = {
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    }
    
    # Calculate total
    total = sum(float(item['price']) * item['quantity'] for item in customer_data['items'])
    
    order_data = {
        "name": f"Order for {customer_data['name']}",
        "number": f"ORD-{int(time.time())}",
        "source": "api",
        "customerID": customer_data['id'],
        "items": customer_data['items'],
        "totalAmount": {
            "value": f"{total:.2f}",
            "denom": "ssusd"
        },
        "paymentStatus": "unpaid",
        "paymentMethod": {
            "type": "ssusd",
            "wallet_address": customer_data['wallet_address'],
            "chain": customer_data.get('preferred_chain', 'stateset')
        }
    }
    
    try:
        response = requests.post(url, json=order_data, headers=headers)
        response.raise_for_status()
        
        result = response.json()
        print(f"Order created: {result['order']['id']}")
        return result
        
    except requests.exceptions.RequestException as e:
        print(f"Failed to create order: {e}")
        if hasattr(e, 'response') and e.response:
            print(f"Error details: {e.response.json()}")
        raise

# Example usage
customer = {
    "id": "cust_123456",
    "name": "John Doe",
    "wallet_address": "stateset1qypqxpq9qcrsszg2pvxq6rs0zqg3yyc5lzv7xu",
    "preferred_chain": "stateset",
    "items": [
        {
            "product_id": "prod_001",
            "name": "Premium Widget",
            "price": "99.99",
            "quantity": 2
        }
    ]
}

order = create_order_with_ssusd(customer)
{
  "success": 1,
  "order": {
    "id": "order_1a2b3c4d5e6f",
    "name": "Premium Subscription Order",
    "number": "ORD-2024-001",
    "source": "web_checkout",
    "customerID": "cust_123456",
    "items": [
      {
        "product_id": "prod_premium_annual",
        "quantity": 1,
        "price": "150.00",
        "name": "Premium Annual Subscription"
      }
    ],
    "totalAmount": {
      "value": "150.00",
      "denom": "ssusd"
    },
    "paymentStatus": "unpaid",
    "paymentMethod": {
      "type": "ssusd",
      "wallet_address": "stateset1qypqxpq9qcrsszg2pvxq6rs0zqg3yyc5lzv7xu",
      "chain": "stateset"
    },
    "status": "pending",
    "created_at": "2024-01-15T12:00:00Z"
  }
}

Body

id
string
This is the ID of the order to be created.
name
string
This is the name of the order.
number
string
This is the number of the order.
source
string
required
This is the source of the order.
customerID
string
This is the ID of the customer who placed the order.
items
array
This is the list of items in the order.
totalAmount
object
The total amount of the order
paymentStatus
string
This is the payment status of the order. Options: “unpaid”, “pending”, “paid”, “partially_paid”, “failed”
paymentMethod
object
The preferred payment method for this order.
shippingStatus
string
This is the shipping status of the order.
metadata
object
This is additional metadata related to the order.

Response

success
number
Indicates whether the call was successful. 1 if successful, 0 if not.
order
object
The created order object

Notes

  • Orders are created with paymentStatus: "unpaid" by default
  • To pay for an order after creation, use the Pay Order endpoint
  • All monetary amounts should be specified in USDC
  • StateSet Commerce Network uses native USDC - no bridging required
curl --location --request POST 'https://api.stateset.network/v1/order' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-raw '{
    "name": "Premium Subscription Order",
    "number": "ORD-2024-001",
    "source": "web_checkout",
    "customerID": "cust_123456",
    "items": [
        {
            "product_id": "prod_premium_annual",
            "quantity": 1,
            "price": "150.00",
            "name": "Premium Annual Subscription"
        }
    ],
    "totalAmount": {
        "value": "150.00",
        "denom": "ssusd"
    },
    "paymentStatus": "unpaid",
    "paymentMethod": {
        "type": "ssusd",
        "wallet_address": "stateset1qypqxpq9qcrsszg2pvxq6rs0zqg3yyc5lzv7xu",
        "chain": "stateset"
    }
}'
const axios = require('axios');

async function createOrderWithSSUSD(customerData) {
  try {
    const orderData = {
      name: `Order for ${customerData.name}`,
      number: `ORD-${Date.now()}`,
      source: 'api',
      customerID: customerData.id,
      items: customerData.items,
      totalAmount: {
        value: calculateTotal(customerData.items),
        denom: 'ssusd'
      },
      paymentStatus: 'unpaid',
      paymentMethod: {
        type: 'ssusd',
        wallet_address: customerData.wallet_address,
        chain: customerData.preferred_chain || 'stateset'
      }
    };

    const response = await axios.post(
      'https://api.stateset.network/v1/order',
      orderData,
      {
        headers: {
          'Authorization': 'Bearer YOUR_API_KEY',
          'Content-Type': 'application/json'
        }
      }
    );

    console.log('Order created:', response.data.order);
    return response.data;
  } catch (error) {
    console.error('Failed to create order:', error.response?.data || error.message);
    throw error;
  }
}

function calculateTotal(items) {
  return items.reduce((total, item) => {
    return total + (parseFloat(item.price) * item.quantity);
  }, 0).toFixed(2);
}
import requests
from typing import List, Dict

def create_order_with_ssusd(customer_data: Dict) -> Dict:
    """Create an order with ssUSD payment method"""
    
    url = "https://api.stateset.network/v1/order"
    
    headers = {
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    }
    
    # Calculate total
    total = sum(float(item['price']) * item['quantity'] for item in customer_data['items'])
    
    order_data = {
        "name": f"Order for {customer_data['name']}",
        "number": f"ORD-{int(time.time())}",
        "source": "api",
        "customerID": customer_data['id'],
        "items": customer_data['items'],
        "totalAmount": {
            "value": f"{total:.2f}",
            "denom": "ssusd"
        },
        "paymentStatus": "unpaid",
        "paymentMethod": {
            "type": "ssusd",
            "wallet_address": customer_data['wallet_address'],
            "chain": customer_data.get('preferred_chain', 'stateset')
        }
    }
    
    try:
        response = requests.post(url, json=order_data, headers=headers)
        response.raise_for_status()
        
        result = response.json()
        print(f"Order created: {result['order']['id']}")
        return result
        
    except requests.exceptions.RequestException as e:
        print(f"Failed to create order: {e}")
        if hasattr(e, 'response') and e.response:
            print(f"Error details: {e.response.json()}")
        raise

# Example usage
customer = {
    "id": "cust_123456",
    "name": "John Doe",
    "wallet_address": "stateset1qypqxpq9qcrsszg2pvxq6rs0zqg3yyc5lzv7xu",
    "preferred_chain": "stateset",
    "items": [
        {
            "product_id": "prod_001",
            "name": "Premium Widget",
            "price": "99.99",
            "quantity": 2
        }
    ]
}

order = create_order_with_ssusd(customer)
{
  "success": 1,
  "order": {
    "id": "order_1a2b3c4d5e6f",
    "name": "Premium Subscription Order",
    "number": "ORD-2024-001",
    "source": "web_checkout",
    "customerID": "cust_123456",
    "items": [
      {
        "product_id": "prod_premium_annual",
        "quantity": 1,
        "price": "150.00",
        "name": "Premium Annual Subscription"
      }
    ],
    "totalAmount": {
      "value": "150.00",
      "denom": "ssusd"
    },
    "paymentStatus": "unpaid",
    "paymentMethod": {
      "type": "ssusd",
      "wallet_address": "stateset1qypqxpq9qcrsszg2pvxq6rs0zqg3yyc5lzv7xu",
      "chain": "stateset"
    },
    "status": "pending",
    "created_at": "2024-01-15T12:00:00Z"
  }
}