/
ExportInvoices

ExportInvoices

Rate Limiting

In order to protect our servers from inadvertent service overuse or intentional attack, and to fairly distribute services to all our customers, we have implemented a rate limiting algorithm.  When fully deployed, this new algorithm will cause services to either succeed with new warnings or fail with new errors when services are consumed at too high a rate.  Programs that consume Projector services should be enhanced to handle rate limiting errors so that they can continue functioning properly.  For more information please visit: Projector Rate Limiting Behavior.

Request

Details are returned for all invoices that meet all of the criteria specified. The service request contains:

Name

Data Type

Required?

Default Value

Discussion

Name

Data Type

Required?

Default Value

Discussion

StartDate

date

no

 

Search for invoices issued on or after this date

EndDate

date

no

 

Search for invoices issued on or before this date

SearchString

string(100)

no

 

Searches for all or part of invoice number, client name, client code, engagement name, engagement code, project name, project code.

InvoiceNumber

string(100)

no

 

Enter one or more invoice numbers, separated by commas

IncludeDraftInvoicesFlag

boolean

no

false

Set to true to include invoices currently in the Draft state

IncludeApprovedInvoicesFlag

boolean

no

false

Set to true to include invoices currently in the Approved (but not issued) state

IncludeIssuedInvoicesFlag

boolean

no

true

Set to true to include invoices currently in the Issued state.

IncludePostFailedInvoicesFlag

boolean

no

true

Set to true to include invoices currently in the Post Failed state.

IncludeSentInvoicesFlag

boolean

no

true

Set to true to include invoices currently in the Sent state.

IncludeSendFailedInvoicesFlag

boolean

no

true

Set to true to include invoices currently in the Send Failed state.

IncludePaidInvoicesFlag

boolean

no

true

Set to true to include invoices currently in the Paid state.

IncludeOverdueInvoicesFlag

boolean

no

true

Set to true to include invoices currently in the overdue state.

SuppressInvoiceDetailsFlag

boolean

no

false

Set to true to suppress invoice detail information. This can reduce the execution time and payload size dramatically in situations where you don't need the full details of each invoice.

 

Response

If the invoice exists, then the following data is returned:

Name

Data Type

Discussion

Name

Data Type

Discussion

InvoiceHeader

see below

One record per invoice

InvoiceTaxes

list of Tax

One record per tax on the invoice

InvoiceMilestones

list of Milestone

One record per milestone on the invoice

InvoiceTimeCards

list of TimeCard

One record per timecard on the invoice

InvoiceCostCards

list of CostCard

One record per costcard on the invoice

InvoicePrepayments

List of Prepayment

One record per engagement on the invoice

InvoiceEngagements

list of Engagement

One record per engagement that has time, cost, or milestones on the invoice

InvoiceProjects

list of Project

One record per project that has time or cost on the invoice

InvoiceClientUdfs

list of ClientUdf

These are the UDFs associated with the invoiced client

InvoiceRoles

list of Role

(added 2018-06-07) One record per role on the invoice

InvoiceUdfs

list of InvoiceUdf

UDFs for the invoice. One record per UDF. 

 

InvoiceHeader

 

Name

Data Type

Discussion

Name

Data Type

Discussion

InvoiceId

int

Internal identifier

InvoiceNumber

string(20)

 

DraftInvoiceNumber

string(20)

 

InvoiceStatus

string(1)

 

InvoiceDate

dateTime

 

InvoiceName

string

 

CurrencyName

string

 

CurrencyCode

string(3)

 

CultureName

string

 

PaymentTerms

string

 

TimeGrossAmtOption

string(1)

 

CostGrossAmtOption

string(1)

 

TimeBillingType

string(1)

<D>aily or <H>ourly

InvoiceTemplateName

string(10)

 

EngagementId

int

Internal ID. Null unless this invoice is an engagement invoice.

ProjectId

int

Internal ID. Null unless this invoice is a project invoice.

PurchaseOrderNumber

string

 

BillingInstructions

string

 

AddressAttention

string

 

AddressCompanyName

string

 

AddressLine1

string

 

AddressLine2

string

 

AddressCity

string

 

AddressStateOrProvince

string

 

AddressZipOrPostalCode

string

 

AddressCountry

string

 

ClientMessage

string(1000)

A per-invoice message to appear on the invoice. RTF is stripped out if present.

ClientId

int

Internal ID

ClientNumber

string

 

ClientName

string

 

CostCenterName

string

 

CostCenterReferenceSystemId

string

 

AdjustedRevenueAmountTotal

money

 

ClientAmountTotal

money

 

MilestoneAmountTotal

money

 

TaxAmountTotal

money

 

AppliedPrepaymentAmountTotal

money

 

InvoiceAmount

money

 

 

Tax

 

Name

Data Type

Discussion

Name

Data Type

Discussion

TaxTypeName

string

 

TaxTypeCode

string

 

TaxableAmount

money

 

TaxRate

double

 

TaxAmount

money

 

 

Milestone

 

Name

Data Type

Discussion

Name

Data Type

Discussion

EngagementId

int

 

EngagementName

string

 

EngagementCode

string

 

EngagementTypeName

string

 

EngagementTypeShortName

string

 

MilestoneName

string

 

AchievedDate

dateTime

 

MilestoneAmount

money

 

MilestoneDescription

string

 

ProjectId

int

 

ProjectName

string

 

ProjectCode

string

 

ProjectTaskId

int

 

ProjectTaskName

string

 

ProjectTaskFullWbsCode

string

 

ContractLineItemId

int

 

ContractLineItemName

string

 

ContractLineItemCode

string

 

 

TimeCard

 

Name

Data Type

Discussion

Name

Data Type

Discussion

ProjectId

 

 

ProjectName

 

 

ProjectCode

 

 

ResourceId

 

 

ResourceDisplayName

 

 

ResourceEmailAddress

 

 

ResourceReferenceSystemId

string(20)

Unique code identifying the resource.

ResourceTitleName

string(50)

 

ResourceDepartmentName

 

 

ResourceBillingTitleName

string(50)

The title on which the billing rate is based. This is the same as the ResourceTitleName unless the role is configured to bill using the rate associated with a different title.

ResourceBillingDepartmentName

 

 

WorkLocationName

string

 

ResourceCostCenterName

string

Name of resource's cost center at time of work.

ResourceCostCenterNumber

string

Cost Center Number of resource's cost center at time of work.

EngagementCostCenterName

string

Name of engagement cost center.

EngagementCostCenterNumber

string

Cost Center Number of engagement cost center.

ResourceLocationName

string

Name of resource's location at time of work.

ProjectLocationName

string

Name of project's location.

RoleName

string(32)

The role on which time was reported. May be null if this invoice is not issued and this time card has a pending transfer to a new role on a different project.

ProjectTaskCodeName

string(50)

Deprecated. Returns the same as ProjectTaskTypeName

ProjectTaskTypeName

string(50)

 

ProjectRateTypeName

string(50)

 

FullWbsCode

string

 

ProjectTaskName

string

 

WorkDate

date

Date for which the time was reported.

WorkHours

double

The number of hours worked.

DayFraction

double

When the TimeBillingType is "D" then DayFraction is the number of days billed on this time card.

StandardRevenueAmount

double

 

ContractRevenueAmount

double

 

AdjustedRevenueAmount

double

 

Description

string(1000)

 

SuppressFromInvoiceFlag

bool

True if the item should be suppressed from being displayed on the invoice. It can be true only if the adjusted revenue amount is zero.

ContractLineItemId

int

 

ContractLineItemName

string

 

ContractLineItemCode

string

 

ProjectRoleId

int

(added 2018-06-07)

 

CostCard

 

Name

Data Type

Discussion

Name

Data Type

Discussion

ProjectId

 

 

ProjectName

 

 

ProjectCode

 

 

ResourceId

 

 

ResourceDisplayName

 

 

ResourceEmailAddress

 

 

ResourceReferenceSystemId

string(20)

Unique code identifying the resource.

ResourceTitleName

string(50)

 

ResourceDepartmentName

 

 

ExpenseLocationName

string

 

ResourceCostCenterName

string

Name of resource's cost center at time of incurred expense.

ResourceCostCenterNumber

string

Cost Center Number of resource's cost center at time of incurred expense.

EngagementCostCenterName

string

Name of engagement cost center.

EngagementCostCenterNumber

string

Cost Center Number of engagement cost center.

DisbursingCostCenterName

string(50)

 

DisbursingCostCenterNumber

string(40)

 

ResourceLocationName

string

Name of resource's location at time of incurred expense.

ProjectLocationName

string

Name of project's location.

CostCodeName

string(50)

 

IncurredDate

date

Date for which the cost was reported.

IncurredAmount

money

 

MileageUnits

double

 

ClientAmount

money

 

Description

string(100)

Description of the cost

ExpenseReportNumber

string(20)

Identifies the expense report that the card is assigned to. Null if the cost card is not associated with an expense report.

VendorInvoiceNumber

string(20)

Identifies the vendor invoice that the card is assigned to. Null if the cost card is not associated with a vendor invoice.

ResourceVendorReferenceSystemId

string(20)

Unique vendor code identifying the resource as a vendor.

VendorName

string(20)

 

VendorNumber

string(50)

 

ContractLineItemId

int

 

ContractLineItemName

string

 

ContractLineItemCode

string

 

SuppressFromInvoiceFlag

bool

True if the item should be suppressed from being displayed on the invoice. It can be true only if the client amount is zero.

 

Prepayment

 

Name

Data Type

Discussion

Name

Data Type

Discussion

EngagementId

int

 

EngagementName

string

 

EngagementCode

string

 

EngagementTypeName

string

 

EngagementTypeShortName

string

 

AppliedPrepaymentAmount

money

 

UnappliedPrepaymentAmount

money

 

 

Engagement

 

Name

Data Type

Discussion

Name

Data Type

Discussion

EngagementId

int

 

EngagementName

string

 

EngagementCode

string

 

EngagementTypeName

string

 

EngagementTypeShortName

string

 

EngagementUdfs

list of EngagementUdf

 

 

Project

 

Name

Data Type

Discussion

Name

Data Type

Discussion

ProjectId

int

 

ProjectName

string

 

ProjectCode

string

 

ProjectUdfs

list of ProjectUdf

 

Role

 

Name

Data Type

Discussion

Name

Data Type

Discussion

ProjectRoleId

int

 

RoleName

string

 

ProjectCode

string

 

RoleUdfs

list of RoleUdf

 

RoleUdf

Name

Data Type

Discussion

Name

Data Type

Discussion

ProjectRoleId

int

 

Name

string

role name

DataType

string

D: date

I: int

R: resource (int)

T: text (string)

Y: Yes/No (string)

L: text list (string)

S: stoplight

StringValue

string

string value of UDF

IntValue

int

int value of UDF

DateValue

date

date value of UDF

MonthlyString12Value

string

for stoplight UDFs

WeeklyString12Value

string

for stoplight UDFs

MonthlyString6Value

string

for stoplight UDFs

WeeklyString6Value

string

for stoplight UDFs

InvoiceUdf

Name

Data Type

Discussion

Name

Data Type

Discussion

InvoiceId

int

 

Name

string

UDF name

DataType

string

D: date

I: int

R: resource (int)

T: text (string)

Y: Yes/No (string)

L: text list (string)

S: stoplight

StringValue

string

string value of UDF

IntValue

int

int value of UDF

DatetimeValue

date

date value of UDF

ReferenceInfo

string

resource ID for resource type invoice UDF

MonthlyString12Value

string

for stoplight UDFs

WeeklyString12Value

string

for stoplight UDFs

MonthlyString6Value

string

for stoplight UDFs

WeeklyString6Value

string

for stoplight UDFs


Notes

  • For invoices in the Draft or Approved state (invoices that are not issued), all pending adjustments that have been approved by both PM and finance are reflected in the time and cost card values. Other pending adjustments are not.

  • For non-issued invoices, the draft invoice number is reported as both the invoice number and the draft invoice number.

  • Time cards can be transferred to a new role on another project within the same invoice. In these cases, the new role will get created upon issue. Since this new role will not exist yet for non-issued invoices, ni these cases RoleName will be null.

Change log

Parameter

Notes

Parameter

Notes

InvoiceHeader

ClientMessageText now has RTF stripped out and only text is returned

TimeCard

Added ProjectTaskTypeName

TimeCard

ProjectTaskCodeName is deprecated for the preferred ProjectTaskTypeName

TimeCard

Added ProjectRateTypeName

CostCard

Added DisbursingCostCenterName

CostCard

Added DisbursingCostCenterNumber

 

Related content

PwsGetInvoice
PwsGetInvoice
Read with this
UpdateInvoiceTransactionStatus
UpdateInvoiceTransactionStatus
More like this
PwsInvoiceElement
PwsInvoiceElement
Read with this
ExportIncrementalTimeFeed
ExportIncrementalTimeFeed
More like this
UpdateInvoicePaymentStatus
UpdateInvoicePaymentStatus
More like this
PwsGetPostedInvoices
PwsGetPostedInvoices
More like this