Skip to content

List a sales order's integration errors

Open .md

GET/v1/api/store/{team_slug}/external_integration_logs/order/{hash_id}

v1Operation ID v1_public_external_integration_logs_order

Lists the newest QuickBooks Online and Shopify sync errors recorded for a sales order or quote, at most 10. Use type to see only one integration's errors.

Some QuickBooks errors include the details QuickBooks sent in error_payload; errors about a QuickBooks Payment also name it in quickbooks_payment_id, with QuickBooks' own words in quickbooks_message. Shopify errors come with words to show people: display_title, display_message and display_next_step. Every log names its order in order.

Permission

Any member of the team.

Path parameters

  • team_slugstringrequired

    Your team slug, shown as Team ID next to your API key in Profile.

    • Example your-team
  • hash_idstringrequired

    The sales order's or quote's id. A hash id; unique keys and document numbers are refused with 404.

    • Example V4keXwwxMQyXw7

Query parameters

  • typestring

    Only this integration's errors. shopify: the four shopify_* types. qbo: qbo_bootstrap_error (the sync could not start), qbo_sync_endpoint_error, qbo_sync_internal_error, qbo_sync_transform_error, qbo_sync_lookup_error and the older qbo_order_sync_error; it leaves out the older qbo_order_payment_sync_error. Leave it out for every type.

    • One of: "shopify", "qbo"
    • Example shopify

Request body

This operation takes no request body.

Response

200Successful response.

  • dataarray of objectsrequired
    • At most 10 items
    Fields of each item (19)
    • created_atstring (date-time)
    • The log's id, for support.

    • Shopify logs only: a title, message, next step and reference to show people.

      • One of: "error", "warning"
    • error_codestring | null

      QuickBooks' error code, or for a Shopify fulfillment conflict the kind of conflict, such as tracking_mismatch.

    • error_messagestring | null

      QuickBooks logs: the message with what was syncing in front, such as (Invoice) Duplicate Name Exists Error. Shopify logs: the same text as display_message.

    • Some QuickBooks Online logs: the details QuickBooks sent (text or an object). Otherwise null, and always null for Shopify logs.

    • Only with with=external_integration: the integration the log came from (id, type, subtype, label, status and more).

    • Always null: no log type links a help article.

    • idstring
    • orderobject | null

      The sales order or quote the log is about; null when it is not about one.

      Child fields (4)
      • deletedbooleanrequired

        True when the order has been deleted.

      • idstringrequired

        The order's id, for the order operations.

      • scoped_idstringrequired

        The order or quote number people see, such as SO1001. Not an id.

      • typestringrequired
        • One of: "sales_order", "quote"
    • quickbooks_messagestring | null

      QuickBooks' own words for the refusal, when the log kept them. Null otherwise.

    • The QuickBooks Payment's Id, when the log is about one (for example QuickBooks refused to delete it, or its sync is held). Null otherwise.

    • retryableboolean
    • Only when the log is about a shipment: the shipment's id.

    • Only when the log has one, such as a fulfillment conflict: the order in the Shopify admin.

    • typestring

      QuickBooks Online: qbo_sync_endpoint_error (QuickBooks refused the record), qbo_sync_internal_error, qbo_sync_transform_error, qbo_sync_lookup_error, qbo_bootstrap_error (the sync could not start, for example because QuickBooks must be reconnected); older logs can have qbo_order_sync_error, qbo_po_sync_error and other qbo_*_sync_error types. Shopify: shopify_endpoint_error, shopify_processing_error, shopify_internal_error, shopify_fulfillment_conflict.

  • statusintegerrequired
  • successbooleanrequired

Errors

  • 401The API key is missing or wrong (unauthenticated).

  • 403You are not allowed to do this. api_access_not_in_plan: your team's plan doesn't include API access (Pro and above, with an active subscription or trial), so every request answers this until the team upgrades. When your role lacks the permission the operation needs, the body is only {"message": "Insufficient Permission"}. Other refusals use the error envelope, with unauthorized or user_is_not_authorized.

  • 404Not found. page_not_found: the team slug is unknown, you are not a member of the team, or an id in the path is not one of this team's. code: null, with a message that starts "No query results for": there is no record with that id.

    When
    The id is not a valid id for this team.
    Fix
    Use the order's id, not its unique key or number.
  • 422The request was refused and changed nothing. validation_failed lists what to fix in error.fields; other codes name a business rule, explained in error.message. A few checks answer with only {"message": "..."}. An operation that calls another service (a payment provider, a carrier, an accounting app) can answer connect_timeout ("Please retry again") when that service does not answer in time: the change may or may not have happened there, so read the record back before you retry.

    When
    type is not shopify or qbo (validation_failed; error.fields names the field).
    Fix
    Send shopify, qbo, or nothing.

Notes

  • At most the 10 newest logs, newest first, with no paging.
  • An id that decodes but matches nothing returns an empty list, not 404.
  • Add ?with=external_integration to include the integration each log came from.