Order

Order entity. Note: 1. All strings at all levels must be less than 1000 chars unless otherwise specified. 2. All repeated fields at all levels must be less than 50 in count unless otherwise specified. 3. All timestamps at all levels, if specified, must be valid timestamps.

JSON representation
{
  "googleOrderId": string,
  "merchantOrderId": string,
  "userVisibleOrderId": string,
  "userVisibleStateLabel": string,
  "buyerInfo": {
    object (UserInfo)
  },
  "image": {
    object (Image)
  },
  "createTime": string,
  "lastUpdateTime": string,
  "transactionMerchant": {
    object (Merchant)
  },
  "contents": {
    object (Contents)
  },
  "priceAttributes": [
    {
      object (PriceAttribute)
    }
  ],
  "followUpActions": [
    {
      object (Action)
    }
  ],
  "paymentData": {
    object (PaymentData)
  },
  "termsOfServiceUrl": string,
  "note": string,
  "promotions": [
    {
      object (Promotion)
    }
  ],
  "disclosures": [
    {
      object (Disclosure)
    }
  ],
  "vertical": {
    "@type": string,
    field1: ...,
    ...
  },

  // Union field verticals can be only one of the following:
  "purchase": {
    object (PurchaseOrderExtension)
  },
  "ticket": {
    object (TicketOrderExtension)
  }
  // End of list of possible types for union field verticals.
}
Fields
googleOrderId

string

Google assigned order id.

merchantOrderId

string

Required: Merchant assigned internal order id. This id must be unique, and is required for subsequent order update operations. This id may be set to the provided googleOrderId, or any other unique value. Note that the id presented to users is the userVisibleOrderId, which may be a different, more user-friendly value. Max allowed length is 64 chars.

userVisibleOrderId

string

The user facing id referencing to current order. This id should be consistent with the id displayed for this order in other contexts, including websites, apps and email.

userVisibleStateLabel
(deprecated)

string

Deprecated: Use OrderExtensions status instead. User visible label for the state of this order.

buyerInfo

object (UserInfo)

info about the buyer.

image

object (Image)

Image associated with the order.

createTime

string (Timestamp format)

Required: date and time the order was created.

A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: "2014-10-02T15:01:23.045123456Z".

lastUpdateTime

string (Timestamp format)

date and time the order was last updated. Required for OrderUpdate.

A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: "2014-10-02T15:01:23.045123456Z".

transactionMerchant

object (Merchant)

Merchant that facilitated the checkout. This could be different from a line item level provider. Example: Expedia Order with line item from ANA.

contents

object (Contents)

Required: Order contents which is a group of line items.

priceAttributes[]

object (PriceAttribute)

Price, discounts, taxes and so on.

followUpActions[]

object (Action)

Follow up actions at order level.

paymentData

object (PaymentData)

Payment related data for the order.

termsOfServiceUrl

string

A link to the terms of service that apply to order/proposed order.

note

string

Notes attached to an order.

promotions[]

object (Promotion)

All promotions that are associated with this order.

disclosures[]

object (Disclosure)

Disclosures associated with this order.

vertical
(deprecated)

object

Deprecated: Use verticals instead. These properties will apply to all line items, unless overridden in some line item. This vertical must match the line item level vertical type. Possible values: google.actions.orders.v3.verticals.purchase.PurchaseOrderExtension google.actions.orders.v3.verticals.ticket.TicketOrderExtension

An object containing fields of an arbitrary type. An additional field "@type" contains a URI identifying the type. Example: { "id": 1234, "@type": "types.example.com/standard/id" }.

Union field verticals. These properties will apply to all line items, unless overridden in some line item. This vertical must match the line item level vertical type. verticals can be only one of the following:
purchase

object (PurchaseOrderExtension)

Purchase order

ticket

object (TicketOrderExtension)

Ticket order

Contents

Wrapper for line items.

JSON representation
{
  "lineItems": [
    {
      object (LineItem)
    }
  ]
}
Fields
lineItems[]

object (LineItem)

List of order line items. At least 1 lineItem is required and at-most 50 is allowed. All line items must belong to same vertical.

PaymentData

Payment data related to an order.

JSON representation
{
  "paymentResult": {
    object (PaymentResult)
  },
  "paymentInfo": {
    object (PaymentInfo)
  }
}
Fields
paymentResult

object (PaymentResult)

Payment result that's used by integrator for completing a transaction. This field will be populated by actions on Google if the checkout experience is managed by actions-on-Google.

paymentInfo

object (PaymentInfo)

Payment information regarding the order that's useful for user facing interaction.

PaymentResult

Payment result used by integrator for completing a transaction.

JSON representation
{

  // Union field result can be only one of the following:
  "googlePaymentData": string,
  "merchantPaymentMethodId": string
  // End of list of possible types for union field result.
}
Fields
Union field result. Either google payment data or merchant payment method is provided. result can be only one of the following:
googlePaymentData

string

Google provided payment method data. If your payment processor is listed as Google supported payment processor here: https://developers.google.com/pay/api/ Navigate to your payment processor through the link to find out more details. Otherwise, refer to following documentation for payload details. https://developers.google.com/pay/api/payment-data-cryptography

merchantPaymentMethodId

string

Merchant/Action provided payment method chosen by user.

PaymentInfo

Payment information regarding the order being made. This proto captures information that's useful for user facing interaction.

JSON representation
{
  "paymentMethodDisplayInfo": {
    object (PaymentMethodDisplayInfo)
  },
  "paymentMethodProvenance": enum (PaymentMethodProvenance)
}
Fields
paymentMethodDisplayInfo

object (PaymentMethodDisplayInfo)

The display info of the payment method used for the transaction.

paymentMethodProvenance

enum (PaymentMethodProvenance)

Provenance of the payment method used for the transaction. User may have registered the same payment method with both google and merchant.

PaymentMethodDisplayInfo

Payment result used by integrator for completing a transaction.

JSON representation
{
  "paymentType": enum (PaymentType),
  "paymentMethodDisplayName": string
}
Fields
paymentType

enum (PaymentType)

The type of the payment.

paymentMethodDisplayName

string

User visible name of the payment method. For example, VISA **** 1234 Checking acct **** 5678

Promotion

Promotions/Offers that were added to the cart.

JSON representation
{
  "coupon": string
}
Fields
coupon

string

Required: Coupon code applied to this offer.

PurchaseOrderExtension

Order extension for purchase vertical. These properties are applicable to all line items inside order, unless overridden in a line item.

JSON representation
{
  "status": enum (PurchaseStatus),
  "userVisibleStatusLabel": string,
  "type": enum (PurchaseType),
  "returnsInfo": {
    object (PurchaseReturnsInfo)
  },
  "fulfillmentInfo": {
    object (PurchaseFulfillmentInfo)
  },
  "extension": {
    "@type": string,
    field1: ...,
    ...
  },
  "purchaseLocationType": enum (PurchaseLocationType),
  "errors": [
    {
      object (PurchaseError)
    }
  ]
}
Fields
status

enum (PurchaseStatus)

Required: Overall Status for the order.

userVisibleStatusLabel

string

User visible label/string for the status. Max allowed length is 50 chars.

type

enum (PurchaseType)

Required: type of purchase.

returnsInfo

object (PurchaseReturnsInfo)

Return info for the order.

fulfillmentInfo

object (PurchaseFulfillmentInfo)

Fulfillment info for the order.

extension

object

Any extra fields exchanged between merchant and google.

An object containing fields of an arbitrary type. An additional field "@type" contains a URI identifying the type. Example: { "id": 1234, "@type": "types.example.com/standard/id" }.

purchaseLocationType

enum (PurchaseLocationType)

Location of the purchase (in-store / online)

errors[]

object (PurchaseError)

Optional: Errors because of which this order was rejected.

PurchaseError

Errors that a purchase order can be rejected for.

JSON representation
{
  "type": enum (ErrorType),
  "description": string,
  "entityId": string,
  "updatedPrice": {
    object (PriceAttribute)
  },
  "availableQuantity": number
}
Fields
type

enum (ErrorType)

Required: This represents the granular reason why an order gets rejected by the merchant.

description

string

Additional error description.

entityId

string

Entity Id that corresponds to the error. Example this can correspond to LineItemId / ItemOptionId.

updatedPrice

object (PriceAttribute)

Relevant in case of PRICE_CHANGED / INCORRECT_PRICE error type.

availableQuantity

number

Available quantity now. Applicable in case of AVAILABILITY_CHANGED.

TicketOrderExtension

Order contents for ticket orders like movie, sports etc.

JSON representation
{
  "ticketEvent": {
    object (TicketEvent)
  }
}
Fields
ticketEvent

object (TicketEvent)

The event applied to all line item tickets.

TicketEvent

Represents a single event.

JSON representation
{
  "type": enum (Type),
  "name": string,
  "description": string,
  "url": string,
  "location": {
    object (Location)
  },
  "eventCharacters": [
    {
      object (EventCharacter)
    }
  ],
  "startDate": {
    object (Time)
  },
  "endDate": {
    object (Time)
  },
  "doorTime": {
    object (Time)
  }
}
Fields
type

enum (Type)

Required: type of the ticket event, e.g. movie, concert.

name

string

Required: name of the event. For example, if the event is a movie, this should be the movie name.

description

string

description of the event.

url

string

Url to the event info.

location

object (Location)

The location where the event is happening, or an organization is located.

eventCharacters[]

object (EventCharacter)

The characters related to this event. It can be directors or actors of a movie event, or performers of a concert, etc.

startDate

object (Time)

Start time.

endDate

object (Time)

End time.

doorTime

object (Time)

Entry time, which might be different from the event start time. e.g. the event starts at 9am, but entry time is 8:30am.

EventCharacter

One event character, e.g. organizer, performer etc.

JSON representation
{
  "type": enum (Type),
  "name": string,
  "image": {
    object (Image)
  }
}
Fields
type

enum (Type)

type of the event character, e.g. actor or director.

name

string

name of the character.

image

object (Image)

Character's images.