Skip to main content

Orders

Use this reference for exact Orders API request attributes, response envelopes, object shape, and examples. For lifecycle, checkout patterns, ID boundaries, and fulfillment behavior, start with the Orders product guide.

Operations

The order object

Every single-order endpoint returns { "order": { ... } }. Page returns the same object inside page.orders. Optional fields are omitted until they exist; treat omission as absence, not as an empty value. When an order has refunds, order.refunds contains every refund in newest-first order and each entry uses the complete shared refund object. Orders without refunds omit the attribute entirely; they do not return refunds: [] or refunds: null.

Properties

  • Name
    canceled_at
    Type
    timestamp
    Description

    When the order was canceled. Omitted until cancellation.

  • checkout_settingsobjectOptional hosted-checkout redirects. Omitted when not configured.Click or tap to expand
    • Name
      cancel_url
      Type
      string
      Description
      URL to redirect customers who cancel or abandon payment. Strongly recommended to handle cancellations gracefully.
    • Name
      redirect_url
      Type
      string
      Description
      URL to redirect customers after successful payment. Strongly recommended for a seamless customer experience.
  • Name
    completed_at
    Type
    timestamp
    Description

    When the order was completed. Omitted until completion.

  • created_fromobjectOrigin attribution for an order created from another public resource. Omitted for direct API-created orders.Click or tap to expand
    • Name
      resource_id
      Type
      string
      Description
      ID of the originating resource, such as a purchase intent.
    • Name
      resource_type
      Type
      string
      Description
      Originating resource type. Currently purchase_intent when present.
    • Name
      source
      Type
      string
      Description
      Checkout source recorded by Inttegro. Omitted when unavailable.
  • custom_dataobjectClick or tap to expand

    Your string key-value data. Omitted when empty.

  • customerobjectCustomer who placed this order.Click or tap to expand
    • Name
      billing_address
      Type
      object
      View billing_address detailsClick or tap to expand
      Customer billing address. Omitted when unavailable.
    • Name
      email_address
      Type
      string
      Description
      Email for receipts and updates.
    • Name
      guest
      Type
      boolean
      Description
      Whether the customer was created as a guest during checkout.
    • Name
      id
      Type
      string
      Description
      Customer ID.
    • Name
      name
      Type
      string
      Description
      Full name for billing and communication.
    • Name
      phone_number
      Type
      string
      Description
      Phone number for OTP and notifications.
    • Name
      shipping_address
      Type
      object
      View shipping_address detailsClick or tap to expand
      Customer shipping address. Omitted when unavailable.
  • Name
    expires_at
    Type
    timestamp
    Description

    When the order expires. Omitted when no expiry applies.

  • Name
    id
    Type
    string
    Description

    Unique identifier for this order—use it for lookups, updates, and payment operations.

  • Name
    initiated_at
    Type
    timestamp
    Description

    When we started processing this order.

  • invoiceobjectHosted invoice links. Omitted while the order is a draft.Click or tap to expand
    • Name
      format
      Type
      object
      View format attributesClick or tap to expand
      Invoice viewing links.
      • Name
        pdf
        Type
        object
        View pdf attributesClick or tap to expand
        PDF download.
        • Name
          url
          Type
          string
          Description
          Direct PDF link.
      • Name
        web
        Type
        object
        View web attributesClick or tap to expand
        Hosted page.
        • Name
          url
          Type
          string
          Description
          Web URL for viewing the invoice.
      • Name
        receipt
        Type
        object
        View receipt attributesClick or tap to expand
        Hosted receipt link. Omitted until the order is paid.
        • Name
          url
          Type
          string
          Description
          Hosted receipt URL.
    • Name
      number
      Type
      string
      Description
      Invoice number. Omitted when unset.
  • invoice_settingsobjectCustomer-facing invoice content. Omitted when not configured.Click or tap to expand
    • Name
      custom_data
      Type
      object
      View custom_data detailsClick or tap to expand
      String key-value data. Omitted when empty.
    • Name
      memo
      Type
      string
      Description
      Invoice memo. Omitted when unset.
    • Name
      number
      Type
      string
      Description
      Invoice number. Omitted when unset.
  • line_item_groupobjectCart contents and totals.Click or tap to expand
    • Name
      line_items
      Type
      array
      View line_items attributesClick or tap to expand
      Array of products, fees, and shipping charges—each with a type discriminator.
      • Name
        discount
        Type
        object
        View discount detailsClick or tap to expand
        Discount details when type is discount. Reserved for orders that contain a discount line.
      • Name
        fee
        Type
        object
        View fee attributesClick or tap to expand
        Fee details when type is fee—covers service charges, convenience fees, etc.
        • Name
          amount
          Type
          object
          View amount attributesClick or tap to expand
          Fee amount.
          • Name
            currency
            Type
            string
            Description
            Currency code.
          • Name
            value
            Type
            integer
            Description
            Amount in smallest currency unit.
        • Name
          description
          Type
          string
          Description
          Internal note about what this fee covers.
        • Name
          id
          Type
          string
          Description
          Order-line identifier generated for this fee. Starts with oli_.
        • Name
          label
          Type
          string
          Description
          Customer-facing label for this fee.
        • Name
          tax_code
          Type
          string
          Description
          Tax classification code for this fee.
      • Name
        product
        Type
        object
        View product attributesClick or tap to expand
        Product details when type is product.
        • Name
          about
          Type
          string
          Description
          Long-form description or marketing copy.
        • Name
          category
          Type
          string
          Description
          Catalog or inline product category. Omitted when unset.
        • Name
          custom_data
          Type
          object
          View custom_data detailsClick or tap to expand
          Your own key-value string pairs—exactly the same shape as the custom_data field in the API.
        • Name
          id
          Type
          string
          Description
          Order-line identifier generated for this product snapshot. Starts with oli_; it is not a catalog product ID.
        • Name
          name
          Type
          string
          Description
          Product name shown to the customer.
        • Name
          price
          Type
          object
          View price attributesClick or tap to expand
          Per-unit price.
          • Name
            currency
            Type
            string
            Description
            Currency code.
          • Name
            value
            Type
            integer
            Description
            Price in smallest currency unit.
        • Name
          price_id
          Type
          string
          Description
          Catalog price copied into this line. Omitted for inline or explicitly priced products.
        • Name
          product_id
          Type
          string
          Description
          Catalog product copied into this line. Omitted for inline products.
        • Name
          quantity
          Type
          integer
          Description
          How many units the customer is purchasing.
        • Name
          reference
          Type
          string
          Description
          Your SKU or internal product reference.
        • Name
          tax_code
          Type
          string
          Description
          Tax classification code for this item.
        • Name
          type
          Type
          string
          Description
          Product type: cause, custom, digital, physical, service, or voucher.
      • Name
        shipping
        Type
        object
        View shipping attributesClick or tap to expand
        Shipping details when type is shipping.
        • Name
          fee
          Type
          object
          View fee attributesClick or tap to expand
          Shipping cost.
          • Name
            currency
            Type
            string
            Description
            Currency code.
          • Name
            value
            Type
            integer
            Description
            Amount in smallest currency unit.
        • Name
          id
          Type
          string
          Description
          Order-line identifier generated for this shipping charge. Starts with oli_.
        • Name
          label
          Type
          string
          Description
          Customer-facing label for this shipping charge.
        • Name
          tax_code
          Type
          string
          Description
          Tax classification code for this shipping charge.
      • Name
        type
        Type
        string
        Description
        Line item type: discount, fee, product, or shipping.
    • Name
      total
      Type
      object
      View total attributesClick or tap to expand
      Sum of all line items after any adjustments.
      • Name
        currency
        Type
        string
        Description
        ISO currency code. Supported values for order creation are ghs, usd, gbp, eur, and cny.
      • Name
        value
        Type
        integer
        Description
        Amount in smallest unit (cents, pesewas, etc.).
  • Name
    number
    Type
    string
    Description

    Human-friendly reference like ORDER-1234 for your internal systems and customer communication.

  • paymentobjectPayment collection record tied to this order. Its status is independent from fulfillment state.Click or tap to expand
    • Name
      amount
      Type
      object
      View amount attributesClick or tap to expand
      Total amount being charged.
      • Name
        currency
        Type
        string
        Description
        Currency code. Supported values for order creation are ghs, usd, gbp, eur, and cny.
      • Name
        value
        Type
        integer
        Description
        Amount in smallest unit.
    • Name
      balance_transaction
      Type
      object
      View balance_transaction attributesClick or tap to expand
      Ledger entry available after money movement is recorded. Its type is payment or refund, with exactly one matching strong reference.
      • Name
        amount
        Type
        object
        View amount attributesClick or tap to expand
        Net funds that hit your balance for this payment.
        • Name
          currency
          Type
          string
          Description
          Currency code. Supported values for order creation are ghs, usd, gbp, eur, and cny.
        • Name
          value
          Type
          integer
          Description
          Amount in smallest unit.
      • Name
        available_at
        Type
        timestamp
        Description
        When the funds become available for payout. Omitted until known.
      • Name
        claimed_at
        Type
        timestamp
        Description
        When the funds were claimed for payout. Omitted until claimed.
      • Name
        created_at
        Type
        timestamp
        Description
        When the balance transaction was created.
      • Name
        id
        Type
        string
        Description
        Balance transaction ID.
      • Name
        order_id
        Type
        string
        Description
        Order that created this balance transaction.
      • Name
        paid_at
        Type
        timestamp
        Description
        When the payout was completed. Omitted until paid.
      • Name
        payment_id
        Type
        string
        Description
        Strong source reference present when type is payment. Omitted for refund.
      • Name
        payout_configuration
        Type
        object
        View payout_configuration attributesClick or tap to expand
        Payout routing instructions for this transaction. Present only when order-level payout_settings was specified during order creation.
        • Name
          destination
          Type
          object
          View destination attributesClick or tap to expand
          Where funds will be paid out.
          • Name
            financial_account_id
            Type
            string
            Description
            Financial account that will receive the payout.
        • Name
          enable_fx
          Type
          boolean
          Description
          Compatibility flag for payout routing. It is currently always false because cross-currency payouts are unavailable.
      • Name
        payout_id
        Type
        string
        Description
        Payout that will disburse the funds. Omitted until scheduled.
      • Name
        refund_id
        Type
        string
        Description
        Strong source reference present when type is refund. Omitted for payment.
      • Name
        type
        Type
        enum
        Description
        Semantic source of the entry: payment or refund. This is a cause, not a direction indicator.
    • Name
      billing_details
      Type
      object
      View billing_details detailsClick or tap to expand
      Billing owner details associated with the payment method. Omitted when unavailable.
    • Name
      canceled_at
      Type
      timestamp
      Description
      When payment was canceled. Omitted until canceled.
    • Name
      customer
      Type
      object
      View customer detailsClick or tap to expand
      Customer snapshot associated with this payment. Omitted when unavailable.
    • Name
      due_at
      Type
      timestamp
      Description
      When payment is due. Omitted when unset.
    • Name
      executed_at
      Type
      timestamp
      Description
      When payment execution began. Omitted until execution.
    • Name
      expired_at
      Type
      timestamp
      Description
      When payment expired. Omitted until expired.
    • Name
      failed_at
      Type
      timestamp
      Description
      When payment failed. Omitted until failed.
    • Name
      id
      Type
      string
      Description
      Payment ID—use it to correlate confirmation and payment operations.
    • Name
      initiated_at
      Type
      timestamp
      Description
      When Inttegro created the payment.
    • Name
      latest_error
      Type
      object
      View latest_error detailsClick or tap to expand
      Structured error for the latest failed payment operation. Omitted when unavailable.
    • Name
      latest_attempt
      Type
      object
      View latest_attempt attributesClick or tap to expand
      Details about the most recent charge attempt. Omitted before the first attempt.
      • Name
        error
        Type
        object
        View error detailsClick or tap to expand
        Attempt error details. Omitted when no error is available.
      • Name
        initiated_at
        Type
        timestamp
        Description
        When this attempt started.
      • Name
        payment_method_id
        Type
        string
        Description
        Payment method that was charged.
      • Name
        payment_method_type
        Type
        string
        Description
        Payment rail used for this attempt.
      • Name
        reference
        Type
        string
        Description
        Gateway reference or transaction ID.
      • Name
        status
        Type
        string
        Description
        Attempt status: initiated, executed, succeeded, canceled, expired, failed, or unknown.
      • Name
        succeeded_at
        Type
        timestamp
        Description
        Set when the attempt succeeds. Omitted otherwise.
    • Name
      next_action
      Type
      object
      View next_action attributesClick or tap to expand
      What needs to happen next to complete the payment.
      • Name
        confirm_payment
        Type
        object
        View confirm_payment attributesClick or tap to expand
        OTP confirmation flow details.
        • Name
          expires_at
          Type
          timestamp
          Description
          When this OTP token expires.
        • Name
          request
          Type
          object
          View request attributesClick or tap to expand
          Details about the OTP we sent.
          • Name
            id
            Type
            string
            Description
            Unique ID for this OTP delivery.
          • Name
            recipient
            Type
            string
            Description
            Phone number or email that received the token.
          • Name
            sender_id
            Type
            string
            Description
            Sender name shown to the customer (e.g., zverify).
          • Name
            sent_via
            Type
            string
            Description
            Delivery channel: sms or email.
          • Name
            token_size
            Type
            integer
            Description
            Length of the OTP code (usually 6).
        • Name
          scheme
          Type
          string
          Description
          Auth scheme: typically inttegro_defined_auth.
      • Name
        type
        Type
        string
        Description
        Action required: confirm_payment, authorize_payment, etc.
    • Name
      paid_at
      Type
      timestamp
      Description
      When funds were fully captured and marked as paid. Omitted until paid.
    • Name
      paid_offline
      Type
      boolean
      Description
      Whether payment was recorded out of band. Omitted when unavailable.
    • Name
      payment_method
      Type
      object
      View payment_method attributesClick or tap to expand
      The payment method being charged.
      • Name
        created_at
        Type
        timestamp
        Description
        When this method was added.
      • Name
        customer_id
        Type
        string
        Description
        Which customer owns this payment method.
      • Name
        id
        Type
        string
        Description
        Saved payment method ID.
      • Name
        mobile_money
        Type
        object
        View mobile_money attributesClick or tap to expand
        Mobile money details. Present when type is mobile_money.
        • Name
          account_number
          Type
          string
          Description
          Masked account number.
        • Name
          last4
          Type
          string
          Description
          Last four digits of the wallet account.
        • Name
          network
          Type
          string
          Description
          Wallet network: airtel, mtn, telecel, or vodafone.
      • Name
        type
        Type
        string
        Description
        Payment rail: mobile_money, card, bank_account, etc.
      • Name
        verified
        Type
        boolean
        Description
        Whether the payment method passed verification.
      • Name
        verified_at
        Type
        timestamp
        Description
        When verification completed. Omitted if not verified.
    • Name
      payment_method_types
      Type
      array
      Description
      Payment rails allowed for this payment. Omitted when unavailable.
    • Name
      payout_configuration
      Type
      object
      View payout_configuration attributesClick or tap to expand
      Payout routing instructions for this payment. Present only when order-level payout_settings was specified during order creation.
      • Name
        destination
        Type
        object
        View destination attributesClick or tap to expand
        Where funds will be paid out.
        • Name
          financial_account_id
          Type
          string
          Description
          Financial account that will receive the payout.
      • Name
        enable_fx
        Type
        boolean
        Description
        Compatibility flag for payout routing. It is currently always false because cross-currency payouts are unavailable.
    • Name
      statement_descriptor
      Type
      string
      Description
      Statement descriptor assigned to the payment.
    • Name
      status
      Type
      string
      Description
      Payment state: initiated, overdue, executed, requires_action, paid, failed, canceled, expired, or unknown.
  • Name
    receipt_number
    Type
    string
    Description

    Merchant-supplied receipt reference for reconciliation. Omitted when unset; Inttegro does not enforce uniqueness.

  • Name
    paid_at
    Type
    timestamp
    Description

    When the order was paid. Omitted until paid.

  • Name
    payment_due_at
    Type
    timestamp
    Description

    When payment is due. Omitted when no due time was supplied.

  • payout_settingsobjectOrder-specific payout settings. Omitted when not configured.Click or tap to expand
    • refundsarrayComplete refund objects for this order in newest-first order. Omitted when the order has no refunds.Click or tap to expand
      • Name
        items
        Type
        object
        View items attributesClick or tap to expand
        Each entry is the complete shared refund object. See the Refunds API reference for the canonical object and lifecycle fields.
        • Name
          canceled_at
          Type
          timestamp
          Description
          When the refund entered the canceled state. Omitted otherwise.
        • Name
          created_at
          Type
          timestamp
          Description
          When the refund was created.
        • Name
          custom_data
          Type
          object
          View custom_data detailsClick or tap to expand
          Your metadata, returned as string values. Omitted when empty.
        • Name
          failed_at
          Type
          timestamp
          Description
          When the refund entered the failed state. Omitted otherwise.
        • Name
          id
          Type
          string
          Description
          Unique refund identifier with the rf_ prefix.
        • Name
          line_items
          Type
          array
          View line_items attributesClick or tap to expand
          Immutable allocations describing how much is refunded for each order line item.
          • Name
            id
            Type
            string
            Description
            Server-generated refund line-item ID with the rli_ prefix.
          • Name
            order_line_item_id
            Type
            string
            Description
            Strong reference to the original order line item, with the oli_ prefix.
          • Name
            original_amount_paid
            Type
            object
            View original_amount_paid attributesClick or tap to expand
            Amount originally paid for this order line allocation.
            • Name
              currency
              Type
              string
              Description
              Lowercase currency code.
            • Name
              value
              Type
              integer
              Description
              Positive amount in the smallest currency unit.
          • Name
            reason
            Type
            enum
            Description
            Independent reason for refunding this line. Omitted when not provided.
          • Name
            reason_details
            Type
            string
            Description
            Line-specific explanation. Omitted when not provided.
          • Name
            refund_amount
            Type
            object
            View refund_amount attributesClick or tap to expand
            Amount returned for this line.
            • Name
              currency
              Type
              string
              Description
              Lowercase currency code.
            • Name
              value
              Type
              integer
              Description
              Positive amount in the smallest currency unit.
        • Name
          order_id
          Type
          string
          Description
          Paid order covered by this refund, with the or_ prefix.
        • Name
          processing_at
          Type
          timestamp
          Description
          When refund processing began. Omitted until processing starts.
        • Name
          reason
          Type
          enum
          Description
          Overall refund reason, such as item_returned, order_canceled, or requested_by_customer.
        • Name
          reason_details
          Type
          string
          Description
          Overall explanation. Omitted when not provided.
        • Name
          reference
          Type
          string
          Description
          Your reconciliation reference. Omitted when not provided.
        • Name
          status
          Type
          enum
          Description
          Current state: canceled, failed, pending, processing, or succeeded.
        • Name
          succeeded_at
          Type
          timestamp
          Description
          When the refund entered the succeeded state. Omitted otherwise.
        • Name
          total
          Type
          object
          View total attributesClick or tap to expand
          Sum of the requested line-item refund amounts.
          • Name
            currency
            Type
            string
            Description
            Lowercase currency code.
          • Name
            value
            Type
            integer
            Description
            Positive amount in the smallest currency unit.
    • Name
      reference
      Type
      string
      Description

      Public order reference. Omitted when unset.

    • Name
      sealed_at
      Type
      timestamp
      Description

      When the order was finalized and its economic fields were sealed for payment. A qualifying update can reopen it before payment activity starts.

    • shippingobjectPresent when shipping details were supplied. The current order response does not expose nested shipping fields.Click or tap to expand
      • Name
        status
        Type
        string
        Description

        Current order state: preparing, requires_payment, paid, completed, canceled, expired, or unknown.

      POST/orders/create

      Create an order

      Create a new order for a first-time or returning customer, and decide whether to charge it now or later. Product line items can be fully inline, or they can reuse products and prices you already keep in your catalog.

      Available through MCP

      AI clients can use create_order for this operation. Confirmed MCP actions still require explicit form confirmation before Inttegro changes state.

      The MCP create_order tool creates orders from existing customer, product, and price IDs and never executes payment.

      Note

      Clients should treat the published route in this reference as authoritative and should not construct alternative order-creation paths.

      Rules

      • Exactly one of customer_id or customer_data is required.
      • Set execute_payment to true only when a payment method is attached (payment_method_id or payment_method_data). Omit it or pass false to create the order first and charge it later.
      • Orders can contain at most 64 line items.
      • Every line item in the request must use the same currency.
      • Order totals are capped by currency: ghs orders can total up to 100,000 in the currency's smallest unit, and all other supported currencies can total up to 50,000 in the currency's smallest unit.
      • If your business needs higher order limits, contact support before sending larger orders.
      • Product line items support three valid shapes: inline product data, product_id plus explicit price, or product_id plus price_id.
      • When you send product_id, Inttegro snapshots the current catalog product onto the order. Do not combine product_id with inline product fields such as name, type, about, reference, tax_code, or custom_data.
      • When you send product_id, you must also send either price or price_id. Do not send both. Inttegro does not infer the amount from the product's default unit price.
      • Order-line IDs are generated by Inttegro. Do not send a product line's id; any id supplied inside a fee or shipping input is not preserved in the created order.
      • checkout_settings.redirect_url and checkout_settings.cancel_url must be HTTP or HTTPS URLs and must not already contain an order_id query parameter. Inttegro appends the created order ID to the final redirect.
      • When provided, receipt_number is trimmed, must satisfy the same configured length limits as number, and does not need to be unique.

      Required attributes

      • line_itemsarrayCart contents. Provide at least one line item per order.Click or tap to expand
        • Name
          type
          Type
          string
          Description
          Discriminator for each entry: product, fee, or shipping. Matches the schemas in our OpenAPI spec.
        • Name
          product
          Type
          object
          View product attributesClick or tap to expand
          Required when type is product. Use one of three shapes: inline product data, product_id with explicit price, or product_id with price_id.
          • Name
            about
            Type
            string
            Description
            Marketing copy or long-form description. Only used for inline product data.
          • Name
            category
            Type
            string
            Description
            Product category. Only used for inline product data.
          • Name
            custom_data
            Type
            object
            View custom_data detailsClick or tap to expand
            Key-value strings for your own custom data. Only used for inline product data.
          • Name
            name
            Type
            string
            Description
            Customer-facing label for the product. Only used for inline product data.
          • Name
            price
            Type
            object
            View price attributesClick or tap to expand
            Per-unit price. Use this for inline product data or when overriding the amount for a catalog-backed product line item.
            • Name
              currency
              Type
              string
              Description
              Lowercase ISO 4217 currency code. Supported values for order creation are ghs, usd, gbp, eur, and cny.
            • Name
              value
              Type
              integer
              Description
              Amount in the smallest currency unit (pesewas, cents, etc.).
          • Name
            price_id
            Type
            string
            Description
            Existing catalog price to use for this line item. It must belong to the same product referenced by product_id. Do not combine this with price.
          • Name
            product_id
            Type
            string
            Description
            Existing catalog product to snapshot onto the order line item.
          • Name
            quantity
            Type
            integer
            Description
            Number of units being purchased (minimum 1). Required for every product line item shape.
          • Name
            reference
            Type
            string
            Description
            Your SKU or internal reference. Only used for inline product data.
          • Name
            tax_code
            Type
            string
            Description
            Tax classification code for this item. Only used for inline product data.
          • Name
            type
            Type
            string
            Description
            cause, custom, digital, physical, service, or voucher. Only used for inline product data.
        • Name
          fee
          Type
          object
          View fee attributesClick or tap to expand
          Required when type is fee. Use this for service or technology charges.
          • Name
            label
            Type
            string
            Description
            Customer-facing label, e.g., "Service Fee".
          • Name
            tax_code
            Type
            string
            Description
            Tax classification code for this fee.
          • Name
            description
            Type
            string
            Description
            Explain why the fee is being charged.
          • Name
            amount
            Type
            object
            View amount attributesClick or tap to expand
            Fee amount (uses the same Money schema).
            • Name
              currency
              Type
              string
              Description
              Lowercase ISO 4217 currency code.
            • Name
              value
              Type
              integer
              Description
              Amount in the smallest currency unit.
        • Name
          shipping
          Type
          object
          View shipping attributesClick or tap to expand
          Required when type is shipping. Captures fulfillment charges.
          • Name
            tax_code
            Type
            string
            Description
            Tax classification code for the shipping fee.
          • Name
            fee
            Type
            object
            View fee attributesClick or tap to expand
            Shipping cost (Money schema).
            • Name
              currency
              Type
              string
              Description
              Lowercase ISO 4217 currency code.
            • Name
              value
              Type
              integer
              Description
              Amount in the smallest currency unit.
      • customer_dataobjectInline customer profile for first-time buyers. Mutually exclusive with customer_id.Click or tap to expand
        • Name
          name
          Type
          string
          Description
          Full customer name exactly as it should appear on invoices and receipts.
        • Name
          email_address
          Type
          string
          Description
          Primary email—used for invoices, receipts, and payment notifications.
        • Name
          phone_number
          Type
          string
          Description
          Phone number in international format so we can deliver OTPs or status updates.
        • Name
          custom_data
          Type
          object
          View custom_data detailsClick or tap to expand
          Free-form key/value strings for attaching custom attributes (e.g., customer segment).
      • Name
        customer_id
        Type
        string
        Description

        Reference an existing customer. Mutually exclusive with customer_data.

      Product line item shapes

      Use the shape that matches how you manage your catalog and pricing:

      Inline product data

      {
      "type": "product",
      "product": {
      "name": "Utility Sneakers",
      "type": "physical",
      "quantity": 1,
      "price": { "currency": "ghs", "value": 20000 }
      }
      }

      Catalog product with explicit price

      {
      "type": "product",
      "product": {
      "product_id": "prod_abc123xyz",
      "quantity": 2,
      "price": { "currency": "usd", "value": 4100 }
      }
      }

      Catalog product with saved catalog price

      {
      "type": "product",
      "product": {
      "product_id": "prod_abc123xyz",
      "price_id": "pr_xyz789",
      "quantity": 2
      }
      }

      When you reference product_id, Inttegro snapshots the product data onto the order at creation time. Later edits to the catalog product or price do not rewrite an order that already exists. You can also mix catalog-backed and inline product line items in the same order, as long as every line item uses the same currency.

      The complete HTTP examples below use inline product data. If you already keep products and prices in your catalog, replace the product payload with either catalog-backed shape shown above.

      Optional attributes

      • request_metaobjectRequest-specific controls that do not change the order being created.Click or tap to expand
        • Name
          idempotency_key
          Type
          string
          Description
          Optional request key for this logical order creation.
      • Name
        payment_method_id
        Type
        string
        Description

        ID of a saved payment method to charge. Only works with customer_id—the method must belong to that customer.

      • Name
        receipt_number
        Type
        string
        Description

        Optional merchant-supplied receipt reference for reconciliation. Inttegro trims whitespace, applies the same configured length validation used for number, and does not enforce uniqueness.

      • Name
        statement_descriptor
        Type
        string
        Description

        Exact descriptor shown on the customer's bank or mobile money statement. Mutually exclusive with statement_descriptor_prefix.

      • Name
        statement_descriptor_prefix
        Type
        string
        Description

        Static prefix, between 2 and 10 characters, used to build the descriptor as prefix*order_id. Inttegro appends enough characters from the generated order ID to fit the final descriptor limit.

      • payment_method_dataobjectInline payment details for new payment instruments.Click or tap to expand
        • Name
          type
          Type
          enum
          Description
          Currently only mobile_money is supported for inline collection.
        • Name
          mobile_money
          Type
          object
          View mobile_money attributesClick or tap to expand
          Required when type is mobile_money. Provides wallet details.
          • Name
            network
            Type
            enum
            Description
            Wallet network: airtel, mtn, telecel, or vodafone.
          • Name
            account_number
            Type
            string
            Description
            Subscriber MSISDN in international format (e.g., +23354...).
      • Name
        execute_payment
        Type
        boolean
        Description

        Whether to charge the order immediately. Defaults to false—you'll call /orders/pay later.

      • Name
        finalize
        Type
        boolean
        Description

        Set to true to seal the order and generate its hosted invoice. When omitted or false, an order without executable payment details remains a draft and its response omits invoice.

      • invoice_settingsobjectOptional customer-facing invoice content.Click or tap to expand
        • Name
          custom_data
          Type
          object
          View custom_data detailsClick or tap to expand
          String key-value data attached to the invoice.
        • Name
          memo
          Type
          string
          Description
          Customer-facing invoice note.
        • Name
          number
          Type
          string
          Description
          Invoice number.
      • Name
        payment_due_after
        Type
        timestamp
        Description

        RFC 3339 timestamp for when payment is due. The order response exposes it as payment_due_at when set.

      • custom_dataobjectClick or tap to expand

        Arbitrary string key-value pairs for application-specific needs. Attach internal order IDs, fulfillment workflows, tracking identifiers, or any metadata your system requires. Maximum size when serialized: 25 KB. See the Custom Data guide for best practices.

      • checkout_settingsobjectCheckout configuration for this order. Strongly recommended to provide both redirect_url and cancel_url for a delightful customer experience.Click or tap to expand
        • Name
          redirect_url
          Type
          string
          Description
          URL where customers land after completing payment. Include order tracking parameters to show order status and next steps.
        • Name
          cancel_url
          Type
          string
          Description
          URL where customers land if they abandon checkout without paying. Use this to show incomplete order details or offer alternative payment methods.
      • billing_detailsobjectContact info for invoicing and receipt delivery.Click or tap to expand
        • Name
          name
          Type
          string
          Description
          Billing contact name.
        • Name
          email_address
          Type
          string
          Description
          Billing email address.
        • Name
          phone_number
          Type
          string
          Description
          Billing phone number.
        • Name
          address
          Type
          object
          View address attributesClick or tap to expand
          Optional postal address for invoices.
          • Name
            name
            Type
            string
            Description
            Recipient name if different from customer.
          • Name
            phone_number
            Type
            string
            Description
            Contact phone for delivery or verification.
          • Name
            line1
            Type
            string
            Description
            Street address line 1.
          • Name
            line2
            Type
            string
            Description
            Street address line 2 (optional).
          • Name
            city
            Type
            string
            Description
            City or town.
          • Name
            region
            Type
            string
            Description
            State, province, or region.
          • Name
            country
            Type
            string
            Description
            Country name.
          • Name
            post_code
            Type
            string
            Description
            Postal or ZIP code.
      • shippingobjectOptional shipping destination for physical fulfillment.Click or tap to expand
        • Name
          address
          Type
          object
          View address attributesClick or tap to expand
          Where the package should go. Same schema as Address in the API.
          • Name
            name
            Type
            string
            Description
            Recipient name.
          • Name
            phone_number
            Type
            string
            Description
            Phone number for delivery coordination.
          • Name
            line1
            Type
            string
            Description
            Street address line 1.
          • Name
            line2
            Type
            string
            Description
            Street address line 2 (optional).
          • Name
            city
            Type
            string
            Description
            City or town.
          • Name
            region
            Type
            string
            Description
            State, province, or region.
          • Name
            country
            Type
            string
            Description
            Country name.
          • Name
            post_code
            Type
            string
            Description
            Postal or ZIP code.
      • payout_settingsobjectOrder-specific payout configuration. Overrides your application-level payout settings for this order—useful for marketplace scenarios where different orders route to different sellers.Click or tap to expand
        • Name
          destination
          Type
          object
          View destination attributesClick or tap to expand
          Where funds from this order should be paid out.
          • Name
            financial_account_id
            Type
            string
            Description
            ID of an existing financial account to receive the payout. The account must exist and have push capability enabled. Create financial accounts via the dashboard or [Financial Accounts API](/financial-accounts).
        • Name
          enable_fx
          Type
          boolean
          Description
          Optional compatibility flag. Omit it or set it to false; true is rejected because cross-currency payouts are not currently available.

      Request

      POST/orders/create
      curl https://api.inttegro.com/orders/create \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "request_meta": {
      "idempotency_key": "order_checkout_ORDER-NUMBER-2"
      },
      "number": "ORDER-NUMBER-2",
      "receipt_number": "RCPT-NUMBER-2",
      "statement_descriptor": "STMTDESC",
      "execute_payment": true,
      "finalize": true,
      "checkout_settings": {
      "redirect_url": "https://google.com/thank-you",
      "cancel_url": "https://google.com/order-cancelled"
      },
      "customer_data": {
      "name": "Customer Name",
      "email_address": "[email protected]",
      "phone_number": "+233242058841"
      },
      "payment_method_data": {
      "type": "mobile_money",
      "mobile_money": {
      "network": "mtn",
      "account_number": "0242057831"
      }
      },
      "line_items": [
      {
      "type": "product",
      "product": {
      "type": "physical",
      "name": "Utility Sneakers",
      "quantity": 1,
      "price": {
      "currency": "ghs",
      "value": 20000
      }
      }
      }
      ],
      "billing_details": {
      "name": "Customer Name",
      "email_address": "[email protected]",
      "phone_number": "+233242058841",
      "address": {
      "name": "Customer Name",
      "phone_number": "+233242058841",
      "line1": "23 Adenta High Street",
      "town": "Accra",
      "region": "Greater Accra",
      "country": "GH"
      }
      }
      }'

      Response

      SDK versionv8.2.0
      OrderResponse {
      order: {},
      }
      POST/orders/pay

      Pay for an order

      Start or retry payment on an existing order without recreating it. This operation finalizes an open draft before collection. Five ways to use it:

      • Already has a payment method: Just send order_id—we'll charge the attached method.
      • Swap to a different saved method: Send order_id + payment_method_id.
      • Use a new payment method once: Send order_id + payment_method_data.
      • Use and save a new method: Add save_payment_method: true and include payment_method_data.billing_details.
      • Offline payment: Send order_id + paid_out_of_band: true—marks the payment as received outside Inttegro (cash, bank transfer, check). Complete the order separately when fulfillment is done.

      Rules

      • Pass either payment_method_id, payment_method_data, or paid_out_of_band, never multiple.
      • paid_out_of_band is mutually exclusive with payment method parameters.
      • Any payment_method_id must belong to the order's customer.
      • save_payment_method affects only inline payment_method_data; it defaults to false.
      • The order must be preparing or requires_payment. Paid, completed, canceled, expired, and unknown orders are not payable.
      • A successful response can still require customer action. Inspect order.payment.status and order.payment.next_action; do not infer success from HTTP 200 alone.

      Required attributes

      • Name
        order_id
        Type
        string
        Description

        ID of the order to pay.

      Optional attributes

      • Name
        payment_method_id
        Type
        string
        Description

        ID of a saved payment method belonging to this order's customer.

      • payment_method_dataobjectNew payment method details to charge.Click or tap to expand
        • Name
          type
          Type
          enum
          Description
          Currently only mobile_money is accepted when supplying inline details.
        • Name
          mobile_money
          Type
          object
          View mobile_money attributesClick or tap to expand
          Required when type is mobile_money. Mirrors the MobileMoney schema.
          • Name
            network
            Type
            enum
            Description
            Wallet network: airtel, mtn, telecel, or vodafone.
          • Name
            account_number
            Type
            string
            Description
            Wallet MSISDN in international or local format (we normalize it).
      • Name
        paid_out_of_band
        Type
        boolean
        Description

        Set to true when payment was received outside Inttegro (cash, bank transfer, check). Marks the payment as paid offline and completes the payment immediately. Mutually exclusive with payment_method_id and payment_method_data. Defaults to false.

      • Name
        payment_method_types
        Type
        array
        Description

        Allowed payment-method types for this attempt. Each value must be supported for the application.

      • Name
        save_payment_method
        Type
        boolean
        Description

        Save inline payment details for future use. When true, payment_method_data.billing_details is required and must include name and address.country.

      Request

      POST/orders/pay
      curl https://api.inttegro.com/orders/pay \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "order_id": "or_JoPtqOmsjgZKwkPvqTrqGsopu07wfC7ttoWqmfwt",
      "payment_method_data": {
      "type": "mobile_money",
      "mobile_money": {
      "network": "mtn",
      "account_number": "0544998605"
      }
      }
      }'

      Response

      SDK versionv8.2.0
      OrderResponse {
      order: {},
      }
      POST/orders/confirm_payment

      Confirm a payment

      Submit the confirmation token for a specific payment and confirmation request. Read payment_id from order.payment.id and confirmation_id from order.payment.next_action.confirm_payment.request.id in the preceding create, pay, or request-confirmation response. The response always uses the { "order": ... } envelope; an actionable error can include both order and error.

      Required attributes

      • Name
        confirmation_id
        Type
        string
        Description

        ID of the confirmation request that issued the token.

      • Name
        order_id
        Type
        string
        Description

        ID of the order being paid.

      • Name
        payment_id
        Type
        string
        Description

        ID of the payment attached to the order.

      • Name
        token
        Type
        string
        Description

        Confirmation token supplied by the customer.

      Request

      POST/orders/confirm_payment
      curl https://api.inttegro.com/orders/confirm_payment \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "confirmation_id": "otc_req_8Ks2Vn",
      "order_id": "or_JoPtqOmsjgZKwkPvqTrqGsopu07wfC7ttoWqmfwt",
      "payment_id": "py_3deNYy",
      "token": "302673"
      }'

      Response

      SDK versionv8.2.0
      OrderResponse {
      order: {},
      }
      POST/orders/request_confirmation

      Request confirmation

      Some payment methods—especially mobile money—require the customer to confirm with an OTP. Call this to send (or resend) the confirmation token.

      Request

      POST/orders/request_confirmation
      curl https://api.inttegro.com/orders/request_confirmation \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "order_id": "or_kAVwBsk6EhQVv2YBUhYAqMf0lktEoQ0S7ZR8y2xi"
      }'

      Response

      SDK versionv8.2.0
      OrderResponse {
      order: {},
      }
      POST/orders/update

      Update an order

      Update mutable fields on an existing order and get back the same response shape as Lookup an order. Use this endpoint for three distinct cases: revising an open draft, reopening a sealed order so it becomes editable again, or applying changes and resealing in the same request.

      What you can change

      • Replace the full line_items collection
      • Change the order number
      • Set or change the order receipt_number
      • Change the payment statement_descriptor
      • Attach a different saved payment_method_id
      • Tokenize and attach new inline payment_method_data
      • Remove the attached payment method with clear_payment_method
      • Replace order-level custom_data
      • Replace or clear customer-facing invoice_settings
      • Explicitly open, seal, or reseal the order with finalize

      Rules

      • Include at least one mutable field besides order_id.
      • line_items is a full replacement field, not a sparse merge, and it cannot be empty when provided.
      • If you replace line_items, the updated order must stay within the current order limits: at most 64 line items, up to 100,000 for ghs, and up to 50,000 for all other supported currencies. Contact support if you need these limits increased.
      • payment_method_id, payment_method_data, and clear_payment_method are mutually exclusive.
      • payment_method_data currently supports only mobile_money for order updates.
      • Completed, paid, canceled, and expired orders cannot be updated.
      • custom_data is metadata-only. Updating it does not require reopen / reseal by itself.
      • Omit receipt_number to leave it unchanged. When provided, Inttegro trims it and requires a different non-empty value within the same configured length limits as number. It cannot be cleared once set, and receipt numbers are not unique.
      • If payment confirmation or execution has already started, Inttegro rejects edits that change economics, payment configuration, or require reopening the order.
      • When mutating seal-sensitive fields on a sealed order, you must provide finalize explicitly:
        • finalize: false reopens the order and leaves it editable.
        • finalize: true applies the changes and seals the order again in the same request.

      Required attributes

      • Name
        order_id
        Type
        string
        Description

        The unique identifier of the order to update.

      Optional attributes

      • Name
        clear_payment_method
        Type
        boolean
        Description

        Clears the currently attached payment method. Mutually exclusive with payment_method_id and payment_method_data.

      • custom_dataobjectClick or tap to expand

        Replacement order-level custom data. Provide an empty object to clear the current value.

      • Name
        finalize
        Type
        boolean
        Description

        Explicit seal decision. Use false to reopen a sealed order and leave it editable, or true to seal or reseal the order after applying the requested changes.

      • invoice_settingsobjectFull replacement for customer-facing invoice content. Send an empty object to clear the current settings.Click or tap to expand
        • Name
          custom_data
          Type
          object
          View custom_data detailsClick or tap to expand
          String key-value data attached to the invoice.
        • Name
          memo
          Type
          string
          Description
          Customer-facing invoice note.
        • Name
          number
          Type
          string
          Description
          Invoice number.
      • Name
        line_items
        Type
        array
        Description

        Full replacement for the order's current line items. Use the same line-item schema as Create an order.

      • Name
        number
        Type
        string
        Description

        Replacement order number.

      • payment_method_dataobjectNew payment method details to tokenize and attach to the order.Click or tap to expand
        • Name
          billing_details
          Type
          object
          View billing_details detailsClick or tap to expand
          Required when providing inline payment method details. Must include name and address.country.
        • Name
          mobile_money
          Type
          object
          View mobile_money detailsClick or tap to expand
          Required when type is mobile_money. Provide network and account_number.
        • Name
          type
          Type
          string
          Description
          Currently only mobile_money is supported for order updates.
      • Name
        payment_method_id
        Type
        string
        Description

        ID of a saved payment method to attach to the order.

      • Name
        receipt_number
        Type
        string
        Description

        Replacement receipt reference. Must be a different non-empty value when provided.

      • Name
        statement_descriptor
        Type
        string
        Description

        Replacement payment statement descriptor for the order's payment.

      • Name
        statement_descriptor_prefix
        Type
        string
        Description

        Static prefix, between 2 and 10 characters, used to build the replacement descriptor as prefix*order_id. Mutually exclusive with statement_descriptor.

      Response shape

      • Returns the same order object as Lookup an order.
      • If finalize: false reopens a sealed order, sealed_at and invoice are cleared until the order is sealed again.
      • If finalize: true seals or reseals the order, Inttegro returns the regenerated invoice and the updated payment amount.
      • The returned order object includes top-level custom_data when present.
      • The returned order object includes top-level receipt_number when set.

      Request

      POST/orders/update
      curl https://api.inttegro.com/orders/update \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "order_id": "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt",
      "receipt_number": "RCPT-2025-041-REV1",
      "line_items": [
      {
      "type": "product",
      "product": {
      "name": "Quarterly support retainer",
      "type": "digital",
      "price": {
      "currency": "ghs",
      "value": 15000
      },
      "quantity": 1
      }
      },
      {
      "type": "fee",
      "fee": {
      "label": "Service fee",
      "amount": {
      "currency": "ghs",
      "value": 500
      }
      }
      }
      ],
      "statement_descriptor": "ORDER REVISION",
      "custom_data": {
      "channel": "dashboard",
      "edited_by": "ops"
      },
      "finalize": true
      }'

      Response

      SDK versionv8.2.0
      OrderResponse {
      order: {},
      }
      POST/orders/finalize

      Finalize an order

      Finalize a draft to seal its line items and total for payment. The response exposes the hosted invoice URLs you can share with the customer.

      What finalization means

      Finalizing an order is the transition from preparing to requires_payment. Before finalization, you can replace line items and change supported order or payment settings. After finalization:

      • Line items freeze: No additions, removals, or quantity changes unless you later reopen the order with Update an order
      • Totals lock: The amount due becomes fixed until the order is reopened
      • Invoice generates: A viewable invoice with web and PDF formats
      • Checkout activates: The hosted payment page becomes accessible
      • Payment readiness: The order can accept payment attempts

      Use this endpoint when you've finished building the cart and want to present it to the customer for payment. The response includes invoice URLs and the sealed_at timestamp marking when the order was finalized. Finalizing an already sealed order is safe and leaves the existing state unchanged.

      Required attributes

      • Name
        order_id
        Type
        string
        Description

        The unique identifier of the order to finalize.

      Request

      POST/orders/finalize
      curl https://api.inttegro.com/orders/finalize \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "order_id": "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt"
      }'

      Response

      SDK versionv8.2.0
      OrderResponse {
      order: {},
      }
      POST/orders/send_invoice

      Send an invoice

      Send the hosted invoice link for an existing order. Inttegro uses the order customer's contact details: if the customer has both phone and email, it sends SMS and email; otherwise it sends to whichever contact method exists.

      The order must have a hosted invoice before delivery. Finalize draft orders first with Finalize an order. If a sealed order is missing its invoice, Inttegro may generate the invoice before sending.

      Available through MCP

      AI clients can use send_order_invoice for this operation. Confirmed MCP actions still require explicit form confirmation before Inttegro changes state.

      Request body

      • Name
        order_id
        Type
        string
        Required
        required
        Description

        The order whose hosted invoice link should be sent.

      Response

      Returns the current order plus a delivery object. If one channel succeeds and another fails, the endpoint may return HTTP 207 with both sent_channels and failed_channels.

      • deliveryobjectDelivery result for the hosted invoice link.Click or tap to expand
        • Name
          deliveries
          Type
          array
          View deliveries attributesClick or tap to expand
          Accepted message sends.
          • Name
            channel
            Type
            string
            Description
            sms or email.
          • Name
            chime_id
            Type
            string
            Description
            Created delivery ID.
        • Name
          document_kind
          Type
          string
          Description
          invoice.
        • Name
          document_url
          Type
          string
          Description
          Hosted invoice URL sent to the customer.
        • Name
          failed_channels
          Type
          array
          Description
          Channels that failed to send.
        • Name
          failures
          Type
          array
          View failures attributesClick or tap to expand
          Failed channel details.
          • Name
            channel
            Type
            string
            Description
            sms or email.
          • Name
            error
            Type
            string
            Description
            Delivery error.
        • Name
          sent_channels
          Type
          array
          Description
          Channels accepted for delivery.

      Invoice delivery can return draft_mode_order_has_no_invoice, order_delivery_auth_failed, order_delivery_contact_missing, order_delivery_failed, or order_not_found.

      Request

      POST/orders/send_invoice
      curl https://api.inttegro.com/orders/send_invoice \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: send-invoice-or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt" \
      -d '{
      "order_id": "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt"
      }'

      Response

      SDK versionv8.2.0
      Response {
      order: {},
      delivery: {},
      }
      POST/orders/send_receipt

      Send a receipt

      Send the hosted receipt link for an existing paid order. Inttegro uses the same fan-out rules as invoice delivery: SMS and email when both customer contacts exist, otherwise whichever contact method is available.

      Receipt delivery is available only after the order is paid. The link points to the hosted receipt path, such as /invoices/{order_id}/receipt; do not use the invoice PDF path for receipt delivery.

      Available through MCP

      AI clients can use send_order_receipt for this operation. Confirmed MCP actions still require explicit form confirmation before Inttegro changes state.

      Request body

      • Name
        order_id
        Type
        string
        Required
        required
        Description

        The paid order whose hosted receipt link should be sent.

      Response

      Returns the current order plus a delivery object. If one channel succeeds and another fails, the endpoint may return HTTP 207 with both sent_channels and failed_channels.

      • deliveryobjectDelivery result for the hosted receipt link.Click or tap to expand
        • Name
          deliveries
          Type
          array
          View deliveries attributesClick or tap to expand
          Accepted message sends.
          • Name
            channel
            Type
            string
            Description
            sms or email.
          • Name
            chime_id
            Type
            string
            Description
            Created delivery ID.
        • Name
          document_kind
          Type
          string
          Description
          receipt.
        • Name
          document_url
          Type
          string
          Description
          Hosted receipt URL sent to the customer.
        • Name
          failed_channels
          Type
          array
          Description
          Channels that failed to send.
        • Name
          failures
          Type
          array
          View failures attributesClick or tap to expand
          Failed channel details.
          • Name
            channel
            Type
            string
            Description
            sms or email.
          • Name
            error
            Type
            string
            Description
            Delivery error.
        • Name
          sent_channels
          Type
          array
          Description
          Channels accepted for delivery.

      Receipt delivery can return order_delivery_auth_failed, order_delivery_contact_missing, order_delivery_failed, order_not_found, or order_receipt_missing.

      Request

      POST/orders/send_receipt
      curl https://api.inttegro.com/orders/send_receipt \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: send-receipt-or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt" \
      -d '{
      "order_id": "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt"
      }'

      Response

      SDK versionv8.2.0
      Response {
      order: {},
      delivery: {},
      }
      POST/orders/complete

      Complete an order

      Mark an order as completed when the customer has received their items or you've fulfilled the service. This transitions the order to the completed state, indicating the transaction is fully satisfied.

      When to complete orders

      Complete an order when:

      • Physical goods: Items have been delivered or picked up
      • Digital products: Files have been downloaded or access granted
      • Services: Work has been performed and accepted
      • Out-of-band payments: Cash, check, or bank transfer received offline

      The order must have a successful payment before completion, unless you're marking an offline payment with paid_out_of_band: true.

      Out-of-band payments

      If the customer paid outside Inttegro (cash, bank transfer, check), set paid_out_of_band: true. This marks both the payment and order as complete in a single operation. The payment gets marked as paid offline before the order is completed.

      Use this for:

      • Cash on delivery scenarios
      • Bank transfer confirmations
      • Check payments that cleared
      • Any payment method outside the Inttegro platform

      Required attributes

      • Name
        order_id
        Type
        string
        Description

        The unique identifier of the order to complete.

      Optional attributes

      • Name
        paid_out_of_band
        Type
        boolean
        Description

        Set to true if payment was received outside Inttegro (cash, bank transfer, check). When true, the payment is marked as paid offline before completing the order. Defaults to false, which requires the payment to already be in paid status.

      Request

      POST/orders/complete
      curl https://api.inttegro.com/orders/complete \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "order_id": "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt"
      }'

      Response

      SDK versionv8.2.0
      OrderResponse {
      order: {},
      }
      POST/orders/lookup

      Lookup an order

      Fetch the current order and nested payment state by ID. A missing or inaccessible order returns HTTP 400 with error code order_not_found; use the error object rather than checking for 404.

      Available through MCP

      AI clients can use get_order, prepare_order_payment, get_refund_options, pay_order or create_refund for this operation. Confirmed MCP actions still require explicit form confirmation before Inttegro changes state.

      Required attributes

      • Name
        order_id
        Type
        string
        Description

        Order ID from the creation response.

      Request

      POST/orders/lookup
      curl https://api.inttegro.com/orders/lookup \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "order_id": "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt"
      }'

      Response

      SDK versionv8.2.0
      OrderResponse {
      order: {},
      }
      POST/orders/cancel

      Cancel an order

      Cancel an unpaid, unfulfilled order. Cancellation moves the order to canceled and records the time of the transition. The reason and execute_refund inputs are retained as cancellation evidence; they are not returned as order fields.

      Paid, completed, expired, and already canceled orders cannot be canceled. Cancellation does not currently void, reverse, or refund an attached payment. If money moved, use the refund flow separately and verify its result before treating funds as returned.

      Warning

      execute_refund is accepted for contract compatibility but currently records intent only. Setting it to true does not execute a refund.

      Request attributes

      • Name
        execute_refund
        Type
        boolean
        Description

        Records that refund execution was requested as part of the cancellation. It defaults to false and does not currently move funds; use the refund flow separately.

      • Name
        order_id
        Type
        string
        Description

        The typed ID of the order to cancel (e.g. or_abc123).

      • Name
        reason
        Type
        string
        Description

        Optional free-text explanation for the cancellation. Recorded on the order for audit purposes. Defaults to "unknown" if not provided. Common values: "customer_request", "fraud", "inventory_unavailable", "duplicate".

      Request

      POST/orders/cancel
      curl https://api.inttegro.com/orders/cancel \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "order_id": "or_kAVwBsk6EhQVv2YBUhYAqMf0lktEoQ0S7ZR8y2xi",
      "reason": "customer_request",
      "execute_refund": false
      }'

      Response

      SDK versionv8.2.0
      OrderResponse {
      order: {},
      }
      POST/orders/refund

      Create a refund from an order

      POST /orders/refund is a compatibility alias for Create a refund. It accepts the same request attributes, applies the same validation, and returns the same { "refund": { ... } } envelope. Prefer /refunds/create for new integrations.

      Use this alias only when an existing integration already treats refunds as an order operation. Choose one URL for a logical refund and use that same URL, idempotency key, and body for every retry.

      Request attributes

      • line_itemsobjectrequiredOne to 64 order line-item allocations to refund. Each order line item can appear only once.Click or tap to expand
        • Name
          order_line_item_id
          Type
          string
          Required
          required
          Description
          Order line-item ID with the oli_ prefix. It must belong to order_id.
        • Name
          reason
          Type
          enum
          Description
          Optional reason specific to this line. It is independent of the overall refund reason.
        • Name
          reason_details
          Type
          string
          Description
          Optional line-specific explanation, up to 2,048 characters. Requires a line-level reason and is required when that reason is custom.
        • Name
          refund_amount
          Type
          object
          Required
          required
          View refund_amount attributesClick or tap to expand
          Positive amount to refund for this line. It cannot exceed the remaining refundable amount.
          • Name
            currency
            Type
            string
            Required
            required
            Description
            Currency code. It is normalized to lowercase and must match the order line item.
          • Name
            value
            Type
            integer
            Required
            required
            Description
            Amount in the smallest currency unit; minimum 1.
      • Name
        order_id
        Type
        string
        Required
        required
        Description

        Paid order to refund, with the or_ prefix.

      • Name
        reason
        Type
        enum
        Required
        required
        Description

        Overall refund reason. Use one of the supported values in the Refund reasons list.

      • Name
        reason_details
        Type
        string
        Description

        Optional overall explanation, up to 2,048 characters. Required when reason is custom.

      • Name
        reference
        Type
        string
        Description

        Optional non-empty reconciliation reference, up to 256 characters.

      • custom_dataobjectClick or tap to expand

        Optional metadata for reconciliation. Stored values are returned as strings.

      Response

      Returns HTTP 200 with the new pending refund. Poll Lookup a refund when your workflow needs the final result.

      Request

      POST/orders/refund
      curl --fail-with-body https://api.inttegro.com/orders/refund \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: refund-return-1042" \
      -d '{
      "line_items": [{
      "order_line_item_id": "oli_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN",
      "refund_amount": { "currency": "ghs", "value": 2500 }
      }],
      "order_id": "or_0123456789abcdefghijklmnopqrstuvwxyzABCD",
      "reason": "item_returned"
      }'

      Response

      SDK versionv8.2.0
      RefundResponse {
      refund: {},
      }
      POST/orders/page

      Page through orders

      Retrieve a paginated list of your most recent orders. Orders are sorted by initiated_at in descending order, so page 0 contains the freshest activity and subsequent pages step back in time.

      Provide customer_id to scope the page to a single customer. Omit customer_id to browse all recent orders.

      page_size is required. page_number is zero-based, defaults to 0, and accepts values from 0 through 10. An unknown or inaccessible customer filter returns HTTP 400; a temporary page lookup failure returns 503 and can be retried unchanged.

      Available through MCP

      AI clients can use list_orders for this operation. MCP read tools return minimized business data and do not change Inttegro state.

      Required attributes

      • Name
        page_size
        Type
        integer
        Description

        Number of orders requested per page. Must be between 1 and 256.

      Optional attributes

      • Name
        customer_id
        Type
        string
        Description

        Optional customer ID to scope the page to one buyer's orders only.

      • Name
        page_number
        Type
        integer
        Description

        Zero-based page index from 0 through 10. Defaults to 0 when omitted.

      Response shape

      • Top level page object includes number, size, and an orders array.
      • Each array entry uses the complete shared order object, not a condensed summary.
      • Orders created through a purchase intent include created_from attribution when available. Public API-key requests cannot filter pages by that attribution.
      • Optional fields are omitted when unavailable. The API does not add payment.receipt or line_item_group.products_count summary fields.
      • When you filter by customer_id, every returned order belongs to that customer.

      Request

      POST/orders/page
      curl https://api.inttegro.com/orders/page \
      -H "Authorization: Bearer $INTTEGRO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "page_number": 0,
      "page_size": 25
      }'

      Response

      SDK versionv8.2.0
      PageResponse {
      page: {},
      }