# REST Resource: partners.purchaseorders

- [Resource: PurchaseOrder](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PurchaseOrder)
  - [JSON representation](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PurchaseOrder.SCHEMA_REPRESENTATION)
- [PurchaseOrderLineItem](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PurchaseOrderLineItem)
  - [JSON representation](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PurchaseOrderLineItem.SCHEMA_REPRESENTATION)
- [UnitLevelDetails](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#UnitLevelDetails)
  - [JSON representation](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#UnitLevelDetails.SCHEMA_REPRESENTATION)
- [PriceDetails](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PriceDetails)
  - [JSON representation](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PriceDetails.SCHEMA_REPRESENTATION)
- [SubscriptionDetails](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#SubscriptionDetails)
  - [JSON representation](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#SubscriptionDetails.SCHEMA_REPRESENTATION)
- [PurchaseOrderType](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PurchaseOrderType)
- [Methods](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#METHODS_SUMMARY)

## Resource: PurchaseOrder

A purchase order resold via a third-party reseller.

| JSON representation |
|---|
| ``` { "name": string, "partnerUserToken": string, "lineItems": [ { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PurchaseOrderLineItem`) } ], "subscriptionDetails": { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#SubscriptionDetails`) } } ``` |

| Fields ||
|---|---|
| `name` | `string` Output only. Identifier. PurchaseOrder resource name in the format of: "partners/{partner_id}/purchaseorders/{purchaseOrderId}" |
| `partnerUserToken` | `string` Required. Identifier of the end-user in partner's system. |
| `lineItems[]` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PurchaseOrderLineItem`)`` Required. Purchase order line items. |
| `subscriptionDetails` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#SubscriptionDetails`)`` Optional. Only populated if this order is related to a subscription, such as renewal or proration. |

## PurchaseOrderLineItem

Purchase order line item.

| JSON representation |
|---|
| ``` { "product": string, "description": string, "amount": { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/Amount`) }, "servicePeriod": { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/ServicePeriod`) }, "chargedDetails": { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#UnitLevelDetails`) }, "refundedDetails": { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#UnitLevelDetails`) }, "lineItemIndex": integer } ``` |

| Fields ||
|---|---|
| `product` | `string` Required. Product resource name in the format of partners/{partner_id}/products/{productId}. |
| `description` | `string` Required. Description of this line item. |
| `amount` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/Amount`)`` Required. Line item amount. |
| `servicePeriod` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/ServicePeriod`)`` Optional. Service period this purchase order line item is being delivered over. |
| `chargedDetails` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#UnitLevelDetails`)`` Optional. Details about units that are charged. |
| `refundedDetails` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#UnitLevelDetails`)`` Optional. Details about units that are refunded. |
| `lineItemIndex` | `integer` Output only. A unique index of the purchase order line item. |

## UnitLevelDetails

Details about a subset of units in a given process.

| JSON representation |
|---|
| ``` { "priceDetails": { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PriceDetails`) } } ``` |

| Fields ||
|---|---|
| `priceDetails` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PriceDetails`)`` Optional. The pricing details about units in a given process. |

## PriceDetails

A wrapper message containing various prices.

| JSON representation |
|---|
| ``` { "pretaxAmount": { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/Amount`) }, "taxAmount": { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/Amount`) }, "totalAmount": { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/Amount`) } } ``` |

| Fields ||
|---|---|
| `pretaxAmount` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/Amount`)`` Optional. The tax-exclusive amount. |
| `taxAmount` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/Amount`)`` Optional. The amount of tax to collect. |
| `totalAmount` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/Amount`)`` Optional. The total cost, including tax. |

## SubscriptionDetails

Details of the subscription this charge is related to.

| JSON representation |
|---|
| ``` { "subscription": string, "purchaseOrderType": enum (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PurchaseOrderType`) } ``` |

| Fields ||
|---|---|
| `subscription` | `string` Required. Subscription resource name in the format of: "partners/{partner_id}/subscription/{subscriptionId}" |
| `purchaseOrderType` | ``enum (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders#PurchaseOrderType`)`` Required. The type of the purchase order. |

## PurchaseOrderType

The type of the purchase order.

| Enums ||
|---|---|
| `PURCHASE_ORDER_TYPE_UNSPECIFIED` | Purchase order type is unspecified. |
| `PURCHASE_ORDER_TYPE_RENEWAL` | This is a renewal purchase order. |
| `PURCHASE_ORDER_TYPE_PRORATION` | The is a proration purchase order. |
| `PURCHASE_ORDER_TYPE_ONE_TIME` | The is a one-time purchase order. |
| `PURCHASE_ORDER_TYPE_OFF_CYCLE_CHARGE` | The is an off cycle charge purchase order. |

| ## Methods ||
|---|---|
| ### `https://developers.google.com/payments/reseller/subscription/reference/rest/v1/partners.purchaseorders/authorizeCharge` | Currently, it is used by only **YouTube** partners. |