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.
The order object
Every single-order endpoint returns an order envelope. Page returns the same object inside orders. Optional fields are omitted until they exist; treat omission as absence, not as an empty value. When an order has refunds, 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 an empty or null refunds value.
Properties
- Name
canceledAt- Type
Date- Description
When the order was canceled. Omitted until cancellation.
checkoutSettingsCheckoutSettingsOptional hosted-checkout redirects. Omitted when not configured.Click or tap to expand- Name
cancelUrl- Type
string- Description
- URL to redirect customers who cancel or abandon payment. Strongly recommended to handle cancellations gracefully.
- Name
redirectUrl- Type
string- Description
- URL to redirect customers after successful payment. Strongly recommended for a seamless customer experience.
- Name
completedAt- Type
Date- Description
When the order was completed. Omitted until completion.
createdFromOrderCreatedFromOrigin attribution for an order created from another public resource. Omitted for direct API-created orders.Click or tap to expand- Name
resourceId- Type
string- Description
- ID of the originating resource, such as a purchase intent.
- Name
resourceType- Type
OrderCreatedFromResourceType- Description
- Originating resource type. Currently
Inttegro.OrderCreatedFromResourceTypes.PurchaseIntentwhen present.
- Name
source- Type
string- Description
- Checkout source recorded by Inttegro. Omitted when unavailable.
customDataCustomData | nullClick or tap to expandYour string key-value data. Omitted when empty.
customerOrderCustomerCustomer who placed this order.Click or tap to expand- Name
billingAddress- Type
OrderAddress
View billing_address detailsClick or tap to expand
Customer billing address. Omitted when unavailable.- Name
emailAddress- 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
phoneNumber- Type
string- Description
- Phone number for OTP and notifications.
- Name
shippingAddress- Type
OrderAddress
View shipping_address detailsClick or tap to expand
Customer shipping address. Omitted when unavailable.
- Name
expiresAt- Type
Date- 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
initiatedAt- Type
Date- Description
When we started processing this order.
invoiceSettingsInvoiceSettingsCustomer-facing invoice content. Omitted when not configured.Click or tap to expand- Name
customData- Type
CustomData
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.
lineItemGroupLineItemGroupCart contents and totals.Click or tap to expand- Name
lineItems- Type
LineItem[]
View line_items attributesClick or tap to expand
Array of products, fees, and shipping charges—each with alineItemGroup.lineItems[].typediscriminator.- Name
discount- Type
DiscountLineItem
View discount detailsClick or tap to expand
Discount details whenlineItemGroup.lineItems[].typeisdiscount. Reserved for orders that contain a discount line.- Name
fee- Type
FeeLineItem
View fee attributesClick or tap to expand
Fee details whenlineItemGroup.lineItems[].typeisInttegro.LineItemTypes.Fee—covers service charges, convenience fees, etc.- 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
taxCode- Type
string- Description
- Tax classification code for this fee.
- Name
product- Type
ProductLineItem
View product attributesClick or tap to expand
Product details whenlineItemGroup.lineItems[].typeisInttegro.LineItemTypes.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
customData- Type
CustomData
View custom_data detailsClick or tap to expand
Your own key-value string pairs—exactly the same shape as thelineItemGroup.lineItems[].product.customDatafield 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
priceId- Type
string- Description
- Catalog price copied into this line. Omitted for inline or explicitly priced products.
- Name
productId- Type
string- Description
- Catalog product copied into this line. Omitted for inline products.
- Name
quantity- Type
number- Description
- How many units the customer is purchasing.
- Name
reference- Type
string- Description
- Your SKU or internal product reference.
- Name
taxCode- Type
string- Description
- Tax classification code for this item.
- Name
type- Type
ProductType- Description
- Product type:
Inttegro.ProductTypes.Cause,Inttegro.ProductTypes.Custom,Inttegro.ProductTypes.Digital,Inttegro.ProductTypes.Physical,Inttegro.ProductTypes.Service, orInttegro.ProductTypes.Voucher.
- Name
shipping- Type
ShippingLineItem
View shipping attributesClick or tap to expand
Shipping details whenlineItemGroup.lineItems[].typeisInttegro.LineItemTypes.Shipping.- Name
type- Type
'product' | 'fee' | 'shipping' | 'discount'- Description
- Line item type:
discount,Inttegro.LineItemTypes.Fee,Inttegro.LineItemTypes.Product, orInttegro.LineItemTypes.Shipping.
- Name
number- Type
string- Description
Human-friendly reference like
ORDER-1234for your internal systems and customer communication.
paymentPaymentPayment collection record tied to this order. Its status is independent from fulfillment state.Click or tap to expandView balance_transaction attributesClick or tap to expand
Ledger entry available after money movement is recorded. Its type isInttegro.BalanceTransactionTypes.PaymentorInttegro.BalanceTransactionTypes.Refund, with exactly one matching strong reference.- Name
availableAt- Type
Date- Description
- When the funds become available for payout. Omitted until known.
- Name
claimedAt- Type
Date- Description
- When the funds were claimed for payout. Omitted until claimed.
- Name
createdAt- Type
Date- Description
- When the balance transaction was created.
- Name
id- Type
string- Description
- Balance transaction ID.
- Name
orderId- Type
string- Description
- Order that created this balance transaction.
- Name
paidAt- Type
Date- Description
- When the payout was completed. Omitted until paid.
- Name
paymentId- Type
string- Description
- Strong source reference present when
payment.balanceTransaction.typeisInttegro.BalanceTransactionTypes.Payment. Omitted forInttegro.BalanceTransactionTypes.Refund.
- Name
payoutId- Type
string- Description
- Payout that will disburse the funds. Omitted until scheduled.
- Name
refundId- Type
string- Description
- Strong source reference present when
payment.balanceTransaction.typeisInttegro.BalanceTransactionTypes.Refund. Omitted forInttegro.BalanceTransactionTypes.Payment.
- Name
type- Type
BalanceTransactionType | 'payment' | BalanceTransactionType | 'refund' | BalanceTransactionType | 'payout'- Description
- Semantic source of the entry:
Inttegro.BalanceTransactionTypes.PaymentorInttegro.BalanceTransactionTypes.Refund. This is a cause, not a direction indicator.
View billing_details detailsClick or tap to expand
Billing owner details associated with the payment method. Omitted when unavailable.- Name
canceledAt- Type
Date- Description
- When payment was canceled. Omitted until canceled.
- Name
customer- Type
PaymentCustomer
View customer detailsClick or tap to expand
Customer snapshot associated with this payment. Omitted when unavailable.- Name
receipt- Type
PaymentReceipt
View receipt attributesClick or tap to expand
Receipt issued for this payment. Omitted until the order is paid or completed.- Name
number- Type
string- Description
- Merchant-provided receipt number. Omitted when unset.
- Name
format- Type
{ … }
View format attributesClick or tap to expand
Hosted receipt representations.- Name
deliverySummary- Type
Record<string, unknown>
View delivery_summary detailsClick or tap to expand
Receipt delivery history. Omitted until sent.
- Name
dueAt- Type
Date- Description
- When payment is due. Omitted when unset.
- Name
executedAt- Type
Date- Description
- When payment execution began. Omitted until execution.
- Name
expiredAt- Type
Date- Description
- When payment expired. Omitted until expired.
- Name
failedAt- Type
Date- Description
- When payment failed. Omitted until failed.
- Name
id- Type
string- Description
- Payment ID—use it to correlate confirmation and payment operations.
- Name
initiatedAt- Type
Date- Description
- When Inttegro created the payment.
- Name
latestError- Type
PaymentError
View latest_error detailsClick or tap to expand
Structured error for the latest failed payment operation. Omitted when unavailable.- Name
latestAttempt- Type
PaymentAttempt
View latest_attempt attributesClick or tap to expand
Details about the most recent charge attempt. Omitted before the first attempt.- Name
error- Type
PaymentAttemptError
View error detailsClick or tap to expand
Attempt error details. Omitted when no error is available.- Name
initiatedAt- Type
Date- Description
- When this attempt started.
- Name
paymentMethodId- Type
string- Description
- Payment method that was charged.
- Name
paymentMethodType- Type
PaymentMethodType- Description
- Payment rail used for this attempt.
- Name
reference- Type
string- Description
- Gateway reference or transaction ID.
- Name
status- Type
PaymentAttemptStatus- Description
- Attempt status:
Inttegro.PaymentAttemptStatuses.Initiated,Inttegro.PaymentAttemptStatuses.Executed,Inttegro.PaymentAttemptStatuses.Succeeded,Inttegro.PaymentAttemptStatuses.Canceled,Inttegro.PaymentAttemptStatuses.Expired,Inttegro.PaymentAttemptStatuses.Failed, orInttegro.PaymentAttemptStatuses.Unknown.
- Name
succeededAt- Type
Date- Description
- Set when the attempt succeeds. Omitted otherwise.
View next_action attributesClick or tap to expand
What needs to happen next to complete the payment.- Name
confirmPayment- Type
{ … }
View confirm_payment attributesClick or tap to expand
OTP confirmation flow details.View request attributesClick or tap to expand
Details about the OTP we sent.- Name
sentVia- Type
string- Description
- Delivery channel:
Inttegro.ChimeTransports.SmsorInttegro.ChimeTransports.Email.
- Name
type- Type
PaymentNextActionType- Description
- Action required:
Inttegro.PaymentNextActionTypes.ConfirmPayment,authorize_payment, etc.
- Name
paidAt- Type
Date- Description
- When funds were fully captured and marked as paid. Omitted until paid.
- Name
paidOffline- Type
boolean- Description
- Whether payment was recorded out of band. Omitted when unavailable.
View payment_method attributesClick or tap to expand
The payment method being charged.- Name
createdAt- Type
Date- Description
- When this method was added.
- Name
customerId- Type
string- Description
- Which customer owns this payment method.
- Name
id- Type
string- Description
- Saved payment method ID.
- Name
mobileMoney- Type
{ … }
View mobile_money attributesClick or tap to expand
Mobile money details. Present whenpayment.paymentMethod.typeisInttegro.PaymentMethodTypes.MobileMoney.- Name
network- Type
string- Description
- Wallet network:
Inttegro.MobileMoneyNetworks.Airtel,Inttegro.MobileMoneyNetworks.MTN,Inttegro.MobileMoneyNetworks.Telecel, orInttegro.MobileMoneyNetworks.Vodafone.
- Name
type- Type
PaymentMethodType- Description
- Payment rail:
Inttegro.PaymentMethodTypes.MobileMoney,Inttegro.PaymentMethodTypes.Card,Inttegro.PaymentMethodTypes.BankAccount, etc.
- Name
verified- Type
boolean- Description
- Whether the payment method passed verification.
- Name
verifiedAt- Type
Date- Description
- When verification completed. Omitted if not verified.
- Name
paymentMethodTypes- Type
string[]- Description
- Payment rails allowed for this payment. Omitted when unavailable.
View payout_configuration attributesClick or tap to expand
Payout routing instructions for this payment. Present only when order-levelpayoutSettingswas specified during order creation.- Name
destination- Type
{ … }
- Name
enableFx- Type
boolean- Description
- Compatibility flag for payout routing. It is currently always
falsebecause cross-currency payouts are unavailable.
- Name
statementDescriptor- Type
string- Description
- Statement descriptor assigned to the payment.
- Name
status- Type
PaymentStatus- Description
- Payment state:
Inttegro.PaymentStatuses.Initiated,Inttegro.PaymentStatuses.Overdue,Inttegro.PaymentStatuses.Executed,Inttegro.PaymentStatuses.RequiresAction,Inttegro.PaymentStatuses.Paid,Inttegro.PaymentStatuses.Failed,Inttegro.PaymentStatuses.Canceled,Inttegro.PaymentStatuses.Expired, orInttegro.PaymentStatuses.Unknown.
- Name
receiptNumber- Type
string- Description
Merchant-supplied receipt reference for reconciliation. Omitted when unset; Inttegro does not enforce uniqueness.
- Name
paidAt- Type
Date- Description
When the order was paid. Omitted until paid.
- Name
paymentDueAt- Type
Date- Description
When payment is due. Omitted when no due time was supplied.
refundsRefund[]Complete refund objects for this order in newest-first order. Omitted when the order has no refunds.Click or tap to expandView 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
canceledAt- Type
Date- Description
- When the refund entered the
Inttegro.RefundStatuses.Canceledstate. Omitted otherwise.
View custom_data detailsClick or tap to expand
Your metadata, returned as string values. Omitted when empty.- Name
failedAt- Type
Date- Description
- When the refund entered the
Inttegro.RefundStatuses.Failedstate. Omitted otherwise.
View line_items attributesClick or tap to expand
Immutable allocations describing how much is refunded for each order line item.View order_line_item attributesClick or tap to expand
Immutable snapshot of the original order line. Useorder_line_item.idto match the refund allocation to the order. Discriminate onrefunds[].lineItems[].orderLineItem.typebefore reading the product, fee, or shipping branch. Omitted when the originating order cannot be resolved.View fee attributesClick or tap to expand
Fee details captured on the order. Present only whenrefunds[].lineItems[].orderLineItem.typeis"fee".View product attributesClick or tap to expand
Product details captured on the order. Present only whenrefunds[].lineItems[].orderLineItem.typeis"product".- Name
quantity- Type
number- Description
- Quantity captured on the order. Present only when
refunds[].lineItems[].orderLineItem.typeis"product".
View shipping attributesClick or tap to expand
Shipping details captured on the order. Present only whenrefunds[].lineItems[].orderLineItem.typeis"shipping".
- Name
reason- Type
string union- Description
- Overall refund reason, such as
Inttegro.RefundReasons.ItemReturned,Inttegro.RefundReasons.OrderCanceled, orInttegro.RefundReasons.RequestedByCustomer.
- Name
status- Type
string union- Description
- Current state:
Inttegro.RefundStatuses.Canceled,Inttegro.RefundStatuses.Failed,Inttegro.RefundStatuses.Pending,Inttegro.RefundStatuses.Processing, orInttegro.RefundStatuses.Succeeded.
- Name
succeededAt- Type
Date- Description
- When the refund entered the
Inttegro.RefundStatuses.Succeededstate. Omitted otherwise.
- Name
reference- Type
string- Description
Public order reference. Omitted when unset.
- Name
sealedAt- Type
Date- Description
When the order was finalized and its economic fields were sealed for payment. A qualifying update can reopen it before payment activity starts.
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.
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.
Clients should treat the published route in this reference as authoritative and should not construct alternative order-creation paths.
Rules
- Exactly one of
customerIdorcustomerDatais required. - Set
executePaymenttotrueonly when a payment method is attached (paymentMethodIdorpaymentMethodData). Omit it or passfalseto 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,
lineItems[].product.productIdplus explicitlineItems[].product.price, orlineItems[].product.productIdpluslineItems[].product.priceId. - When you send
lineItems[].product.productId, Inttegro snapshots the current catalog product onto the order. Do not combine it with inline product fields such aslineItems[].product.name,lineItems[].product.type,lineItems[].product.about,lineItems[].product.reference,lineItems[].product.taxCode, orlineItems[].product.customData. - When you send
lineItems[].product.productId, you must also send eitherlineItems[].product.priceorlineItems[].product.priceId. 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; anyidsupplied inside a fee or shipping input is not preserved in the created order. checkoutSettings.redirectUrlandcheckoutSettings.cancelUrlmust be HTTP or HTTPS URLs and must not already contain anorder_idquery parameter. Inttegro appends the created order ID to the final redirect.- When provided,
receiptNumberis trimmed, must satisfy the same configured length limits asnumber, and does not need to be unique.
Required attributes
lineItemsLineItemParams[]Cart contents. Provide at least one line item per order.Click or tap to expand- Name
type- Type
'product' | 'fee' | 'shipping'- Description
- Discriminator for each entry:
Inttegro.LineItemTypes.Product,Inttegro.LineItemTypes.Fee, orInttegro.LineItemTypes.Shipping. Matches the schemas in our OpenAPI spec.
- Name
product- Type
ProductDetailsParams
View product attributesClick or tap to expand
Required whenlineItems[].typeisInttegro.LineItemTypes.Product. Use one of three shapes: inline product data,lineItems[].product.productIdwith explicitlineItems[].product.price, orlineItems[].product.productIdwithlineItems[].product.priceId.- Name
about- Type
string- Description
- Marketing copy or long-form description. Only used for inline product data.
- Name
customData- Type
CustomData
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
PriceParams
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
priceId- Type
string- Description
- Existing catalog price to use for this line item. It must belong to the same product referenced by
lineItems[].product.productId. Do not combine this withlineItems[].product.price.
- Name
productId- Type
string- Description
- Existing catalog product to snapshot onto the order line item.
- Name
quantity- Type
number- 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
taxCode- Type
string- Description
- Tax classification code for this item. Only used for inline product data.
- Name
type- Type
ProductType- Description
Inttegro.ProductTypes.Cause,Inttegro.ProductTypes.Custom,Inttegro.ProductTypes.Digital,Inttegro.ProductTypes.Physical,Inttegro.ProductTypes.Service, orInttegro.ProductTypes.Voucher. Only used for inline product data.
- Name
fee- Type
FeeLineItemParams
View fee attributesClick or tap to expand
Required whenlineItems[].typeisInttegro.LineItemTypes.Fee. Use this for service or technology charges.- Name
label- Type
string- Description
- Customer-facing label, e.g., "Service Fee".
- Name
taxCode- Type
string- Description
- Tax classification code for this fee.
- Name
description- Type
string- Description
- Explain why the fee is being charged.
- Name
amount- Type
AmountParams
View amount attributesClick or tap to expand
Fee amount, usingAmountParams.
- Name
shipping- Type
ShippingLineItemParams
View shipping attributesClick or tap to expand
Required whenlineItems[].typeisInttegro.LineItemTypes.Shipping. Captures fulfillment charges.- Name
taxCode- Type
string- Description
- Tax classification code for the shipping fee.
- Name
fee- Type
AmountParams
View fee attributesClick or tap to expand
Shipping cost, usingAmountParams.
customerDataCustomerDataInline customer profile for first-time buyers. Mutually exclusive withcustomerId.Click or tap to expand- Name
name- Type
string- Description
- Full customer name exactly as it should appear on invoices and receipts.
- Name
emailAddress- Type
string- Description
- Primary email—used for invoices, receipts, and payment notifications.
- Name
phoneNumber- Type
string- Description
- Phone number in international format so we can deliver OTPs or status updates.
- Name
customData- Type
CustomDataInput
View custom_data detailsClick or tap to expand
Free-form key/value strings for attaching custom attributes (e.g., customer segment).
- Name
customerId- Type
string- Description
Reference an existing customer. Mutually exclusive with
customerData.
Product line item shapes
Use the shape that matches how you manage your catalog and pricing:
- Inline
- Set price
- Price ID
Define the product and its price directly on this order.
{
lineItems: [
{
type: Inttegro.LineItemTypes.Product,
product: {
name: "Utility Sneakers",
type: Inttegro.ProductTypes.Physical,
quantity: 1,
price: {
currency: "ghs",
value: 20000,
},
},
},
],
}
Reference a catalog product and set its price for this order.
{
lineItems: [
{
type: Inttegro.LineItemTypes.Product,
product: {
productId: "prod_abc123xyz",
quantity: 2,
price: {
currency: "usd",
value: 4100,
},
},
},
],
}
Reference a catalog product and one of its saved prices.
{
lineItems: [
{
type: Inttegro.LineItemTypes.Product,
product: {
productId: "prod_abc123xyz",
priceId: "pr_xyz789",
quantity: 2,
},
},
],
}
When you reference lineItems[].product.productId, 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 lineItems[].product payload with either catalog-backed shape shown above.
Optional attributes
requestMetaRequestMetaRequest-specific controls that do not change the order being created.Click or tap to expand- Name
idempotencyKey- Type
string- Description
- Optional request key for this logical order creation.
- Name
paymentMethodId- Type
string- Description
ID of a saved payment method to charge. Only works with
customerId—the method must belong to that customer.
- Name
receiptNumber- 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
statementDescriptor- Type
string- Description
Exact descriptor shown on the customer's bank or mobile money statement. Mutually exclusive with
statementDescriptorPrefix.
- Name
statementDescriptorPrefix- 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.
paymentMethodDataPaymentMethodDataInline payment details for new payment instruments.Click or tap to expand- Name
type- Type
'mobile_money'- Description
- Currently only
Inttegro.PaymentMethodTypes.MobileMoneyis supported for inline collection.
- Name
mobileMoney- Type
MobileMoneyDetails
View mobile_money attributesClick or tap to expand
Required whenpaymentMethodData.typeisInttegro.PaymentMethodTypes.MobileMoney. Provides wallet details.- Name
network- Type
MobileMoneyNetwork- Description
- Wallet network:
Inttegro.MobileMoneyNetworks.Airtel,Inttegro.MobileMoneyNetworks.MTN,Inttegro.MobileMoneyNetworks.Telecel, orInttegro.MobileMoneyNetworks.Vodafone.
- Name
accountNumber- Type
string- Description
- Subscriber MSISDN in international format (e.g.,
+23354...).
- Name
executePayment- Type
boolean- Description
Whether to charge the order immediately. Defaults to
false—you'll call/orders/paylater.
invoiceSettingsInvoiceSettingsOptional customer-facing invoice content.Click or tap to expand- Name
customData- Type
CustomData
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
paymentDueAfter- Type
Date- Description
RFC 3339 timestamp for when payment is due. The order response exposes it as
paymentDueAtwhen set.
customDataCustomDataClick or tap to expandArbitrary 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.
checkoutSettings{ … }Checkout configuration for this order. Strongly recommended to provide bothcheckoutSettings.redirectUrlandcheckoutSettings.cancelUrlfor a delightful customer experience.Click or tap to expandbillingDetailsBillingDetailsContact info for invoicing and receipt delivery.Click or tap to expand- Name
name- Type
string- Description
- Billing contact name.
- Name
emailAddress- Type
string- Description
- Billing email address.
- Name
phoneNumber- Type
string- Description
- Billing phone number.
View address attributesClick or tap to expand
Optional postal address for invoices.- Name
name- Type
string- Description
- Recipient name if different from customer.
- Name
phoneNumber- 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
region- Type
string- Description
- State, province, or region.
- Name
country- Type
string- Description
- Country name.
- Name
postCode- Type
string- Description
- Postal or ZIP code.
shippingShippingOptional shipping destination for physical fulfillment.Click or tap to expandView address attributesClick or tap to expand
Where the package should go. UsesAddress.- Name
name- Type
string- Description
- Recipient name.
- Name
phoneNumber- 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
region- Type
string- Description
- State, province, or region.
- Name
country- Type
string- Description
- Country name.
- Name
postCode- Type
string- Description
- Postal or ZIP code.
payoutSettingsOrderPayoutSettingsOrder-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
{ … }
View destination attributesClick or tap to expand
Where funds from this order should be paid out.- Name
enableFx- Type
boolean- Description
- Optional compatibility flag. Omit it or set it to
false;trueis rejected because cross-currency payouts are not currently available.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.create({
requestMeta: {
idempotencyKey: "order_checkout_ORDER-NUMBER-2",
},
number: "ORDER-NUMBER-2",
receiptNumber: "RCPT-NUMBER-2",
statementDescriptor: "STMTDESC",
executePayment: true,
finalize: true,
checkoutSettings: {
redirectUrl: "https://google.com/thank-you",
cancelUrl: "https://google.com/order-cancelled",
},
customerData: {
name: "Customer Name",
phoneNumber: "+233242058841",
},
paymentMethodData: {
type: Inttegro.PaymentMethodTypes.MobileMoney,
mobileMoney: {
network: Inttegro.MobileMoneyNetworks.MTN,
accountNumber: "0242057831",
},
},
lineItems: [
{
type: Inttegro.LineItemTypes.Product,
product: {
type: Inttegro.ProductTypes.Physical,
name: "Utility Sneakers",
quantity: 1,
price: {
currency: "ghs",
value: 20000,
},
},
},
],
billingDetails: {
name: "Customer Name",
phoneNumber: "+233242058841",
address: {
name: "Customer Name",
phoneNumber: "+233242058841",
line1: "23 Adenta High Street",
town: "Accra",
region: "Greater Accra",
country: "GH",
},
},
})
Response
- Object
- JSON
OrderResponse {
order: { … },
}
{
"order": {
"id": "or_f8y1p1",
"number": "ORDER-NUMBER-2",
"receipt_number": "RCPT-NUMBER-2",
"status": "requires_payment",
"initiated_at": "2025-01-13T10:00:00Z",
"sealed_at": "2025-01-13T10:00:01Z",
"line_item_group": { … },
"payment": { … },
"invoice": { … },
"customer": { … }
}
}
Search orders
Search orders by customer, invoice, or other remembered text, and narrow the result set by status. Results are discovery summaries: use the returned order ID with Lookup an order before fulfillment, collection, cancellation, or any other state-dependent action.
Request attributes
- Name
cursor- Type
string- Description
Opaque continuation cursor returned by the previous page. Replay the same request and add this value for the next page.
facetsResourceSearchFacet[]Fields to group and count. This route accepts only status.Click or tap to expandfiltersResourceSearchFilter[]Exact status constraints.Click or tap to expand- Name
field- Type
string- Required
- required
- Description
- Route-local field name. Use status.
- Name
operator- Type
ResourceSearchOperator- Required
- required
- Description
- eq for one value or in for any supplied value.
- Name
values- Type
string[]- Required
- required
- Description
- One value for eq; one through 20 values for in.
- Name
pageSize- Type
number- Description
Results per page, from
1through100. Defaults to20.
sortResourceSearchSortResult ordering.Click or tap to expand- Name
direction- Type
ResourceSearchSortDirection- Required
- required
- Description
- asc or desc. Relevance supports desc only.
- Name
field- Type
ResourceSearchSortField- Required
- required
- Description
- relevance or updated_at.
- Name
text- Type
string- Description
Search text, from 1 through 512 characters. Supply search text, exact filters, or both.
Response
Returns a typed search page with discovery summaries, requested facet
counts, page and total counts, an optional nextCursor,
and freshness metadata. Read the canonical order before
acting on a result.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const request: Inttegro.ResourceSearchRequest = {
text: "INV-1042",
}
const page = await inttegro.orders.search(request)
Pay for an order
Start or retry payment on an existing order without recreating it. This operation finalizes an open draft before collection. Four ways to use it:
- Already has a payment method: Just send
orderId—we'll charge the attached method. - Swap to a different saved method: Send
orderIdandpaymentMethodId. - Use a new payment method once: Send
orderIdandpaymentMethodData. - Offline payment: Send
orderIdand setpaidOutOfBandtotrue—this marks the payment as received outside Inttegro (cash, bank transfer, check). Complete the order separately when fulfillment is done.
Rules
- Pass either
paymentMethodId,paymentMethodData, orpaidOutOfBand, never multiple. paidOutOfBandis mutually exclusive with payment method parameters.- Any
paymentMethodIdmust belong to the order's customer. - The order must be
Inttegro.OrderStatuses.PreparingorInttegro.OrderStatuses.RequiresPayment. Paid, completed, canceled, expired, and unknown orders are not payable. - A successful response can still require customer action. Inspect
payment.statusandpayment.nextAction; do not infer success from HTTP200alone.
Required attributes
Optional attributes
- Name
paymentMethodId- Type
string- Description
ID of a saved payment method belonging to this order's customer.
paymentMethodDataPaymentMethodDataNew payment method details to charge.Click or tap to expand- Name
type- Type
'mobile_money'- Description
- Currently only
Inttegro.PaymentMethodTypes.MobileMoneyis accepted when supplying inline details.
- Name
mobileMoney- Type
MobileMoneyDetails
View mobile_money attributesClick or tap to expand
Required whenpaymentMethodData.typeisInttegro.PaymentMethodTypes.MobileMoney. UsesMobileMoneyDetails.- Name
network- Type
MobileMoneyNetwork- Description
- Wallet network:
Inttegro.MobileMoneyNetworks.Airtel,Inttegro.MobileMoneyNetworks.MTN,Inttegro.MobileMoneyNetworks.Telecel, orInttegro.MobileMoneyNetworks.Vodafone.
- Name
accountNumber- Type
string- Description
- Wallet MSISDN in international or local format (we normalize it).
- Name
paidOutOfBand- Type
boolean- Description
Set to
truewhen payment was received outside Inttegro (cash, bank transfer, check). Marks the payment as paid offline and completes the payment immediately. Mutually exclusive withpaymentMethodIdandpaymentMethodData. Defaults tofalse.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.pay({
orderId: "or_JoPtqOmsjgZKwkPvqTrqGsopu07wfC7ttoWqmfwt",
paymentMethodData: {
type: Inttegro.PaymentMethodTypes.MobileMoney,
mobileMoney: {
network: Inttegro.MobileMoneyNetworks.MTN,
accountNumber: "0544998605",
},
},
})
Confirm a payment
Submit the confirmation token for a specific payment and confirmation request. Read paymentId from payment.id and confirmationId from payment.nextAction.confirmPayment.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 an error object.
Required attributes
- Name
confirmationId- Type
string- Description
ID of the confirmation request that issued the token.
- Name
orderId- Type
string- Description
ID of the order being paid.
- Name
paymentId- Type
string- Description
ID of the payment attached to the order.
- Name
token- Type
string- Description
Confirmation token supplied by the customer.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.confirmPayment({
confirmationId: "otc_req_8Ks2Vn",
orderId: "or_JoPtqOmsjgZKwkPvqTrqGsopu07wfC7ttoWqmfwt",
paymentId: "py_3deNYy",
token: "302673",
})
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
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.requestConfirmation({
orderId: "or_kAVwBsk6EhQVv2YBUhYAqMf0lktEoQ0S7ZR8y2xi",
})
Response
- Object
- JSON
OrderResponse {
order: { … },
}
{
"order": {
"id": "or_kAVwBsk6EhQVv2YBUhYAqMf0lktEoQ0S7ZR8y2xi",
"status": "requires_payment",
"line_item_group": { … },
"initiated_at": "2025-04-09T00:11:47.74569+01:00",
"sealed_at": "2025-04-09T00:11:48.374979+01:00",
"payment": { … },
"customer": { … }
}
}
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
lineItemscollection - Change the order
number - Set or change the order
receiptNumber - Change the payment
statementDescriptor - Attach a different saved
paymentMethodId - Tokenize and attach new inline
paymentMethodData - Remove the attached payment method with
clearPaymentMethod - Replace order-level
customData - Replace or clear customer-facing
invoiceSettings - Explicitly open, seal, or reseal the order with
finalize
Rules
- Include at least one mutable field besides
orderId. lineItemsis a full replacement field, not a sparse merge, and it cannot be empty when provided.- If you replace
lineItems, 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. paymentMethodId,paymentMethodData, andclearPaymentMethodare mutually exclusive.paymentMethodDatacurrently supports onlyInttegro.PaymentMethodTypes.MobileMoneyfor order updates.- Completed, paid, canceled, and expired orders cannot be updated.
customDatais metadata-only. Updating it does not require reopen / reseal by itself.- Omit
receiptNumberto leave it unchanged. When provided, Inttegro trims it and requires a different non-empty value within the same configured length limits asnumber. 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
finalizeexplicitly:
Required attributes
- Name
orderId- Type
string- Description
The unique identifier of the order to update.
Optional attributes
- Name
clearPaymentMethod- Type
boolean- Description
Clears the currently attached payment method. Mutually exclusive with
paymentMethodIdandpaymentMethodData.
customDataCustomDataClick or tap to expandReplacement order-level custom data. Provide an empty object to clear the current value.
- Name
finalize- Type
boolean- Description
Explicit seal decision. Use
falseto reopen a sealed order and leave it editable, ortrueto seal or reseal the order after applying the requested changes.
invoiceSettingsInvoiceSettingsFull replacement for customer-facing invoice content. Send an empty object to clear the current settings.Click or tap to expand- Name
customData- Type
CustomData
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
lineItems- Type
LineItemParams[]- 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.
paymentMethodDataPaymentMethodDataNew payment method details to tokenize and attach to the order.Click or tap to expand- Name
mobileMoney- Type
MobileMoneyDetails
View mobile_money detailsClick or tap to expand
- Name
type- Type
'mobile_money'- Description
- Currently only
Inttegro.PaymentMethodTypes.MobileMoneyis supported for order updates.
- Name
paymentMethodId- Type
string- Description
ID of a saved payment method to attach to the order.
- Name
receiptNumber- Type
string- Description
Replacement receipt reference. Must be a different non-empty value when provided.
- Name
statementDescriptor- Type
string- Description
Replacement payment statement descriptor for the order's payment.
- Name
statementDescriptorPrefix- Type
string- Description
Static prefix, between 2 and 10 characters, used to build the replacement descriptor as
prefix*order_id. Mutually exclusive withstatementDescriptor.
Response shape
- Returns the same
orderobject as Lookup an order. - If
finalizeisfalse,sealedAtandinvoiceare cleared until the order is sealed again. - If
finalizeistrue, Inttegro returns the regenerated invoice and the updated payment amount. - The returned order object includes top-level
customDatawhen present. - The returned order object includes top-level
receiptNumberwhen set.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.update({
orderId: "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt",
receiptNumber: "RCPT-2025-041-REV1",
lineItems: [
{
type: Inttegro.LineItemTypes.Product,
product: {
name: "Quarterly support retainer",
type: Inttegro.ProductTypes.Digital,
price: {
currency: "ghs",
value: 15000,
},
quantity: 1,
},
},
{
type: Inttegro.LineItemTypes.Fee,
fee: {
label: "Service fee",
amount: {
currency: "ghs",
value: 500,
},
},
},
],
statementDescriptor: "ORDER REVISION",
customData: {
channel: "dashboard",
edited_by: "ops",
},
finalize: true,
})
Response
- Object
- JSON
OrderResponse {
order: { … },
}
{
"order": {
"id": "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt",
"number": "ORDER-2025-REV2",
"receipt_number": "RCPT-2025-041-REV1",
"status": "requires_payment",
"initiated_at": "2025-05-01T10:00:00Z",
"sealed_at": "2025-05-01T10:04:00Z",
"line_item_group": { … },
"payment": { … },
"invoice": { … },
"customer": { … },
"custom_data": { … }
}
}
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 Inttegro.OrderStatuses.Preparing to Inttegro.OrderStatuses.RequiresPayment. 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 sealedAt timestamp marking when the order was finalized. Finalizing an already sealed order is safe and leaves the existing state unchanged.
Required attributes
- Name
orderId- Type
string- Description
The unique identifier of the order to finalize.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.finalize({
orderId: "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt",
})
Response
- Object
- JSON
OrderResponse {
order: { … },
}
{
"order": {
"id": "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt",
"number": "ORDER-12345",
"status": "requires_payment",
"sealed_at": "2025-01-25T10:30:00Z",
"initiated_at": "2025-01-25T10:25:00Z",
"expires_at": "2025-02-01T10:25:00Z",
"customer": { … },
"line_item_group": { … },
"invoice": { … }
}
}
Send an invoice
Send an order's hosted invoice link to its customer. Inttegro uses the contact details saved for that customer: when both a phone number and email address are available, it sends the link by SMS and email; otherwise it uses the available channel.
The order must be finalized and its invoice must be ready to send. For a draft order, first use Finalize an order.
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
orderId- 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 delivery.sentChannels and delivery.failedChannels.
deliveryOrderDocumentDeliveryDelivery result for the hosted invoice link.Click or tap to expandView deliveries attributesClick or tap to expand
Accepted message sends.- Name
channel- Type
string- Description
Inttegro.ChimeTransports.SmsorInttegro.ChimeTransports.Email.
- Name
chimeId- Type
string- Description
- Created delivery ID.
- Name
documentKind- Type
string- Description
Inttegro.OrderDocumentKinds.Invoice.
- Name
documentUrl- Type
string- Description
- Hosted invoice URL sent to the customer.
- Name
failedChannels- Type
string[]- Description
- Channels that failed to send.
View failures attributesClick or tap to expand
Failed channel details.- Name
channel- Type
string- Description
Inttegro.ChimeTransports.SmsorInttegro.ChimeTransports.Email.
- Name
error- Type
string- Description
- Delivery error.
- Name
sentChannels- Type
string[]- 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
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.sendInvoice({
orderId: "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt",
})
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.
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
orderId- 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 delivery.sentChannels and delivery.failedChannels.
deliveryOrderDocumentDeliveryDelivery result for the hosted receipt link.Click or tap to expandView deliveries attributesClick or tap to expand
Accepted message sends.- Name
channel- Type
string- Description
Inttegro.ChimeTransports.SmsorInttegro.ChimeTransports.Email.
- Name
chimeId- Type
string- Description
- Created delivery ID.
- Name
documentKind- Type
string- Description
Inttegro.OrderDocumentKinds.Receipt.
- Name
documentUrl- Type
string- Description
- Hosted receipt URL sent to the customer.
- Name
failedChannels- Type
string[]- Description
- Channels that failed to send.
View failures attributesClick or tap to expand
Failed channel details.- Name
channel- Type
string- Description
Inttegro.ChimeTransports.SmsorInttegro.ChimeTransports.Email.
- Name
error- Type
string- Description
- Delivery error.
- Name
sentChannels- Type
string[]- 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
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.sendReceipt({
orderId: "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt",
})
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 Inttegro.OrderStatuses.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 by setting paidOutOfBand to true.
Out-of-band payments
If the customer paid outside Inttegro (cash, bank transfer, check), set paidOutOfBand to 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
orderId- Type
string- Description
The unique identifier of the order to complete.
Optional attributes
- Name
paidOutOfBand- Type
boolean- Description
Set to
trueif payment was received outside Inttegro (cash, bank transfer, check). When true, the payment is marked as paid offline before completing the order. Defaults tofalse, which requires the payment to already be inInttegro.PaymentStatuses.Paidstatus.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.complete({
orderId: "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt",
})
Response
- Object
- JSON
OrderResponse {
order: { … },
}
{
"order": {
"id": "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt",
"number": "ORDER-12345",
"status": "completed",
"completed_at": "2025-01-27T11:00:00Z",
"sealed_at": "2025-01-25T10:30:00Z",
"initiated_at": "2025-01-25T10:25:00Z",
"expires_at": "2025-02-01T10:25:00Z",
"customer": { … },
"line_item_group": { … }
}
}
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.
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
orderId- Type
string- Description
Order ID from the creation response.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.lookup({
orderId: "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt",
})
Response excerpt
- Object
- JSON
OrderResponse {
order: { … },
}
{
"order": {
"line_item_group": { … },
"initiated_at": "2025-09-14T16:24:41.137708909Z",
"completed_at": "2025-09-14T16:29:45Z",
"sealed_at": "2025-09-14T16:24:41.312701813Z",
"payment": { … },
"invoice": { … },
"refunds": [ … ],
"customer": { … },
"status": "completed",
"id": "or_48ZW7BGvYUBWc1i6WBkL2jr0iPQP5jUy76mmmHpt"
}
}
Cancel an order
Cancel an unpaid, unfulfilled order. Cancellation moves the order to Inttegro.OrderStatuses.Canceled and records the time of the transition. The reason and executeRefund 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.
executeRefund is accepted for contract compatibility but currently records intent only. Setting it to true does not execute a refund.Request attributes
- Name
executeRefund- Type
boolean- Description
Records that refund execution was requested as part of the cancellation. It defaults to
falseand does not currently move funds; use the refund flow separately.
- Name
orderId- 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
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.cancel({
orderId: "or_kAVwBsk6EhQVv2YBUhYAqMf0lktEoQ0S7ZR8y2xi",
reason: "customer_request",
executeRefund: false,
})
Page through orders
Retrieve a paginated list of your most recent orders. Orders are sorted by orders[].initiatedAt in descending order, so page 0 contains the freshest activity and subsequent pages step back in time.
Provide customerId to scope the page to a single customer. Omit customerId to browse all recent orders.
pageSize is required. pageNumber 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.
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
pageSize- Type
number- Description
Number of orders requested per page. Must be between 1 and 256.
Optional attributes
- Name
customerId- Type
string- Description
Optional customer ID to scope the page to one buyer's orders only.
- Name
pageNumber- Type
number- Description
Zero-based page index from 0 through 10. Defaults to 0 when omitted.
Response shape
- Top-level
pageobject includesnumber,size, and anordersarray. - Each array entry uses the complete shared order object, not a condensed summary.
- Orders created through a purchase intent include
orders[].createdFromattribution when available. Public API-key requests cannot filter pages by that attribution. - Optional fields are omitted when unavailable. Paid or completed orders can include
payment.receipt; the API does not add aline_item_group.products_countsummary field. - When you filter by
customerId, every returned order belongs to that customer.
Request
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.orders.page({
pageNumber: 0,
pageSize: 25,
})