Get Order

Returns an order in response to a request with the given order ID.

Overview

Use an order ID to retrieve the details of an order. This request returns multiple representations of an order’s state via the "states" and "status" fields. The "status" field is currently deprecated and it is recommended that you use the “states” field going forward.

This request requires an access token with "orders/carts-read" scope. If an Order is found, a 200 OK response will be returned with the Order in the response body. If no Order can be found with the given orderId, a 404 Not Found response will be returned.

URI

GET: https://rest.bronto.com/orders/{orderId}?deliveryId={deliveryId}&messageId={messageId}&contactId={contactId}

Parameters

Parameter Type Description
orderId Required String The unique identifier for an order.
deliveryId Optional String The unique identifier for a single delivery of a message associated with the order. You can use readDeliveries to return deliveryId as part of the deliveryObject.
messageId Optional String The unique identifier for a single message associated with the order. You can use readMessages to return messageId as part of the messageObject.
contactId Optional String The unique identifier for a contact associated with the order. You can use readContacts or readContactsWithLatestUnsubscribeDate to return contactId as part of the contactObject.

Response Body

A response containing the order with the given ID.

{
    emailAddress:validly formatted email address
    contactId:string
    orderDate:ISO-8601 datetime
    status:PENDING | PROCESSED
    hasTracking:boolean
    trackingCookieName:string
    trackingCookieValue:string
    deliveryId:string
    customerOrderId:string
    discountAmount:number
    grandTotal:number
    lineItems:[
      {
        name:string
        other:string
        sku:string
        category:string
        imageUrl:string
        productUrl:string
        quantity:number
        salePrice:number
        totalPrice:number
        unitPrice:number
        description:string
        position:number
      }
    ]
    originIp:IPv4 or IPv6 address
    messageId:string
    originUserAgent:string
    shippingAmount:number
    shippingDate:ISO-8601 datetime
    shippingDetails:string
    shippingTrackingUrl:string
    subtotal:number
    taxAmount:number
    cartId:UUID
    createdDate:ISO-8601 datetime
    updatedDate:ISO-8601 datetime
    currency:ISO-4217 currency code
    states: {
      processed:boolean
      shipped:boolean
    }
    orderId:UUID
}

Java Code Example

import java.util.Map;
import java.util.UUID;
 
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.Form;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
 
 
public class GetOrderExample {
 
  // Host
  private static final String BRONTO_HOST = "http://rest.bronto.com";
  private static final String BRONTO_AUTH_PATH = "https://auth.bronto.com/oauth2/token";
 
  // Paths
  private static final String GET_ORDER_PATH = "orders/{orderId}";
  private static final String ORDER_ID = "orderId";
 
  // OAuth Request property names
  private static final String GRANT_TYPE = "grant_type";
  private static final String CLIENT_ID = "client_id";
  private static final String CLIENT_SECRET = "client_secret";
 
  // OAuth Request property values
  private static final String CLIENT_CREDENTIALS = "client_credentials";
  private static final String EXAMPLE_CLIENT_ID = "XXXXXXXXXXXXXXXXXXXXXXX";
  private static final String EXAMPLE_CLIENT_SECRET = "XXXXXXXXXXXXXXXXXXXXXXX";
 
  private static final String ACCESS_TOKEN = "access_token";
 
  private static final String REASON_HEADER = "X-Reason";
 
  // Id of the Order we are getting
  private static final String EXAMPLE_ORDER_ID = "0ad24370-96de-4922-9a53-954530fcbb64";
 
 
  public static void main(String[] args) {
    Client client = ClientBuilder.newClient();
 
    // To be able to access Orders Rest API, you need an access token.
    // First, we build the request data needed to gain an access token
    Form requestData = new Form();
    requestData.param(GRANT_TYPE, CLIENT_CREDENTIALS);
    requestData.param(CLIENT_ID, EXAMPLE_CLIENT_ID);
    requestData.param(CLIENT_SECRET, EXAMPLE_CLIENT_SECRET);
 
    // Then build and send the request
    Response oauthResponse = client.target(BRONTO_AUTH_PATH)
        .request(MediaType.APPLICATION_JSON)
        .accept(MediaType.TEXT_PLAIN_TYPE)
        .post(Entity.form(requestData));
 
    if (oauthResponse.getStatus() != Response.Status.OK.getStatusCode()) {
      throw new RuntimeException("Unable to get access token.");
    }
 
    // Retrieve the access token from the response
    Map<String, Object> responseData = oauthResponse.readEntity(Map.class);
    UUID accessToken = UUID.fromString((String) responseData.get(ACCESS_TOKEN));
 
    // Now to get the Order
    Response orderResponse = client.target(BRONTO_HOST)
        .path(GET_ORDER_PATH)
        .resolveTemplate(ORDER_ID, EXAMPLE_ORDER_ID)
        .request(MediaType.APPLICATION_JSON)
        .header("Authorization", "Bearer " + accessToken.toString())
        .get();
 
    if (orderResponse.getStatus() == Response.Status.NOT_FOUND.getStatusCode()) {
      throw new RuntimeException("No Order found with orderId=" + EXAMPLE_ORDER_ID);
    } else if (orderResponse.getStatus() != Response.Status.OK.getStatusCode()) {
      String reason = orderResponse.getHeaderString(REASON_HEADER);
      throw new RuntimeException("Unable to get Order. Reason=" + reason);
    }
 
    // Retrieve the Order from the response
    Map<String, Object> order = orderResponse.readEntity(Map.class);
    System.out.println(order);
  }
}

cURL Example

# Run the following cURL command after replacing YOUR_ID and YOUR_SECRET with the values from your REST Integration.
curl -X POST -d "grant_type=client_credentials&client_id=YOUR_ID&client_secret=YOUR_SECRET" https://auth.bronto.com/oauth2/token
	      
# Replace YOUR_ACCESS_TOKEN with your returned token and replace YOUR_ORDER_ID with a real order ID.
curl -i -X GET -H "Content-type: application/json" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Cache-Control: no-cache" https://rest.bronto.com/orders/YOUR_ORDER_ID