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
$simpay = new SimPay ( '0b4dca15' , '3eea38f407073ff0abff956b57d71783' ) ;
$sms = $simpay -> sms ( ) ;
SimPay(string $apiKey, string $apiPassword) → SimPay
Parameters description
Name
Type
Required?
Description
apiKey
string
Yes
API key from partner panel
apiPassword
string
Yes
API password from partner panel
sms() → sms
Available methods in the sms object
Downloading the list of services
$sms -> getServices ( ) ;
Example response
Array
(
[ 0 ] => stdClass Object
(
[ id] => 3539
[ type] => CODE_PACK
[ status] => service_rejected
[ name] => TESTA3213213
[ prefix] => SIM
[ suffix] => ASD12DASD21DASSD
[ adult] => false
[ created_at] => 2021 - 05 - 21 10 : 28 : 04
)
[ 1 ] => stdClass Object
(
[ id] => 3538
[ type] => API_URL
[ status] => service_rejected
[ name] => TEST213123
[ prefix] => SIM
[ suffix] => TEST2131233
[ adult] => false
[ created_at] => 2021 - 05 - 18 17 : 05 : 11
)
)
getServices(int $page, int $limit) → array
Parameters description
Name
Type
Required?
Description
page
integer
No
Page number
limit
integer
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+
created_at
datetime
Date of service creation in the format: ISO 8601
$sms -> getService ( 3549 ) ;
Example response
stdClass Object
(
[ id] => 3549
[ type] => ONE_TIME_CODE
[ status] => service_active
[ name] => TEST
[ prefix] => SIM
[ suffix] => TESTSIMPAY
[ description] => Usługa testowa
[ adult] =>
[ numbers] => Array
(
[ 0 ] => 7055
[ 1 ] => 7136
[ 2 ] => 7255
[ 3 ] => 7355
[ 4 ] => 7455
[ 5 ] => 7555
[ 6 ] => 7636
[ 7 ] => 77464
[ 8 ] => 78464
[ 9 ] => 7936
[ 10 ] => 91055
[ 11 ] => 91155
[ 12 ] => 91455
[ 13 ] => 91664
[ 14 ] => 91955
[ 15 ] => 92055
[ 16 ] => 92555
)
[ created_at] => 2016 - 11 - 08 17 : 18 : 53
)
getService(int $serviceId) → object
Parameters description
Name
Type
Required?
Description
serviceId
integer
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
array
List of SMS numbers available in the service
created_at
datetime
Date of service creation in the format: ISO 8601
Downloading a list of transactions
$sms -> getTransactions ( 3549 ) ;
Example response
Array
(
[ 0 ] => stdClass Object
(
[ id] => 2216609
[ from] => 123123123
[ code] => 81 FFC5
[ used] => 1
[ send_at] => 2021 - 08 - 18 00 : 07 : 45
)
)
getTransactions(int $serviceId, int $page, int $limit) → array
Parameters description
Name
Type
Required?
Description
serviceId
integer
Yes
Service id
page
integer
No
Page
limit
integer
No
Limit of objects per page
Response description
Name
Type
Description
id
integer
Transaction id
from
integer
Number from which SMS was sent
code
string
SMS return code
used
boolean
Was the code used
send_at
datetime
Date of sending the SMS in the format: ISO 8601
$sms -> getTransaction ( 3549 , 2216609 ) ;
Example response
stdClass Object
(
[ id] => 2216609
[ from] => 123123123
[ code] => 81 FFC5
[ used] => 1
[ send_number] => 7055
[ value] => 0.5
[ send_at] => 2021 - 08 - 18 00 : 07 : 45
)
getTransaction(int $serviceId, int $transactionId) → object
Parameters description
Name
Type
Required?
Description
serviceId
integer
Yes
Service id
transactionId
integer
No
Transaction id
Response description
Name
Type
Description
id
integer
Transaction id
from
integer
Number from which SMS was sent
code
string
SMS return code
used
bolean
Was the code used
send_number
integer
Number to which SMS was sent
value
float
The net cost of a sent SMS
send_at
datetime
Date of sending the SMS in the format: ISO 8601
Downloading available numbers for the service
$sms -> getNumbers ( ) ;
Example response
Array
(
[ 0 ] => stdClass Object
(
[ number] => 7055
[ value] => 0.5
[ value_gross] => 0.62
[ adult] => false
)
[ 1 ] => stdClass Object
(
[ number] => 7136
[ value] => 1
[ value_gross] => 1.23
[ adult] => false
)
)
getServiceNumbers(int $serviceId, int $page, int $limit) → array
Parameters description
Name
Type
Required?
Description
serviceId
integer
Yes
Service id
page
integer
No
Page
limit
integer
No
Limit of objects per page
Response description
Name
Type
Description
number
integer
SMS number
value
float
Net amount
value_gross
float
Gross amount
adult
boolean
Is it 18+
$sms -> getNumber ( 7055 , 3549 ) ;
Example response
stdClass Object
(
[ number] => 7055
[ value] => 0.5
[ value_gross] => 0.62
[ adult] => false
)
getServiceNumber(int $serviceId, int $number) → object
Parameters description
Name
Type
Required?
Description
serviceId
integer
Yes
Service id
number
integer
Yes
Number
Response description
Name
Type
Description
number
integer
SMS number
value
float
Net amount
value_gross
float
Gross amount
adult
boolean
Is it 18+
Downloading all available numbers
$sms -> getNumbers ( ) ;
Example response
Array
(
[ 0 ] => stdClass Object
(
[ number] => 7055
[ value] => 0.5
[ value_gross] => 0.62
[ adult] => false
)
[ 1 ] => stdClass Object
(
[ number] => 7136
[ value] => 1
[ value_gross] => 1.23
[ adult] => false
)
)
getNumbers(int $page, int $limit) → array
Parameters description
Name
Type
Required?
Description
page
integer
No
Page
limit
integer
No
Limit of objects per page
Response description
Name
Type
Description
number
integer
SMS number
value
float
Net amount
value_gross
float
Gross amount
adult
boolean
Is it 18+
Downloading a single sms number
getNumber(int $number) → object
Parameters description
Name
Type
Required?
Description
number
integer
Yes
Number
Response description
Name
Type
Description
number
integer
SMS number
value
float
Net amount
value_gross
float
Gross amount
adult
boolean
Is it 18+
Code validation
$sms -> getSmsCode ( 1636 , 'AF4CXF' ) ;
Example response for new code
stdClass Object
(
[ used] => false
[ code] => 79 YB44
[ test] => 1
[ from] => 123123123
[ number] => 7055
[ value] => 0.5
)
Example response for the code used
stdClass Object
(
[ used] => 1
[ code] => 79 YB44
[ test] => 1
[ from] => 123123123
[ number] => 7055
[ value] => 0.5
[ used_at] => 2021 - 11 - 08 00 : 53 : 27
)
getSmsCode(int $serviceId, string $code, int $number) -> object
Parameters description
Name
Type
Required
Description
serviceId
integer
Yes
Service id
code
string
Yes
Return code from SMS
number
integer
No
The number to which the SMS was to be sent
Response description
Name
Type
Description
used
boolean
Was the SMS used
code
string
Return code from SMS
test
boolean
Is the test SMS
from
integer
Number from which SMS was sent
number
integer
Number to which SMS was sent
value
integer
Net amount of SMS cost
used_at
datetime
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
$simpay = new SimPay ( '0b4dca15' , '3eea38f407073ff0abff956b57d71783' ) ;
$smsXml = $simpay -> smsXml ( 'testKey' ) ;
SimPay(string $apiKey, string $apiPassword) → SimPay
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
apiKey
string
Yes
API key from the partner panel
apiPassword
string
Yes
API password from the partner panel
smsXml(string $hashKey) → smsXml
Parameters description
Name
Type
Required?
Description
hashKey
string
Yes
Signature creation key located in the partner panel in the service
$smsObject = $smsXml -> parseSMS ( $_POST ) ;
if ( $smsXml -> isError ( ) ) {
exit ( $smsXml -> getErrorText ( ) ) ;
}
$arrayPieces = $smsObject -> getPieces ( ) ;
$smsCode = $smsXml -> generateCode ( ) ;
echo $smsXml -> generateXml ( 'Twoj kod doladowania to ' . $smsCode ) ;
DirectBilling
$simpay = new SimPay ( '0b4dca15' , '3eea38f407073ff0abff956b57d71783' ) ;
$directbilling = $simpay -> directbilling ( ) ;
SimPay(string $apiKey, string $apiPassword) → SimPay
Parameters description
Name
Type
Required?
Description
apiKey
string
Yes
API key from partner panel
apiPassword
string
Yes
API password from partner panel
directbilling() → directbilling
Available methods in the directbilling object
Downloading the list of services
$directbilling -> getServices ( ) ;
Example response
Array
(
[ 0 ] => stdClass Object
(
[ id] => 141
[ name] => testtttt
[ suffix] => DASDASDSADAS
[ status] => service_db_rejected
[ created_at] => 2021 - 02 - 12 16 : 57 : 18
)
[ 1 ] => stdClass Object
(
[ id] => 139
[ name] => test. pl
[ suffix] => test
[ status] => service_active
[ created_at] => 2020 - 11 - 25 01 : 45 : 28
)
)
getServices(int $page, int $limit) → array
Parameters description
Name
Type
Required?
Description
page
integer
No
Page number
limit
integer
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
created_at
datetime
Date of service creation in the format: ISO 8601
$directbilling -> getService ( 139 ) ;
Example response
stdClass Object
(
[ id] => 139
[ name] => test. pl
[ suffix] => test
[ status] => service_active
[ api] => stdClass Object
(
[ complete] => https:
[ failure] => https:
)
[ providers] => stdClass Object
(
[ t- mobile] => true
[ orange] => true
[ play] => true
[ plus] => true
)
[ commissions] => stdClass Object
(
[ t- mobile] => stdClass Object
(
[ commission_0] => 60
[ commission_9] => 60
[ commission_25] => 60
)
[ orange] => stdClass Object
(
[ commission_0] => 67
[ commission_9] => 67
[ commission_25] => 70
)
[ play] => stdClass Object
(
[ commission_0] => 55
[ commission_9] => 65
[ commission_25] => 70
)
[ plus] => stdClass Object
(
[ commission_0] => 50
[ commission_9] => 50
[ commission_25] => 60
)
)
[ maxValues] => stdClass Object
(
[ t- mobile] => 250
[ orange] => 300
[ play] => 600
[ plus] => 400
)
[ created_at] => 2020 - 11 - 25 01 : 45 : 28
)
getService(int $serviceId) → object
Parameters description
Name
Type
Required?
Description
serviceId
integer
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[t-mobile]
boolean
T-Mobile operator availability
providers[orange]
boolean
Orange operator availability
providers[play]
boolean
Play operator availability
providers[plus]
boolean
Operator availability Plus
commissions[t-mobile][commission_0]
string
Partner commission in % of T-Mobile operator from the amount of 0.01 PLN to 8.99 PLN
commissions[t-mobile][commission_9]
string
Partner commission in % of T-Mobile operator from the amount of PLN 9.00 to PLN 24.99
commissions[t-mobile][commission_25]
string
Partner commission in % of T-Mobile operator from the amount of PLN 25.00 up to the maximum amount
commissions[orange][commission_9]
string
Partner’s commission in % of Orange operator from the amount of 0.01 PLN to 8.99 PLN
commissions[orange][commission_25]
string
Partner commission in % of Orange operator from the amount of PLN 9.00 to PLN 24.99
commissions[orange][commission_0]
string
Partner commission in % of Orange operator from the amount of PLN 25.00 up to the maximum amount
commissions[play][commission_0]
string
Partner commission in % of Play operator from the amount of 0.01 PLN to 8.99 PLN
commissions[play][commission_9]
string
Partner commission in % of Play operator from the amount of PLN 9.00 to PLN 24.99
commissions[play][commission_25]
string
Partner commission in % of Play operator from the amount of 25.00 PLN up to the maximum amount
commissions[plus][commission_0]
string
Partner commission in % of Plus operator from the amount of 0.01 PLN to 8.99 PLN
commissions[plus][commission_9]
string
Partner commission in % of Plus operator from the amount of PLN 9.00 to PLN 24.99
commissions[plus][commission_25]
string
Partner commission in % of Plus operator from the amount of 25.00 PLN up to the maximum amount
maxValues[t-mobile]
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
created_at
datetime
Date of service creation in the format: ISO 8601
Commission calculation
$directbilling -> calculate ( 1 , 250 ) ;
Example response
stdClass Object
(
[ orange] => stdClass Object
(
[ net] => 357.15
[ gross] => 439.29
)
[ play] => stdClass Object
(
[ net] => 357.15
[ gross] => 439.29
)
[ t- mobile] => stdClass Object
(
[ net] => 416.67
[ gross] => 512.5
)
[ plus] => stdClass Object
(
[ net] => 416.67
[ gross] => 512.5
)
)
calculate(int $serviceId, float $amount) → object
Parameters description
Name
Type
Required?
Description
serviceId
integer
Yes
Service Id
amount
float
Yes
The amount we want to receive
Response description
Name
Type
Description
orange[net]
float
Net amount
orange[gross]
float
Gross amount
play[net]
float
Net amount
play[gross]
float
Gross amount
t-mobile[net]
float
Net amount
t-mobile[gross]
float
Gross amount
plus[net]
float
Net amount
plus[gross]
float
Gross amount
If the operator is not active or the amount is too large a null
will be returned.
Downloading a list of transactions
$directbilling -> getTransactions ( 139 ) ;
Example response
Array
(
[ 0 ] => stdClass Object
(
[ id] => 552098
[ status] => transaction_db_generate_error
[ value] => 0.34
[ value_netto] => 0.24
[ operator] => orange
[ created_at] => 2021 - 10 - 20 00 : 34 : 47
[ updated_at] => 2021 - 10 - 19 22 : 34 : 47
)
[ 1 ] => stdClass Object
(
[ id] => 552097
[ status] => transaction_db_new
[ value] => 0.34
[ value_netto] => 0.24
[ operator] => orange
[ created_at] => 2021 - 10 - 20 00 : 34 : 14
[ updated_at] => 2021 - 10 - 19 22 : 34 : 14
)
)
getTransactions(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
float
Transaction amount
value_netto
float
Net transaction amount
operator
string
Operator, see list of operators in Models
created_at
datetime
The date the transaction was created in the format: ISO 8601
updated_at
datetime
Transaction update date in the format: ISO 8601
$directbilling -> getTransaction ( 139 , 552097 ) ;
Example response
stdClass Object
(
[ id] => 552097
[ status] => transaction_db_new
[ phoneNumber] =>
[ control] => 123 - 123 - 123
[ value] => 0.34
[ value_netto] => 0.24
[ operator] => orange
[ notify] => stdClass Object
(
[ is_send] => false
[ last_send_at] => 1970 - 01 - 01 00 : 00 : 00
[ count] => 0
)
[ created_at] => 2021 - 10 - 20 00 : 34 : 14
[ updated_at] => 2021 - 10 - 19 22 : 34 : 14
)
getTransaction(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/null
The phone number that was forced when the transaction was generated
control
string
Status of transaction, for more information check Models
value
float
Transaction amount
value_netto
float
Net transaction amount
operator
string
Operator, see list of operators in Models
notify
array
Server notification board, see below
notify[is_send]
boolean
Information whether the notification has been sent
notify[last_send_at]
datetime
Date the last notification was sent in the format: ISO 8601
notify[count]
integer
Number of notifications sent
created_at
datetime
The date the transaction was created in the format: ISO 8601
updated_at
datetime
Transaction update date in the format: ISO 8601
Generating transaction
use SimPay\ API\ DirectBilling\ Models\ AmountTypes ;
$directbilling -> payment ( 1636 , 'dart54543edwsfcvgfrt54re3e' )
-> setAmount ( 11.14 )
-> setAmountType ( AmountTypes :: net )
-> make ( ) ;
Example response
SimPay\API \Components\DirectBilling\GenerateResponse Object
(
[ transactionId] => d94f5ecf- 01 a0- 4 b0c- 9 a36- bea55b695fbe
[ redirectUrl] => https:
)
payment(int $serviceId, string $apiKey) → object
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
Required
Description
setAmount
float
Yes
Transaction amount
setAmountType
string
No
Transaction amount type. Available: required
, net
, gross
. Default gross
.
setDescrption
string
No
Description of the transaction
setControl
string
No
Parameter to be used by partner to identify transaction
setReturnSuccess
string
No
URL to which the customer will be redirected after a successful transaction, if empty the URL from services will be usedi
setReturnFailure
string
No
URL to which the customer will be redirected after a failed transaction, if empty the URL from the service will be used
setPhoneNumber
string
No
Forced phone number
setProvider
string
No
Forced operator
Amount types
Name
Description
AmountTypes::net
Type of net transaction amount
AmountTypes::gross
Type of gross transaction amount
AmountTypes::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
At the end of the method, it is required to add a make() method to the object
After generating the user’s transaction, the user should be redirected to the url given in the response, it can be retrieved from the object under the key redirectUrl
or the method
getRedirectUrl()
. The getTransactionId()
method is also available to retrieve the Id of the generated transaction.
use SimPay\ API\ DirectBilling\ Notification ;
try {
$notify = new Notification ( 'mdRhwVlXc3WMN4Dbd3hfvkap4' , file_get_contents ( 'php://input' ) ) ;
} catch ( \ Exception $e ) {
exit ( 'ERROR' ) ;
}
$notify -> responseOk ( ) ;
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"
}
Notification(string $apiKey, string $payload)
Parameters description
Name
Type
Required?
Description
apiKey
string
Yes
Api key from the partner panel, available in the service
payload
string
Yes
Body of the incoming request
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