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 1Y
AddressLine2 Alphanumeric  Address line 2N
City Alphanumeric  CityY
Email Alphanumeric  Email addressN
EmployeeType Permanent Temporary  Contractor  P = Permanent (default)
S = Subcontractor
T = Temporary
N
FirstName Alphanumeric  Employee first nameY
LastName Alphanumeric  Employee last nameY
MiddleName Alphanumeric  Employee middle nameN
PayrollDetails See PayrollDetailType below Employee’s payroll specifics 
Postal Alphanumeric  Postal CodeY
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
PhoneNumerical digit: length 9 Contact Number N

Payrun Elements

Payrun Elements Expected input  Description Mandatory
AccountCodeNumeric Account for employee earningsN
CppExemptYES | NO 
BirthDateUTC timeDate of Birth, format dd/mm/yyyy
Example 2015-01-31T00:00:00
Y
EiExemptYES | 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
PayRateNumerical digits(no other characters allowed.) For example, 1234.99Amount of pay
PayRateUnitHourly
Daily
Weekly
Monthly
Yearly
 H = hourly rate
D = daily rate
W = weekly rate
M = monthly rate
Y = yearly rate
PayPeriodPerYear52
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
TD1FederalNumerical digits – no other characters allowed. For example 1234.99TD1 exemption amount (federal)
TD1ProvincialNumerical digits – no other characters allowed. For example 1234.99TD1 exemption amount (province or territory)
TaxExemptYES | 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  
Email  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.

URLhttps://status.paymentevolution.com/api/v1/status
Methods SupportedGET
StateCan 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.

URLhttps://status.paymentevolution.com/api/v1/components
Methods SupportedGET
StateCan 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

URLhttps://status.paymentevolution.com/api/v1/notices
Methods SupportedGET
Description

Elements

TypeCan be either “planned” or “unplanned”
Timeline StateCan 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

URLGET /api/v1/notices?filter[type_eq]=planned
Methods SupportedGET
Description

Only retrieve current unplanned notices

URLGET /api/v1/notices?filter[timeline_state_eq]=present&filter[type_eq]=unplanned
Methods SupportedGET
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.

URLhttps://status.paymentevolution.com/api/v1/notices/:id
Methods SupportedGET
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"
    }
}

Author