GuidesAPI ReferenceChangelog
Log In
Guides

Partner Bank Order Submission

Summary

Submit a Partner Bank order (delivery address, banker info, solutions) for a merchant, using the Terminal & Service Orders APIs.

Partner banks can create orders programmatically with banker-specific fields and delivery details, reducing manual coordination and speeding time-to-ship.


Use Case Overview

  • Submit a Partner Bank order for a merchant via the CreatePartnerBankOrderPayload example.

  • Systems involved:

    • Partner App

    • Moneris PayFac as a Service API

    • Fulfillment/Ops (reference).

  • API area powering this scenario:

    • Terminal & Service Orders POST /onboarding/merchants/{merchant-id}/orders.

Key tasks this scenario enables:

  • Create Partner Bank orders with delivery and banker details
  • Receive a 201 Created order payload including fees, promotions, and supplies
  • (Optional) Retrieve the order by ID for status display

📘

APIs used

GET /onboarding/merchants/{merchant-id}/orders/{merchant-order-id} - Retrieve an order

Prerequisites

  • OAuth2 scope: onboarding.order.write (and optionally onboarding.order.read for retrieval)

  • Headers required on all calls:

    • Api-Version
    • X-Correlation-ID
  • Path parameter: merchant-id


1. Create Partner Bank Order (POST)

Create a new order for a merchant using the Partner Bank payload which includes banker branch details, delivery address, and solutions.


Endpoint:

POST /onboarding/merchants/{merchant-id}/orders

Content Type:

application/json

Required Inputs:

  • merchant-id (path)

  • Request body must match CreatePartnerBankOrderPayload

  • Headers:

    • Api-Version
    • X-Correlation-Id

{
    "idempotencyKey": "b3e1f8c2-4d2a-4e6b-9c1a-2f3e4d5b6a7c",
    "deliveryAddress": {
        "streetNumber": "64",
        "postalCode": "L1S2H6",
        "city": "Ajax",
        "province": "ON",
        "streetName": "Harwood Ave South",
        "country": "CA",
        "firstName": "KANGATHARAN",
        "lastName": "RASIAH"
    },
    "bankerInformation": {
        "bankerBranchIdentifier": "2679",
        "bankerPhoneNumber": "+19024333434"
    },
    "solutions": [{
        "solutionId": 1,
        "quantity": 1,
        "carrier": "TELUS"
    }],
    "orderCreatedBy": "jhundal@PERCOM"
}

2. (Optional): Retrieve Order by ID (GET)

Fetch the order to display current status and details in your portal.


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

  • All monetary amounts are in cents.

  • Use idempotencyKey on create to prevent duplicate orders (where applicable).

  • Respect rate limits via X-RateLimit-* headers.


Additional Information

📘

Learn more with the API Definitions

Peruse the endpoints, request/response formats, and authentication methods covered in this scenario.

API References