Use the following endpoint to create and manage links via API, to share with your customers.
| Environment | URL | Operation Method & Endpoint | Operation Description |
|---|---|---|---|
| PROD | api.sibsgateway.com | POST /api/v1/link-to-pay/create | Performs a request to create a link |
| TEST | stargate.qly.site1.sibs.pt | /api/v1/link-to-pay/create | Performs a request to create a link |
Create a new link
New Link request
| Location | Data Element | Type | Condition | Description |
|---|---|---|---|---|
| Request Header | Content-Type | String | Mandatory | application/json |
| Request Header | Authorization | String | Mandatory | Bearer Token. Based on OAuth2 authentication performed in a pre-step. |
| Request Header | 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 Body.paymentInfo.paymentMethods | paymentMethod | PaymentMethodCode | Conditional | Payment method code. |
| Request Body.paymentInfo.amount | Value | Number (double) | Mandatory | Amount in the transaction. |
| Request Body.paymentInfo.amount | currency | Currency Code | Mandatory | Currency used in the transaction. ISO 4217 Alpha-3 Code. |
| Request Body.paymentInfo | merchant-id | String | Mandatory | Merchant code Max10NumericText |
| Request Body.paymentInfo | acceptorId | String | Mandatory | Acceptor code in Merchant Max10NumericText |
| Request Body.paymentInfo | terminalId | String | Mandatory | Terminal code. Max10NumericText |
| Request Body.paymentInfo | amount | Amount | Mandatory | Amount with the value and currency of the transaction. |
| Request Body.paymentInfo | validity | ValidityTypeCode | Mandatory | Validity type code. Possible values: • HR48 – 48 hours; • HR72 – 72 hours; • DY90 – 90 days. Exact4Text |
| Request Body.paymentInfo | linkType | LinkTypeCode | Mandatory | Link type code. Possible values: • SNGL – single usage • MLTP – multiple usage Exact4Text |
| Request Body.paymentInfo | paymentMethods | PaymentMethods | Mandatory | Array of Allowed Payment Methods |
| Request Body.paymentInfo | reference | String | Mandatory | Reference related to link Max35Text |
| Request Body.paymentInfo | description | String | Mandatory | Description related to link Max256Text |
| Request Body.dataCollection.shippingAddress | shippingAddressCollection | Boolean | Mandatory | Indicates if Shipping Address must be collected. |
| Request Body.dataCollection.shippingAddress | shippingCityCollection | Boolean | Mandatory | Indicates if Shipping Address City must be collected. |
| Request Body.dataCollection.shippingAddress | shippingPostalCodeCollection | Boolean | Mandatory | Indicates if Shipping Address Postal Code must be collected. |
| Request Body.dataCollection.shippingAddress | shippingCountryCollection | Boolean | Mandatory | Indicates if Shipping Address Country must be collected. |
| Request Body.dataCollection.customMerchantInfo.parameters.parameter | tag | String | Mandatory | Reference related to link (regarding Link to Pay service) Max35Text |
| Request Body.dataCollection.customerInfo | customerName | Boolean | Mandatory | Indicator related to “customer name”: • True – field to be collected from customer; • False – filed to not be present to customer (not necessary to be collected from customer). Must be filled with “True “ |
| Request Body.dataCollection.billingAddress | customerEmail | Boolean | Mandatory | Indicator related to “customer email”: True – field to be collected from customer; False – filed to not be present to customer (not necessary to be collected from customer). Must be filled with “True” |
| Request Body.dataCollection.billingAddress | billingAddressCollection | Boolean | Mandatory | Indicates if Billing Address must be collected. |
| Request Body.dataCollection.billingAddress | billingCityCollection | Boolean | Mandatory | Indicates if Billing Address City must be collected. |
| Request Body.dataCollection.billingAddress | billingCountryCollection | Boolean | Mandatory | Indicates if Billing Address Country must be collected. |
| Request Body.dataCollection | billingPostalCodeCollection | Boolean | Mandatory | Indicates if Billing Address Postal Code must be collected. |
| Request Body.dataCollection | customerInfo | CustomerInfo | Mandatory | Object that set customer information to be collected. |
| Request Body.dataCollection | billingAddress Info | BillingAddress | Mandatory | Object that set billing address information to be collected. |
| Request Body.dataCollection | shippingAddressInfo | ShippingAddress | Mandatory | Object that set shipping address information to be collected. |
| Request Body | customMerchantInfo | CustomMerchantInfo | Optional | Object that set specific merchant information to be collected. |
| Request Body | paymentInfo | PaymentInfo | Mandatory | Object that defines payment info related to link generation. |
| Request Body | dataCollection | DataCollection | Mandatory | Object that identifies info to be collected from the customer. |
| Request Body.dataCollection | linkStatusWebhookInfo | linkStatusWebhookInfo | Mandatory | Object that set Link To Pay status webhook |
| Request Body.dataCollection.linkStatusWebhookInfo | linkToPayWebhookStatusIndicator | Boolean | Mandatory | Indicates if Link To Pay status webhook must be delivered to Merchant whenever link status changes. Possible values are: • ‘True’ – Link To Pay status webhook to be set to this specific Link To Pay; • ‘False’ – Link To Pay status webhook not to be set to this specific Link To Pay. |
| Request Body.dataCollection.linkStatusWebhookInfo | emailAddresses | Email Address List | Conditional | Email Address List. Must be present if linkToPayWebhookStatusIndicator is set with ‘True’. emailAddresses list is limited to 3 emailAddress |
| Request Body.dataCollection.linkStatusWebhookInfo,emailAddresses | emailAddress | EmailAddress | Conditional | Email Address At least one emailAddress must be present. |
New Link request example
{
"paymentInfo" : {
"merchantId" : "530",
"acceptorId" : "1",
"terminalId" : "450",
"amount" : {
"value" : 4,
"currency" : "PLN"
},
"validity" : "DY90",
"linkType" : "SNGL",
"paymentMethods" : ["BLIK"],
"reference" : "4",
"description" : "Test 4"
},
"dataCollection" : {
"customerInfo" : {
"customerName" : true,
"customerEmail" : true
},
"billingAddressInfo" : {
"billingAddressCollection" : false,
"billingCityCollection" : false,
"billingPostalCodeCollection" : false,
"billingCountryCollection" : false
},
"shippingAddressInfo" : {
"shippingAddressCollection" : false,
"shippingCityCollection" : false,
"shippingPostalCodeCollection" : false,
"shippingCountryCollection" : false
},
"customMerchantInfo" : {
"parameters" : {
"tag" : "t1",
"label" : "tag",
"format" : "jpg"
}
}
}
}
The response from the new Link creation operation is the following:
Response example
{
"linkId": "N2RjMzZiNGMtNDljZC00NTkyLTllYWEtMGE",
"linkURL": "https://stargate-cer.qly.sibs.pt/linktopay//N2RjMzZiNGMtNDljZC00NTkyLTllYWEtMGE.MjAyNS0wMS0yNiAxNjowMToyMC4wMDE=.Tn4XoWV86LBSm5ndLvYm+5S/jliipSoFs9u0ywoq3QY=",
"linkExpiryDate": "2025-01-26T16:01:20.955Z",
"returnStatus": {
"statusCode": "000",
"statusMsg": "Success",
"statusDescription": "Success"
}
}
Get list of links
Get list of links request
| Location | Data Element | Type | Condition | Description |
|---|---|---|---|---|
| Request Header | Content-Type | String | Mandatory | application/json |
| Request Header | Authorization | String | Mandatory | Bearer Token. Based on OAuth2 authentication performed in a pre-step. |
| Request Header | 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 Body | merchantId | Max10NumericText | Mandatory | Merchant code |
| Request Body | acceptorId | Max10NumericText | Optional | Acceptor code |
Get list of links request example
{
"merchantId" : "95",
"acceptorId" : "1"
}
Response example
{
"linkThemeDefinitionIndicator": true,
"links": [
{
"linkId": "NGFhZWM1ZGMtMWVmYy00YjQzLTkwYzUtZmQ",
"paymentInfo": {
"terminalId": "91",
"amount": {
"value": 10,
"currency": "EUR"
},
"validity": "HR48",
"linkType": "MLTP",
"linkStatus": "EXPR",
"paymentMethods": [
"BNCT",
"CARD",
"CRTB",
"IDEL",
"MBWY",
"PY24"
],
"reference": "Teste",
"description": "Teste",
"linkCreationDate": "2025-10-31T10:28:59.442Z",
"linkExpiryDate": "2025-11-02T10:28:59.432Z",
"linkURL": "https://stargate.qly.sibs.pt/linktopay//NGFhZWM1ZGMtMWVmYy00YjQzLTkwYzUtZmQ.MjAyNS0xMS0wMiAxMDoyODo1OS4wMjg=.9kv1rjDzXPMGMcQ5pJk2umxXDx9uPvHYCUR4qlD7NuY="
}
},
{
"linkId": "OTJlMjBmY2EtNGFmYi00NmM3LWEzNWQtZjl",
"paymentInfo": {
"terminalId": "91",
"amount": {
"value": 7,
"currency": "EUR"
},
"validity": "HR48",
"linkType": "MLTP",
"linkStatus": "EXPR",
"paymentMethods": [
"CARD",
"CRTB",
"IDEL",
"MBWY",
],
"reference": "test 7",
"description": "Test 7",
"linkCreationDate": "2025-10-27T11:09:44.883Z",
"linkExpiryDate": "2025-10-29T11:09:44.873Z",
"linkURL": "https://stargate.qly.sibs.pt/linktopay//OTJlMjBmY2EtNGFmYi00NmM3LWEzNWQtZjl.MjAyNS0xMC0yOSAxMTowOTo0NC4wMDk=.3aK35WcunBVz17U5YYiRDLVT5k4HIOYR5Xlae+uuJuA="
}
},
{
"linkId": "MTJjNWVlZTQtYjJiNS00MTc0LThjNTktY2U",
"paymentInfo": {
"terminalId": "91",
"amount": {
"value": 12.34,
"currency": "EUR"
},
"validity": "HR48",
"linkType": "MLTP",
"linkStatus": "EXPR",
"paymentMethods": [
"CARD",
"IDEL",
"MBWY",
],
"reference": "123",
"description": "123",
"linkCreationDate": "2025-02-07T09:41:15.415Z",
"linkExpiryDate": "2025-02-09T09:41:15.399Z",
"linkURL": "https://stargate.qly.sibs.pt/linktopay//MTJjNWVlZTQtYjJiNS00MTc0LThjNTktY2U.MjAyNS0wMi0wOSAwOTo0MToxNS4wNDE=.uqhAMSHP4InR2UkpgKRES6bon3I62zMX2z1agi35mh4="
}
}
],
"returnStatus": {
"statusCode": "000",
"statusMsg": "Success",
"statusDescription": "Success"
}
}
Link Status Update
Link Status Update request
| Location | Data Element | Type | Condition | Description |
|---|---|---|---|---|
| Path | linkID | String | Mandatory | Link Identifier |
| Request Header | Content-Type | String | Mandatory | application/json |
| Request Header | Authorization | String | Mandatory | Bearer Token. Based on OAuth2 authentication performed in a pre-step. |
| Request Header | 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 Body | terminal | String | Conditional | Terminal related data. Only present in success responses. |
| Request Body.terminal | merchantId | String | Max10NumericText | Merchant code. |
| Request Body.terminal | acceptorId | String | Max10NumericText | Acceptor code in Merchant. |
| Request Body.terminal | terminalId | String | Max10NumericText | Terminal Identification. |
| Request Body | linkStatus | String | Mandatory | Link status code. Possible values: ACTV – “active”; INCT – “inactive”; CNCL – “cancelled”; EXPR – “expired”; USED – “used” (Only for Single Use Links). |
Link Status Update request example
"terminal": {
"merchantId": "95",
"acceptorId": "1",
"terminalId": "91",
"linkStatus": "CNCL"
}
Response example
{
"returnStatus": {
"statusCode": "000",
"statusMsg": "Success",
"statusDescription": "Success"
},
"transactionStatus": "Success"
}
Get Link’s Status
Get Link’s Status request
| Location | Data Element | Type | Condition | Description |
|---|---|---|---|---|
| Path | linkID | String | Mandatory | Link Identifier |
| Request Header | Content-Type | String | Mandatory | application/json |
| Request Header | Authorization | String | Mandatory | Bearer Token. Based on OAuth2 authentication performed in a pre-step. |
| Request Header | 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. |
Response example
{
"returnStatus": {
"statusCode": "000",
"statusMsg": "Success",
"statusDescription": "Success"
},
"linkStatus": "EXPR"
}