Instant Bank Transfer supports two types of transaction: direct and interactive.
- Interactive transactions: Payments and withdrawals are initiated from the consumer’s web browser and may require the consumer to enter their banking information.
- Direct transactions: Payments and withdrawals are server to server requests and don’t require the consumer to interact with their web browser. In cases where a direct transaction can't be completed, for example if a consumer needs to re-authenticate with their bank, the transaction can be converted to the interactive flow, allowing the consumer to complete the transaction.
The following table outlines use cases for the different API endpoints.
| Transaction | Transaction Flow | API Endpoint | Transaction Type | Description |
|---|---|---|---|---|
| Payments | First-time consumer payment | First-Time Consumer Payin (without Token) | Interactive | Both first-time and repeat consumers are redirected to the IBT screen. A first-time consumer will go through the complete IBT consumer verification flow. |
| Payments | One-click payment | Returning Consumer Payin with Token (interactive) | Interactive | Both first time and repeat consumers are redirected to the IBT screen. A repeat consumer will see the IBT processing page for only a few seconds. If re-authorization is required, they will go through the IBT consumer verification flow. |
| Payments | One-click payment or In-game payment | Returning Consumer Payin with Token (direct) | Direct | The payment can be triggered from the cashier or in-game and does not require the consumer to interact with the IBT screens. If a consumer needs to re-authenticate with their bank, an error (E302) will appear and the merchant must redirect the consumer to the IBT interactive flow. |
| Withdrawals | Verified Withdrawal | First-Time Consumer Verified Payout (without Token) | Interactive | The consumer is redirected to the IBT screen from the cashier and will go through the complete IBT consumer verification flow. |
| Withdrawals | Withdrawal | Payout with Token | Direct | The withdrawal is triggered from the cashier and does not require the consumer to complete an IBT flow. |
Consumer Verification Token ExpiryConsumer verification tokens expire after 30 days of consumer inactivity. Returning consumers with expired tokens will need to be re-authenticated via the Instant Bank Transfer consumer verification flow.
More information
Using the API
The Instant Bank Transfer API follows the general patterns of REST. You manage merchant resources (that is, payins, payouts, reports) by making HTTPS requests to the relevant API endpoints, or URLs, that receive those requests.
In response to payin requests and returned transactions, merchant systems receive transaction notifications. These notifications include the transaction status, merchant fees, and any applicable errors.
Creating an HTTPS request
All API requests must be made over HTTPS. The base URL for the requests in the staging environment is https://api-mint.paramountcommerce.com. The endpoint varies depending on the resource being accessed and is shown on the relevant API reference page.
For example, to make an interactive transaction request in our staging environment, the endpoint is https://api-mint.paramountcommerce.com/oebigstari/transaction/v4/interactive.
In addition to the correct endpoint, an API request needs to include the appropriate headers, method, request body, and query parameters.
For example, this cURL command passes a JSON object containing the method (POST), headers (-H), and details (-d) to initiate a payin using the interactive transaction endpoint:
Access tokensTo use the API, you must provide an access token with every API call. An access token has specific permissions to resources in a specific merchant account. Use an access token that is appropriate for your use case.
For more information, see Authentication.
curl --request POST \
--url https://api-mint.paramountcommerce.com/oebigstari/transaction/v4/interactive \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJraWQiOiJMaEV3SHIzWnhlUzFYcnBNWVh2OG0yVlFua3JYb1wvSzRoclZkWGlRSW1kST0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI2d' \
--data '{
"product": "IBT",
"countryCode": "CA",
"transactionRegion": "ON",
"language": "en-ca",
"dataPassThrough": "Yes",
"originatorIp": "198.51.100.1",
"merchant": {
"merchantId": "PGWmVACH",
"merchantUserId": "pgw324",
"merchantTransactionType": "CASINO",
"merchantTransactionId": "abc12345",
"merchantSubId": 0
},
"consumer": {
"dob": "1975-05-15",
"consumerType": "SENDER",
"contactInfo": {
"sender": {
"nameType": "PERSON",
"name": {
"firstName": "Larry",
"lastName": "Johnson",
"middleName": ""
},
"address": "35 Oak Street",
"address2": "P.O. Box 12",
"region": "ON",
"city": "Metropolis",
"postalCode": "M1M 1M1",
"countryCode": "CA"
}
},
"driversLicense": "L123345",
"driversLicenseState": "ON",
"email":"[email protected]",
"phoneNumber": "+14161234567"
},
"bank": {
"bankInformationType": "TOKEN",
"accountToken": "250c069f-b9af-460c-98f8-79c2511f4e46"
},
"transactionAmount": 100,
"currencyCode": "CAD",
"returnUrl": "https%3A%2F%2Fwww.mysite.com",
"transactionType": "DEBIT"
}
Staging vs. ProductionMerchants are provided a staging account, which provides access to an isolated environment where you can test your system integration and prepare it for production.
When your integration has been fully implemented and tested in the staging environment, the Merchant Integration team will certify your integration and provide your production account credentials.
