My favorites | English | Sign in

Google Checkout

Order Processing API Commands for Nonprofit Organizations

Note: This is the latest documentation. The previous version of this page is identical — only the left nav differs.
Overview
Order Processing API Commands
XML Tag Definitions

Overview

The Order Processing API lets you integrate Google Checkout with your donation processing systems by allowing those systems to send information about a donation to Google Checkout. The following list identifies the functions that this API provides for managing donations made through Google Checkout. The Order Processing API Commands section defines and provides an XML example for each of these requests. The XML Tag Definitions section also defines the XML elements used in any of these commands.

  • The <refund-order> command enables you to refund a donation to a donor. For example, this command could be useful in cases where a donor inadvertently submitted the wrong donation amount or submitted a donation twice.

  • The <cancel-order> command enables you to mark a donation as canceled. Please note that you must completely refund a donor before canceling a donation.

  • The <archive-order> and <unarchive-order> commands enable you to manage the list of donations in your Merchant Center inbox. Archiving commands do not affect a donation's status or the information that is communicated to the donor about the donation.

  • The <add-merchant-order-number> command lets you associate a value that you use to uniquely identify a donation with its associated Google Checkout order.

  • The <send-buyer-message> command instructs Google to place a message in the donor's Google Checkout account and may also instruct Google to email the message to the donor.

Organizations that use the Order Processing API can also still use the Merchant Center to refund, cancel or archive donations.

Sending Secure Order Processing API Transactions

Order Processing API requests must meet the following requirements:

  • Order processing requests must use an HTTPS connection secured by 128-bit SSL v3 or TLS connection using a valid certificate from a major certifying authority. (SSL v2 is not allowed.)
  • Order processing requests must use HTTP Basic Authentication, using your Merchant ID and Merchant Key as the username and password.

We also strongly recommend that you verify the authenticity of the server certificate that is presented to you when you make the HTTPS connection with Google. Please verify the items in the checklist below before sending any data or doing HTTP Basic Authentication.

  • The server certificate belongs to checkout.google.com or sandbox.google.com.
  • The server certificate was signed by the appropriate Certifying Authority.
  • The certificate has not expired.

Order Processing API Commands

<refund-order>

The <refund-order> command instructs Google Checkout to refund the buyer for a particular order. You may issue a <refund-order> command after an order has been charged and is in the CHARGED financial order state.

Note: Even after you have issued a <refund-order> command, you should not assume that Google has refunded your customer until you receive a refund-amount-notification confirming that the refund has been processed.

The following XML shows a sample <refund-order> command:

<?xml version="1.0" encoding="UTF-8"?>
<refund-order xmlns="http://checkout.google.com/schema/2" google-order-number="6014423719">
    <amount currency="USD">15.00</amount>
    <comment>Discount for inconvenience; ship replacement item</comment>
    <reason>Damaged Merchandise</reason>
</refund-order>

Requests to refund an order could generate the following errors:

  • Invalid Argument Errors

    • The requested refund amount is greater than the amount charged. (You are trying to refund more money than the customer has spent.)
    • The requested refund amount is zero or negative.

  • Invalid State Errors

    • The order can not be refunded in its current financial order state.

<cancel-order>

The <cancel-order> command instructs Google Checkout to cancel a particular order. If the customer has already been charged, you must refund the customer's money before you can cancel the order. You may issue a <cancel-order> command for an order that is in either of the following financial order states:

CHARGEABLE
PAYMENT_DECLINED

The <cancel-order> command effectively marks all of the items in an order as canceled. An order cannot be removed from the CANCELLED state. However, you can use the <cancel-items> command for line-item shipping to specify that only specific items in an order have been canceled. When you cancel specific items in an order, that order will not transition to the CANCELLED state unless you actually cancel all of the items in the order.

Note: Even after you have issued a <cancel-order> command, you should not assume that Google has canceled the order until you receive an order-state-change-notification confirming that the financial order state was updated to CANCELLED.

The following XML shows a sample <cancel-order> command:

<?xml version="1.0" encoding="UTF-8"?>
<cancel-order xmlns="http://checkout.google.com/schema/2" google-order-number="841171949013218">
    <reason>Buyer cancelled the order.</reason>
    <comment>Buyer ordered another item.</comment>
</cancel-order>

Requests to cancel an order could generate the following errors:

  • Invalid State Errors

    • The order can not be canceled in its current financial order state.

Certain symbols may be displayed next to some subtags in the definitions below. These symbols, and their meanings, are:

? = optional subtag
* = zero or more instances of the subtag

<archive-order>

The <archive-order> command instructs Google Checkout to remove an order from your Merchant Center Inbox. We recommend that you only archive orders after they have been delivered or canceled.

<?xml version="1.0" encoding="UTF-8"?>
<archive-order xmlns="http://checkout.google.com/schema/2"
    google-order-number="841171949013218" />

<unarchive-order>

The <unarchive-order> command instructs Google Checkout to return a previously archived order to your Merchant Center Inbox.

The following XML shows a sample <unarchive-order> request:

<?xml version="1.0" encoding="UTF-8"?>
<unarchive-order xmlns="http://checkout.google.com/schema/2" google-order-number="841171949013218" />

<add-merchant-order-number>

The <add-merchant-order-number> command instructs Google Checkout to associate a merchant-assigned order number with an order. This command does not impact the order's fulfillment state.

The following XML shows a sample <add-merchant-order-number> request:

<?xml version="1.0" encoding="UTF-8"?>
<add-merchant-order-number xmlns="http://checkout.google.com/schema/2"
    google-order-number="841171949013218">
    <merchant-order-number>P6502-53-7861SBJD</merchant-order-number>
</add-merchant-order-number>

<send-buyer-message>

The <send-buyer-message> command instructs Google Checkout to place a message in the buyer's Google Checkout account. It may also include an optional argument instructing Google Checkout to also email the message to the buyer. This command does not impact the order's fulfillment state.

The following XML shows a sample <send-buyer-message> request. In this request, the optional <send-email> element indicates that Google should email the customer in addition to displaying the message in the customer's Google Checkout account.

<?xml version="1.0" encoding="UTF-8"?>
<send-buyer-message xmlns="http://checkout.google.com/schema/2"
    google-order-number="841171949013218">
    <message>Due to high volume, your order will ship
        next week. Thank you for your patience.</message>
    <send-email>true</send-email>
</send-buyer-message>

XML Tag Definitions

add-merchant-order-number
Definition

The <add-merchant-order-number> tag instructs Google Checkout to attach a merchant-assigned order number to an order.

Attributes
NameFormatDescription
google-order-number String The google-order-number attribute contains an ID that uniquely identifies an order.
Subtags merchant-order-number
Content Format Container
Example <add-merchant-order-number xmlns="http://checkout.google.com/schema/2" google-order-number="6014423719">

amount
Definition

The <amount> tag identifies the amount of money to charge or refund for an order. The tag's value may either be the full amount of the order or a partial amount. If this tag is omitted and as a part of a charge-order command, Google will charge the customer for the full amount of the order. If this tag is omitted as a part of a refund-order command, Google will refund the full order amount to the customer. This tag has one required attribute, which identifies the currency of the amount to be charged or refunded.

Attributes
NameFormatDescription
currency String The currency attribute identifies the unit of currency associated with the tag's value. The value of the currency attribute should be a three-letter ISO 4217 currency code.
Subtag of charge-order, refund-order
Content Format Currency
Example <amount currency="USD">129.43</amount>

archive-order
Definition

The <archive-order> tag indicates a request to archive a particular order. You would archive an order to remove it from your Merchant Center Inbox, indicating that the order has been delivered.

Attributes
NameFormatDescription
google-order-number String The google-order-number attribute contains an ID that uniquely identifies an order.
Content Format Empty
Example <archive-order xmlns="http://checkout.google.com/schema/2" google-order-number="6014423719"/>

cancel-order
Definition

The <cancel-order> tag identifies an order that should be canceled. A <cancel-order> command sets the financial-order-state and the fulfillment-order-state to canceled.

Attributes
NameFormatDescription
google-order-number String The google-order-number attribute contains an ID that uniquely identifies an order.
Subtags comment?, reason
Content Format Container
Example <cancel-order xmlns="http://checkout.google.com/schema/2" google-order-number="6014423719">

comment
Definition

The <comment> tag contains a comment related to a refunded or canceled order.

Note: The maximum accepted length for the tag value is 140 characters.

Subtag of refund-order, cancel-order, cancel-items
Content Format String
Example <comment>Refund processed by Bob Smith</comment>

error
Definition

The <error> tag contains information about an invalid API request. This information is intended to help you debug the problem causing the error.

Attributes
NameFormatDescription
serial-number String The serial-number attribute contains an ID that uniquely identifies a Google Checkout notification.
Subtags error-message, warning-messages?
Content Format Container
Example <error xmlns="http://checkout.google.com/schema/2" serial-number="3c394432-8270-411b-9239-98c2c499f87f">

error-message
Definition

The <error-message> tag contains a message that describes why an API request caused an error.

Subtag of error
Content Format Container
Example <error-message>Error: Illegal Argument</error-message>

merchant-order-number
Definition

The <merchant-order-number> tag contains the order number that you have assigned to an order. This number appears in the reconciliation report available in the Merchant Center.

Subtag of add-merchant-order-number
Content Format String (Limit 255 characters)
Example <merchant-order-number>

message
Definition

The <message> tag contains a message associated with a coupon or gift certificate or, when used in a <send-buyer-message> request, a message that you want to communicate to a buyer about a specific order.

Note: The maximum accepted length for the tag value is 255 characters.

Subtag of coupon-adjustment, gift-certificate-adjustment, coupon-result, gift-certificate-result, send-buyer-message
Content Format String
Example <message>You saved $10.00 with this gift certificate.</message>

reason
Definition

As a subtag of <cancel-order> or <refund-order>, the <reason> tag contains the reason that you are canceling or refunding an order.

As a subtag of <order-state-change-notification>, the <reason> tag, if provided, will contain a description of the reason that Google canceled a particular order. For example, Google would cancel an order if the buyer's credit card authorization failed and the buyer did not provide updated credit card information within seven days. This element may be included in an order-state-change notification when an order's financial state is changed to CANCELLED_BY_GOOGLE.

Note: The maximum accepted length for the tag value is 140 characters.

Subtag of cancel-order, cancel-items, order-state-change-notification, refund-order
Content Format String
Example <reason>Failed risk check</reason>

refund-order
Definition

The <refund-order> tag identifies an order that should be refunded. The <refund-order> tag may specify whether the buyer should be refunded the full amount of the order or a partial amount.

Attributes
NameFormatDescription
google-order-number String The google-order-number attribute contains an ID that uniquely identifies an order.
Subtags amount?, comment?, reason
Content Format Container
Example <refund-order xmlns="http://checkout.google.com/schema/2" google-order-number="6014423719">

request-received
Definition

The <request-received> tag confirms that Google received a properly formed request to change an order's status and that the merchant requested a valid status change. Note: This tag does not indicate that your request was successfully completed.

Attributes
NameFormatDescription
serial-number String The serial-number attribute contains an ID that uniquely identifies a Google Checkout notification.
Content Format Empty
Example <request-received xmlns="http://checkout.google.com/schema/2" serial-number="dc66f8c7"/>

send-buyer-message
Definition

The <send-buyer-message> command instructs Google to send a message to a customer about a particular order.

Attributes
NameFormatDescription
google-order-number String The google-order-number attribute contains an ID that uniquely identifies an order.
Subtags send-email?, message
Content Format Container
Example <send-buyer-message xmlns="http://checkout.google.com/schema/2" google-order-number="6014423719">

send-email
Definition

The <send-email> tag indicates whether Google Checkout should email the buyer with updated information about the shipping status of the items in an order. Google's default behavior is to send an email. To prevent Google Checkout from sending this email, your command must include this element with a value of false.

Subtag of deliver-order, send-buyer-message, backorder-items, cancel-items, reset-items-shipping-information, return-items, ship-items
Content Format Boolean
Example <send-email>true</send-email>

string
Definition

The <string> tag contains a description of a warning generated by an API request.

Subtag of warnings, warning-messages
Content Format String
Example <string>Sample warning message here</string>

unarchive-order
Definition

The <unarchive-order> tag indicates a request to unarchive a particular order. You would use this command to return an order to your Merchant Center Inbox after the order had previously been archived.

Attributes
NameFormatDescription
google-order-number String The google-order-number attribute contains an ID that uniquely identifies an order.
Content Format Complex
Example <unarchive-order xmlns="http://checkout.google.com/schema/2" google-order-number="6014423719"/>