Merchant Accounts
The Partner Program is a form of cooperation with companies offering various services, such as implementing e-commerce solutions for their clients or developing their own marketplace solutions. As part of the program, the Partner recommends Tpay services and earns a specified percentage from each invoice of a client they have referred.
To use the Tpay Marketplace you must be a part of the Tpay Partner Program. Not a partner yet? Learn how to join the Program.
The instructions to launch and manage the Tpay marketplace payments can be found in the Partner Panel: here.
Merchant account registration
In addition to generating affiliate links in the Partner Panel, which allows a new merchant to register independently via the Tpay registration form, the system also offers a registration API. Having the merchant’s email address and a previously generated offer code, you can send a POST
request to the following address:
https://api.tpay.com/v1/accounts/merchant
The remaining fields are optional.
Check details in API Reference documentation: POST /v1/accounts/merchant
In the request, specify the following parameters:
offerCode | The offer code to which the account will be assigned. |
email | The merchant’s email address. |
taxId | Tax Identification Number (NIP for Polish entities). |
regon | REGON number. |
krs | KRS number. |
legalForm | Type of business activity. see business activity list |
categoryId | Category of conducted sales. see conducted sales category list. |
address[].name | Company name. |
address[].street | Street. |
address[].houseNumber | House number. |
address[].flatNumber | Flat number. |
address[].postalCode | Postal code. |
address[].city | City. |
address[].country | Country. |
address[].phone | Phone Number. |
address[].isMain | The provided address is the primary address. If only the primary address is submitted, it will by default also be used for invoicing and correspondence. The data set may contain a maximum of one address of each type. |
address[].isCorrespondence | The provided address is used for correspondence. |
address[].isInvoice | The provided address is used for invoicing. |
website[].url | Point of sale URL. |
website[].name | Point of sale name. |
contactPerson[].name | Name of the contact person. |
contactPerson[].surname | Surname of the contact person. |
contactPerson[].phone | Phone number of the contact person. |
contactPerson[].email | Email address of the contact person. |
merchantApiConsent | Consent to obtain API access credentials in response to the request. If the merchant has given consent, send true to receive the merchant’s API keys needed for automatic integration. |
The basic request body should look as follows:
{ "offerCode": "9u7UP", "email": "[email protected]" }
After sending the request, you will receive the MerchantCreated
schema in response.
{ "result": "success", "id": "01JQ404XV7KJPRD5PHFFZ6R9YR", "offerCode": "9u7UP", "email": "[email protected]", "taxId": null, "regon": null, "krs": null, "legalForm": null, "categoryId": null, "verified": false, "activationLink": "https://panel.tpay.com/Auth/Account/Activate/xyz123", "website": [ { "posId": "01JQ404XVJBPR066ZK1XX5A0A0", "accountId": "01JQ404XV7KJPRD5PHFFZ6R9YR", "name": "", "friendlyName": "", "description": "", "url": "", "date": { "create": "2025-03-24 12:56:00", "modification": null }, "settings": { "confirmationCode": "i3DCcHbIA_81rI@FeP4$+LMScK2X#T_|", "isTestMode": true }, "verificationScope": 0, "verificationDate": null, "verificationStatus": 0 } ], "address": [ { "addressId": "ar_8OqmRLlQoV9eXgdx", "friendlyName": "-", "name": "-", "street": "-", "houseNumber": "", "flatNumber": "", "postalCode": "-", "city": "-", "country": "PL", "phone": "", "isMain": true, "isCorrespondence": true, "isInvoice": true } ], "person": [] }
In the test environment (Sandbox), some merchant data will be automatically filled in with random values to enable automatic account activation.
An example of an expanded registration request looks as follows:
{ "offerCode": "9u7UP", "email": "[email protected]", "taxId": "7773061579", "regon": "30087843700000", "krs": "0000412357", "legalForm": 36, "categoryId": 60, "address": [ { "name": "Example Sp. z o.o.", "street": "ul. Przykładowa", "houseNumber": "44b", "flatNumber": "1", "postalCode": "11-111", "city": "Warszawa", "country": "PL", "phone": "123123123", "isMain": true, "isCorrespondence": true, "isInvoice": true } ], "website": [ { "url": "http://przykladowezakupy.pl", "name": "Przykładowe zakupy online" } ], "contactPerson": [ { "name": "Jan", "surname": "Kowalski", "phone": "123123123", "email": "[email protected]" } ], "merchantApiConsent": true }
After sending the request, you will receive the MerchantCreated
schema in response.
{ "result": "success", "id": "01JVVCFMWT0QCGDFM7HB9SJXWT", "offerCode": "9u7UP", "email": "[email protected]", "taxId": "7773061579", "regon": "30087843700000", "krs": "0000412357", "legalForm": 36, "categoryId": 60, "verified": false, "activationLink": "http://docker.pop.com:81/Auth/Account/Activate/7a86870f6ab05385ddcae991a8e5e831", "website": [ { "posId": "01JVVCFMX8ZGGV4E33ZYSXZMT8", "accountId": "01JVVCFMWT0QCGDFM7HB9SJXWT", "name": "Przykładowe zakupy online", "friendlyName": "", "description": "", "url": "http://przykladowezakupy.pl", "date": { "create": "2025-05-22 08:56:53", "modification": null }, "settings": { "confirmationCode": "M6(d5QU+3P!57N2(C294#J^XN$2=WgZl", "isTestMode": true }, "verificationScope": 0, "verificationDate": null, "verificationStatus": 0 } ], "address": [ { "addressId": "ar_vM9jQLGqBVK01aAp", "friendlyName": "Example Sp. z o.o.", "name": "Example Sp. z o.o.", "street": "ul. Przykładowa", "houseNumber": "44b", "flatNumber": "1", "postalCode": "11-111", "city": "Warszawa", "country": "PL", "phone": "123123123", "isMain": true, "isCorrespondence": true, "isInvoice": true } ], "person": [ { "personId": "pr_P0jrvklnKGxgDZye", "name": "Jan", "surname": "Kowalski", "contacts": [ { "contact": "123123123", "type": 2 }, { "contact": "[email protected]", "type": 1 } ], "isBeneficiary": false, "isRepresentative": false, "isContactPerson": true, "isAuthorizedPerson": false } ], "transactionApiCredentials": { "apiKey": "string", "apiPassword": "string", "merchantId": 12345 }, "apiCredentials": [ { "clientId": "string", "clientSecret": "string" } ] }
API Access Keys for Merchants
If the merchantApiConsent parameter is set to true in the request that registers a new merchant account, the Tpay system will automatically generate the merchant’s API credentials and return them in the response. These credentials are required for integration with most e-commerce systems, and providing them in this form enables automated integration of the merchant account with your sales platform.
Business activity list
You can expand the data scope during merchant registration by including the merchant’s type of business activity. To do so, present a selection list to the user or map your available data to the business activity types defined in the Tpay system.
To obtain the list, you can send a GET
request to the following address:
https://api.tpay.com/accounts/legalForm
Check details in API Reference documentation: GET /accounts/legalForm
After sending the request, you will receive the LegalFormListResultResponse
schema in response.
Sale Categories List
You can expand the data scope during merchant registration by including the sales category, i.e., the merchant’s industry. To do this, display a selection list to the user or map your available data to the sales categories defined in the Tpay system.
To obtain the list, you can send a GET
request to the following address:
https://api.tpay.com/accounts/category
Check details in API Reference documentation: GET /accounts/legalForm
After sending the request, you will receive the CategoryListResultResponse
schema in response.
Downloading the Merchant Account Data
To retrieve a list of merchant accounts registered so far, send a GET request to the following endpoint:
https://api.tpay.com/accounts
Check details in API Reference documentation: GET /accounts
After sending the request, you will receive the AccountListResultResponse
schema in response.
{ "list": [ { "result": "success", "requestId": "376f310aba18a2ed6389", "id": "01GM5QNY2SANHEXFK6FEV2DWYD", "offerCode": "PFA7M", "email": "[email protected]", "taxId": "7773061579", "regon": "", "krs": "", "legalForm": 20, "categoryId": 66, "verificationStatus": 0, "activationLink": "https://panel.tpay.com/Auth/Account/Activate/123xyz", "website": [ { "posId": "01GM5QNY2N7Z4BKTAH8JJAXX25", "accountId": "01GM5QNY2SANHEXFK6FEV2DWYD", "name": "Przykladowe Zakupy Online", "friendlyName": "", "description": "Zakupy online - rtv i agd", "url": "https://przykladowezakupy.pl", "date": { "create": "2022-12-13 13:34:46", "modification": "2023-02-13 14:23:34" }, "settings": { "confirmationCode": "txf&#YE37gxq8f5q+*gC7q>%hq*6o", "isTestMode": false }, "verificationScope": 0, "verificationDate": "0000-00-00 00:00:00", "verificationStatus": 0 } ], "person": [ { "personId": "pr_X9x61ZG9KJrqPOAN", "name": "John", "surname": "Doe", "nationality": "", "sharesPct": 0, "pesel": "", "isBeneficiary": false, "isRepresentative": false, "isContactPerson": true, "isAuthorizedPerson": false, "pepStatement": 0, "dateOfBirth": null, "countryOfBirth": "", "typeOfDocument": 0, "serialNumber": "", "expiryDate": null, "issuingAuthority": "", "contact": [ { "contact": "987654321", "type": 2 }, { "contact": "[email protected]", "type": 1 } ] } ], "address": [ { "addressId": "ar_e1Z3xlEEDBElXngY", "friendlyName": "Adres Korespondencyjny", "name": "Example Sp. z o.o.", "street": "Ul. Jelenia", "houseNumber": "123", "roomNumber": "", "postalCode": "54-134", "postOffice": "", "city": "Warszawa", "country": "PL", "phone": "", "isMain": true, "isCorrespondence": true, "isInvoice": true } ], "transactionApiCredentials": { "merchantId": 12345, "apiKey": "string" }, "apiCredentials": [] } ], "result": "success", "requestId": "376f310aba18a2ed6389", "page": 1, "limit": 35, "total": 1 }
If you have the merchant account ID returned during registration via the API or retrieved using the method described above, you can query the Tpay API for detailed information about that specific account.
To do this, you can send a GET
request to the following address:
https://api.tpay.com/accounts/{accountId}
Check details in API Reference documentation: GET /accounts/{accountId}
After sending the request, you will receive the Account
schema in response.
{ "result": "success", "requestId": "376f310aba18a2ed6389", "id": "01GM5QNY2SANHEXFK6FEV2DWYD", "offerCode": "PFA7M", "email": "[email protected]", "taxId": "7773061579", "regon": "", "krs": "", "legalForm": 20, "categoryId": 66, "verificationStatus": 0, "activationLink": "https://panel.tpay.com/Auth/Account/Activate/123xyz", "website": [ { "posId": "01GM5QNY2N7Z4BKTAH8JJAXX25", "accountId": "01GM5QNY2SANHEXFK6FEV2DWYD", "name": "Przykladowe Zakupy Online", "friendlyName": "", "description": "Zakupy online - rtv i agd", "url": "https://przykladowezakupy.pl", "date": { "create": "2022-12-13 13:34:46", "modification": "2023-02-13 14:23:34" }, "settings": { "confirmationCode": "txf&#YE37gxq8f5q+*gC7q>%hq*6o", "isTestMode": false }, "verificationScope": 0, "verificationDate": "0000-00-00 00:00:00", "verificationStatus": 0 } ], "person": [ { "personId": "pr_X9x61ZG9KJrqPOAN", "name": "Jan", "surname": "Kowalski", "nationality": "", "sharesPct": 0, "pesel": "", "isBeneficiary": false, "isRepresentative": false, "isContactPerson": true, "isAuthorizedPerson": false, "pepStatement": 0, "dateOfBirth": null, "countryOfBirth": "", "typeOfDocument": 0, "serialNumber": "", "expiryDate": null, "issuingAuthority": "", "contact": [ { "contact": "987654321", "type": 2 }, { "contact": "[email protected]", "type": 1 } ] } ], "address": [ { "addressId": "ar_e1Z3xlEEDBElXngY", "friendlyName": "Adres Korespondencyjny", "name": "Example Sp. z o.o.", "street": "Ul. Jelenia", "houseNumber": "123", "roomNumber": "", "postalCode": "54-134", "postOffice": "", "city": "Warszawa", "country": "PL", "phone": "", "isMain": true, "isCorrespondence": true, "isInvoice": true } ], "transactionApiCredentials": { "merchantId": 12345, "apiKey": "string" }, "apiCredentials": [] }