---
title: "Create insertion order through SSIO."
method: POST
path: "/ad_accounts/{ad_account_id}/ssio/insertion_orders"
tags: ["billing"]
---

# Create insertion order through SSIO.

`POST /ad_accounts/{ad_account_id}/ssio/insertion_orders`

## Request

- Base URL: `https://api.pinterest.com/v5`
- URL: `https://api.pinterest.com/v5/ad_accounts/{ad_account_id}/ssio/insertion_orders`
- Auth: OAuth 2
  - Authorization code: `https://www.pinterest.com/oauth/`
  - Token URL: `https://api.pinterest.com/v5/oauth/token` scopes: `ads:write`
- TypeScript: <https://skmtc.dev/pinterest/apis/pinterest-rest-api/docs/ad_accounts/:ad_account_id/ssio/insertion_orders/post.ts> (a function with typed inputs; its response is checked against the schema)

Create insertion order through SSIO for `ad_account_id`.
  - The token's `user_account` must either be the owner of the specified ad account, or have one of the necessary roles granted via [Business Access](https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts): Admin, Finance, Campaign.

## Path parameters

- `ad_account_id` string, required

## Request body

- SSIOInsertionOrderCreate: Resource create operation model.
  - `accepted_terms_id` string, required: The SFDC id for the terms
  - `accepted_terms_time` integer: The UTC timestamp (to the nearest sec) of when terms were accepted
  - `agency_link` string: URL link for agency
  - `billing_contact_email` string, required: The billing contact email
  - `billing_contact_firstname` string, required: The billing contact first name
  - `billing_contact_lastname` string, required: The billing contact last name
  - `billto_billing_address_id` string, required: The bill-to billing address id
  - `billto_business_address_id` string, required: The bill-to business address id
  - `billto_company_id` string, required: The bill-to company id
  - `budget_amount` number, double: If Budget order line, the budget amount.
  - `currency_info` 'UNK' | 'USD' | 'GBP' | 'CAD' | 'EUR' | 'AUD' | 'NZD' | 'SEK' | 'ILS' | 'CHF' | 'HKD' | 'JPY' | 'SGD' | 'KRW' | 'NOK' | 'DKK' | 'PLN' | 'RON' | 'HUF' | 'CZK' | 'BRL' | 'MXN' | 'ARS' | 'CLP' | 'COP' | 'INR' | 'TRY', required: Currency Codes from ISO 4217
  - `end_date` string: End date of time period. Format: YYYY-MM-DD
  - `estimated_monthly_spend` number, double: If Ongoing (perpetual) order line, the estimated monthly spend
  - `media_contact_email` string, required: The media contact email
  - `media_contact_firstname` string, required: The media contact first name
  - `media_contact_lastname` string, required: The media contact last name
  - `order_line_type` 'BUDGET' | 'PERPETUALS', required: The type of an SSIO order line.
  - `order_name` string, required: The order name
  - `pmp_id` string, required: The pmp id
  - `po_number` string, required: The po number
  - `start_date` string, required: Starting date of time period. Format: YYYY-MM-DD
  - `user_email` string: The email of user submitting the insertion order

## Response `200`

The request has succeeded.

- SSIOInsertionOrder: An SSIO insertion order.
  - `pin_order_id` string: Salesforce order id

## Other responses

- `201`: Resource create operation completed successfully.
- `400`: The request could not be understood by the server due to unexpected data.
- `401`: Authentication is required and has either failed or not been provided.
- `403`: The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource.
- `404`: The requested resource could not be found on this server.
- `429`: The user has sent too many requests in a given amount of time and is being rate limited.
- `default`: An unexpected error response.

## Changes

- **2026-06-04** (v5) `b698c180678a`: 16 breaking, 1 warning, 12 info
  - added the new required request property `accepted_terms_id`
  - added the new required request property `billing_contact_email`
  - added the new required request property `billing_contact_firstname`
  - added the new required request property `billing_contact_lastname`
  - …25 more
- **2024-08-14** (v5) `89c27ed39cfd`: 2 info
  - added the new `INR` enum value to the request property `allOf[subschema #2]/currency_info`
  - added the new `TRY` enum value to the request property `allOf[subschema #2]/currency_info`
- **2024-04-23** (v5) `f9321315766f`: 1 breaking
  - the request's body type changed from no type to `object`
- **2024-02-08** (v5) `7529b464d5cb`: 2 info
  - api tag `billing` added
  - api tag `ad_accounts` removed
- **2023-08-17** (v5) `0ff12596bafd`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/pinterest/apis/pinterest-rest-api/changes/ad_accounts/:ad_account_id/ssio/insertion_orders/post.md)

---

[API](https://skmtc.dev/pinterest/apis/pinterest-rest-api.md) - [All operations](https://skmtc.dev/pinterest/apis/pinterest-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/pinterest/apis/pinterest-rest-api/revisions/b698c180678a?raw)
