Let Facilero collect provider-required APM fields through HPP for payments and payouts.
Some Alternative Payment Method (APM) providers require customer or recipient information that may not be available when a transaction is initially created. For supported routes, you can submit an APM payment or payout request with only the method identifiers in apmPayload.
If the selected underlying provider requires additional information, Facilero returns a redirect to the Hosted Payment Page (HPP), where the customer or recipient can provide the missing fields.
This approach allows a single APM integration to work across multiple providers with different data requirements. Your server creates the payment or payout, redirects the customer or recipient when necessary, and receives the final transaction outcome through the standard webhook and status-check flow.
Overview
APM data collection can apply to both payment and payout transactions.
| Transaction Type | Endpoint |
|---|---|
| Payment | POST /api/v1/payments/apm |
| Payout | POST /api/v1/payouts/apm |
Whether data collection is required depends on:
- Your merchant routing configuration
- The selected APM method
- Country and currency
- The underlying provider route selected by Facilero
If the selected route does not require additional information, Facilero processes the request normally without any customer interaction.
How It Works
When Facilero receives an APM payment or payout request, it evaluates the selected route and determines whether all required provider-specific fields are already present.
If all required fields are available
Facilero forwards the payload directly to the underlying provider and continues processing the transaction.
Result: No redirect is required.
If required fields are missing
Facilero returns a redirect URL that points to the Hosted Payment Page (HPP).
Result: The customer or recipient is redirected to HPP, where the missing information is collected before processing continues.
Example: Bank Transfer Payout
Assume your routing configuration includes a route for:
SMART_BANK_TRANSFER_PAYOUTThe payout can be processed in two different ways depending on whether you already have the bank account information required by the selected provider.
The same pattern also applies to APM payments created through:
POST /api/v1/payments/apmIf apmPayload already contains the provider-required fields, Facilero uses them directly. Otherwise, Facilero can return an HPP redirect to collect the missing information.
Case 1: Provider-Required Fields Included
When the request contains all fields required by the selected provider route, Facilero uses those fields and forwards them to the underlying APM provider.
No HPP interaction is required.
Request
{
"requestId": "payout-1002",
"accountId": "merchant_001",
"amount": "100.00",
"currency": "USD",
"apmPayload": {
"paymentMethod": "SMART_BANK_TRANSFER_PAYOUT",
"paymentType": "BANK_TRANSFER",
"accountNumber": "4051111222",
"bankName": "ABSA",
"accountHolderName": "John Doe",
"bankAccountType": "cheque"
},
"callbackUrl": "https://merchant.example.com/webhooks/payout",
"successRedirectUrl": "https://merchant.example.com/payout/success",
"failureRedirectUrl": "https://merchant.example.com/payout/failure"
}Response
{
"status": "PENDING",
"apmResponseData": {
"actionType": "NONE"
}
}Behavior
The response is non-interactive.
apmResponseData.actionType = NONEThe transaction continues asynchronously and typically enters a status such as:
PENDINGPROCESSING
No redirect URL is returned.
Case 2: Collect Missing Fields Through HPP
If you do not have the provider-required bank transfer details when creating the payout, you can submit only the payment method identifiers.
Facilero returns an HPP redirect so the recipient can provide the missing information.
Request
{
"requestId": "payout-1002",
"accountId": "merchant_001",
"amount": "100.00",
"currency": "USD",
"apmPayload": {
"paymentMethod": "SMART_BANK_TRANSFER_PAYOUT",
"paymentType": "BANK_TRANSFER"
},
"callbackUrl": "https://merchant.example.com/webhooks/payout",
"successRedirectUrl": "https://merchant.example.com/payout/success",
"failureRedirectUrl": "https://merchant.example.com/payout/failure"
}Response
{
"status": "PENDING",
"apmResponseData": {
"actionType": "REDIRECT",
"redirectUrl": "https://hpp.exirom.com/session/abc123"
}
}Behavior
The response contains an HPP redirect action.
Typical flow:
- Facilero returns a redirect URL in
apmResponseData.redirectUrl. - Redirect the recipient to the provided URL.
- The Hosted Payment Page collects the required bank transfer information.
- Facilero submits the collected data to the underlying APM provider.
- Transaction processing continues asynchronously.
For details about redirect responses and payload structure, see Redirect Flow Payload.
Payment Flow Example
The same mechanism is available for APM payments.
Payment Request With Complete Provider Data
If all required provider fields are present in apmPayload, Facilero processes the payment immediately without any HPP interaction.
Payment Request With Missing Provider Data
If required fields are missing, Facilero returns an HPP redirect and collects the missing information from the customer before continuing the payment flow.
Redirect Handling
When an HPP redirect is returned:
- Store the transaction identifier.
- Redirect the customer or recipient to
apmResponseData.redirectUrl. - Wait for asynchronous transaction updates.
- Do not assume the redirect result represents the final transaction outcome.
The customer or recipient may:
- Close the browser
- Abandon the flow
- Return before provider processing completes
- Experience delays in provider-side processing
Because of this, the redirect itself should never be used as the final transaction status.
Determining the Final Result
Use the same completion strategy as all other APM redirect flows.
| Signal | Purpose |
|---|---|
Webhook to callbackUrl | Source of truth for final transaction outcome |
| Status endpoint | Fallback mechanism when webhook delivery is delayed or unavailable |
Redirect to successRedirectUrl or failureRedirectUrl | Customer experience only; not a final status confirmation |
Recommended Status Handling
Treat webhook notifications as the authoritative source for final transaction states.
Typical final states include:
SUCCEEDFAILED
If webhook delivery fails or is delayed, query the transaction status endpoint to retrieve the latest status.
Summary
Facilero's APM data collection flow allows merchants to create payments and payouts even when provider-specific customer or recipient information is not yet available.
- Submit a complete
apmPayloadwhen you already have the required provider fields. - Submit only the APM method identifiers when you do not have the required fields.
- Facilero automatically determines whether additional information is needed.
- If required, Facilero redirects the customer or recipient to the Hosted Payment Page (HPP) to collect the missing information.
- Final transaction results are always determined through webhooks or status checks, not by the redirect itself.
This enables a single APM integration to support multiple providers while accommodating different provider-specific data requirements.

