Reserves funds on an Interac debit card (IAP — Interac Automated Payment) without immediately settling the charge. The authorizationNumber, transactionNumber, invoiceNumber, and amount from this response must be stored — they are required by the subsequent /v1/iapCompletion to capture the charge.
API Key
Generate your API key from the Payments Manager: Administrator Client → API Key → Add New Key. Pass it as auth-api-key in every request.
Company & Merchant Numbers
Your CompanyNumber (5-digit) and MerchantNumber (8-digit) are issued by PayFacto during onboarding. Both are required on every IAP Pre-Authorization request and must be stored for use in the subsequent IAP Completion.
Environment Base URL
Test: https://test.api.payfacto.cloud/v1 | Production: Provided by the PayFacto Integration team upon certification.
Request Format — Base64-Encoded Payload
Requests use HTTP POST with an application/x-www-form-urlencoded body. Assemble all parameters as a cleartext query string, Base64-encode it, then send: auth-api-key={key}&payload={base64}. For terminal transactions (InputType=N), send CardNumber as 40 space characters and ExpirationDate as 4 space characters.
IAP — Interac Automated Payment
IAP (Interac Automated Payment) endpoints handle Interac debit transactions processed through integrated systems. This endpoint is exclusively for Interac debit pre-authorizations. For credit card pre-authorizations, use /v1/preAuthorization instead.
Store Response Values for IAP Completion
Upon a successful response, the following fields must be stored for use in the subsequent /v1/iapCompletion:
authorizationNumber → used as OriginalAuthorizationNumbertransactionNumber → used as OriginalTransactionNumberinvoiceNumber → used as OriginalInvoiceNumberamount → used as OriginalAmountTo release the reservation without charging, use Void (/v1/void) instead of IAP Completion.
All parameters are passed inside the Base64-encoded payload form field. Raw body format: auth-api-key=<key>&payload=<base64>. For terminal transactions (InputType=N), send CardNumber as 40 space characters and ExpirationDate as 4 space characters. E-Commerce transactions send 5 blank spaces for MerchantTerminalNumber.
Required fields
Optional fields
The example below uses the test endpoint and a sandbox API key, and shows a terminal (InputType=N) IAP Pre-Authorization. Store the authorizationNumber, transactionNumber, invoiceNumber, and amount from the response for IAP Completion. Replace credentials and base URL before going live.
Always returned
Conditionally returned
The following codes are most relevant to this endpoint. For the complete catalogue see the Return Code Index.