The API-based onboarding process eliminates the need for manual onboarding by automatically generating sponsored merchants, establishments, pricelists, terminals, and their corresponding credentials.
Please check below the available environment endpoints:
| Environment | URL | Operation Method & Endpoint | Operation Description |
|---|---|---|---|
| PROD | api.sibsgateway.com | POST api/onboarding/version-id/ sponsored-merchant | Performs a request to create the sponsored merchant record. |
| TEST | stargate-cer.qly.site1.sibs.pt | POST api/onboarding/version-id/ sponsored-merchant | Performs a request to create the sponsored merchant record. |
| Sandbox | sandbox.sibsgateway.com | POST api/onboarding/version-id/ sponsored-merchant | Performs a request to create the sponsored merchant record. |
To initiate this process, you are required to perform a POST request with the following data:
Header parameters:
| Parameter | Type | Condition | Description |
|---|---|---|---|
| Content-type | String | Mandatory | application/json. |
| X-Request-ID | String | Mandatory | ID of the request, unique to the call, as determined by the initiating party. |
| x-ibm-client-id | String | Mandatory | Token that identifies a client organization. It is provided during onboarding process and must be used in every call. |
Request parameters:
| Data Element | Type Length | Condition | Description |
|---|---|---|---|
| merchant | String | Mandatory | Object that defines the Merchant. |
| name | String <=90 | Mandatory | Company’s full name as per data in CEIDG. |
| phone | String <=16 | Mandatory | Company’s phone number. |
| String <=55 | Mandatory | Company’s email address. | |
| nip | String 8<11 | Mandatory | NIP as per CEIDG |
| mcc | Number 4-4 | Mandatory | Company’s MCC Code |
| pkd | String 7-7 | Mandatory | Company’s PKD (main) as per data in CEIDG |
| merchantType | String “Merchant” “Sponsored Merchant” Default: “Sponsored Merchant” | Mandatory | Merchant type |
| address | String | Mandatory | Merchant Address |
| street | String <=100 | Mandatory | Merchant’s Address Street |
| postalcode | String <=25 | Mandatory | Merchant’s Address Postal Code |
| locality | String <=20 | Mandatory | Merchant’s Address Locality |
| country | Number 3-3 Format ISO 3166, Number 3 code (ex: Poland – 616) | Mandatory | Merchant’s Address Country |
| website | String <=100 | Mandatory | Merchant’s website |
| signedAgreements | Boolean “True” “False” | Mandatory | Confirmation of signed agreements |
| backofficeEmail | String <=55 | Mandatory | SIBS Backoffice email address |
| pepStatus | String “Active” “Inactive” Default: “Active” | Mandatory | Potentially Exposed Person status |
| beneficialOwnersData | String <=40 | Conditional | Beneficial owners data. Only Mandatory if PEP Status is ‘Active’ |
| Owner | String | Mandatory | Object that defines the Company’s Owner account. It is possible to add more than one entry for this parameter |
| name | String <=40 | Mandatory | Owner’s name |
| phone | String <=16 | Conditional | Owner’s phone. Either the phone or the email (at least one of them) should be provided. |
| String <=55 | Conditional | Owner’s email Either the phone or the email (at least one of them) should be provided. | |
| address | String <=100 | Optional | Owner’s address |
| tin | Number 8<11 | Mandatory | Owner’s nip |
| integrationSupportContact | String | Optional | Object that defines an integration support contact |
| name | String <=20 | Optional | First and Last Name Contact for integration Support |
| phone | String <=16 | Conditional | Phone number Contact for integration Support Either the phone or the email (at least one of them) should be provided. |
| String <=55 | Conditional | Email address Contact for integration Support Either the phone or the email (at least one of them) should be provided. | |
| shop | Mandatory | Object that defines the Establishment | |
| name | String <=40 | Optional | Establishment Name. When this field is empty, the value to be considered will be the ones parametrized at the Merchant level. |
| address | String | Optional | Establishment Address When these fields are empty, the value to be considered will be the ones parametrized at the Merchant level. |
| street | String <=100 | Optional | Street |
| postalcode | String <=25 | Optional | Postal Code |
| locality | String <=20 | Optional | Locality |
| country | Number 3-3 Format ISO 3166, Number 3 code (ex: Poland – 616) | Optional | Country |
| String <=55 | Optional | Establishment Email When these fields are empty, the value to be considered will be the ones parametrized at the Merchant level. | |
| phoneNumber | String <=16 | Optional | Establishment Phone When these fields are empty, the value to be considered will be the ones parametrized at the Merchant level. |
| type | String “Banks” “Wholesale“ “Supermarket“ “Retail“ “Gas Stations“ “Restaurants“ “Hotels“ “Virtual Establishment“ “Foreign“ “Service Provider“ “Service Entity“ “EMV Tolls“ | Mandatory | Establishment Type |
| mcc | String 4-4 | Mandatory | Establishment MCC |
| pkd | String 7 The format of this parameter will be as Follows: 00.00.A (see list here: https://www.biznes.gov.pl/en/table-pkd-code) | Mandatory | Establishment CAE |
| InvoiceIndicator | String “Payment Facilitator” “Sponsored Merchant” Default: “Payment Facilitator” | Mandatory | Establishment Invoice Indicator |
| products | String | Mandatory | Object that defines the Establishment Products |
| productID | String “XPAY-APPL-0-0”, “XPAY-GGLE-0-0”, “PYWK-BNPL-1-0”, “PYWK-BNPL-2-0”, “INTP-BLIK-0-0”, “INTP-BLIK-1-0”, “BLMD-PYBL-0-0”, “KEVN-PYBL-0-0”, “MCC-1-C”, “MCC-1-D”, “MCC-1-P”, “MCC-2-C”, “MCC-2-P”, “MCC-4-C”, “MCC-4-D”, “MCC-4-P”, “MSI-1-D”, “MSI-1-P”, “MSI-2-D”, “MSI-2-P”, “VIS-01-C”, “VIS-01-D”, “VIS-01-P”, “VIS-02-C”, “VIS-02-D”, “VIS-02-P”, “VPY-03-D”, “VPY-03-P”, “VSL-01-C”, “VSL-01-D”, “VSL-01-P” | Mandatory | Payment methods selected by the customer. Product ID’s to activate: “INTP-BLIK-0-0” InterPay-BLIK-Domestic “INTP-BLIK-1-0” – InterPay-BLIK-OneClick “BLMD-PYBL-0-0” BlueMedia-PayByLink-Domestic “KEVN-PYBL-0-0” – PayByLink-Kevin “MCC-1-C” – Mastercard-Mastercard-Consumer-Credit “MCC-1-D” – Mastercard-Mastercard-Consumer-Debit “MCC-1-P” – Mastercard-Mastercard-Consumer-Prepaid “MCC-2-C” – Mastercard-Mastercard-Commercial-Credit “MCC-2-P” – Mastercard-Mastercard-Commercial-Prepaid “MCC-4-C” – Mastercard-Mastercard-Other-Credit “MCC-4-D” – Mastercard-Mastercard-Other-Debit “MCC-4-P” – Mastercard-Mastercard-Other-Prepaid “MSI-1-D” – Mastercard-Maestro-Consumer-Debit “MSI-1-P” – Mastercard-Maestro-Consumer-Prepaid “MSI-2-D” – Mastercard-Maestro-Commercial-Debit “MSI-2-P” – Mastercard-Maestro-Commercial-Prepaid “VIS-02-C” – VISA-VISA-Commercial-Credit “VIS-02-D” – VISA-VISA-Commercial-Debit “VIS-02-P” – VISA-VISA-Commercial-Prepaid “VIS-01-C” – VISA-VISA-Consumer-Credit “VIS-01-D” – VISA-VISA-Consumer-Debit “VIS-01-P” – VISA-VISA-Consumer-Prepaid “VPY-03-D” – VISA-VPAY-VPAY-Debit “VPY-03-P” – VISA-VPAY-VPAY-Prepaid “VSL-01-C” – VISA-VISA Electron-Consumer-Credit “VSL-01-D” – VISA-VISA Electron-Consumer-Debit “VSL-01-P” – VISA-VISA Electron-Consumer-Prepaid |
| productInvoiceIndicator | String “Payment Facilitator” “Sponsored Merchant” Default: “Payment Facilitator” | Optional | Product Invoice Indicator |
| paymentMethodType | String “Direct Debit” “Bank Transfer” Default: “Direct Debit” | Conditional | Payment method type for the invoicing of the sponsored merchant. This field is mandatory if the Invoice indicator is “Sponsored Merchant” |
| invoiceEmail | String <=55 | Conditional | Invoice email address. This field is mandatory if the Invoice indicator is “Sponsored Merchant” |
| payout | String | Conditional | Object that defines the Payout Information. Mandatory if InvoiceIndicator is “Sponsored Merchant” |
| bankAccount | String 26-26 | Conditional | Sponsored Merchants bank account Mandatory if InvoiceIndicator is “Sponsored Merchant” |
| iban | String <=34 | Conditional | Sponsored Merchants iban Mandatory if InvoiceIndicator is “Sponsored Merchant” |
| bic | String 8<11 | Conditional | Sponsored Merchants bic Mandatory if InvoiceIndicator is “Sponsored Merchant” |
| numDaysPayout | Number | Optional | Sponsored Merchants Payout Number of Days Reserved for future use. |
| maxPercentLowRiskExemptions | Number <=100 | Optional | The maximum percentage of low-risk exemptions allowed in a system or process. |
| scaExemption | String Default “0” | Optional | The field to evaluate SCA Exemptions must be filled with 1 to allow and 0 to not allow. |
| typeOfIntegration | String “S2S” “SDK” “Plugin” Default “S2S” | Mandatory | Sponsored merchant type of integration |
| webhookNotification | String | Conditional | Object that defines the webhook configuration details Mandatory if typeOfIntegration is “Plugin”. |
| type | String “URL” “Email” | Conditional | Type of webhook notifications. Mandatory if typeOfIntegration is “Plugin”. If “Plugin”, the value must be “URL” |
| Value | String | Conditional | A delivery email address (for email type), or an HTTP(S) URL Mandatory if typeOfIntegration is “Plugin” |
| supportEmail | String <=55 | Conditional | An email address to where all failed SPG Webhook calls will be reported by the end-of-day Mandatory if typeOfIntegration is “Plugin” |
| securityKey | String <=32 | Optional | A pseudo-random symmetric key that will be used to cipher the webhook content |
Find below a POST request example:
{
"merchant": {
"name": "JOHN DOE",
"phone": "505102923",
"email": "fds@op.pl",
"nip": "6831968575",
"mcc": "5969",
"pkd": "86.90.E",
"merchantType": "Sponsored Merchant",
"address": {
"street": "UL IMAGINARY",
"postalCode": "85-132",
"locality": "BYDGOSZCZ",
"country": "616"
},
"website": "www.yolo.pl",
"signedAgreements": true,
"backofficeEmail": "fds@op.pl",
"pepStatus": "Inactive",
"owners": [
{
"name": "JANE DOE",
"phone": "505102923",
"email": "fds@op.pl",
"address": "UL UGORY 85-132 BYDGOSZCZ POLSKA",
"tin": "6831968575"
}
],
"shop": {
"name": "YOLO",
"address": {
"street": "UL IMAGINARY",
"postalCode": "85-132",
"locality": "BYDGOSZCZ",
"country": "616"
},
"email": "fds@op.pl",
"phoneNumber": "505102923",
"type": "Retail",
"mcc": "5969",
"pkd": "86.90.E",
"invoiceIndicator": "Payment Facilitator",
"products": [
{
"productId": "INTP-BLIK-0-0",
"productInvoiceIndicator": "Payment Facilitator"
},
{
"productId": "KEVN-PYBL-0-0",
"productInvoiceIndicator": "Payment Facilitator"
}
],
"paymentMethodType": "Bank Transfer",
"invoiceEmail": "fds@op.pl",
"payout": {
"bankAccount": "50116022020000000127761999",
"iban": "PL50116022020000000127761999",
"bic": "BIGBPLPW",
"numDaysPayout": 1.0
},
"typeOfIntegration": "S2S",
"webhookNotification": {
"type": "URL",
"value": ""
},
"supportEmail": "",
"securityKey": ""
}
}
}Upon this action, the API will respond with one of the following two status codes:
| Status Code | Message | TransactionStatus |
|---|---|---|
| 000 | Success | “ACT” (Accepted Technical Validation) |
| 999 | Unexpected Error | “RJT” (Rejected) |
Here is an example of a successful onboarding response:
{
"transactionStatus": "ACT",
"returnStatus": {
"statusCode": "000" "statusMsg": "Success",
"statusDescription": "string"
}
}You will also receive the onboarding webhook, which includes the following merchant onboarding details and credentials.
Here’s a redacted example of a successful Webhook notification:
{
"NotifyRequest": {
"TrackingId": "00caa675-f811-45ed-aee3-b84c22ac3efc",
"TIN": "000****123",
"MerchantId": "PL-000****123-1",
"ShopId": "SH-PL-000000321",
"TerminalId": "POS000159",
"ErrCode": "CRM000",
"ErrDesc": "Success",
"Agreements": {
"AgreementType": "PLKV"
},
"Credentials": {
"ApiClientId": "2a69a780-****-****-****-1c6308af85f0",
"ApiClientSecret": "K1rK*******************************0uU6",
"TerminalToken": "0277a2c645e93c43f59ce867ee55498293*******5272db028ad9c9fa250edd04d9cac5d42910950e2acb82034093d14830e649c3d6df2cc0f92268f79"
}
}
}Error handling
If a rejection occurs on the onboarding process, a synchronous response will be received that include a transactionstatus with the value RJCT (rejected) and a 999 StatusCode.
This response will contain error code and message fields that can assist you in identifying and resolving the issue.
Rejected onboarding response example:
{
"transactionStatus": "RJCT",
"returnStatus": {
"statusCode": "999",
"statusMsg": "Internal Server Error",
"statusDescription": "When invoiceIndicator is Sponsored Merchant invoiceEmail and payout object are mandatory."
}
}Webhooks Status Codes
Below you can find the range of Status Codes and Messages that you can receive via webhooks.
| Status Code | Message |
|---|---|
| CRM000 | Success |
| CRM001 | Sponsored Merchant already exists. |
| CRM002 | PKD is invalid |
| CRM003 | MCC code is invalid |
| CRM004 | NIP is invalid |
| CRM005 | IBAN is invalid |
| CRM006 | Product list doesn’t comply with Payment Facilitator agreement |
| CRM007 | Product code {} is invalid |
| CRM008 | Payment Facilitator is invalid |
| CRM009 | Product {} is not compatible with product {} |
| CRM010 | Invoice indicator is invalid for this Sponsored Merchant |
| CRM011 | This Product of Establishment has already been added as an Establishment Product. |
| CRM012 | Required field {} missing |
| CRM013 | The Country of the Establishment doesn’t match the Company Country |
| CRM014 | Sponsored Merchant Country does not match the Payment Facilitator Country |
| CRM999 | Unexpected Error |