Order Status Tracking for Terminals & Services
Summary
Track the status and details of a terminal/service order for a merchant via the MonerisPayFac as a Service API.
Sales and onboarding teams need real-time visibility into order progress (e.g., adjudication, fees, shipping readiness) to coordinate activations and customer updates.
Use Case Overview
- All orders will go through a business process flow for setup in downstream systems and hence move through different states before order is completed.
- After submitting an order, your portal polls the order by ID to surface the latest orderStatus and related details (fees, limits, banking summary).
Key tasks this scenario enables:
- Retrieve order details by ID
- Display order status and fees
- Drive notifications when status changes
Steps
-
Partner App calls GET
/onboarding/merchants/{merchant-id}/orders/{merchant-order-id} -
API returns 200 OK with the order object
-
Partner App repeats on interval to detect status changes
API used
GET
/onboarding/merchants/{merchant-id}/orders/{merchant-order-id}- Retrieve an orderSystems involved:
- Partner App (ISV)
- Moneris PayFac as a Service API
- Fulfillment systems (reference only).
Prerequisites
OAuth 2.0 access with scope:
- onboarding.order.read
- (or onboarding.order.write if your integration already has it)
Required headers:
- Api-Version
- X-Correlation-Id
Path parameters:
- merchant-id
- merchant-order-id
Retrieve Order by ID
Get the current order status and details to update your portal and workflows.
Endpoint:
GET /onboarding/merchants/{merchant-id}/orders/{merchant-order-id}
Required Inputs:
-
merchant-id (path)
-
merchant-order-id (path)
-
Headers:
-
Api-Version
-
X-Correlation-Id
-
Response
{
"merchantOrderId": 1471632,
"merchantId": "0030211900586",
"userIdentifier": "001",
"representativeCode": "0A",
"adjudicationRequired": true,
"orderStatus": "APPLICATION_SUBMITTED",
"orderType": "NET_NEW_MERCHANT",
"orderOpenedAt": "2025-06-17T16:39:01.85-05:00",
"orderChangedAt": "2025-06-17T17:40:55.577-05:00",
"feeDetails": {
"minimumMerchantDiscountRateFee": { "unitPrice": { "amount": 699, "currency": "CAD" }, "taxes": [] },
"paperStatementFee": { "unitPrice": { "amount": 795, "currency": "CAD" }, "taxes": [] },
"pciSecurityFee": { "unitPrice": { "amount": 895, "currency": "CAD" }, "taxes": [] }
},
"productDetails": {
"cardPlanDetails": {
"visaDebit": { "cardBrandPlans": [], "assessmentPlans": [] },
"discover": { "cardBrandPlans": [], "assessmentPlans": [] },
"unionPay": { "cardBrandPlans": [], "assessmentPlans": [] },
"amex": { "cardBrandPlans": [], "assessmentPlans": [] },
"otherFinancialInstitutionCards": [],
"programs": []
},
"pointOfSaleSolutionType": "MONERIS_POINT_OF_SALE",
"isAcceptedByConduct": false,
"contractSignatureRequired": false,
"faxRequired": true,
"additionalInformation": "",
"businessEntityName": "Intuit",
"referralInformation": { "description": "Other", "additionalInformation": "NOT USED" },
"hostType": "ESSENTIS",
"autoApprovalStatus": "MANUAL_ADJUDICATION",
"adjudicationApprovalStatus": "MANUAL",
"hasImprinter": true,
"isMarketSubSegmentationPreApprovalRequired": false,
"optOutAmexCommunication": true,
"multiCurrencyPricingPackageId": 1234
},
"limits": {
"currency": "CAD",
"dailyRefundLimit": { "amount": 0, "currency": "CAD" },
"dailyCancellationLimit": { "amount": 0, "currency": "CAD" }
},
"bankingDetails": {
"creditDepositAccount": {
"currency": "CAD",
"institutionNumber": "00809",
"transitNumber": "00160",
"accountNumber": "3333333333"
},
"additionalBankingAccounts": []
},
"chainId": "0030600062664",
"createdAt": "2025-01-01T00:00:00Z",
"modifiedAt": "2025-01-01T00:00:00Z"
}Notes
-
Polling strategy: use exponential backoff; avoid aggressive intervals.
-
Use X-Correlation-Id to trace requests end-to-end.
-
Respect rate limits using the X-RateLimit-* headers.
Additional Information
Learn more with the API Definitions
Peruse the endpoints, request/response formats, and authentication methods covered in this scenario.
Updated 14 days ago
