Introduction
This documentation is intended for current and future Partners of
Simpay. Before implementation, it is necessary to first define the service in the Partner Panel and wait for its activation.
Other languages
Pre-made libraries
Pagination object
"pagination" : {
"total" : 1 ,
"count" : 1 ,
"per_page" : 15 ,
"current_page" : 1 ,
"total_pages" : 1 ,
"links" : {
"next_page" : null ,
"prev_page" : null
}
}
If pagination is available in the request it is possible to use the following URL Parameters
.
URL parameters
Name
Type
Description
page
integer
Page
limit
integer
Limit of results. default: 15, maximum: 99
Object description
Name
Type
Description
Total
int
Number of all records in the object
Count
int
Number of records on the current page
PerPage
int
Number of records maximum per page
CurrentPage
int
Current page
TotalPages
int
Number of total pages
links.NextPage
string
URL of the next page
links.PrevPage
string
URL of previous page
SMS
sms := simpay. NewSms ( "0b4dca15" , "3eea38f407073ff0abff956b57d71783" ) ;
Parameters description
Name
Type
Required?
Description
apiKey
string
Yes
API key from partner panel
apiPassword
string
Yes
API password from partner panel
Available methods in the sms object
Downloading the list of services
serviceList, err := sms. GetServiceList ( 1 , 20 )
Przykładowa odpowiedź
{
PaginatedResponse: {
Response: { Success: true Errors: map [ ] }
Pagination: { Total: 1 Count: 1 PerPage: 15 CurrentPage: 1 TotalPages: 1 Links: { NextPage: PrevPage: } }
}
ServiceList: [ { Id: 3549
Type: ONE_TIME_CODE
Status: service_active
Name: TEST Prefix: SIM
Suffix: TESTSIMPAY
Adult: false
CreatedAt: 2021 - 11 - 08 17 : 18 : 53 + 0000 UTC} ]
}
GetServiceList(page, limit uint) → (SmsServiceListResponse, error)
Parameters description
Name
Type
Required?
Description
page
uint
No
Page number
limit
uint
No
Limit of objects per page
Response description
Name
Type
Description
Id
integer
Id Services
Type
string
Service type
Status
string
Service status. service_active - means active status
Name
string
Service name
Prefix
string
SMS content prefix
Suffix
string
Suffix of SMS content
Adult
boolean
Is the service 18+
CreatedAt
Time
Date of service creation in the format: ISO 8601
serviceDetails, err := sms. GetServiceDetails ( 1676 )
Example response
{
Response: { Success: true Errors: map [ ] }
ServiceDetails: { Id: 1
Type: ONE_TIME_CODE
Status: service_rejected
Name: TEST
Prefix: SIM
Suffix: TEST
Description: Example
description
Adult: false
Numbers: [ 7055 7136 7255 7355 7455 7555 7636 77464 78464 7936 91055 91155 91455 91664 91955 92055 92555 ]
CreatedAt: 2021 - 02 - 16 21 : 00 : 30 + 0000 UTC}
}
GetServiceDetails(serviceId uint) → (SmsServiceDetailsResponse, error)
Parameters description
Name
Type
Required?
Description
serviceId
uint
No
Service id
Response description
Name
Type
Description
Id
integer
Id Services
Type
string
Service type
Status
string
Service status. service_active - means active status
Name
string
Service name
Prefix
string
SMS content prefix
Suffix
string
Suffix of SMS content
Description
string
Service description
Adult
boolean
Is the service 18+
Numbers
[]string
List of SMS numbers available in the service
CreatedAt
Time
Date of service creation in the format: ISO 8601
Downloading a list of transactions
transactions, err := sms. GetTransactions ( 1676 , 1 , 20 )
Example response
{
PaginatedResponse: { Response: { Success: true Errors: map [ ] }
Pagination: { Total: 3 Count: 3 PerPage: 15 CurrentPage: 1 TotalPages: 1 Links: { NextPage: PrevPage: } } }
TransactionList: [ { Id: 1 From: 48123123123 Code: ABCDEF Used: false SendAt: 1970 - 01 - 01 00 : 00 : 00 + 0000 UTC}
{ Id: 2 From: 48123123123 Code: ABCDEF Used: false SendAt: 1970 - 01 - 01 00 : 00 : 00 + 0000 UTC}
{ Id: 3 From: 48123123123 Code: ABCDEF Used: false SendAt: 1970 - 01 - 01 00 : 00 : 00 + 0000 UTC} ]
}
GetTransactions(serviceId, page, limit uint) → (SmsTransactionListResponse, error)
Parameters description
Name
Type
Required?
Description
serviceId
uint
Yes
Service id
page
uint
No
Page
limit
uint
No
Limit of objects per page
Response description
Name
Type
Description
Id
int
Transaction id
From
int64
Number from which SMS was sent
Code
string
SMS return code
Used
boolean
Was the code used
SendAt
Time
Date of sending the SMS in the format: ISO 8601
transactionDetails, err := sms. GetTransactionDetails ( 1676 , 2203305 )
Example response
{
Response: { Success: true Errors: map [ ] }
TransactionDetails: { Id: 1 From: 48123123123 Code: ABCDEF Used: false SendNumber: 7636 Value: 6 SendAt: 1970 - 01 - 01 00 : 00 : 00 + 0000 UTC}
}
GetTransactionDetails(serviceId, transactionId uint) → (SmsTransactionDetailsResponse, error)
Parameters description
Name
Type
Required?
Description
serviceId
uint
Yes
Service id
transactionId
uint
No
Transaction id
Response description
Name
Type
Description
Id
int
Transaction id
From
int64
Number from which SMS was sent
Code
string
SMS return code
Used
bool
Was the code used
SendNumber
int
Number to which SMS was sent
Value
float64
The net cost of a sent SMS
SendAt
Time
Date of sending the SMS in the format: ISO 8601
Downloading available numbers for the service
numbers, err := sms. GetServiceNumbers ( 1676 , 1 , 20 )
Example response
{
PaginatedResponse: { Response: { Success: true Errors: map [ ] }
Pagination: { Total: 9 Count: 9 PerPage: 15 CurrentPage: 1 TotalPages: 1 Links: { NextPage: PrevPage: } } }
NumberList: [ { Number: 70908 Value: 0.5 ValueGross: 0.62 Adult: true }
{ Number: 71908 Value: 1 ValueGross: 1.23 Adult: true }
{ Number: 72998 Value: 2 ValueGross: 2.46 Adult: true }
{ Number: 73908 Value: 3 ValueGross: 3.69 Adult: true }
{ Number: 75908 Value: 5 ValueGross: 6.15 Adult: true }
{ Number: 76908 Value: 6 ValueGross: 7.38 Adult: true }
{ Number: 79908 Value: 9 ValueGross: 11.07 Adult: true }
{ Number: 91998 Value: 19 ValueGross: 23.37 Adult: true }
{ Number: 92598 Value: 25 ValueGross: 30.75 Adult: true } ]
}
GetServiceNumbers(int $serviceId, int $page, int $limit) → array
Parameters description
Name
Type
Required?
Description
serviceId
uint
Yes
Service id
page
uint
No
Page
limit
uint
No
Limit of objects per page
Response description
Name
Type
Description
Number
integer
SMS number
value
float64
Net amount
ValueGross
float64
Gross amount
Adult
bool
Is it 18+
numberDetails, err := sms. GetServiceNumberDetails ( 7055 , 1676 )
Example response
{
Response: { Success: true Errors: map [ ] }
NumberDetails: { Number: 70908 Value: 0.5 ValueGross: 0.62 Adult: true }
}
GetServiceNumberDetails(serviceId uint, number int64) → (NumberDetailsResponse, error)
Parameters description
Name
Type
Required?
Description
serviceId
uint
Yes
Service id
number
uint
Yes
Number
Response description
Name
Type
Description
Number
integer
SMS number
Value
float64
Net amount
ValueGross
float64
Gross amount
Adult
bool
Is it 18+
Downloading all available numbers
numbers, err := sms. GetNumbers ( 1 , 20 )
Example response
{
PaginatedResponse: { Response: { Success: true Errors: map [ ] }
Pagination: { Total: 26 Count: 15 PerPage: 15 CurrentPage: 1 TotalPages: 2 Links: { NextPage: https: / / api. simpay. pl/ sms/ numbers?page= 2 PrevPage: } } }
NumberList: [ { Number: 7055 Value: 0.5 ValueGross: 0.62 Adult: false }
{ Number: 7255 Value: 2 ValueGross: 2.46 Adult: false }
{ Number: 7136 Value: 1 ValueGross: 1.23 Adult: false }
{ Number: 7355 Value: 3 ValueGross: 3.69 Adult: false }
{ Number: 7455 Value: 4 ValueGross: 4.92 Adult: false }
{ Number: 7555 Value: 5 ValueGross: 6.15 Adult: false }
{ Number: 7636 Value: 6 ValueGross: 7.38 Adult: false }
{ Number: 77464 Value: 7 ValueGross: 8.61 Adult: false }
{ Number: 78464 Value: 8 ValueGross: 9.84 Adult: false }
{ Number: 7936 Value: 9 ValueGross: 11.07 Adult: false }
{ Number: 91055 Value: 10 ValueGross: 12.3 Adult: false }
{ Number: 91155 Value: 11 ValueGross: 13.53 Adult: false }
{ Number: 91455 Value: 14 ValueGross: 17.22 Adult: false }
{ Number: 91664 Value: 16 ValueGross: 19.68 Adult: false }
{ Number: 91955 Value: 19 ValueGross: 23.37 Adult: false } ]
}
)
GetNumbers(page, limit uint) → (NumberListResponse, error)
Parameters description
Name
Type
Required?
Description
page
uint
No
Page
limit
uint
No
Limit of objects per page
Response description
Name
Type
Description
Number
int
SMS number
Value
float
Net amount
ValueGross
float
Gross amount
Adult
bool
Is it 18+
Downloading a single sms number
sms.GetNumberDetails(number int64) → (NumberDetailsResponse, error)
Parameters description
Name
Type
Required?
Description
number
int
Yes
Number
Response description
Name
Type
Description
Number
integer
SMS number
Value
float64
Net amount
ValueGross
float64
Gross amount
Adult
bool
Is it 18+
Code validation
sms. VerifyCode ( 1636 , "AF4CXF" , 7055 )
Example response for new code
{
Success: true
CodeVerification: { Used: false Code: 63 D9C7 Test: true From: 123123123 Number: 7055 Value: 0.5 UsedAt: 0001 - 01 - 01 00 : 00 : 00 + 0000 UTC}
}
Example response for the code used
{
Success: true
CodeVerification: { Used: true Code: 63 D9C7 Test: true From: 123123123 Number: 7055 Value: 0.5 UsedAt: 2021 - 11 - 08 00 : 56 : 00 + 0000 UTC}
}
sms.VerifyCode(serviceId uint, code string, number int64) -> (CodeVerificationResponse, error)
Parameters description
Name
Type
Required
Description
serviceId
int
Yes
Service id
code
string
Yes
Return code from SMS
number
int64
No
The number to which the SMS was to be sent
Response description
Name
Type
Description
Used
bool
Was the SMS used
Code
string
Return code from SMS
Test
bool
Is the test SMS
From
string
Number from which SMS was sent
Number
int
Number to which SMS was sent
Value
int
Net amount of SMS cost
UsedAt
Time
Date when SMS was used in the format: ISO 8601, only available if used
is equal to true
.
Models
Here you will find models of types, statuses, etc. for SMS services
Service status
Name
Description
service_new
New (to be verified)
service_active
Active
service_blocked
Blocked
service_deleted
Deleted
service_second_verify
Re-verification
service_rejected
Rejected
service_verify
Verification
service_ongoing_registration
In the course of registration
Service type
Name
Description
ONE_TIME_CODE
One-time code
CODE_PACK
Packet of codes
API_URL
API
SMSXML
smsXml := simpay. NewSmsXml ( "testKey" )
NewSmsXml(hashingKey string) → SmsXml
SMS Api XML allows you to control the entire process of receiving the sms and sending the code on the partner’s side of the service.
The partner prepares the URL link according to the described SimPay specification.
When the user places an order (sends an SMS message), our system queries the URL provided by the partner and downloads the code directly.
Parameters description
Name
Type
Required?
Description
hashKey
string
Yes
Signature creation key located in the partner panel in the service
isValid := smsXml. CheckParameters ( m map [ string ] interface { } )
value := smsXml. GetNumberValue ( "7455" )
code := smsXml. GenerateCode ( )
xml := smsXml. GenerateXml ( code)
DirectBilling
directBilling := simpay. NewDirectBilling ( "0b4dca15" , "3eea38f407073ff0abff956b57d71783" )
Parameters description
Name
Type
Required?
Description
apiKey
string
Yes
API key from partner panel
apiPassword
string
Yes
API password from partner panel
Available methods in the directbilling object
Downloading the list of services
directBilling. GetServiceList ( 1 , 20 )
Example response
{
PaginatedResponse: { Response: { Success: true Errors: map [ ] }
Pagination: { Total: 3 Count: 3 PerPage: 15 CurrentPage: 1 TotalPages: 1 Links: { NextPage: PrevPage: } } }
ServiceList: [ { Id: 1 Name: Testowa usługa Suffix: TEST1 Status: service_db_rejected CreatedAt: 2021 - 10 - 01 12 : 57 : 18 + 0000 UTC}
{ Id: 2 Name: Testowa usługa Suffix: TEST2 Status: service_active CreatedAt: 2021 - 10 - 01 13 : 57 : 18 + 0000 UTC}
{ Id: 3 Name: Testowa usługa Suffix: TEST3 Status: service_active CreatedAt: 2021 - 10 - 01 14 : 57 : 18 + 0000 UTC} ]
}
GetServiceList(page, limit uint) → (DirectBillingServiceListResponse, error)
Parameters description
Name
Type
Required?
Description
page
uint
No
Page number
limit
uint
No
Limit of objects per page
Response description
Name
Type
Description
Id
integer
Service id
Name
string
Name of the service
Suffix
string
Service suffix
Status
string
Service status, for more information check Models
CreatedAt
Time
Date of service creation in the format: ISO 8601
directBilling. GetServiceDetails ( 139 )
Example response
{
Response: { Success: false Errors: map [ ] }
ServiceDetails: { Id: 0 Name: Suffix: Status: Api: { Complete: Failure: }
Providers: { TMobile: false Orange: false Play: false Plus: false }
Commissions: { TMobile: { Commission0: Commission9: Commission25: }
Orange: { Commission0: Commission9: Commission25: }
Play: { Commission0: Commission9: Commission25: }
Plus: { Commission0: Commission9: Commission25: } }
MaxValues: { TMobile: Orange: Play: Plus: }
CreatedAt: 0001 - 01 - 01 00 : 00 : 00 + 0000 UTC}
}
GetServiceDetails(serviceId uint) → (DirectBillingServiceDetailsResponse, error)
Parameters description
Name
Type
Required?
Description
serviceId
uint
No
Service id
Response description
Name
Type
Description
Id
integer
Service id
Name
string
Name of the service
Suffix
string
Service suffix
Status
string
Service status, for more information check Models
Api.Complete
string
Redirection url in case of successful transaction
Api.Failure
string
Redirection url in case of transaction failure
Providers.TMobile
boolean
T-Mobile operator availability
Providers.Orange
boolean
Orange operator availability
Providers.Play
boolean
Play operator availability
Providers.Plus
boolean
Operator availability Plus
Commissions.TMobile.Commission0
string
Partner commission in % of T-Mobile operator from the amount of 0.01 PLN to 8.99 PLN
Commissions.TMobile.Commission9
string
Partner commission in % of T-Mobile operator from the amount of PLN 9.00 to PLN 24.99
Commissions.TMobile.Commission25
string
Partner commission in % of T-Mobile operator from the amount of PLN 25.00 up to the maximum amount
Commissions.Orange.Commission0
string
Partner’s commission in % of Orange operator from the amount of 0.01 PLN to 8.99 PLN
Commissions.Orange.Commission9
string
Partner commission in % of Orange operator from the amount of PLN 9.00 to PLN 24.99
Commissions.Orange.Commission25
string
Partner commission in % of Orange operator from the amount of PLN 25.00 up to the maximum amount
Commissions.Play.Commission0
string
Partner commission in % of Play operator from the amount of 0.01 PLN to 8.99 PLN
Commissions.Play.Commission9
string
Partner commission in % of Play operator from the amount of PLN 9.00 to PLN 24.99
Commissions.Play.Commission25
string
Partner commission in % of Play operator from the amount of 25.00 PLN up to the maximum amount
Commissions.Plus.Commission0
string
Partner commission in % of Plus operator from the amount of 0.01 PLN to 8.99 PLN
Commissions.Plus.Commission9
string
Partner commission in % of Plus operator from the amount of PLN 9.00 to PLN 24.99
Commissions.Plus.Commission25
string
Partner commission in % of Plus operator from the amount of 25.00 PLN up to the maximum amount
MaxValues.TMobile
string
Maximum amount of a single transaction for T-Mobile operator
MaxValues.Orange
string
Maximum amount of a single transaction for the operator Orange
MaxValues.Play
string
Maximum amount of a single transaction for Play operator
MaxValues.Plus
string
Maximum amount of a single transaction for Plus operator
createdAt
Time
Date of service creation in the format: ISO 8601
Commission calculation
directBilling.CalculateCommission(139, 4.4)
Parameters description
Name
Type
Required?
Description
serviceId
integer
Yes
Service Id
amount
float32
Yes
The amount we want to receive
Example response
{
Response: { Success: true Errors: map [ ] }
CalculateCommission: { Orange: { Net: 285.72 Gross: 351.44 }
Play: { Net: 285.72 Gross: 351.44 }
TMobile: { Net: 333.34 Gross: 410.01 }
Plus: { Net: 333.34 Gross: 410.01 } }
}
Response description
Name
Type
Description
Orange.net
float64
Net amount
Orange.gross
float64
Gross amount
Play.net
float64
Net amount
Play.gross
float64
Gross amount
TMobile.net
float64
Net amount
TMobile.gross
float64
Gross amount
Plus.net
float64
Net amount
Plus.gross
float64
Gross amount
If the operator is not active or the amount is too large a null
will be returned.
CalculateCommission(serviceId uint, amount float32) → (CalculateCommissionResponse, error)
Downloading a list of transactions
directBilling. GetTransactionList ( 139 , 1 , 20 )
Example response
{
PaginatedResponse: { Response: { Success: true Errors: map [ ] }
Pagination: { Total: 9 Count: 9 PerPage: 30 CurrentPage: 1 TotalPages: 1 Links: { NextPage: PrevPage: } } }
TransactionList: [ { Id: 552098 Status: transaction_db_generate_error Value: 0.34 ValueNetto: 0.24 Operator: orange CreatedAt: 2021 - 10 - 20 00 : 34 : 47 + 0000 UTC UpdatedAt: 2021 - 10 - 19 22 : 34 : 47 + 0000 UTC}
{ Id: 552097 Status: transaction_db_new Value: 0.34 ValueNetto: 0.24 Operator: orange CreatedAt: 2021 - 10 - 20 00 : 34 : 14 + 0000 UTC UpdatedAt: 2021 - 10 - 19 22 : 34 : 14 + 0000 UTC}
{ Id: 552096 Status: transaction_db_new Value: 0.34 ValueNetto: 0.24 Operator: orange CreatedAt: 2021 - 10 - 20 00 : 33 : 53 + 0000 UTC UpdatedAt: 2021 - 10 - 19 22 : 33 : 53 + 0000 UTC}
{ Id: 548852 Status: transaction_db_confirmed Value: 34.46 ValueNetto: 24.12 Operator: orange CreatedAt: 2021 - 10 - 05 20 : 50 : 25 + 0000 UTC UpdatedAt: 2021 - 10 - 05 18 : 50 : 25 + 0000 UTC}
{ Id: 548851 Status: transaction_db_confirmed Value: 34.46 ValueNetto: 24.12 Operator: orange CreatedAt: 2021 - 10 - 05 20 : 48 : 26 + 0000 UTC UpdatedAt: 2021 - 10 - 05 18 : 48 : 26 + 0000 UTC}
{ Id: 544659 Status: transaction_db_confirmed Value: 13.41 ValueNetto: 6.7 Operator: plus CreatedAt: 2021 - 09 - 17 20 : 55 : 52 + 0000 UTC UpdatedAt: 2021 - 09 - 17 18 : 55 : 53 + 0000 UTC}
{ Id: 544508 Status: transaction_db_confirmed Value: 13.41 ValueNetto: 8.04 Operator: t- mobile CreatedAt: 2021 - 09 - 17 10 : 31 : 17 + 0000 UTC UpdatedAt: 2021 - 09 - 17 08 : 31 : 17 + 0000 UTC}
{ Id: 448984 Status: transaction_db_rejected Value: 13.41 ValueNetto: 6.7 Operator: plus CreatedAt: 2021 - 01 - 19 21 : 08 : 56 + 0000 UTC UpdatedAt: 2021 - 01 - 22 20 : 48 : 11 + 0000 UTC}
{ Id: 448931 Status: transaction_db_rejected Value: 13.41 ValueNetto: 8.98 Operator: orange CreatedAt: 2021 - 01 - 19 19 : 14 : 35 + 0000 UTC UpdatedAt: 2021 - 01 - 22 18 : 48 : 11 + 0000 UTC} ]
}
GetTransactionList(int $serviceId, int $page, int $limit) → array
Response description
Name
Type
Description
Id
integer
Transaction id
Status
string
Status of transaction, for more information check Models
Value
float64
Transaction amount
ValueNetto
float64
Net transaction amount
Operator
string
Operator, see list of operators in Models
CreatedAt
Time
The date the transaction was created in the format: ISO 8601
UpdatedAt
Time
Transaction update date in the format: ISO 8601
directBilling. GetTransactionDetails ( 139 , 552097 )
Example response
{
Response: { Success: true Errors: map [ ] }
TransactionDetails: { Id: 1 Status: transaction_db_confirmed PhoneNumber: < nil > Control: 1111 Value: 16.67 ValueNetto: 10 Operator: t- mobile Notify: { IsSend: false LastSendAt: 1970 - 01 - 01 00 : 00 : 00 + 0000 UTC Count: 0 }
CreatedAt: 2021 - 09 - 17 12 : 01 : 50 + 0000 UTC UpdatedAt: 2021 - 09 - 17 10 : 01 : 50 + 0000 UTC}
}
GetTransactionDetails(int $serviceId, int $transactionId) → object
Response description
Name
Type
Description
Id
integer
Transaction id
Status
string
Status of transaction, for more information check Models
PhoneNumber
string/nil
The phone number that was forced when the transaction was generated
Control
string
Status of transaction, for more information check Models
Value
float64
Transaction amount
ValueNetto
float64
Net transaction amount
Operator
string
Operator, see list of operators in Models
Notify
array
Server notification board, see below
Notify.IsSend
boolean
Information whether the notification has been sent
Notify.LastSendAt
Time
Date the last notification was sent in the format: ISO 8601
Notify.Count
integer
Number of notifications sent
CreatedAt
Time
The date the transaction was created in the format: ISO 8601
UpdatedAt
Time
Transaction update date in the format: ISO 8601
Generating transaction
simpay. GenerateTransactionRequest{
Amount: 11.14 ,
AmountType: "net" ,
Description: "" ,
Control: "" ,
Returns: struct {
Success string `json:"success"`
Failure string `json:"failure"`
} { } ,
PhoneNumber: "" ,
Signature: "" ,
}
Example response
{
Response: { Success: true Errors: map [ ] }
Data: { TransactionId: 1 d87a1b3- 18 f8- 4146 - bcb1- c0c9f293b04f RedirectUrl: https: / / db. simpay. pl/ 1 d87a1b3- 18 f8- 4146 - bcb1- c0c9f293b04f}
}
GenerateTransaction(serviceId uint, request GenerateTransactionRequest) → (DirectBillingGenerateTransactionResponse, error)
Parameters description
Name
Type
Required?
Description
serviceId
integer
Yes
Service id
apiKey
string
Yes
Api key from the partner panel, available in the service
Description of the methods available at the object
Name
Type
Sign(key string)
Method that signs a request based on all parameters
SignWithAmountAndControl(key string
Method that signs a request based on Amount and Control values
Amount types
Name
Description
“net”
Type of net transaction amount
“gross”
Type of gross transaction amount
“required”
Type of transaction amount, net amount required
Object description
Name
Type
Description
TransactionId
string
UUID of the transaction
RedirectUrl
string
The address to which the customer should be redirected
Once the user’s transaction is generated, the user should be redirected to the url provided in the response, it can be retrieved from the object under the
key redirectUrl
or the function
transaction.Data.RedirectUrl
. There is also a TransactionId
function to retrieve the Id of the generated transaction.
The object that will be sent to the partner service
{
"id" : 1111 ,
"service_id" : 1 ,
"status" : "transaction_db_payed" ,
"values" : {
"net" : 11.07 ,
"gross" : 11.07 ,
"partner" : 11.07
} ,
"returns" : {
"complete" : "https://www.simpay.pl" ,
"failure" : "https://www.simpay.pl"
} ,
"control" : "test" ,
"number_from" : "123123123" ,
"provider" : 1 ,
"signature" : "signature"
}
Description of the request sent
Name
Type
Description
id
integer
Transaction id
service_id
integer
Service id
status
string
Status of transaction, for more information check Models
values
object
Object with transaction amounts
values[net]
float
Net transaction amount
values[gross]
float
Gross transaction amount
values[partner]
float
Partner’s commission
returns
object
Post-transaction redirect URL object
returns[complete]
string
The address to which the customer was to be redirected after a valid transaction
returns[failure]
string
The address to which the customer was to be redirected after the transaction was not correct
control
string
Control field to be used by partner
number_from
string
The phone number from which the transaction was conducted
provider
integer
Payment operator, see more at Models
signature
string
The signature to be compared with the newly generated signature, see below
Models
Here you will find models of types, statuses, etc. for DirectBilling services
Service status
Name
Description
service_db_new
New
service_db_active
Active
service_db_rejected
Rejected
service_db_ongoing_registration
In the course of registration
Transaction status
Name
Description
transaction_db_new
New
transaction_db_confirmed
User redirected
transaction_db_rejected
Rejected
transaction_db_canceled
Cancelled
transaction_db_payed
Paid
transaction_db_generate_error
Error during generating
Provider
Name
Description
1
Orange
2
Plus
3
Play
4
T-Mobile
Security
Verification of customer certificate
Notifications from SimPay servers are signed with a certificate.
Example of nginx configuration with client certificate verification on location /notify
set $simpay_fingerprint "13d4313b94469038cdbab1839559ae381309a79d" ;
ssl_client_certificate /opt/simpay/ssl/ipn.simpay.pem;
ssl_verify_client optional;
ssl_verify_depth 2 ;
location /notify {
if ($ssl_client_verify != "SUCCESS" ) { return 403 ; }
if ($ssl_client_fingerprint != $simpay_fingerprint ) {
return 403 ;
}
}
SimPay IPN Certificate
-----BEGIN CERTIFICATE-----
MIICZjCCAe2gAwIBAgIUESmcYMAYfB5YTAGSqCyOay9OnZgwCgYIKoZIzj0EAwIw
czEmMCQGA1UEAwwdUGF5bWVudHMgU29sdXRpb25zIFJvb3QgQ0EgWDExJjAkBgNV
BAoMHVBheW1lbnRzIFNvbHV0aW9ucyBzcC4geiBvLm8uMRQwEgYDVQQHDAtLcmFz
bm9zaWVsYzELMAkGA1UEBhMCUEwwHhcNMjExMTExMTg0NzI5WhcNMzExMTA5MTg0
NzI5WjBzMSYwJAYDVQQDDB1QYXltZW50cyBTb2x1dGlvbnMgUm9vdCBDQSBYMTEm
MCQGA1UECgwdUGF5bWVudHMgU29sdXRpb25zIHNwLiB6IG8uby4xFDASBgNVBAcM
C0tyYXNub3NpZWxjMQswCQYDVQQGEwJQTDB2MBAGByqGSM49AgEGBSuBBAAiA2IA
BE371EkfU3OZJj6aUnv4JLfQ773ShbEooYxFc//DsWVi0rps0MUlpLuWpDN9tqdh
DJWQpdXq2Pam3nbzEr/klHeFRBBdI4ghWjs3GX+KxNUMMp0qVFNxZ+oBDdBkb7GD
s6NCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
FMplUBx3+kPIl5fkMLREXv5DwQyvMAoGCCqGSM49BAMCA2cAMGQCMGLV6BCrVb/W
RjsFkmho+qVUa9mdm54dPDI4JZ5rb98BnU0xxSGpPwXc+odSgPox7QIwXP1vJztU
qPn0D9ZdNFSIg7wpppLwIfhniv3gy4khuI9PAuWF76rjs90+Ij/pR67n
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICWjCCAeGgAwIBAgIUcPa5Jqg71Be/IaLIlPy4XDLJJP8wCgYIKoZIzj0EAwIw
czEmMCQGA1UEAwwdUGF5bWVudHMgU29sdXRpb25zIFJvb3QgQ0EgWDExJjAkBgNV
BAoMHVBheW1lbnRzIFNvbHV0aW9ucyBzcC4geiBvLm8uMRQwEgYDVQQHDAtLcmFz
bm9zaWVsYzELMAkGA1UEBhMCUEwwHhcNMjExMTExMTk0OTUwWhcNMzExMTA5MTk0
OTUwWjBnMRowGAYDVQQDDBFTaW1wYXkgUm9vdCBDQSBYMTEmMCQGA1UECgwdUGF5
bWVudHMgU29sdXRpb25zIHNwLiB6IG8uby4xFDASBgNVBAcMC0tyYXNub3NpZWxj
MQswCQYDVQQGEwJQTDB2MBAGByqGSM49AgEGBSuBBAAiA2IABE9noXtjwMQ0IlDy
Anddos7JRYf3EcCbW8/ilHQcBxkE8828iTK+4bw1h8KYRzEfJRSZmZMlbH8AKPSC
oukSbSAnMMSu8vQ2QBQKwjjsxIttLv63HHBQ4c5k7C6WYm28C6NCMEAwDgYDVR0P
AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFDPp5r7ojf5I/9pO
Z6uZKGAoJwS7MAoGCCqGSM49BAMCA2cAMGQCMCgFY0DWNkHPr1yV7inFuKPIKUBT
XzWc7F1vlcWszNuNJtyaxiSUsmysYxyxD0+QEwIwQ53zxnkppiw9+luTIZAxkchi
DoEV+E1e5GR8f4QaKCPIb4y9qp9dpWd9328sXvVP
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICCDCCAY2gAwIBAgIUUGkJrAO+6V0xrOcbZ5szLAix4bIwCgYIKoZIzj0EAwIw
ZzEaMBgGA1UEAwwRU2ltcGF5IFJvb3QgQ0EgWDExJjAkBgNVBAoMHVBheW1lbnRz
IFNvbHV0aW9ucyBzcC4geiBvLm8uMRQwEgYDVQQHDAtLcmFzbm9zaWVsYzELMAkG
A1UEBhMCUEwwHhcNMjIwMjA3MTk0MTU3WhcNMzIwMjA1MTk0MTU3WjBjMRYwFAYD
VQQDDA1TaW1wYXkgSVBOIFgxMSYwJAYDVQQKDB1QYXltZW50cyBTb2x1dGlvbnMg
c3AuIHogby5vLjEUMBIGA1UEBwwLS3Jhc25vc2llbGMxCzAJBgNVBAYTAlBMMHYw
EAYHKoZIzj0CAQYFK4EEACIDYgAEmFd9ZEds0KBVKuRsi50sO+B+NUJM2MRbXnTh
7kkStVk8XFIzOHWEhbppttB1RaOrPpIT/Ys/+/YXWAGTAvubuWYH2rDYFv8h54gU
VI8HGK81aVbQmv8ln5tug7rKKmKtMAoGCCqGSM49BAMCA2kAMGYCMQC7sy+9bFAU
ZWUWgI0KRFWSYTwdhOC4V84+Ea4PCvVPha26hMe9NqB1A1Vf3tInBWUCMQD0x33e
8jDjlCiXN0jDf+5gKsREQs9Q2pF6r+P7uzX26dT+OvOz6IfJlYS+SEXYHjU=
-----END CERTIFICATE-----
IP addresses of servers
Notifications from SimPay servers are sent from the following IP addresses