openapi: 3.2.0 info: description: Welcome to the Rocket Matter API. version: '2.0' title: Rocket Matter Billable Activity API termsOfService: www.rocketmatter.com contact: email: developer@rocketmatter.com license: name: Rocket Matter url: www.rocketmatter.com x-logo: url: https://support.rocketmatter.com/wp-content/themes/rm-support/img/rm-logo.png servers: - url: https:////API_V2 tags: - name: BillableActivity description: View, add, edit, and delete billable activities. paths: /BillableActivity.svc/json/GetBillableActivities: post: tags: - BillableActivity description: Get billable activities for a user by ID. operationId: GetBillableActivities responses: '200': description: Successfully processed request content: application/json: schema: $ref: '#/components/schemas/GetBillableActivitiesResponse' '400': description: Internal server error '401': description: Unauthorized requestBody: content: application/json: schema: $ref: '#/components/schemas/GetBillableActivitiesRequest' required: true summary: Get billable activities x-summary-source: derived /BillableActivity.svc/json/GetFirmBalances: post: tags: - BillableActivity description: To get the various balances of pending billable activity for the firm. operationId: GetFirmBalances responses: '200': description: Successfully processed request content: application/json: schema: $ref: '#/components/schemas/GetFirmBalancesResponse' '400': description: Internal server error '401': description: Unauthorized requestBody: content: application/json: schema: $ref: '#/components/schemas/GetFirmBalancesRequest' required: true summary: Get firm balances x-summary-source: derived /BillableActivity.svc/json/SaveBillableTime: post: tags: - BillableActivity description: To create a new billable time activity (non-expense). operationId: SaveBillableTime responses: '200': description: Successfully processed request content: application/json: schema: $ref: '#/components/schemas/SaveBillableTimeResponse' '400': description: Internal server error '401': description: Unauthorized requestBody: content: application/json: schema: $ref: '#/components/schemas/SaveBillableTimeRequest' required: true summary: Save billable time x-summary-source: derived /BillableActivity.svc/json/SaveExpense: post: tags: - BillableActivity description: To create a new billable expense activity. operationId: SaveExpense responses: '200': description: Successfully processed request content: application/json: schema: $ref: '#/components/schemas/SaveExpenseResponse' '400': description: Internal server error '401': description: Unauthorized requestBody: content: application/json: schema: $ref: '#/components/schemas/SaveExpenseRequest' required: true summary: Save expense x-summary-source: derived /BillableActivity.svc/json/GetUnitsBilledForPeriod: post: tags: - BillableActivity description: Gets all the billable units for a user over a specific time period. operationId: GetUnitsBilledForPeriod responses: '200': description: Successfully processed request content: application/json: schema: $ref: '#/components/schemas/GetUnitsBilledForPeriodResponse' '400': description: Internal server error '401': description: Unauthorized requestBody: content: application/json: schema: $ref: '#/components/schemas/GetUnitsBilledForPeriodRequest' required: true summary: Get units billed for period x-summary-source: derived /BillableActivity.svc/json/GetUnitsBilledForFirm: post: tags: - BillableActivity description: Gets all the billable units for the entire firm over a specific time period. operationId: GetUnitsBilledForFirm responses: '200': description: Successfully processed request content: application/json: schema: $ref: '#/components/schemas/GetUnitsBilledForPeriodResponse' '400': description: Internal server error '401': description: Unauthorized requestBody: content: application/json: schema: $ref: '#/components/schemas/GetUnitsBilledForPeriodRequest' required: true summary: Get units billed for firm x-summary-source: derived /BillableActivity.svc/json/GetTimeExpense: post: tags: - BillableActivity description: Get a time or expense billable activity by ID. operationId: GetTimeExpense responses: '200': description: Successfully processed request content: application/json: schema: $ref: '#/components/schemas/GetTimeExpenseResponse' '400': description: Internal server error '401': description: Unauthorized requestBody: content: application/json: schema: $ref: '#/components/schemas/GetTimeExpenseRequest' required: true summary: Get time expense x-summary-source: derived /BillableActivity.svc/json/GetActivityTypeId: post: tags: - BillableActivity description: See the type of an activity. operationId: GetActivityTypeId responses: '200': description: Successfully processed request content: application/json: schema: $ref: '#/components/schemas/GetActivityTypeIdResponse' '400': description: Internal server error '401': description: Unauthorized requestBody: content: application/json: schema: $ref: '#/components/schemas/GetActivityTypeIdRequest' required: true summary: Get activity type id x-summary-source: derived /BillableActivity.svc/json/DeleteActivity: post: tags: - BillableActivity description: To delete a specific activity. operationId: DeleteActivity responses: '200': description: Successfully processed request content: application/json: schema: $ref: '#/components/schemas/DeleteActivityResponse' '400': description: Internal server error '401': description: Unauthorized requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteActivityRequest' required: true summary: Delete activity x-summary-source: derived /BillableActivity.svc/json/GetActivitiesForMatter: post: tags: - BillableActivity description: See all billable activities for a specific matter. operationId: GetActivitiesForMatter responses: '200': description: Successfully processed request content: application/json: schema: $ref: '#/components/schemas/GetActivitiesForMatterResponse' '400': description: Internal server error '401': description: Unauthorized requestBody: content: application/json: schema: $ref: '#/components/schemas/GetActivitiesForMatterRequest' required: true summary: Get activities for matter x-summary-source: derived /BillableActivity.svc/json/GetAllLedes: post: tags: - BillableActivity description: Get all LEDES codes for expense activities. operationId: GetAllLedes responses: '200': description: Successfully processed request content: application/json: schema: $ref: '#/components/schemas/GetAllLedesResponse' '400': description: Internal server error '401': description: Unauthorized summary: Get all ledes x-summary-source: derived components: schemas: Matter: type: object properties: Description: type: string MatterType: type: object $ref: '#/components/schemas/MatterType' FlatFeeOf: type: number format: double MatterPermissionTypeID: type: integer format: int32 MatterEverGreenInfo: type: object $ref: '#/components/schemas/MatterEverGreenInfo' RelatedContacts: type: array items: $ref: '#/components/schemas/MatterRelatedContact' CustomFields: type: array items: $ref: '#/components/schemas/MatterCustomField' MatterPermissionType: type: object $ref: '#/components/schemas/MatterPermissionType' Permissions: type: array items: $ref: '#/components/schemas/MatterPermission' Events: type: array items: $ref: '#/components/schemas/Event' Tasks: type: array items: $ref: '#/components/schemas/Task' Tags: type: array items: type: string PrimaryAttorneyContactID: type: integer format: int32 StatueOfLimitation: type: object $ref: '#/components/schemas/MatterStatueOfLimitation' ShareInvoicesAutomaticallyWith: type: array items: $ref: '#/components/schemas/Client' ShareInvoiceSettings: type: array items: $ref: '#/components/schemas/ShareInvoiceSetting' InvoiceTemplateId: type: integer format: int32 IsSystemMatter: type: boolean EnablePaymentProcessingFee: type: boolean PaymentProcessingFeePercent: type: number format: double EnableSurchargeFee: type: boolean SurchargeHistoryId: type: number format: double OpenDate: type: string format: date-time ClosedDate: type: string format: date-time CompletedDate: type: string format: date-time MatterTemplateId: type: integer format: int32 EmailFolder: type: string IsPendingImport: type: boolean MatterWorkFlowStatusId: type: string MatterBudget: type: object $ref: '#/components/schemas/MatterBudget' FireTemplateSelection: type: boolean Client: type: object $ref: '#/components/schemas/Client' Name: type: string ClientMatter: type: string MatterTypeID: type: integer format: int32 MatterStatusTypeId: type: integer format: int32 TaxRateId: type: string DiscountRateId: type: string InterestRateId: type: string SurchargeRateId: type: string DefaultBillingTypeId: type: integer format: int32 ID: type: integer format: int32 GetActivitiesForMatterRequest: type: object properties: MatterId: type: integer format: int32 Offset: type: integer format: int32 Fetch: type: integer format: int32 ActivityTypeId: type: integer format: int32 GetTimeExpenseRequest: type: object properties: ActivityId: type: integer format: int32 MatterType: type: object properties: Name: type: string ID: type: integer format: int32 BillableTime: type: object properties: Description: type: string MatterId: type: integer format: int32 ClientId: type: integer format: int32 Tags: type: array items: type: string Matter: type: object $ref: '#/components/schemas/Matter' UserId: type: integer format: int32 User: type: object $ref: '#/components/schemas/User' BillingDate: type: string format: date-time BillableUnits: type: number format: double CostOverride: type: number format: double IsLineItemOverride: type: boolean IsNoCharge: type: boolean NonBillable: type: boolean LEDESTaskCode: type: string LEDESActivityCode: type: string IsTaxable: type: boolean IsSurchargeable: type: boolean MatterName: type: string UserFullName: type: string IsInvoiced: type: boolean MatterClosed: type: boolean ActivityTypeId: type: integer format: int32 ActivityCodeDescription: type: string TaskCodeDescription: type: string TotalSeconds: type: integer format: int32 ID: type: integer format: int32 ContactRelationship: type: object properties: ContactId: type: integer format: int32 RelationshipId: type: integer format: int32 RelationshipName: type: string Role: type: string Position: type: integer format: int32 IsCompany: type: boolean ID: type: integer format: int32 GetActivityTypeIdResponse: type: object properties: ActivityTypeId: type: integer format: int32 Success: type: boolean Message: type: string ErrorMessage: type: string ErrorNumber: type: integer format: int32 FailedValidations: type: array items: $ref: '#/components/schemas/ValidationResult' Errors: type: array items: type: string ContactAddress: type: object properties: AddressLine1: type: string AddressLine2: type: string City: type: string State: type: string PostalCode: type: string Country: type: string IsEmpty: type: boolean ID: type: integer format: int32 SaveBillableTimeResponse: type: object properties: BillableTime: type: object $ref: '#/components/schemas/BillableTime' Success: type: boolean Message: type: string ErrorMessage: type: string ErrorNumber: type: integer format: int32 FailedValidations: type: array items: $ref: '#/components/schemas/ValidationResult' Errors: type: array items: type: string TaskEventMilestone: type: object properties: TaskId: type: integer format: int32 EventId: type: integer format: int32 MatterTemplateMilestoneId: type: integer format: int32 MilestoneDate: type: string format: date-time ID: type: integer format: int32 MatterPermission: type: object properties: MatterID: type: integer format: int32 UserID: type: integer format: int32 User: type: object $ref: '#/components/schemas/User' UserFullName: type: string ID: type: integer format: int32 CharacterValidationRule: type: object properties: ShouldMatch: type: boolean Message: type: string Regex: type: string BillableActivity: type: object properties: TotalSeconds: type: integer format: int32 BillableUnits: type: number format: double ActivityName: type: string Amount: type: number format: double IsCredit: type: boolean Rate: type: number format: double UserId: type: integer format: int32 ClientId: type: integer format: int32 MatterId: type: integer format: int32 DateAndTime: type: string format: date-time Notes: type: string ActivityTypeId: type: integer format: int32 UserFullName: type: string IsNoCharge: type: boolean IsNonBillable: type: boolean CurrencySymbol: type: string Title: type: string User: type: object $ref: '#/components/schemas/User' IsInvoiced: type: boolean ID: type: integer format: int32 Task: type: object properties: Title: type: string DueDate: type: string OwnerID: type: integer format: int32 Owner: type: object $ref: '#/components/schemas/User' AssignedToID: type: integer format: int32 AssignTo: type: object $ref: '#/components/schemas/User' Tags: type: array items: type: string Position: type: integer format: int32 MatterID: type: integer format: int32 MatterPosition: type: integer format: int32 Milestones: type: array items: $ref: '#/components/schemas/TaskEventMilestone' MatterTemplateMilestoneActionId: type: integer format: int32 IsMilestonePending: type: boolean IsComplete: type: boolean ActivityId: type: integer format: int32 ClientMatter: type: object IsRead: type: boolean Invoiced: type: boolean PendingInvoicing: type: boolean BillingDate: type: string format: date-time TotalSeconds: type: integer format: int32 BillableUnits: type: number format: double Notes: type: string Cost: type: number format: double IsNoCharge: type: boolean IsNonBillable: type: boolean CompletedDate: type: string format: date-time OwnerIsRole: type: boolean AssignedToIsRole: type: boolean OwnerRole: type: string AssignedToRole: type: string ID: type: integer format: int32 ValidationResult: type: object properties: MinValue: type: boolean MaxValue: type: boolean MinLength: type: boolean MaxLength: type: boolean Required: type: boolean PropertyDisplayName: type: string Precision: type: boolean ValueEntered: type: object Name: type: string ObjectName: type: string ExternalID: type: string MinValueMessage: type: string MaxValueMessage: type: string MinLengthMessage: type: string MaxLengthMessage: type: string RequiredMessage: type: string RequiredPrecisionMessage: type: string BaseFailureMessage: type: string FailedValidationMessages: type: array items: type: string FailedCharacterValidations: type: array items: $ref: '#/components/schemas/CharacterValidationRule' IsValid: type: boolean Client: type: object properties: Name: type: string Code: type: string MiddleName: type: string LastName: type: string IsCompany: type: boolean ContactID: type: integer format: int32 CompanyID: type: integer format: int32 CompanyName: type: string WorkEmail: type: string FullName: type: string HomeAddress: type: object $ref: '#/components/schemas/ContactAddress' Relationships: type: array items: $ref: '#/components/schemas/ContactRelationship' HomeEmail: type: string MobilePhone: type: string Notes: type: string PreferredDisplayName: type: string PrimaryContact: type: string PrimaryContactId: type: integer format: int32 Salutation: type: string SkypeUserName: type: string Suffix: type: string Title: type: string WorkAddress: type: object $ref: '#/components/schemas/ContactAddress' WorkFax: type: string WorkPhone: type: string HomePhone: type: string WorkPhoneExt: type: string Tags: type: array items: type: string ID: type: integer format: int32 SaveBillableTimeRequest: type: object properties: BillableTime: type: object $ref: '#/components/schemas/BillableTime' DeleteActivityRequest: type: object properties: ActivityId: type: integer format: int32 SendToTimerBar: type: boolean GetBillableActivitiesRequest: type: object properties: Filter: type: object $ref: '#/components/schemas/BillableActivityFilter' GetFirmBalancesRequest: type: object properties: IncludeFullDetails: type: boolean ShareInvoiceSetting: type: object properties: Contact: type: object $ref: '#/components/schemas/Contact' ContactID: type: integer format: int32 FullName: type: string ShareByPortal: type: boolean ShareByEmail: type: boolean EmailTypeSelected: type: string ID: type: integer format: int32 MatterRelatedContact: type: object properties: ContactId: type: integer format: int32 Contact: type: object $ref: '#/components/schemas/Contact' MatterID: type: integer format: int32 Role: type: string Position: type: integer format: int32 RelationshipName: type: string IsDefault: type: boolean IsUser: type: boolean IsAttendeeRole: type: boolean IsEventOwnerRole: type: boolean TaskAssigneeRole: type: boolean TaskOwnerRole: type: boolean ID: type: integer format: int32 SaveExpenseResponse: type: object properties: Expense: type: object $ref: '#/components/schemas/Expense' Success: type: boolean Message: type: string ErrorMessage: type: string ErrorNumber: type: integer format: int32 FailedValidations: type: array items: $ref: '#/components/schemas/ValidationResult' Errors: type: array items: type: string SaveExpenseRequest: type: object properties: Expense: type: object $ref: '#/components/schemas/Expense' Event: type: object properties: ParentEventId: type: integer format: int32 MatterID: type: integer format: int32 MatterName: type: string Title: type: string Notes: type: string Location: type: string StartDateString: type: string StartDate: type: string format: date-time StartDay: type: string StartTime: type: string EndDay: type: string EndTime: type: string EndDateString: type: string EndDate: type: string format: date-time BillingDate: type: string format: date-time OwnerID: type: integer format: int32 Owner: type: object $ref: '#/components/schemas/User' OwnerName: type: string Bill: type: boolean NonBillable: type: boolean Attendees: type: array items: $ref: '#/components/schemas/EventAttendee' Tags: type: array items: type: string Milestones: type: array items: $ref: '#/components/schemas/TaskEventMilestone' MatterTemplateMilestoneActionId: type: integer format: int32 IsMilestonePending: type: boolean ActivityId: type: integer format: int32 IsPrivate: type: boolean IsFlagged: type: boolean IsAllDayEvent: type: boolean IsRecurringEvent: type: boolean RemindParticipants: type: boolean ReminderInterval: type: integer format: int32 RecurringFrequency: type: integer format: int32 RecurringInterval: type: string enum: - Day - Weekday - Week - Month - Year - Custom RecurringEventEndType: type: string enum: - Never - After - 'On' ReminderIntervalType: type: string enum: - Minutes - Hours - Days - Months RecurringEventEndDate: type: string format: date-time ReminderDate: type: string format: date-time RecurringEventOccurences: type: integer format: int32 OwnerIsRole: type: boolean OwnerRole: type: string IsInvoiced: type: boolean WebLink: type: string IsCourtRule: type: boolean MatterCourtRuleId: type: string ThirdPartyDeadlineId: type: string IsStatute: type: boolean EventUser: type: object $ref: '#/components/schemas/User' ID: type: integer format: int32 GetActivityTypeIdRequest: type: object properties: ActivityId: type: integer format: int32 MatterCustomField: type: object properties: Name: type: string Value: type: string Position: type: integer format: int32 MatterID: type: integer format: int32 ID: type: integer format: int32 User: type: object properties: FullName: type: string FirstName: type: string LastName: type: string MiddleName: type: string ContactId: type: integer format: int32 Initials: type: string ID: type: integer format: int32 GetUnitsBilledForPeriodRequest: type: object properties: TimePeriod: type: string GetActivitiesForMatterResponse: type: object properties: Activities: type: array items: $ref: '#/components/schemas/BillableActivity' Success: type: boolean Message: type: string ErrorMessage: type: string ErrorNumber: type: integer format: int32 FailedValidations: type: array items: $ref: '#/components/schemas/ValidationResult' Errors: type: array items: type: string EventAttendee: type: object properties: EventID: type: integer format: int32 UserID: type: integer format: int32 User: type: object $ref: '#/components/schemas/User' Bill: type: boolean NonBillable: type: boolean AttendeeName: type: string Contact: type: object $ref: '#/components/schemas/Contact' IsRole: type: boolean Role: type: string ContactId: type: integer format: int32 InviteStatusTypeId: type: integer format: int32 ID: type: integer format: int32 MatterPermissionType: type: object properties: Name: type: string ID: type: integer format: int32 Expense: type: object properties: Description: type: string MatterId: type: integer format: int32 ClientId: type: integer format: int32 Matter: type: object $ref: '#/components/schemas/Matter' UserId: type: integer format: int32 User: type: object $ref: '#/components/schemas/User' BillingDate: type: string format: date-time Cost: type: number format: double IsLineItemOverride: type: boolean IsNoCharge: type: boolean NonBillable: type: boolean LEDESExpenseCode: type: string IsFlatFee: type: boolean MatterName: type: string IsTaxable: type: boolean IsSurchargeable: type: boolean IsConvenienceFee: type: boolean UserFullName: type: string IsInvoiced: type: boolean MatterClosed: type: boolean ActivityTypeId: type: integer format: int32 ExpenseCodeDescription: type: string VendorContactId: type: integer format: int32 VendorFullName: type: string Tags: type: array items: type: string SyncQBOAsCheck: type: boolean ID: type: integer format: int32 DeleteActivityResponse: type: object properties: Success: type: boolean Message: type: string ErrorMessage: type: string ErrorNumber: type: integer format: int32 FailedValidations: type: array items: $ref: '#/components/schemas/ValidationResult' Errors: type: array items: type: string LedesCodesCache_Lookup: type: object properties: billingCodesExpense: type: object GetAllLedesResponse: type: object properties: Ledes: type: object $ref: '#/components/schemas/LedesCodesCache_Lookup' Success: type: boolean Message: type: string ErrorMessage: type: string ErrorNumber: type: integer format: int32 FailedValidations: type: array items: $ref: '#/components/schemas/ValidationResult' Errors: type: array items: type: string GetTimeExpenseResponse: type: object properties: Time: type: object $ref: '#/components/schemas/BillableTime' Expense: type: object $ref: '#/components/schemas/Expense' Success: type: boolean Message: type: string ErrorMessage: type: string ErrorNumber: type: integer format: int32 FailedValidations: type: array items: $ref: '#/components/schemas/ValidationResult' Errors: type: array items: type: string GetBillableActivitiesResponse: type: object properties: Activities: type: array items: $ref: '#/components/schemas/BillableActivity' Success: type: boolean Message: type: string ErrorMessage: type: string ErrorNumber: type: integer format: int32 FailedValidations: type: array items: $ref: '#/components/schemas/ValidationResult' Errors: type: array items: type: string MatterEverGreenInfo: type: object properties: IsOn: type: boolean MinimumRequiredRetainer: type: number format: double ReplenishWhenBelow: type: number format: double GetFirmBalancesResponse: type: object properties: PendingSubtotal: type: number format: double PendingTaxes: type: number format: double PendingTotal: type: number format: double TrustAccountBalance: type: number format: double TrustAccountingEnabled: type: boolean PendingInvoicingEnabled: type: boolean AccessDenied: type: boolean TaxesSetUp: type: boolean BillableHours: type: number format: double TrustPendingWithdrawl: type: number format: double Success: type: boolean Message: type: string ErrorMessage: type: string ErrorNumber: type: integer format: int32 FailedValidations: type: array items: $ref: '#/components/schemas/ValidationResult' Errors: type: array items: type: string Contact: type: object properties: Name: type: string MiddleName: type: string FullName: type: string LastName: type: string IsCompany: type: boolean WorkEmail: type: string WorkPhone: type: string WorkPhoneExt: type: string WorkFax: type: string WorkAddressLine1: type: string WorkAddressLine2: type: string WorkCity: type: string WorkState: type: string WorkPostalCode: type: string WorkCountry: type: string ClientID: type: integer format: int32 HomeEmail: type: string HomePhone: type: string HomeAddressLine1: type: string HomeAddressLine2: type: string HomeCity: type: string HomeState: type: string HomePostalCode: type: string HomeCountry: type: string ExternalID2: type: string LastModifiedDate: type: string format: date-time ContactTypeId: type: integer format: int32 CompanyId: type: integer format: int32 CompanyName: type: string Initials: type: string Notes: type: string UserId: type: integer format: int32 ID: type: integer format: int32 MatterBudget: type: object properties: Id: type: integer format: int32 MatterID: type: integer format: int32 Budget: type: number format: double IsEnabled: type: boolean IncludeTimeEntries: type: boolean IncludeFlatFeeEntries: type: boolean IncludeCosts: type: boolean UseUserDefaultRate: type: boolean ExcludeInvoiced: type: boolean MatterStatueOfLimitation: type: object properties: DoesNotExpire: type: boolean ExpirationDate: type: string BillableActivityFilter: type: object properties: Sort: type: string enum: - Date - Type - Description - User - Hours - Amount IsDescending: type: boolean MatterId: type: integer format: int32 Offset: type: integer format: int32 Fetch: type: integer format: int32 GetUnitsBilledForPeriodResponse: type: object properties: BillableUnits: type: number format: double Success: type: boolean Message: type: string ErrorMessage: type: string ErrorNumber: type: integer format: int32 FailedValidations: type: array items: $ref: '#/components/schemas/ValidationResult' Errors: type: array items: type: string