Rayo API
1.0.1

API Reference

The Rayo API is based on REST. It has easy to understand URLs, accepts JSON request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

You can use the Rayo API in QA for Sandbox testing purposes , which doesn't affect your live data or interact with the fulfillment networks. The host and API key you use to authenticate the request determines whether the request is production mode or QA mode.

The Rayo API differs for every account as we release new versions and tailor functionality.

Authentication

The Rayo API uses API keys to generate JWT to authenticate requests. You can view and manage your API keys in Rayo AVA account.

Your API keys have your role and permissions set up to the account level you are subscribed to. Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so on.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Host URLs

Production -> https://cerebro.techrayo.com

QA/Sandbox -> https://qa.cerebro.techrayo.com

Considerations
  1. Products
    1. You need to have products set up correctly
      1. SKU and UPC (unique product identifiers)
      2. Dimensions set up properly
  2. Inventories
    1. You need to have stock of the products in the designated warehouse
  3. Express/Scheduled zip codes coverage
    1. This service type requires to have warehouse coverage to the desired zip codes
      1. Validate with your Rayo Account Manager all the coverages for our fulfillment warehouse network
  4. Packaging Materials
    1. You need to have packaging material stock within our warehouses
      1. Verify with your Rayo Account Manager if your plan includes Rayo packaging materials
    2. Dimensions and details must be set up properly in order to quote and create fulfillment orders
  5. JWT Tokens
    1. Tokens have expiration times
    2. You need to refresh your token with the given keys by the Rayo Account Manager
  6. Errors
    1. Errors can be reported through support tickets in order to be addressed as soon as possible by the Dev Team
  7. Rates
    1. Rates are assigned to your account by your Rayo Account Manager
  8. Shipping Providers
    1. Shipping Providers are assigned to your account by your Rayo Account Manager, any required changes please contact via support ticket.
  9. API Keys
    1. In order to generate the API Key to generate JWT Tokens you need to have an active Rayo Account
      1. Contact Sales team in order to start the process here

This is the documentation for version 1.0.1 of the API. Last update on Jun 9, 2022.

Base URL
cerebro.techrayo.com

Create Product

POST /api/rest/product/new

Description:

The product creation endpoint allows you to create a new product in the Rayo system. You need to provide the following information:

  • Your Rayo JWT Token
  • Product name
  • Product SKU
  • Product UPC
  • Product image reference
  • Product dimensions (height, width, length, weight, volume),
  • Units of measurement for the product's dimensions (centimeters, inches, pounds, ounces) * Currently centimeters is only allowed and set by default.
  • Unit of measurement for the product's weight (grams, pounds). * Currently grams is only allowed and set by default.
Parameter Description


nombre (String) - Required


product name


SKU (String) - Required


Unique store identifier


UPC (String) - Required


Barcode unique identifier


imagen_url(String) - Required


product image reference


altura (Float) - Required


height


ancho (Float) - Required


width


largo (Float) - Required


length


peso (Float) - Required


weight


volumen (Float) - Required


Calculated volume (based on given width x length x height)
application/json

Body

object object

Responses

POST /api/rest/product/new
curl \
 -X POST cerebro.techrayo.com/api/rest/product/new \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"productos":[{"nombre":"Prueba 01","imagen_url":"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcStGTBLghQTK_dOR1REVYE8rhCbGLpKKSKEdA\u0026usqp=CAU","sku":"regalo001","upc":"","dimension":{"data":{"altura":"1","ancho":"1","largo":"1","peso":"3","volumen":"1"}}}]}'
Request example
{
  "productos": [
    {
      "nombre": "Prueba 01",
      "imagen_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcStGTBLghQTK_dOR1REVYE8rhCbGLpKKSKEdA&usqp=CAU",
      "sku": "regalo001",
      "upc": "",
      "dimension": {
        "data": {
          "altura": "1",
          "ancho": "1",
          "largo": "1",
          "peso": "3",
          "volumen": "1"
        }
      }
    }
  ]
}
Response examples (200)
# Headers
Date: Fri, 27 May 2022 18:59:20 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
x-request-id: 7df6a5d4a419acafaa72a4847f5d2616
Content-Encoding: gzip
CF-Cache-Status: DYNAMIC
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Content-Security-Policy: upgrade-insecure-requests
Referrer-Policy: strict-origin-when-cross-origin
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 0
Server: cloudflare
CF-RAY: 7120fcaf6f5efeb6-IAH

# Payload
{
  "insert_producto": {
    "returning": [
      {
        "id": "9333ae33-82f2-4961-9234-c9fb0dbcbe65",
        "dimension": {
          "id_dimension": "07404986-69ec-46a7-904c-eeefd7fd6ff4"
        }
      }
    ],
    "affected_rows": 2
  }
}
Response examples (400)
# Headers
Date: Fri, 27 May 2022 19:03:38 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
CF-Cache-Status: DYNAMIC
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Content-Security-Policy: upgrade-insecure-requests
Referrer-Policy: strict-origin-when-cross-origin
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 0
Server: cloudflare
CF-RAY: 712102febfcdfeb6-IAH

# Payload
{
  "path": "$.selectionSet.insert_producto.args.objects[0]",
  "error": "Uniqueness violation. duplicate key value violates unique constraint \"producto_sku_id_cliente_key\"",
  "code": "constraint-violation"
}
# Headers
Date: Fri, 27 May 2022 19:03:38 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
CF-Cache-Status: DYNAMIC
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Content-Security-Policy: upgrade-insecure-requests
Referrer-Policy: strict-origin-when-cross-origin
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 0
Server: cloudflare
CF-RAY: 712102febfcdfeb6-IAH

# Payload
{
  "path": "$.selectionSet.insert_producto.args.objects[0]",
  "error": "check constraint of an insert/update permission has failed",
  "code": "permission-error"
}