PayFac as a Service
Third-Party Merchant Onboarding and Updating
Create and manage merchants for a third-party acquirer integration using the Moneris Merchant Onboarding APIs.
Summary
Systems involved
Partner Platform (your back end / onboarding UI)
Moneris PayFac as a Service API (Merchant Onboarding)
Moneris Backoffice Systems (credit, risk, provisioning, records)
APIs used
POST /onboarding/merchants — Create Merchant
GET /onboarding/merchants/{merchant-id} — Get Merchant details
PATCH /onboarding/merchants/{merchant-id} — Update Merchant details (partial, application/merge-patch+json)
Prerequisites
OAuth2 access with scopes:
onboarding.merchant.write (create/update)
onboarding.merchant.read (retrieve)
Api-Version and X-Correlation-Id headers sent on all requests.
Partner has a valid Moneris-issued merchant-id path parameter for GET/PATCH operations.
ISVs and partner acquirers can programmatically create Moneris merchant profiles, retrieve the latest merchant information , and update key merchant/contact details for new merchants without manual back-and-forth—reducing time-to-live and operational overhead.
Use Case Overview
Implement this when your partner platform needs to:
Submit a new merchant application and banking profile.
Retrieve merchant details and status using the assigned merchantId.
Update net new merchant/contact details via partial updates before placing the first order.
Steps
1. Partner Platform submits Create Merchant with the full onboarding payload.
2. Moneris persists merchant profile and banking details.
3. Moneris acknowledges creation and assigns a merchantId.
4. API responds 201 Created with headers and a merchant body.
Optional:
5. Partner retrieves merchant details by merchantId.
6. API responds 200 OK with the merchant object.
7. Partner issues PATCH Update Merchant details to change contact/merchant fields.
8. Moneris applies updates in backoffice systems.
9. Moneris confirms changes.
10. API responds 200 OK with updated merchantDetails.
1. Create Merchant (POST)
Start a new merchant profile with business, banking, and security details so that an order can be placed for the merchant and downstream provisioning and risk checks can proceed.
Endpoint:
POST /onboarding/merchants –
Required Inputs:
The merchantPayload object is required, which itself requires: bankingDetails, businessDetails, merchantDetails, businessActivity, securityDetails.
NOTE: For third-party acquirers, it is mandatory to pass in a chainId that is provisioned by Moneris to link all merchants of the third-party acquirer and for identification on type of ISV.
Response
Request
2. Retrieve Merchant Details (GET)
Fetch the current merchant profile for status display or CRM synchronization.
Endpoint:
GET /onboarding/merchants/{merchant-id}
Required Inputs
merchant-id (path, V13)
Response
3. Update Merchant Details (PATCH)
Apply targeted account maintenance to merchant/contact info without resubmitting the full onboarding payload.
Endpoint:
PATCH /onboarding/merchants/{merchant-id}
Content Type:
application/merge-patch+json
Response
Request
Notes
Handling Idempotency and Retries
If the platform times out after POST /onboarding/merchants, check for a created merchant using your stored merchantId (from the Location header or create response) before retrying. Use a new X-Correlation-Id per attempt.
Additional Notes
Send Api-Version and X-Correlation-Id on every call.
Use OAuth2 scopes as least-privilege: onboarding.merchant.read and onboarding.merchant.write.
All monetary amount values are in cents.
Validate merchant-id format (13 characters) before path substitution.
Additional Information
Learn more with the API Definitions
Peruse the endpoints, request/response formats, and authentication methods covered in this scenario.
