Skip to content

List a purchase order's integration errors

Open .md

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

v1Operation ID v1_public_external_integration_logs_purchase_order

Lists the newest sync errors recorded for a purchase order, at most 10: mostly QuickBooks Online purchase order and vendor sync errors.

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 purchase order's id. A hash id; unique keys and document numbers are refused with 404.

    • Example WHxaO1cQCiDr0P

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 purchase order's id.

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.