POST
/
v1
/
installations
/
{integrationConfigurationId}
/
billing
import { Vercel } from "@vercel/sdk";

const vercel = new Vercel({
  bearerToken: "<YOUR_BEARER_TOKEN_HERE>",
});

async function run() {
  await vercel.marketplace.submitBillingData({
    integrationConfigurationId: "<id>",
    requestBody: {
      timestamp: new Date("2025-09-29T02:38:01.476Z"),
      eod: new Date("2023-12-28T23:46:57.523Z"),
      period: {
        start: new Date("2023-06-25T19:04:50.518Z"),
        end: new Date("2024-10-17T01:18:36.230Z"),
      },
      billing: {
        items: [
          {
            billingPlanId: "<id>",
            name: "<value>",
            price: "511.92",
            quantity: 328.54,
            units: "<value>",
            total: "<value>",
          },
          {
            billingPlanId: "<id>",
            name: "<value>",
            price: "4.49",
            quantity: 3113.17,
            units: "<value>",
            total: "<value>",
          },
          {
            billingPlanId: "<id>",
            name: "<value>",
            price: "896.30",
            quantity: 8536.32,
            units: "<value>",
            total: "<value>",
          },
        ],
      },
      usage: [
        {
          name: "<value>",
          type: "rate",
          units: "<value>",
          dayValue: 9439.22,
          periodValue: 6958.71,
        },
        {
          name: "<value>",
          type: "total",
          units: "<value>",
          dayValue: 9892.22,
          periodValue: 4749.62,
        },
        {
          name: "<value>",
          type: "rate",
          units: "<value>",
          dayValue: 7119.53,
          periodValue: 6310.47,
        },
      ],
    },
  });


}

run();
This response has no body data.

Authorizations

Authorization
string
header
required

Default authentication mechanism

Path Parameters

integrationConfigurationId
string
required

Body

application/json
timestamp
string
required

Server time of your integration, used to determine the most recent data for race conditions & updates. Only the latest usage data for a given day, week, and month will be kept.

eod
string
required

End of Day, the UTC datetime for when the end of the billing/usage day is in UTC time. This tells us which day the usage data is for, and also allows for your "end of day" to be different from UTC 00:00:00. eod must be within the period dates, and cannot be older than 24h earlier from our server's current time.

period
object
required

Period for the billing cycle. The period end date cannot be older than 24 hours earlier than our current server's time.

billing
required

Billing data (interim invoicing data).

usage
object[]
required