Welcome to the Payment Evolution API documentation. This guide provides comprehensive information on integrating with Payment Evolution’s services to enable seamless payment processing and management within your applications.
Employee API
Overview
The Payment Evolution Employee API allows partners to add, get and update employees within their group of companies
URL | /api/v1/company/{companyID}/employees |
Methods supported | GET, POST |
Description | Get all employees, or add new employee |
URL | /api/v1/company/{companyID}/employees/{employeeID} |
Methods supported | GET, PUT |
Description | Get specific employee, or update existing employee |
Employee Elements
Employee Elements | Expected input | Description | Mandatory |
AddressLine1 | Alphanumeric | Address line 1 | Y |
AddressLine2 | Alphanumeric | Address line 2 | N |
City | Alphanumeric | City | Y |
Alphanumeric | Email address | N | |
EmployeeType | Permanent Temporary Contractor | P = Permanent (default) S = Subcontractor T = Temporary | N |
FirstName | Alphanumeric | Employee first name | Y |
LastName | Alphanumeric | Employee last name | Y |
MiddleName | Alphanumeric | Employee middle name | N |
PayrollDetails | See PayrollDetailType below | Employee’s payroll specifics | |
Postal | Alphanumeric | Postal Code | Y |
Province | Alphanumeric * | AB = Alberta BC = British Columbia MB = Manitoba NB = New Brunswick NL = Newfoundland and Labrador NS = Nova Scotia NU = Nunavut ON = Ontario PE = Prince Edward Island QC = Quebec SK = Saskatchewan YT = Yukon | Y |
Phone | Numerical digit: length 9 | Contact Number | N |
Payrun Elements
Payrun Elements | Expected input | Description | Mandatory |
AccountCode | Numeric | Account for employee earnings | N |
CppExempt | YES | NO | ||
BirthDate | UTC time | Date of Birth, format dd/mm/yyyy Example 2015-01-31T00:00:00 | Y |
EiExempt | YES | NO | ||
EmploymentProvince | NL NS PE NB QC ON MB SK AB BC YT NT NU | Alberta BC: British Columbia, MB = Manitoba NB = New Brunswick NL = Newfoundland and Labrador NS = Nova Scotia NU = Nunavut ON = Ontario PE = Prince Edward Island QC = Quebec Saskatchewan YT = Yukon | |
HireDate | UTC time | Example 2015-01-31T00:00:00 | |
PayRate | Numerical digits(no other characters allowed.) For example, 1234.99 | Amount of pay | |
PayRateUnit | Hourly Daily Weekly Monthly Yearly | H = hourly rate D = daily rate W = weekly rate M = monthly rate Y = yearly rate | |
PayPeriodPerYear | 52 26 12 04 01 24 22 13 10 | 52 = 52 weekly 26 = 26 biweekly 12 = 12 monthly 04 = 4 quarterly 01 = 1 yearly 24 = 24 semi-monthly 22 = 22 pays per year 13 = 13 pays per year 10 = 10 pays per year | |
SalaryType | Salaried Timesheet | Salaried Time Based | |
StandardHours | Numerical digits – no other characters allowed. For example 1234.99 | Number of hours worked per week. Note: typical values are 35, 37.5, 40 | |
TD1Federal | Numerical digits – no other characters allowed. For example 1234.99 | TD1 exemption amount (federal) | |
TD1Provincial | Numerical digits – no other characters allowed. For example 1234.99 | TD1 exemption amount (province or territory) | |
TaxExempt | YES | NO |
Employee Loan API
Authentication Header
The Payment Evolution REST API uses a standard HTTP authorization header to pass authorization information. The Authorization header has the following form:
Authorization: PE signature = <issued signature token>
The Issued signature token can be retrieved and regenerated through the payroll application. Within the Add-ons section, click the API tab (contact support if unavailable), and enable/generate a token.
Overview:
The Payment Evolution “Employee Loan API” issues employee loans and helps check loan status.
Endpoint | /api/v1/loans/employee |
Methods Supported | GET, POST |
Description | Issue Employee Loan, check status on Loan |
Root element <EmployeeLoan>
Mandatory Elements and their inputs | |
<Amount> | Decimal amount (ex: 22.00), no currency, no symbol |
<ProcessDate> | Date of transaction: format dd/MM/yyyy (eg: 12/14/2011) |
<Tag> | Unique identifier / reference (14 characters) |
<Token> | Token issued by PE for specific employee |
Optional Elements | |
<Status> | N = New (fixed ) P = Pending A = Approved C = Cleared R = Returned F = Finished |
Return Elements | |
The following are only returned on request | |
<TransactionID> | PaymentEvolution generated unique identifier for Transaction |
Sample Code:
<?xml version="1.0" encoding="utf-8"?>
<EmployeeLoan>
<Amount>69.75</Amount>
<ProcessDate>15/12/2011</ProcessDate>
<Tag>0000123001</Tag>
<Token>45j1Sqw/8nTpL0ZJ8gCZOOut+rHZG4ia5zQekOpCXmo=</Token>
</EmployeeLoan>
Employee Deduction API
Overview:
The Payment Evolution “Employee Deduction API” allows you to retrieve latest details on specific deduction, add new deduction and update the advance deduction
URL | /api/v1/customdeduction/{employeeToken}/{deductionID} |
Methods Supported | GET |
Description | Retrieve latest details on specific deduction |
URL | /api/v1/customdeduction/{employeeToken} |
Methods Supported | POST, PUT |
Description | Allows you to create new custom deduction Allows you to update advance deduction |
Elements for Employee Deductions and Description
EmployeeID | Employee ID / Token |
Amount | [Numeric] Deduction Amount or Percentage (based on AmountUnit, (Mandatory) |
AmountUnit | Specifies the unit of the Amount (Mandatory) A = Actual P = Percentage |
DeductionID | ID of deduction (Mandatory on PUT) |
EffectiveDate | [Date] The first day when the deduction should begin (optional) |
EndDate | [Date] The date in which the deduction will expire (optional) |
Frequency | How often the deduction should be applied O = One time R = Recurring until EndDate/Goal |
Goal | [Numeric] Recurring deductions will continue deducting from each pay until reaching Goal. (Optional) |
MinAmount | [Numeric] Minimum amount per transaction, when AmountUnit is percentage (Optional) |
MaxAmount | [Numeric] Maximum amount per transaction, when AmountUnit is percentage (Optional) |
Name | Name of Deduction |
Status | Status of deduction rule, returned on GET A = Active E = Expired C = Completed P = Pending |
Sample POST
<EmployeeDeductions>
<Amount>77.89</Amount>
<AmountUnit>A</AmountUnit>
<EffectiveDate>2019-01-04T00:00:00</EffectiveDate>
<Frequency>R</Frequency>
<Goal>130.00</Goal>
<Name>Custom Deduction A</Name>
</EmployeeDeductions>
Sample Response
<EmployeeDeductions>
<Amount>77.89</Amount>
<AmountUnit>A</AmountUnit>
<Balance>0.00</Balance>
<DateCreated>2019-01-04T01:14:29</DateCreated>
<DateModified>2019-01-04T01:26:59</DateModified>
<DeductionID>000004A05</DeductionID>
<DeductionType>A</DeductionType>
<EffectiveDate>2019-01-04T00:00:00</EffectiveDate>
<EmployeeNumber>000004</EmployeeNumber>
<EndDate>2099-12-31T00:00:00</EndDate>
<Frequency>O</Frequency>
<Goal>130.00</Goal>
<MaxAmount>0.00</MaxAmount>
<MinAmount>0.00</MinAmount>
<Name>Custom Deduction 2</Name>
</EmployeeDeductions>
PayCalc API
Authentication Header
The Payment Evolution REST API uses standard HTTP authorization header to pass authorization information. The Authorization header has the following form:
Authorization: PE signature = <issued signature token>
The Issued signature token can be retrieved and regenerated through the payroll application. Within the Add-ons section, click the API tab (contact support if unavailable), and enable/generate a token.
Overview
The PaymentEvolution payCalc API calculates Canadian payroll deductions. These are typically referred to as “gross to net” calculations based on a series of inputs.
URL | /api/v2/calculate |
Methods supported | POST |
Description | Allows you to calculate simple payroll deductions for Canada (all provinces and territories) |
Elements (* = required) | Expected input | description |
NetPay | true / false | True = value provided in GrossSalary is after taxes False – value provided in GrossSalary is before taxes |
TD1ProvincialClaim | Numerical digits – no other characters allowed. For example 1234.99 | TD1 exemption amount (province or territory) |
TD1FederalClaim | Numerical digits – no other characters allowed. For example 1234.99 | TD1 exemption amount (federal) |
CppExempt | true / false | |
EiExempt | true / false | |
TaxExempt | true / false | |
StandardHours | Numerical digits – no other characters allowed. For example 1234.99 | Number of hours worked per week. Note: typical values are 35, 37.5, 40 |
PayRateUnit * | H D W M Y | H = hourly rate D = daily rate W = weekly rate M = monthly rate Y = yearly rate |
PayRate * | Numerical digits – no other characters allowed. For example, 1234.99 | Amount of pay |
PayPeriodPerYear * | 52 26 12 04 01 24 22 13 10 | 52 = 52 weekly 26 = 26 biweekly 12 = 12 monthly 04 = 4 quarterly 01 = 1 yearly 24 = 24 semi-monthly 22 = 22 pays per year 13 = 13 pays per year 10 = 10 pays per year |
Province * | 1 through 13 | 1 = Newfoundland 2 = Nova Scotia 3 = Prince Edward Island 4 = New Brunswick 5 = Quebec 6 = Ontario 7 = Manitoba 8 = Saskatchewan 9 = Alberta 10 = British Columbia 11 = Yukon 12 = Northwest Territories 12 = Nunavut |
PayPeriodEndDate | UTC time | Example 2015-01-31T00:00:00 |
Type | Pension Salary | Default = Salary |
CountryCode | 3-digit Country code as per ISO 3166 | Default = CAN Used for Pension Calculations ONLY, treaty rate determined if outside of Canada |
NR301 | True False | Default = True If true, use treaty rates based on CountryCode, else use default 25% if not CountryCode <> “CAN” |
Sample POST
{
"TD1ProvincialClaim":null,
"TD1FederalClaim":21111,
"CppExempt": false,
"EiExempt": false,
"PayPeriodEndDate": "05/15/2017",
"PayPeriodPerYear": "52",
"PayRate": "100",
"PayRateUnit": "H",
"Province": "6",
"StandardHours": "35",
"TaxExempt": false,
"netPay": false,
"Type": "Salary",
"CountryCode": "CAN",
"NR301": false,
}
Sample Response
{
"Earnings": {
"GrossSalary": 3500,
"AdditionalEarnings": 0,
"TotalTaxableIncome": 3500,
"NetAmount": 2107.86
},
"Deductions": {
"FederalTaxDeductions": 713.07,
"ProvincialTaxDeductions": 452.1,
"CppDeductions": 169.92,
"EiDeductions": 57.05,
"TotalDeductions": -1392.14
},
"Remittance": {
"RemitCPPEmployee": 169.92,
"RemitCPPContribution": 169.92,
"RemitTotalCPP": 339.84,
"RemitEIEmployee": 57.05,
"RemitEIContribution": 79.87,
"RemitTotalEI": 136.92,
"TotalEmployeeTax": 1165.17,
"TotalRemittance": 1641.93
},
"TaxCredits": {
"FederalTD1": 21111,
"ProvincialTD1": 10171
}
}
Code samples
curl -X POST \
https://moja-calc.paymentevolution.com/api/v2/calculate \
-H 'accept: application/json' \
-H 'authorization: PE signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"TD1ProvincialClaim":null,
"TD1FederalClaim":21111,
"CppExempt": false,
"EiExempt": false,
"PayPeriodEndDate": "05/15/2017",
"PayPeriodPerYear": "52",
"PayRate": "100",
"PayRateUnit": "H",
"Province": "6",
"StandardHours": "35",
"TaxExempt": false,
"netPay": false,
"Type": "Salary",
"CountryCode": "CAN",
"NR301": false,
}'
ePay Transactions API:
Overview: The Payment Evolution “ePay Transactions API” can be used to get an existing ePay Transaction
Root element <ePay>. Each <Transaction> within <ePay>
Mandatory Elements | |
<Debit> | See Transaction, Max Number: 1 |
<Credit> | See Transaction, Min Number: 1, Max number: 100 |
Return Elements | |
The following are only returned on request | |
<TransactionID> | PaymentEvolution generated unique identifier for Credit Transaction |
<UniqueID> | Custom Unique ID returned back |
Elements for Transaction Items
The total of all <Credit>, <Amount> must equal/match the <Amount> from the <Debit> transaction
Mandatory Elements | |
<Status> | N = New (fixed ) P = Pending A = Approved C = Cleared R = Returned F = Finished |
<Amount> | Decimal amount (ex: 22.00), no currency, no symbol |
Optional Elements | |
<PaymentType> | B = B2B (default) F = Fees P = Payroll C = Commission |
<GroupID> | Custom Group ID |
<UniqueID> | Custom Client unique ID, for reference |
<ProcessDate> | Date of transaction – format dd/MM/yyyy (eg: 14/12/2011) |
<Name> | Descriptive name |
<PaymentMethod> | Attribute: B = Bank (Fixed), See BankType for elements W = Wire M = Manual E = Email |
Elements for <PaymentMethod type=”B”>, BankType Items
Mandatory Elements | |
<AccountNumber> | Max 9 Digit Account Number of payee/payor |
<TransitNumber> | 5 Digit Transit Number belonging to corresponding <InstitutionNumber> |
<InstitutionNumber> | 3 Digit Institution Number e.g. http://en.wikipedia.org/wiki/Routing_transit_number#Canadian_transit_number 001: Bank of Montreal 002: Bank of Nova Scotia 003: Royal Bank of Canada 004: Toronto Dominion Bank 006: National Bank of Canada 010 – CIBC 016 – HSBC |
Sample code:
<?xml version="1.0" encoding="utf-8"?>
<ePay>
<Transaction>
<Debit type="D">
<PaymentMethod type="B">
<AccountNumber>3333-303</AccountNumber>
<TransitNumber>09688</TransitNumber>
<InstitutionNumber>006</InstitutionNumber>
</PaymentMethod>
<Name>Your Company</Name>
<ProcessDate>15/12/2011</ProcessDate>
<PaymentType>B</PaymentType>
<Amount>69.75</Amount>
<Status>N</Status>
</Debit>
<Credit type="C">
<PaymentMethod type="B">
<AccountNumber>4445-44</AccountNumber>
<TransitNumber>4684</TransitNumber>
<InstitutionNumber>002</InstitutionNumber>
</PaymentMethod>
<Name>Payees Store #630</Name>
<UniqueID>UniqueIDPayee</UniqueID>
<GroupID>PayeesRestaurants</GroupID>
<PaymentType>B</PaymentType>
<Amount>25</Amount>
<Status>N</Status>
</Credit>
<Credit type="C">
<PaymentMethod type="B">
<AccountNumber>5555-5501</AccountNumber>
<TransitNumber>04686</TransitNumber>
<InstitutionNumber>004</InstitutionNumber>
</PaymentMethod>
<Name>Payees Store #444</Name>
<UniqueID>UniqueIDPayee444</UniqueID>
<GroupID>PayeesRestaurants</GroupID>
<PaymentType>B</PaymentType>
<Amount>44.75</Amount>
<Status>N</Status>
</Credit>
</Transaction>
</ePay>
ePay Transactions Update API
Overview: The Payment Evolution “ePay Transactions Update API” can be used to update an existing ePay Transaction
Root element <ePay>. Each <Transaction process=”Update”> within <ePay>
Mandatory Elements | |
<Credit> | See Transaction, Min Number: 1, Max number: 100 |
Return Elements | |
The following are only returned on request | |
<Status> | Current status of existing transaction |
<ProcessDate> | Projected Processing/Credit Date |
<Response> | Message if successful or failed |
Elements for Transaction Update Items
Mandatory Elements | |
<TransactionID> | PaymentEvolution unique Transaction ID (14 characters) |
Optional Elements | |
<PaymentType> | B = B2B (default) F = Fees P = Payroll C = Commission |
<GroupID> | Custom Group ID |
<UniqueID> | Custom Client unique ID, for reference |
<ProcessDate> | Date of transaction – format dd/MM/yyyy (eg: 14/12/2011) |
<Name> | Descriptive name |
Elements for <PaymentMethod type=”B”>, BankType Items
Mandatory Elements | |
<AccountNumber> | Max 9 Digit Account Number of payee/payor |
<TransitNumber> | 5 Digit Transit Number belonging to corresponding <InstitutionNumber> |
<InstitutionNumber> | 3 Digit Institution Number e.g. http://en.wikipedia.org/wiki/Routing_transit_number#Canadian_transit_number 001: Bank of Montreal 002: Bank of Nova Scotia 003: Royal Bank of Canada 004: Toronto Dominion Bank 006: National Bank of Canada 010 – CIBC 016 – HSBC |
Sample Code:
<?xml version="1.0" encoding="utf-8"?>
<ePay>
<Transaction process=”Update”>
<Credit type="C">
<TransactionID>CPAYEE33012033</TransactionID>
<PaymentMethod type="B">
<AccountNumber>3333-303</AccountNumber>
<TransitNumber>09688</TransitNumber>
<InstitutionNumber>006</InstitutionNumber>
</PaymentMethod>
<ProcessDate>31/12/2011</ProcessDate>
</Credit>
<Credit type="C">
<TransactionID>CPA2DE33012033</TransactionID>
<ProcessDate>01/01/2012</ProcessDate>
</Credit>
</Transaction>
</ePay>
Company API
Overview
The PaymentEvolution Company API allows partners to add, get and update companies within their group of companies
URL | /api/v1/company/ |
Methods supported | GET, POST |
Description | Get all companies, or Add new company |
Elements (required) | Expected input | Description |
AddressLine1 | Alphanumeric | |
AddressLine2 | Alphanumeric | |
City | Alphanumeric | |
Company | Alphanumeric | Company Name |
Alphanumeric | ||
FirstName | Alphanumeric | |
LastName | Alphanumeric | |
PayrollAcccount | Alphanumeric | Follows Mod 10 – CRA Business number |
Province | Alphanumeric | |
TelephoneAreaCode | Numerical digit – Length 3 | |
TelephoneNumber | Numerical digit – Length 7 |
Sample POST
<Company>
<AddressLine1>test workplace4 st</AddressLine1>
<AddressLine2></AddressLine2>
<City>toronto</City>
<Company>Workplace7</Company>
<Country>Canada</Country>
<Email>workplace9@we.local</Email>
<FirstName>test</FirstName>
<LastName>test</LastName>
<PayrollAccount></PayrollAccount>
<PostalCode>L4W5A8</PostalCode>
<Province>ONTARIO</Province>
<TelephoneAreaCode>416</TelephoneAreaCode> <TelephoneNumber>5556789</TelephoneNumber>
</Company>
Sample Response
Company Model with <CompanyID> for future queries
HolidayCalc API
The PaymentEvolution REST API uses standard HTTP authorization header to pass authorization information. The Authorization header has the following form:
Authorization: PE signature= <issued signature token>
Overview:
The PaymentEvolution HolidayCalc API calculates statutory holiday pay.
Endpoint | /api/v2/holidaycalc |
Methods supported | POST |
Description | Allows you to calculate statutory holiday pay for all provinces and territories. |
* Note: All elements are required. An empty string or 0 is sufficient.
Elements | Expected input | Description |
Province | String: AB BC MB NB NL NS NT NU ON PE QC SK YT | Two letter province abbreviation. Province of legislation. |
StatHoliday | Date | Date of holiday. |
StatHolidayName | String | Name of holiday. E.g. “New Year’s Day” |
RegularWages | Decimal | Regular wages earned during a specified period. E.g. 3475.93 |
EarnSame | Yes/No | Whether the employee earns the same amount of regular wages each week. |
VacPay | Decimal | Amount of vacation pay earned. E.g. 203.43 |
HoursWorked | Decimal | Number of hours worked on the holiday. E.g. 7 |
HourlyRate | Decimal | Employee’s hourly rate. E.g. 15 |
Commissions | Yes/No | Whether the employee earns commissions. |
Incentive | Decimal | The amount of incentive pay earned. E.g. 110.43 |
HoursPayPeriod | Decimal | Number of hours worked in a given pay period. E.g. 100 |
HowManyDays | Int | The number of days worked in a given period. E.g. 21 |
NormalHours | Decimal | The number of hours normally worked in a day. E.g. 7.5 |
WagesCD | Decimal | Yukon specific: Wages earned in a given period. E.g. 2784.56 |
HoursVary | Yes/No | Whether the employee’s hours of work or wages vary. |
Daytoday | Yes/No | Whether the employee’s wages vary from day to day. |
TimeBasis | Yes/No | Whether the employee has their wages calculated on the basis of time. |
Applicable | String: A B C D | Yukon specific: “A” if the employee works irregular hours or less than the standard hours. “B” if the employee works a standard number of hours and has an hourly wage.”C” if the employee works a standard number of hours and is paid a commission or on a piece-work basis. “D” if the employee works a standard number of hours and earns a weekly or monthly salary. Other provinces: “”. |
Sample Code:
{
"Province":"AB",
"StatHoliday":"Mon Jan 02 2023",
"StatHolidayName":"New Year's Day",
"RegularWages":"3473.93",
"EarnSame":"",
"VacPay":"0",
"HoursWorked":"7",
"HourlyRate":"15",
"Commissions":"",
"Incentive":"0",
"HoursPayPeriod":"0",
"HowManyDays":"20",
"NormalHours":"0",
"WagesCD":"0",
"HoursVary":"",
"Daytoday":"",
"TimeBasis":"",
"Applicable":""
}
Timesheet API
Overview:
The Payment Evolution “ePay Transactions Update API” can be used to update an existing ePay Transaction
URL | /api/v1/timesheet |
Methods Supported | GET, POST |
Description | Allows you to retrieve any active timesheet Allows you to add new timesheet record(s) |
Elements for Timesheet
The following are required to create a timesheet: | |
<EmployeeID> | Employee number (0000##) |
<TimeCode> | R = Regular Hours O = Overtime Hours @ 1.5 D = Doubletime Hours @ 2 X = Other Hours Worked 10 = Commission 11 = Statutory Holiday 12 = Sick day 13 = Personal day 14 = Shift Premium 15 = Earnings Advances 16 = Other Earnings 17 = Taxable Vacation Pay 18 = Other Non-Taxable VP = Release Vac Pay |
<Total> | Total Amount to be paid |
The following additional elements are recommended for a PUT / POST request | |
<Approved> | Boolean, True/False |
WorkDateBegin | Datetime Format, 24-hour (eg: 2014-04-22T09:00:00) |
WorkDateEnd | Datetime Format, 24-hour (eg: 2014-04-29T17:00:00) |
<Rate> | Rate per hour |
<TotalHours> | Number of hours |
The following are optional for a PUT / POST request | |
Posting Multiple Timesheets
Endpoint | /api/v1/timesheet/multi |
Parent Tag | <Timesheets> |
Sample Post
<Timesheets>
<Timesheet>
<Authorized>true</Authorized>
<CostAccount>9060</CostAccount>
<EmployeeID>000001</EmployeeID>
<Rate>3333.00</Rate>
<TimeCode>R</TimeCode>
<TimeRecordKey>00000100000004</TimeRecordKey>
<Total>6462687.00</Total>
<TotalHours>1939</TotalHours>
<WorkDateBegin>2014-06-05T07:30:00</WorkDateBegin>
<WorkDateEnd>2014-06-30T14:52:00</WorkDateEnd>
</Timesheet>
<Timesheet>
<Authorized>true</Authorized>
<CostAccount>9060</CostAccount>
<EmployeeID>000001</EmployeeID>
<Rate>3333.00</Rate>
<TimeCode>R</TimeCode>
<TimeRecordKey>00000100000005</TimeRecordKey>
<Total>6462687.00</Total>
<TotalHours>1939</TotalHours>
<WorkDateBegin>2014-09-05T07:30:00</WorkDateBegin>
<WorkDateEnd>2014-09-30T14:52:00</WorkDateEnd>
</Timesheet>
</Timesheets>
Service Status API
Overview
The Service Status API can be used to get the overall status of a page without all the complexities of components and notices.
URL | https://status.paymentevolution.com/api/v1/status |
Methods Supported | GET |
State | Can be any of “operational”, degraded,” or “under maintenance.” |
Sample Code:
{
"page": {
"name": "PaymentEvolution",
"state": "operational",
"url": "https://status.paymentevolution.com",
"links": {
"components": {
"href": "/v1/components",
"count": 50
},
"notices": {
"href": "/v1/notices",
"count": 100
},
},
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
}
List Components API
Overview
The List Components API can be used to retrieve a paginated list of components and their status, useful to those who want a more detailed explanation of what’s impacted, or just the status of a subset of components.
URL | https://status.paymentevolution.com/api/v1/components |
Methods Supported | GET |
State | Can be any of “operational”, “degraded” or “under_maintenance” |
Sample Code:
{
"components": [
{
"id": 1,
"state": "operational",
"name": "Example Component",
"description": "This is an example component.",
"parent_id": null,
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
},
{
"id": 2,
"state": "operational",
"name": "Sub-Component",
"description": "This is an example sub-component.",
"parent_id": 1,
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
],
"meta": {
"count": 25,
"total_count": 50,
"next_page": "/api/v1/components?page=2"
}
}
List Notices API
Overview:
This list only contains basic details; for more information, such as the impacted components or the entire progress update history, request detailed notice information.
Retrieve a paginated list of notices for a page, past, present, and future
URL | https://status.paymentevolution.com/api/v1/notices |
Methods Supported | GET |
Description |
Elements
Type | Can be either “planned” or “unplanned” |
Timeline State | Can be any of “future”, “present”, past_recent,” or past_distant.” |
State | “unplanned” notices can be any of “investigating”, “identified”, “recovering”, resolved,” or “false alarm.” For “planned” notices, it can be “scheduled”, underway,” or complete.” |
Filtering Notices
If you want to search for certain notices, such as planned maintenances, or only current incidents you can do so by passing the “filter” query string parameter.
Only retrieve planned maintenance
URL | GET /api/v1/notices?filter[type_eq]=planned |
Methods Supported | GET |
Description |
Only retrieve current unplanned notices
URL | GET /api/v1/notices?filter[timeline_state_eq]=present&filter[type_eq]=unplanned |
Methods Supported | GET |
Description |
You can mix and match other “type” and “timeline_state” values in the filter, so you have the flexibility to return just the records you need.
Sample Code:
{
"notice": {
"id": 1,
"type": "unplanned",
"timeline_state": "present",
"state": "investigating",
"subject": "Current Incident",
"components": [
{
"id": 1,
"state": "operational",
"name": "Example Component",
"description": "This is an example component.",
"parent_id": null,
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
],
"updates": [
{
"state": "investigating",
"content": "We are currently investigating an issue with our service."
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
],
"url": "https://status.paymentevolution.com/notices/xxx-current-incident",
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
}
Detailed Notice Information API
Overview:
Retrieve the detail for a given notice, including its impacted components and its full list of progress updates.
URL | https://status.paymentevolution.com/api/v1/notices/:id |
Methods Supported | GET |
Description |
Sample Code:
{
"notice": {
"id": 1,
"type": "unplanned",
"timeline_state": "present",
"state": "investigating",
"subject": "Current Incident",
"components": [
{
"id": 1,
"state": "operational",
"name": "Example Component",
"description": "This is an example component.",
"parent_id": null,
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
],
"updates": [
{
"state": "investigating",
"content": "We are currently investigating an issue with our service."
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
],
"url": "https://status.paymentevolution.com/notices/xxx-current-incident",
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
}
Pagination
Overview:
Collections such as “components” and “notices” only return a maximum of 25 records per request. Larger collections are split into multiple pages and contain a URL to retrieve the next page in the collection.
We also include a count of the records on this page and the total record count across all pages.
Sample Code
{
"notices": [],
"meta": {
"count": 25,
"total_count": 100,
"next_page": "/v1/notices?page=2"
}
}