From 2c07d7e7b3cf8e80c575068a168629135cd0f225 Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Thu, 12 Jun 2025 16:01:39 +0000 Subject: [PATCH 1/3] SDK regeneration --- .mock/accounting_v3.yml | 32829 ++++++++++ .mock/ats_v3.yml | 10845 ++++ .mock/crm_v3.yml | 12652 ++++ .mock/definition/ATS/__package__.yml | 4734 ++ .mock/definition/ATS/accountDetails.yml | 36 + .mock/definition/ATS/accountToken.yml | 44 + .mock/definition/ATS/activities.yml | 480 + .mock/definition/ATS/applications.yml | 601 + .mock/definition/ATS/asyncPassthrough.yml | 70 + .mock/definition/ATS/attachments.yml | 438 + .mock/definition/ATS/auditTrail.yml | 98 + .mock/definition/ATS/availableActions.yml | 50 + .mock/definition/ATS/candidates.yml | 862 + .mock/definition/ATS/deleteAccount.yml | 15 + .mock/definition/ATS/departments.yml | 140 + .mock/definition/ATS/eeocs.yml | 306 + .mock/definition/ATS/fieldMapping.yml | 892 + .mock/definition/ATS/forceResync.yml | 37 + .mock/definition/ATS/generateKey.yml | 36 + .mock/definition/ATS/interviews.yml | 488 + .mock/definition/ATS/issues.yml | 133 + .mock/definition/ATS/jobInterviewStages.yml | 159 + .mock/definition/ATS/jobPostings.yml | 201 + .mock/definition/ATS/jobs.yml | 359 + .mock/definition/ATS/linkToken.yml | 152 + .mock/definition/ATS/linkedAccounts.yml | 152 + .mock/definition/ATS/offers.yml | 203 + .mock/definition/ATS/offices.yml | 142 + .mock/definition/ATS/passthrough.yml | 40 + .mock/definition/ATS/regenerateKey.yml | 36 + .mock/definition/ATS/rejectReasons.yml | 140 + .mock/definition/ATS/scopes.yml | 160 + .mock/definition/ATS/scorecards.yml | 206 + .mock/definition/ATS/syncStatus.yml | 59 + .mock/definition/ATS/tags.yml | 92 + .mock/definition/ATS/users.yml | 177 + .mock/definition/ATS/webhookReceivers.yml | 61 + .mock/definition/Accounting/__package__.yml | 52736 ++++++++++++++++ .../definition/Accounting/accountDetails.yml | 36 + .mock/definition/Accounting/accountToken.yml | 44 + .../Accounting/accountingPeriods.yml | 123 + .mock/definition/Accounting/accounts.yml | 502 + .mock/definition/Accounting/addresses.yml | 61 + .../Accounting/asyncPassthrough.yml | 70 + .mock/definition/Accounting/asyncTasks.yml | 81 + .mock/definition/Accounting/attachments.yml | 406 + .mock/definition/Accounting/auditTrail.yml | 98 + .../Accounting/availableActions.yml | 50 + .mock/definition/Accounting/balanceSheets.yml | 247 + .../Accounting/bankFeedAccounts.yml | 390 + .../Accounting/bankFeedTransactions.yml | 409 + .../Accounting/cashFlowStatements.yml | 247 + .mock/definition/Accounting/companyInfo.yml | 209 + .mock/definition/Accounting/contacts.yml | 596 + .mock/definition/Accounting/creditNotes.yml | 637 + .mock/definition/Accounting/deleteAccount.yml | 15 + .mock/definition/Accounting/employees.yml | 143 + .mock/definition/Accounting/expenses.yml | 750 + .mock/definition/Accounting/fieldMapping.yml | 1198 + .mock/definition/Accounting/forceResync.yml | 37 + .../Accounting/generalLedgerTransactions.yml | 249 + .mock/definition/Accounting/generateKey.yml | 36 + .../Accounting/incomeStatements.yml | 275 + .mock/definition/Accounting/invoices.yml | 1206 + .mock/definition/Accounting/issues.yml | 133 + .mock/definition/Accounting/items.yml | 746 + .../definition/Accounting/journalEntries.yml | 741 + .mock/definition/Accounting/linkToken.yml | 152 + .../definition/Accounting/linkedAccounts.yml | 152 + .mock/definition/Accounting/passthrough.yml | 40 + .../definition/Accounting/paymentMethods.yml | 123 + .mock/definition/Accounting/paymentTerms.yml | 139 + .mock/definition/Accounting/payments.yml | 986 + .mock/definition/Accounting/phoneNumbers.yml | 44 + .mock/definition/Accounting/projects.yml | 144 + .../definition/Accounting/purchaseOrders.yml | 787 + .mock/definition/Accounting/regenerateKey.yml | 36 + .mock/definition/Accounting/scopes.yml | 161 + .mock/definition/Accounting/syncStatus.yml | 59 + .mock/definition/Accounting/taxRates.yml | 191 + .../Accounting/trackingCategories.yml | 188 + .mock/definition/Accounting/transactions.yml | 287 + .mock/definition/Accounting/vendorCredits.yml | 585 + .../Accounting/webhookReceivers.yml | 61 + .mock/definition/CRM/__package__.yml | 5733 ++ .mock/definition/CRM/accountDetails.yml | 36 + .mock/definition/CRM/accountToken.yml | 44 + .mock/definition/CRM/accounts.yml | 856 + .mock/definition/CRM/associationTypes.yml | 426 + .mock/definition/CRM/associations.yml | 147 + .mock/definition/CRM/asyncPassthrough.yml | 70 + .mock/definition/CRM/auditTrail.yml | 98 + .mock/definition/CRM/availableActions.yml | 50 + .mock/definition/CRM/contacts.yml | 906 + .mock/definition/CRM/customObjectClasses.yml | 202 + .mock/definition/CRM/customObjects.yml | 484 + .mock/definition/CRM/deleteAccount.yml | 15 + .mock/definition/CRM/engagementTypes.yml | 212 + .mock/definition/CRM/engagements.yml | 821 + .mock/definition/CRM/fieldMapping.yml | 654 + .mock/definition/CRM/forceResync.yml | 37 + .mock/definition/CRM/generateKey.yml | 36 + .mock/definition/CRM/issues.yml | 133 + .mock/definition/CRM/leads.yml | 620 + .mock/definition/CRM/linkToken.yml | 152 + .mock/definition/CRM/linkedAccounts.yml | 152 + .mock/definition/CRM/notes.yml | 543 + .mock/definition/CRM/opportunities.yml | 862 + .mock/definition/CRM/passthrough.yml | 40 + .mock/definition/CRM/regenerateKey.yml | 36 + .mock/definition/CRM/scopes.yml | 160 + .mock/definition/CRM/stages.yml | 230 + .mock/definition/CRM/syncStatus.yml | 55 + .mock/definition/CRM/tasks.yml | 801 + .mock/definition/CRM/users.yml | 259 + .mock/definition/CRM/webhookReceivers.yml | 61 + .mock/definition/FileStorage/__package__.yml | 2404 + .../definition/FileStorage/accountDetails.yml | 36 + .mock/definition/FileStorage/accountToken.yml | 44 + .../FileStorage/asyncPassthrough.yml | 70 + .mock/definition/FileStorage/auditTrail.yml | 98 + .../FileStorage/availableActions.yml | 50 + .../definition/FileStorage/deleteAccount.yml | 15 + .mock/definition/FileStorage/drives.yml | 149 + .mock/definition/FileStorage/fieldMapping.yml | 518 + .mock/definition/FileStorage/files.yml | 666 + .mock/definition/FileStorage/folders.yml | 456 + .mock/definition/FileStorage/forceResync.yml | 37 + .mock/definition/FileStorage/generateKey.yml | 36 + .mock/definition/FileStorage/groups.yml | 173 + .mock/definition/FileStorage/issues.yml | 133 + .mock/definition/FileStorage/linkToken.yml | 152 + .../definition/FileStorage/linkedAccounts.yml | 152 + .mock/definition/FileStorage/passthrough.yml | 40 + .../definition/FileStorage/regenerateKey.yml | 36 + .mock/definition/FileStorage/scopes.yml | 161 + .mock/definition/FileStorage/syncStatus.yml | 59 + .mock/definition/FileStorage/users.yml | 147 + .../FileStorage/webhookReceivers.yml | 61 + .mock/definition/HRIS/__package__.yml | 7710 +++ .mock/definition/HRIS/accountDetails.yml | 36 + .mock/definition/HRIS/accountToken.yml | 44 + .mock/definition/HRIS/asyncPassthrough.yml | 70 + .mock/definition/HRIS/auditTrail.yml | 97 + .mock/definition/HRIS/availableActions.yml | 50 + .mock/definition/HRIS/bankInfo.yml | 218 + .mock/definition/HRIS/benefits.yml | 171 + .mock/definition/HRIS/companies.yml | 150 + .mock/definition/HRIS/deleteAccount.yml | 15 + .mock/definition/HRIS/dependents.yml | 170 + .mock/definition/HRIS/employeePayrollRuns.yml | 303 + .mock/definition/HRIS/employees.yml | 785 + .mock/definition/HRIS/employerBenefits.yml | 144 + .mock/definition/HRIS/employments.yml | 339 + .mock/definition/HRIS/fieldMapping.yml | 892 + .mock/definition/HRIS/forceResync.yml | 37 + .mock/definition/HRIS/generateKey.yml | 36 + .mock/definition/HRIS/groups.yml | 183 + .mock/definition/HRIS/issues.yml | 133 + .mock/definition/HRIS/linkToken.yml | 152 + .mock/definition/HRIS/linkedAccounts.yml | 152 + .mock/definition/HRIS/locations.yml | 222 + .mock/definition/HRIS/passthrough.yml | 40 + .mock/definition/HRIS/payGroups.yml | 140 + .mock/definition/HRIS/payrollRuns.yml | 247 + .mock/definition/HRIS/regenerateKey.yml | 36 + .mock/definition/HRIS/scopes.yml | 160 + .mock/definition/HRIS/syncStatus.yml | 59 + .mock/definition/HRIS/teams.yml | 157 + .mock/definition/HRIS/timeOff.yml | 601 + .mock/definition/HRIS/timeOffBalances.yml | 211 + .mock/definition/HRIS/timesheetEntries.yml | 450 + .mock/definition/HRIS/webhookReceivers.yml | 61 + .mock/definition/Ticketing/__package__.yml | 3392 + .mock/definition/Ticketing/accountDetails.yml | 36 + .mock/definition/Ticketing/accountToken.yml | 44 + .mock/definition/Ticketing/accounts.yml | 146 + .../definition/Ticketing/asyncPassthrough.yml | 70 + .mock/definition/Ticketing/attachments.yml | 452 + .mock/definition/Ticketing/auditTrail.yml | 98 + .../definition/Ticketing/availableActions.yml | 50 + .mock/definition/Ticketing/collections.yml | 262 + .mock/definition/Ticketing/comments.yml | 451 + .mock/definition/Ticketing/contacts.yml | 412 + .mock/definition/Ticketing/deleteAccount.yml | 15 + .mock/definition/Ticketing/fieldMapping.yml | 722 + .mock/definition/Ticketing/forceResync.yml | 37 + .mock/definition/Ticketing/generateKey.yml | 36 + .mock/definition/Ticketing/issues.yml | 133 + .mock/definition/Ticketing/linkToken.yml | 152 + .mock/definition/Ticketing/linkedAccounts.yml | 152 + .mock/definition/Ticketing/passthrough.yml | 40 + .mock/definition/Ticketing/projects.yml | 227 + .mock/definition/Ticketing/regenerateKey.yml | 36 + .mock/definition/Ticketing/roles.yml | 148 + .mock/definition/Ticketing/scopes.yml | 161 + .mock/definition/Ticketing/syncStatus.yml | 59 + .mock/definition/Ticketing/tags.yml | 138 + .mock/definition/Ticketing/teams.yml | 140 + .mock/definition/Ticketing/tickets.yml | 1159 + .mock/definition/Ticketing/users.yml | 187 + .../definition/Ticketing/webhookReceivers.yml | 61 + .mock/definition/__package__.yml | 1 + .mock/definition/api.yml | 21 + .mock/fern.config.json | 4 + .mock/filestorage_v3.yml | 5574 ++ .mock/hris_v3.yml | 12079 ++++ .mock/ticketing_v3.yml | 8382 +++ src/Merge.Client.sln | 20 +- .../AccountDetails/AccountDetailsClient.cs | 2 +- .../AccountToken/AccountTokenClient.cs | 2 +- .../Accounting/AccountingClient.cs | 3 + .../AccountingPeriodsClient.cs | 4 +- .../Accounting/Accounts/AccountsClient.cs | 12 +- .../Accounts/Requests/AccountsListRequest.cs | 8 +- .../Accounting/Addresses/AddressesClient.cs | 2 +- .../AsyncPassthroughClient.cs | 4 +- .../Accounting/AsyncTasks/AsyncTasksClient.cs | 2 +- .../Attachments/AttachmentsClient.cs | 8 +- .../Accounting/AuditTrail/AuditTrailClient.cs | 2 +- .../Requests/AuditTrailListRequest.cs | 2 +- .../AvailableActionsClient.cs | 2 +- .../BalanceSheets/BalanceSheetsClient.cs | 4 +- .../BankFeedAccountsClient.cs | 8 +- .../BankFeedTransactionsClient.cs | 8 +- .../CashFlowStatementsClient.cs | 4 +- .../CompanyInfo/CompanyInfoClient.cs | 4 +- .../Accounting/Contacts/ContactsClient.cs | 14 +- .../ContactsRemoteFieldClassesListRequest.cs | 6 + .../CreditNotes/CreditNotesClient.cs | 8 +- .../DeleteAccount/DeleteAccountClient.cs | 2 +- .../Accounting/Employees/EmployeesClient.cs | 4 +- .../Accounting/Expenses/ExpensesClient.cs | 20 +- ...ensesLinesRemoteFieldClassesListRequest.cs | 6 + .../ExpensesRemoteFieldClassesListRequest.cs | 6 + .../FieldMapping/FieldMappingClient.cs | 12 +- .../ForceResync/ForceResyncClient.cs | 2 +- .../GeneralLedgerTransactionsClient.cs | 4 +- .../GenerateKey/GenerateKeyClient.cs | 2 +- .../IncomeStatementsClient.cs | 4 +- .../Accounting/Invoices/InvoicesClient.cs | 24 +- ...sLineItemsRemoteFieldClassesListRequest.cs | 6 + .../InvoicesRemoteFieldClassesListRequest.cs | 6 + .../Accounting/Issues/IssuesClient.cs | 4 +- .../Accounting/Items/ItemsClient.cs | 227 +- .../Items/Requests/ItemEndpointRequest.cs | 28 + .../Requests/PatchedItemEndpointRequest.cs | 28 + .../JournalEntries/JournalEntriesClient.cs | 20 +- ...triesLinesRemoteFieldClassesListRequest.cs | 6 + ...nalEntriesRemoteFieldClassesListRequest.cs | 6 + .../Accounting/LinkToken/LinkTokenClient.cs | 2 +- .../Requests/EndUserDetailsRequest.cs | 3 +- .../LinkedAccounts/LinkedAccountsClient.cs | 2 +- .../Passthrough/PassthroughClient.cs | 2 +- .../PaymentMethods/PaymentMethodsClient.cs | 4 +- .../PaymentTerms/PaymentTermsClient.cs | 4 +- .../Accounting/Payments/PaymentsClient.cs | 24 +- ...sLineItemsRemoteFieldClassesListRequest.cs | 6 + .../PaymentsRemoteFieldClassesListRequest.cs | 6 + .../PhoneNumbers/PhoneNumbersClient.cs | 2 +- .../Accounting/Projects/ProjectsClient.cs | 148 + .../Projects/Requests/ProjectsListRequest.cs | 50 + .../Requests/ProjectsRetrieveRequest.cs | 32 + .../Types/ProjectsListRequestExpandItem.cs | 15 + .../ProjectsRetrieveRequestExpandItem.cs | 15 + .../PurchaseOrders/PurchaseOrdersClient.cs | 20 +- ...sLineItemsRemoteFieldClassesListRequest.cs | 6 + ...haseOrdersRemoteFieldClassesListRequest.cs | 6 + .../RegenerateKey/RegenerateKeyClient.cs | 2 +- .../Accounting/Scopes/ScopesClient.cs | 6 +- .../Accounting/SyncStatus/SyncStatusClient.cs | 2 +- .../Accounting/TaxRates/TaxRatesClient.cs | 4 +- .../Requests/TrackingCategoriesListRequest.cs | 2 +- .../TrackingCategoriesClient.cs | 4 +- .../Transactions/TransactionsClient.cs | 4 +- src/Merge.Client/Accounting/Types/Account.cs | 9 +- .../Types/AccountDetailsAndActions.cs | 5 +- .../Accounting/Types/AccountRequest.cs | 9 +- .../Accounting/Types/AccountingPeriod.cs | 3 +- src/Merge.Client/Accounting/Types/Address.cs | 5 +- .../Accounting/Types/AddressRequest.cs | 5 +- .../Accounting/Types/AsyncPostTask.cs | 3 +- .../Accounting/Types/AuditLogEvent.cs | 6 +- .../Accounting/Types/BalanceSheet.cs | 2 +- .../Accounting/Types/BankFeedAccount.cs | 7 +- .../Types/BankFeedAccountRequest.cs | 7 +- .../Accounting/Types/BankFeedTransaction.cs | 2 +- .../BankFeedTransactionRequestRequest.cs | 2 +- .../Accounting/Types/CashFlowStatement.cs | 2 +- .../Accounting/Types/CompanyInfo.cs | 312 +- src/Merge.Client/Accounting/Types/Contact.cs | 2 +- .../Accounting/Types/ContactRequest.cs | 2 +- .../Accounting/Types/CreditNote.cs | 5 +- .../Accounting/Types/CreditNoteLineItem.cs | 9 + .../Types/CreditNoteLineItemRequest.cs | 9 + .../Accounting/Types/CreditNoteRequest.cs | 4 +- src/Merge.Client/Accounting/Types/Employee.cs | 2 +- .../Accounting/Types/EventTypeEnum.cs | 3 + src/Merge.Client/Accounting/Types/Expense.cs | 2 +- .../Accounting/Types/ExpenseLine.cs | 3 + .../Accounting/Types/ExpenseLineRequest.cs | 5 +- .../Types/ExternalTargetFieldApiResponse.cs | 3 + .../Types/FieldMappingApiInstanceResponse.cs | 3 + .../Types/GeneralLedgerTransaction.cs | 2 +- .../Types/GeneralLedgerTransactionLine.cs | 5 +- .../Accounting/Types/IncomeStatement.cs | 2 +- src/Merge.Client/Accounting/Types/Invoice.cs | 4 +- .../Accounting/Types/InvoiceLineItem.cs | 11 +- .../Types/InvoiceLineItemRequest.cs | 11 +- .../Accounting/Types/InvoiceRequest.cs | 6 +- src/Merge.Client/Accounting/Types/Issue.cs | 3 +- src/Merge.Client/Accounting/Types/Item.cs | 13 +- .../Accounting/Types/ItemRequestRequest.cs | 109 + .../Accounting/Types/ItemResponse.cs | 38 + .../Accounting/Types/JournalEntry.cs | 4 +- .../Accounting/Types/JournalEntryRequest.cs | 4 +- .../Accounting/Types/JournalLine.cs | 5 +- .../Accounting/Types/JournalLineRequest.cs | 5 +- .../Accounting/Types/PaginatedProjectList.cs | 33 + .../Types/PatchedItemRequestRequest.cs | 109 + .../Accounting/Types/PatchedPaymentRequest.cs | 4 +- src/Merge.Client/Accounting/Types/Payment.cs | 4 +- .../Accounting/Types/PaymentMethod.cs | 3 +- .../Accounting/Types/PaymentRequest.cs | 4 +- src/Merge.Client/Accounting/Types/Project.cs | 90 + .../Accounting/Types/PurchaseOrder.cs | 4 +- .../Accounting/Types/PurchaseOrderLineItem.cs | 2 +- .../Types/PurchaseOrderLineItemRequest.cs | 2 +- .../Accounting/Types/PurchaseOrderRequest.cs | 4 +- .../Types/RemoteFieldApiResponse.cs | 3 + .../Accounting/Types/SyncStatus.cs | 5 +- .../Accounting/Types/TaxComponent.cs | 3 +- src/Merge.Client/Accounting/Types/TaxRate.cs | 2 +- .../Accounting/Types/TrackingCategory.cs | 4 +- .../Accounting/Types/Transaction.cs | 2 +- .../Accounting/Types/TransactionLineItem.cs | 2 +- .../Accounting/Types/Type2BbEnum.cs | 21 + .../Accounting/Types/VendorCredit.cs | 2 +- .../Accounting/Types/VendorCreditLine.cs | 6 + .../Types/VendorCreditLineRequest.cs | 6 + .../Accounting/Types/VendorCreditRequest.cs | 2 +- .../VendorCredits/VendorCreditsClient.cs | 8 +- .../WebhookReceiversClient.cs | 4 +- .../AccountDetails/AccountDetailsClient.cs | 2 +- .../Ats/AccountToken/AccountTokenClient.cs | 2 +- .../Ats/Activities/ActivitiesClient.cs | 8 +- .../Ats/Applications/ApplicationsClient.cs | 10 +- .../AsyncPassthroughClient.cs | 4 +- .../Ats/Attachments/AttachmentsClient.cs | 8 +- .../Ats/AuditTrail/AuditTrailClient.cs | 2 +- .../Requests/AuditTrailListRequest.cs | 2 +- .../AvailableActionsClient.cs | 2 +- .../Ats/Candidates/CandidatesClient.cs | 14 +- .../Ats/DeleteAccount/DeleteAccountClient.cs | 2 +- .../Ats/Departments/DepartmentsClient.cs | 4 +- src/Merge.Client/Ats/Eeocs/EeocsClient.cs | 4 +- .../Ats/FieldMapping/FieldMappingClient.cs | 12 +- .../Ats/ForceResync/ForceResyncClient.cs | 2 +- .../Ats/GenerateKey/GenerateKeyClient.cs | 2 +- .../Ats/Interviews/InterviewsClient.cs | 8 +- src/Merge.Client/Ats/Issues/IssuesClient.cs | 4 +- .../JobInterviewStagesClient.cs | 4 +- .../Ats/JobPostings/JobPostingsClient.cs | 4 +- src/Merge.Client/Ats/Jobs/JobsClient.cs | 8 +- .../Ats/LinkToken/LinkTokenClient.cs | 2 +- .../Requests/EndUserDetailsRequest.cs | 3 +- .../LinkedAccounts/LinkedAccountsClient.cs | 2 +- src/Merge.Client/Ats/Offers/OffersClient.cs | 4 +- src/Merge.Client/Ats/Offices/OfficesClient.cs | 4 +- .../Ats/Passthrough/PassthroughClient.cs | 2 +- .../Ats/RegenerateKey/RegenerateKeyClient.cs | 2 +- .../Ats/RejectReasons/RejectReasonsClient.cs | 4 +- src/Merge.Client/Ats/Scopes/ScopesClient.cs | 6 +- .../Ats/Scorecards/ScorecardsClient.cs | 4 +- .../Ats/SyncStatus/SyncStatusClient.cs | 2 +- src/Merge.Client/Ats/Tags/TagsClient.cs | 2 +- src/Merge.Client/Ats/Types/AccountDetails.cs | 3 +- .../Ats/Types/AccountDetailsAndActions.cs | 5 +- src/Merge.Client/Ats/Types/Activity.cs | 4 +- src/Merge.Client/Ats/Types/ActivityRequest.cs | 2 +- src/Merge.Client/Ats/Types/Attachment.cs | 3 +- .../Ats/Types/AttachmentRequest.cs | 3 +- src/Merge.Client/Ats/Types/AuditLogEvent.cs | 6 +- src/Merge.Client/Ats/Types/Eeoc.cs | 8 +- src/Merge.Client/Ats/Types/EmailAddress.cs | 3 +- .../Ats/Types/EmailAddressRequest.cs | 3 +- src/Merge.Client/Ats/Types/EventTypeEnum.cs | 3 + .../Ats/Types/IgnoreCommonModelRequest.cs | 3 +- src/Merge.Client/Ats/Types/Issue.cs | 3 +- src/Merge.Client/Ats/Types/Job.cs | 4 +- src/Merge.Client/Ats/Types/JobPosting.cs | 2 +- .../Ats/Types/MultipartFormFieldRequest.cs | 3 +- src/Merge.Client/Ats/Types/Offer.cs | 2 +- src/Merge.Client/Ats/Types/PhoneNumber.cs | 3 +- .../Ats/Types/PhoneNumberRequest.cs | 3 +- src/Merge.Client/Ats/Types/RemoteResponse.cs | 3 +- src/Merge.Client/Ats/Types/RemoteUser.cs | 3 +- .../Ats/Types/ScheduledInterview.cs | 2 +- .../Ats/Types/ScheduledInterviewRequest.cs | 2 +- src/Merge.Client/Ats/Types/Scorecard.cs | 2 +- .../Ats/Types/ScreeningQuestion.cs | 2 +- src/Merge.Client/Ats/Types/SyncStatus.cs | 5 +- src/Merge.Client/Ats/Types/Url.cs | 3 +- src/Merge.Client/Ats/Types/UrlRequest.cs | 3 +- src/Merge.Client/Ats/Users/UsersClient.cs | 4 +- .../WebhookReceiversClient.cs | 4 +- src/Merge.Client/BaseMergeClient.cs | 4 +- src/Merge.Client/Core/Public/ClientOptions.cs | 6 +- .../Core/Public/MergeEnvironment.cs | 18 +- src/Merge.Client/Core/Public/Version.cs | 2 +- src/Merge.Client/Core/RawClient.cs | 8 - .../AccountDetails/AccountDetailsClient.cs | 2 +- .../Crm/AccountToken/AccountTokenClient.cs | 2 +- .../Crm/Accounts/AccountsClient.cs | 18 +- .../AccountsRemoteFieldClassesListRequest.cs | 6 + .../AssociationTypesClient.cs | 10 +- .../Crm/Associations/AssociationsClient.cs | 6 +- .../AsyncPassthroughClient.cs | 4 +- .../Crm/AuditTrail/AuditTrailClient.cs | 2 +- .../Requests/AuditTrailListRequest.cs | 2 +- .../AvailableActionsClient.cs | 2 +- .../Crm/Contacts/ContactsClient.cs | 20 +- .../ContactsRemoteFieldClassesListRequest.cs | 6 + .../CustomObjectClassesClient.cs | 4 +- .../Crm/CustomObjects/CustomObjectsClient.cs | 16 +- ...tomObjectsRemoteFieldClassesListRequest.cs | 6 + .../Crm/DeleteAccount/DeleteAccountClient.cs | 2 +- .../EngagementTypes/EngagementTypesClient.cs | 10 +- ...ementTypesRemoteFieldClassesListRequest.cs | 6 + .../Crm/Engagements/EngagementsClient.cs | 18 +- ...ngagementsRemoteFieldClassesListRequest.cs | 6 + .../Crm/FieldMapping/FieldMappingClient.cs | 12 +- .../Crm/ForceResync/ForceResyncClient.cs | 2 +- .../Crm/GenerateKey/GenerateKeyClient.cs | 2 +- src/Merge.Client/Crm/Issues/IssuesClient.cs | 4 +- src/Merge.Client/Crm/Leads/LeadsClient.cs | 14 +- .../LeadsRemoteFieldClassesListRequest.cs | 6 + .../Crm/LinkToken/LinkTokenClient.cs | 2 +- .../Requests/EndUserDetailsRequest.cs | 3 +- .../LinkedAccounts/LinkedAccountsClient.cs | 2 +- src/Merge.Client/Crm/Notes/NotesClient.cs | 14 +- .../NotesRemoteFieldClassesListRequest.cs | 6 + .../Crm/Opportunities/OpportunitiesClient.cs | 18 +- ...ortunitiesRemoteFieldClassesListRequest.cs | 6 + .../Crm/Passthrough/PassthroughClient.cs | 2 +- .../Crm/RegenerateKey/RegenerateKeyClient.cs | 2 +- src/Merge.Client/Crm/Scopes/ScopesClient.cs | 6 +- .../StagesRemoteFieldClassesListRequest.cs | 6 + src/Merge.Client/Crm/Stages/StagesClient.cs | 10 +- .../Crm/SyncStatus/SyncStatusClient.cs | 48 +- .../TasksRemoteFieldClassesListRequest.cs | 6 + src/Merge.Client/Crm/Tasks/TasksClient.cs | 18 +- src/Merge.Client/Crm/Types/AccountDetails.cs | 3 +- .../Crm/Types/AccountDetailsAndActions.cs | 5 +- src/Merge.Client/Crm/Types/Address.cs | 5 +- src/Merge.Client/Crm/Types/AddressRequest.cs | 5 +- src/Merge.Client/Crm/Types/AssociationType.cs | 3 +- src/Merge.Client/Crm/Types/AuditLogEvent.cs | 6 +- .../Crm/Types/CustomObjectRequest.cs | 8 + src/Merge.Client/Crm/Types/Engagement.cs | 2 +- .../Crm/Types/EngagementRequest.cs | 2 +- src/Merge.Client/Crm/Types/EngagementType.cs | 3 +- src/Merge.Client/Crm/Types/EventTypeEnum.cs | 3 + .../Crm/Types/IgnoreCommonModelRequest.cs | 3 +- src/Merge.Client/Crm/Types/Issue.cs | 3 +- .../Crm/Types/MultipartFormFieldRequest.cs | 3 +- src/Merge.Client/Crm/Types/Opportunity.cs | 2 +- .../Crm/Types/OpportunityRequest.cs | 2 +- .../Crm/Types/PatchedEngagementRequest.cs | 3 +- .../Crm/Types/PatchedOpportunityRequest.cs | 3 +- .../Crm/Types/PatchedTaskRequest.cs | 3 +- .../RemoteFieldClassForCustomObjectClass.cs | 7 +- src/Merge.Client/Crm/Types/RemoteResponse.cs | 3 +- src/Merge.Client/Crm/Types/SyncStatus.cs | 5 +- src/Merge.Client/Crm/Types/Task.cs | 2 +- src/Merge.Client/Crm/Types/TaskRequest.cs | 2 +- .../UsersRemoteFieldClassesListRequest.cs | 6 + src/Merge.Client/Crm/Users/UsersClient.cs | 12 +- .../WebhookReceiversClient.cs | 4 +- .../AccountDetails/AccountDetailsClient.cs | 2 +- .../AccountToken/AccountTokenClient.cs | 2 +- .../AsyncPassthroughClient.cs | 4 +- .../AuditTrail/AuditTrailClient.cs | 2 +- .../Requests/AuditTrailListRequest.cs | 2 +- .../AvailableActionsClient.cs | 2 +- .../DeleteAccount/DeleteAccountClient.cs | 2 +- .../FileStorage/Drives/DrivesClient.cs | 4 +- .../FieldMapping/FieldMappingClient.cs | 12 +- .../FileStorage/Files/FilesClient.cs | 42 +- .../FilesDownloadRequestMetaListRequest.cs | 34 +- .../Files/Requests/FilesListRequest.cs | 6 + ...esDownloadRequestMetaListRequestOrderBy.cs | 21 + .../Files/Types/FilesListRequestOrderBy.cs | 21 + .../FileStorage/Folders/FoldersClient.cs | 8 +- .../ForceResync/ForceResyncClient.cs | 2 +- .../GenerateKey/GenerateKeyClient.cs | 2 +- .../FileStorage/Groups/GroupsClient.cs | 4 +- .../FileStorage/Issues/IssuesClient.cs | 4 +- .../FileStorage/LinkToken/LinkTokenClient.cs | 2 +- .../Requests/EndUserDetailsRequest.cs | 3 +- .../LinkedAccounts/LinkedAccountsClient.cs | 2 +- .../Passthrough/PassthroughClient.cs | 2 +- .../RegenerateKey/RegenerateKeyClient.cs | 2 +- .../FileStorage/Scopes/ScopesClient.cs | 6 +- .../SyncStatus/SyncStatusClient.cs | 6 +- .../FileStorage/Types/AccountDetails.cs | 3 +- .../Types/AccountDetailsAndActions.cs | 5 +- .../FileStorage/Types/AuditLogEvent.cs | 6 +- .../FileStorage/Types/DownloadRequestMeta.cs | 3 - .../FileStorage/Types/EventTypeEnum.cs | 3 + src/Merge.Client/FileStorage/Types/File.cs | 6 + .../FileStorage/Types/FileRequest.cs | 6 + src/Merge.Client/FileStorage/Types/Issue.cs | 3 +- .../Types/MultipartFormFieldRequest.cs | 3 +- .../FileStorage/Types/Permission.cs | 4 +- .../FileStorage/Types/PermissionRequest.cs | 4 +- .../FileStorage/Types/RemoteResponse.cs | 3 +- .../FileStorage/Types/SyncStatus.cs | 5 +- .../FileStorage/Users/UsersClient.cs | 4 +- .../WebhookReceiversClient.cs | 4 +- .../AccountDetails/AccountDetailsClient.cs | 2 +- .../Hris/AccountToken/AccountTokenClient.cs | 2 +- .../AsyncPassthroughClient.cs | 4 +- .../Hris/AuditTrail/AuditTrailClient.cs | 2 +- .../AvailableActionsClient.cs | 2 +- .../Hris/BankInfo/BankInfoClient.cs | 4 +- .../Hris/Benefits/BenefitsClient.cs | 4 +- .../Hris/Companies/CompaniesClient.cs | 4 +- .../Hris/DeleteAccount/DeleteAccountClient.cs | 2 +- .../Hris/Dependents/DependentsClient.cs | 4 +- .../EmployeePayrollRunsClient.cs | 4 +- .../Hris/Employees/EmployeesClient.cs | 10 +- .../EmployerBenefitsClient.cs | 4 +- .../Hris/Employments/EmploymentsClient.cs | 4 +- .../Hris/FieldMapping/FieldMappingClient.cs | 12 +- .../Hris/ForceResync/ForceResyncClient.cs | 2 +- .../Hris/GenerateKey/GenerateKeyClient.cs | 2 +- src/Merge.Client/Hris/Groups/GroupsClient.cs | 4 +- src/Merge.Client/Hris/Issues/IssuesClient.cs | 4 +- .../Hris/LinkToken/LinkTokenClient.cs | 2 +- .../Requests/EndUserDetailsRequest.cs | 3 +- .../LinkedAccounts/LinkedAccountsClient.cs | 2 +- .../Hris/Locations/LocationsClient.cs | 4 +- .../Hris/Passthrough/PassthroughClient.cs | 2 +- .../Hris/PayGroups/PayGroupsClient.cs | 4 +- .../Hris/PayrollRuns/PayrollRunsClient.cs | 4 +- .../Hris/RegenerateKey/RegenerateKeyClient.cs | 2 +- src/Merge.Client/Hris/Scopes/ScopesClient.cs | 6 +- .../Hris/SyncStatus/SyncStatusClient.cs | 2 +- src/Merge.Client/Hris/Teams/TeamsClient.cs | 4 +- .../Hris/TimeOff/TimeOffClient.cs | 8 +- .../TimeOffBalances/TimeOffBalancesClient.cs | 4 +- .../TimesheetEntriesClient.cs | 8 +- src/Merge.Client/Hris/Types/AccountDetails.cs | 3 +- .../Hris/Types/AccountDetailsAndActions.cs | 5 +- src/Merge.Client/Hris/Types/AuditLogEvent.cs | 6 +- src/Merge.Client/Hris/Types/BankInfo.cs | 2 +- src/Merge.Client/Hris/Types/Dependent.cs | 5 +- src/Merge.Client/Hris/Types/Earning.cs | 3 +- src/Merge.Client/Hris/Types/Employee.cs | 8 +- .../Hris/Types/EmployeeRequest.cs | 8 +- .../Hris/Types/EmployerBenefit.cs | 3 +- src/Merge.Client/Hris/Types/Employment.cs | 10 +- src/Merge.Client/Hris/Types/EventTypeEnum.cs | 3 + src/Merge.Client/Hris/Types/Group.cs | 3 +- .../Hris/Types/IgnoreCommonModelRequest.cs | 3 +- src/Merge.Client/Hris/Types/Issue.cs | 3 +- src/Merge.Client/Hris/Types/Location.cs | 5 +- src/Merge.Client/Hris/Types/PayrollRun.cs | 5 +- src/Merge.Client/Hris/Types/RemoteResponse.cs | 3 +- src/Merge.Client/Hris/Types/SyncStatus.cs | 5 +- src/Merge.Client/Hris/Types/TimeOff.cs | 6 +- src/Merge.Client/Hris/Types/TimeOffBalance.cs | 2 +- src/Merge.Client/Hris/Types/TimeOffRequest.cs | 6 +- .../WebhookReceiversClient.cs | 4 +- src/Merge.Client/Merge.Client.csproj | 2 +- src/Merge.Client/MergeClient.cs | 9 - .../AccountDetails/AccountDetailsClient.cs | 2 +- .../AccountToken/AccountTokenClient.cs | 2 +- .../Ticketing/Accounts/AccountsClient.cs | 4 +- .../AsyncPassthroughClient.cs | 4 +- .../Attachments/AttachmentsClient.cs | 10 +- .../Ticketing/AuditTrail/AuditTrailClient.cs | 2 +- .../Requests/AuditTrailListRequest.cs | 2 +- .../AvailableActionsClient.cs | 2 +- .../Collections/CollectionsClient.cs | 8 +- .../Ticketing/Comments/CommentsClient.cs | 8 +- .../Ticketing/Contacts/ContactsClient.cs | 8 +- .../DeleteAccount/DeleteAccountClient.cs | 2 +- .../FieldMapping/FieldMappingClient.cs | 12 +- .../ForceResync/ForceResyncClient.cs | 2 +- .../GenerateKey/GenerateKeyClient.cs | 2 +- .../Ticketing/Issues/IssuesClient.cs | 4 +- .../Ticketing/LinkToken/LinkTokenClient.cs | 2 +- .../Requests/EndUserDetailsRequest.cs | 3 +- .../LinkedAccounts/LinkedAccountsClient.cs | 2 +- .../Passthrough/PassthroughClient.cs | 2 +- .../Ticketing/Projects/ProjectsClient.cs | 8 +- .../RegenerateKey/RegenerateKeyClient.cs | 2 +- .../Ticketing/Roles/RolesClient.cs | 4 +- .../Ticketing/Scopes/ScopesClient.cs | 6 +- .../Ticketing/SyncStatus/SyncStatusClient.cs | 2 +- src/Merge.Client/Ticketing/Tags/TagsClient.cs | 4 +- .../Ticketing/Teams/TeamsClient.cs | 4 +- .../Tickets/Requests/TicketsListRequest.cs | 6 + .../TicketsMetaPostRetrieveRequest.cs | 25 + .../TicketsRemoteFieldClassesListRequest.cs | 6 + .../Ticketing/Tickets/TicketsClient.cs | 39 +- .../Ticketing/Types/AccountDetails.cs | 3 +- .../Types/AccountDetailsAndActions.cs | 5 +- .../Ticketing/Types/AuditLogEvent.cs | 6 +- .../Ticketing/Types/Collection.cs | 21 +- .../Types/CollectionAccessLevelEnum.cs | 21 + .../Ticketing/Types/EventTypeEnum.cs | 3 + src/Merge.Client/Ticketing/Types/Issue.cs | 3 +- .../Types/MultipartFormFieldRequest.cs | 3 +- .../Ticketing/Types/PatchedTicketRequest.cs | 14 +- .../Ticketing/Types/RemoteResponse.cs | 3 +- src/Merge.Client/Ticketing/Types/Role.cs | 5 +- .../Ticketing/Types/SyncStatus.cs | 5 +- src/Merge.Client/Ticketing/Types/Ticket.cs | 47 +- ...sLevelEnum.cs => TicketAccessLevelEnum.cs} | 13 +- .../Ticketing/Types/TicketRequest.cs | 15 +- .../Ticketing/Users/UsersClient.cs | 4 +- .../WebhookReceiversClient.cs | 4 +- 625 files changed, 207062 insertions(+), 1135 deletions(-) create mode 100644 .mock/accounting_v3.yml create mode 100644 .mock/ats_v3.yml create mode 100644 .mock/crm_v3.yml create mode 100644 .mock/definition/ATS/__package__.yml create mode 100644 .mock/definition/ATS/accountDetails.yml create mode 100644 .mock/definition/ATS/accountToken.yml create mode 100644 .mock/definition/ATS/activities.yml create mode 100644 .mock/definition/ATS/applications.yml create mode 100644 .mock/definition/ATS/asyncPassthrough.yml create mode 100644 .mock/definition/ATS/attachments.yml create mode 100644 .mock/definition/ATS/auditTrail.yml create mode 100644 .mock/definition/ATS/availableActions.yml create mode 100644 .mock/definition/ATS/candidates.yml create mode 100644 .mock/definition/ATS/deleteAccount.yml create mode 100644 .mock/definition/ATS/departments.yml create mode 100644 .mock/definition/ATS/eeocs.yml create mode 100644 .mock/definition/ATS/fieldMapping.yml create mode 100644 .mock/definition/ATS/forceResync.yml create mode 100644 .mock/definition/ATS/generateKey.yml create mode 100644 .mock/definition/ATS/interviews.yml create mode 100644 .mock/definition/ATS/issues.yml create mode 100644 .mock/definition/ATS/jobInterviewStages.yml create mode 100644 .mock/definition/ATS/jobPostings.yml create mode 100644 .mock/definition/ATS/jobs.yml create mode 100644 .mock/definition/ATS/linkToken.yml create mode 100644 .mock/definition/ATS/linkedAccounts.yml create mode 100644 .mock/definition/ATS/offers.yml create mode 100644 .mock/definition/ATS/offices.yml create mode 100644 .mock/definition/ATS/passthrough.yml create mode 100644 .mock/definition/ATS/regenerateKey.yml create mode 100644 .mock/definition/ATS/rejectReasons.yml create mode 100644 .mock/definition/ATS/scopes.yml create mode 100644 .mock/definition/ATS/scorecards.yml create mode 100644 .mock/definition/ATS/syncStatus.yml create mode 100644 .mock/definition/ATS/tags.yml create mode 100644 .mock/definition/ATS/users.yml create mode 100644 .mock/definition/ATS/webhookReceivers.yml create mode 100644 .mock/definition/Accounting/__package__.yml create mode 100644 .mock/definition/Accounting/accountDetails.yml create mode 100644 .mock/definition/Accounting/accountToken.yml create mode 100644 .mock/definition/Accounting/accountingPeriods.yml create mode 100644 .mock/definition/Accounting/accounts.yml create mode 100644 .mock/definition/Accounting/addresses.yml create mode 100644 .mock/definition/Accounting/asyncPassthrough.yml create mode 100644 .mock/definition/Accounting/asyncTasks.yml create mode 100644 .mock/definition/Accounting/attachments.yml create mode 100644 .mock/definition/Accounting/auditTrail.yml create mode 100644 .mock/definition/Accounting/availableActions.yml create mode 100644 .mock/definition/Accounting/balanceSheets.yml create mode 100644 .mock/definition/Accounting/bankFeedAccounts.yml create mode 100644 .mock/definition/Accounting/bankFeedTransactions.yml create mode 100644 .mock/definition/Accounting/cashFlowStatements.yml create mode 100644 .mock/definition/Accounting/companyInfo.yml create mode 100644 .mock/definition/Accounting/contacts.yml create mode 100644 .mock/definition/Accounting/creditNotes.yml create mode 100644 .mock/definition/Accounting/deleteAccount.yml create mode 100644 .mock/definition/Accounting/employees.yml create mode 100644 .mock/definition/Accounting/expenses.yml create mode 100644 .mock/definition/Accounting/fieldMapping.yml create mode 100644 .mock/definition/Accounting/forceResync.yml create mode 100644 .mock/definition/Accounting/generalLedgerTransactions.yml create mode 100644 .mock/definition/Accounting/generateKey.yml create mode 100644 .mock/definition/Accounting/incomeStatements.yml create mode 100644 .mock/definition/Accounting/invoices.yml create mode 100644 .mock/definition/Accounting/issues.yml create mode 100644 .mock/definition/Accounting/items.yml create mode 100644 .mock/definition/Accounting/journalEntries.yml create mode 100644 .mock/definition/Accounting/linkToken.yml create mode 100644 .mock/definition/Accounting/linkedAccounts.yml create mode 100644 .mock/definition/Accounting/passthrough.yml create mode 100644 .mock/definition/Accounting/paymentMethods.yml create mode 100644 .mock/definition/Accounting/paymentTerms.yml create mode 100644 .mock/definition/Accounting/payments.yml create mode 100644 .mock/definition/Accounting/phoneNumbers.yml create mode 100644 .mock/definition/Accounting/projects.yml create mode 100644 .mock/definition/Accounting/purchaseOrders.yml create mode 100644 .mock/definition/Accounting/regenerateKey.yml create mode 100644 .mock/definition/Accounting/scopes.yml create mode 100644 .mock/definition/Accounting/syncStatus.yml create mode 100644 .mock/definition/Accounting/taxRates.yml create mode 100644 .mock/definition/Accounting/trackingCategories.yml create mode 100644 .mock/definition/Accounting/transactions.yml create mode 100644 .mock/definition/Accounting/vendorCredits.yml create mode 100644 .mock/definition/Accounting/webhookReceivers.yml create mode 100644 .mock/definition/CRM/__package__.yml create mode 100644 .mock/definition/CRM/accountDetails.yml create mode 100644 .mock/definition/CRM/accountToken.yml create mode 100644 .mock/definition/CRM/accounts.yml create mode 100644 .mock/definition/CRM/associationTypes.yml create mode 100644 .mock/definition/CRM/associations.yml create mode 100644 .mock/definition/CRM/asyncPassthrough.yml create mode 100644 .mock/definition/CRM/auditTrail.yml create mode 100644 .mock/definition/CRM/availableActions.yml create mode 100644 .mock/definition/CRM/contacts.yml create mode 100644 .mock/definition/CRM/customObjectClasses.yml create mode 100644 .mock/definition/CRM/customObjects.yml create mode 100644 .mock/definition/CRM/deleteAccount.yml create mode 100644 .mock/definition/CRM/engagementTypes.yml create mode 100644 .mock/definition/CRM/engagements.yml create mode 100644 .mock/definition/CRM/fieldMapping.yml create mode 100644 .mock/definition/CRM/forceResync.yml create mode 100644 .mock/definition/CRM/generateKey.yml create mode 100644 .mock/definition/CRM/issues.yml create mode 100644 .mock/definition/CRM/leads.yml create mode 100644 .mock/definition/CRM/linkToken.yml create mode 100644 .mock/definition/CRM/linkedAccounts.yml create mode 100644 .mock/definition/CRM/notes.yml create mode 100644 .mock/definition/CRM/opportunities.yml create mode 100644 .mock/definition/CRM/passthrough.yml create mode 100644 .mock/definition/CRM/regenerateKey.yml create mode 100644 .mock/definition/CRM/scopes.yml create mode 100644 .mock/definition/CRM/stages.yml create mode 100644 .mock/definition/CRM/syncStatus.yml create mode 100644 .mock/definition/CRM/tasks.yml create mode 100644 .mock/definition/CRM/users.yml create mode 100644 .mock/definition/CRM/webhookReceivers.yml create mode 100644 .mock/definition/FileStorage/__package__.yml create mode 100644 .mock/definition/FileStorage/accountDetails.yml create mode 100644 .mock/definition/FileStorage/accountToken.yml create mode 100644 .mock/definition/FileStorage/asyncPassthrough.yml create mode 100644 .mock/definition/FileStorage/auditTrail.yml create mode 100644 .mock/definition/FileStorage/availableActions.yml create mode 100644 .mock/definition/FileStorage/deleteAccount.yml create mode 100644 .mock/definition/FileStorage/drives.yml create mode 100644 .mock/definition/FileStorage/fieldMapping.yml create mode 100644 .mock/definition/FileStorage/files.yml create mode 100644 .mock/definition/FileStorage/folders.yml create mode 100644 .mock/definition/FileStorage/forceResync.yml create mode 100644 .mock/definition/FileStorage/generateKey.yml create mode 100644 .mock/definition/FileStorage/groups.yml create mode 100644 .mock/definition/FileStorage/issues.yml create mode 100644 .mock/definition/FileStorage/linkToken.yml create mode 100644 .mock/definition/FileStorage/linkedAccounts.yml create mode 100644 .mock/definition/FileStorage/passthrough.yml create mode 100644 .mock/definition/FileStorage/regenerateKey.yml create mode 100644 .mock/definition/FileStorage/scopes.yml create mode 100644 .mock/definition/FileStorage/syncStatus.yml create mode 100644 .mock/definition/FileStorage/users.yml create mode 100644 .mock/definition/FileStorage/webhookReceivers.yml create mode 100644 .mock/definition/HRIS/__package__.yml create mode 100644 .mock/definition/HRIS/accountDetails.yml create mode 100644 .mock/definition/HRIS/accountToken.yml create mode 100644 .mock/definition/HRIS/asyncPassthrough.yml create mode 100644 .mock/definition/HRIS/auditTrail.yml create mode 100644 .mock/definition/HRIS/availableActions.yml create mode 100644 .mock/definition/HRIS/bankInfo.yml create mode 100644 .mock/definition/HRIS/benefits.yml create mode 100644 .mock/definition/HRIS/companies.yml create mode 100644 .mock/definition/HRIS/deleteAccount.yml create mode 100644 .mock/definition/HRIS/dependents.yml create mode 100644 .mock/definition/HRIS/employeePayrollRuns.yml create mode 100644 .mock/definition/HRIS/employees.yml create mode 100644 .mock/definition/HRIS/employerBenefits.yml create mode 100644 .mock/definition/HRIS/employments.yml create mode 100644 .mock/definition/HRIS/fieldMapping.yml create mode 100644 .mock/definition/HRIS/forceResync.yml create mode 100644 .mock/definition/HRIS/generateKey.yml create mode 100644 .mock/definition/HRIS/groups.yml create mode 100644 .mock/definition/HRIS/issues.yml create mode 100644 .mock/definition/HRIS/linkToken.yml create mode 100644 .mock/definition/HRIS/linkedAccounts.yml create mode 100644 .mock/definition/HRIS/locations.yml create mode 100644 .mock/definition/HRIS/passthrough.yml create mode 100644 .mock/definition/HRIS/payGroups.yml create mode 100644 .mock/definition/HRIS/payrollRuns.yml create mode 100644 .mock/definition/HRIS/regenerateKey.yml create mode 100644 .mock/definition/HRIS/scopes.yml create mode 100644 .mock/definition/HRIS/syncStatus.yml create mode 100644 .mock/definition/HRIS/teams.yml create mode 100644 .mock/definition/HRIS/timeOff.yml create mode 100644 .mock/definition/HRIS/timeOffBalances.yml create mode 100644 .mock/definition/HRIS/timesheetEntries.yml create mode 100644 .mock/definition/HRIS/webhookReceivers.yml create mode 100644 .mock/definition/Ticketing/__package__.yml create mode 100644 .mock/definition/Ticketing/accountDetails.yml create mode 100644 .mock/definition/Ticketing/accountToken.yml create mode 100644 .mock/definition/Ticketing/accounts.yml create mode 100644 .mock/definition/Ticketing/asyncPassthrough.yml create mode 100644 .mock/definition/Ticketing/attachments.yml create mode 100644 .mock/definition/Ticketing/auditTrail.yml create mode 100644 .mock/definition/Ticketing/availableActions.yml create mode 100644 .mock/definition/Ticketing/collections.yml create mode 100644 .mock/definition/Ticketing/comments.yml create mode 100644 .mock/definition/Ticketing/contacts.yml create mode 100644 .mock/definition/Ticketing/deleteAccount.yml create mode 100644 .mock/definition/Ticketing/fieldMapping.yml create mode 100644 .mock/definition/Ticketing/forceResync.yml create mode 100644 .mock/definition/Ticketing/generateKey.yml create mode 100644 .mock/definition/Ticketing/issues.yml create mode 100644 .mock/definition/Ticketing/linkToken.yml create mode 100644 .mock/definition/Ticketing/linkedAccounts.yml create mode 100644 .mock/definition/Ticketing/passthrough.yml create mode 100644 .mock/definition/Ticketing/projects.yml create mode 100644 .mock/definition/Ticketing/regenerateKey.yml create mode 100644 .mock/definition/Ticketing/roles.yml create mode 100644 .mock/definition/Ticketing/scopes.yml create mode 100644 .mock/definition/Ticketing/syncStatus.yml create mode 100644 .mock/definition/Ticketing/tags.yml create mode 100644 .mock/definition/Ticketing/teams.yml create mode 100644 .mock/definition/Ticketing/tickets.yml create mode 100644 .mock/definition/Ticketing/users.yml create mode 100644 .mock/definition/Ticketing/webhookReceivers.yml create mode 100644 .mock/definition/__package__.yml create mode 100644 .mock/definition/api.yml create mode 100644 .mock/fern.config.json create mode 100644 .mock/filestorage_v3.yml create mode 100644 .mock/hris_v3.yml create mode 100644 .mock/ticketing_v3.yml create mode 100644 src/Merge.Client/Accounting/Items/Requests/ItemEndpointRequest.cs create mode 100644 src/Merge.Client/Accounting/Items/Requests/PatchedItemEndpointRequest.cs create mode 100644 src/Merge.Client/Accounting/Projects/ProjectsClient.cs create mode 100644 src/Merge.Client/Accounting/Projects/Requests/ProjectsListRequest.cs create mode 100644 src/Merge.Client/Accounting/Projects/Requests/ProjectsRetrieveRequest.cs create mode 100644 src/Merge.Client/Accounting/Projects/Types/ProjectsListRequestExpandItem.cs create mode 100644 src/Merge.Client/Accounting/Projects/Types/ProjectsRetrieveRequestExpandItem.cs create mode 100644 src/Merge.Client/Accounting/Types/ItemRequestRequest.cs create mode 100644 src/Merge.Client/Accounting/Types/ItemResponse.cs create mode 100644 src/Merge.Client/Accounting/Types/PaginatedProjectList.cs create mode 100644 src/Merge.Client/Accounting/Types/PatchedItemRequestRequest.cs create mode 100644 src/Merge.Client/Accounting/Types/Project.cs create mode 100644 src/Merge.Client/Accounting/Types/Type2BbEnum.cs create mode 100644 src/Merge.Client/FileStorage/Files/Types/FilesDownloadRequestMetaListRequestOrderBy.cs create mode 100644 src/Merge.Client/FileStorage/Files/Types/FilesListRequestOrderBy.cs delete mode 100644 src/Merge.Client/MergeClient.cs create mode 100644 src/Merge.Client/Ticketing/Tickets/Requests/TicketsMetaPostRetrieveRequest.cs create mode 100644 src/Merge.Client/Ticketing/Types/CollectionAccessLevelEnum.cs rename src/Merge.Client/Ticketing/Types/{AccessLevelEnum.cs => TicketAccessLevelEnum.cs} (65%) diff --git a/.mock/accounting_v3.yml b/.mock/accounting_v3.yml new file mode 100644 index 00000000..455d27ce --- /dev/null +++ b/.mock/accounting_v3.yml @@ -0,0 +1,32829 @@ +openapi: 3.0.3 +info: + title: Merge Accounting API + version: '1.0' + description: The unified API for building rich integrations with multiple Accounting + & Finance platforms. + contact: + name: Merge Team + url: https://www.merge.dev/ + email: hello@merge.dev +paths: + /accounting/v1/account-details: + get: + operationId: account_details_retrieve + description: Get details for a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - account-details + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountDetails' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/account-token/{public_token}: + get: + operationId: account_token_retrieve + description: Returns the account token for the end user with the provided public + token. + parameters: + - in: path + name: public_token + schema: + type: string + required: true + tags: + - account-token + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/accounting-periods: + get: + operationId: accounting_periods_list + description: Returns a list of `AccountingPeriod` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - accounting-periods + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAccountingPeriodList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/accounting-periods/{id}: + get: + operationId: accounting_periods_retrieve + description: Returns an `AccountingPeriod` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - accounting-periods + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountingPeriod' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/accounts: + get: + operationId: accounts_list + description: Returns a list of `Account` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: account_type + schema: + type: string + description: If provided, will only return accounts with the passed in enum. + - in: query + name: classification + schema: + type: string + nullable: true + enum: + - '' + - ASSET + - EQUITY + - EXPENSE + - LIABILITY + - + - REVENUE + description: If provided, will only return accounts with this classification. + - in: query + name: company_id + schema: + type: string + description: If provided, will only return accounts for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: name + schema: + type: string + nullable: true + description: If provided, will only return Accounts with this name. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - classification + - classification,status + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesClassification,Status: + value: classification,status + summary: Original Enum Values Classification, Status + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - classification + - classification,status + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesClassification,Status: + value: classification,status + summary: Original Enum Values Classification, Status + - in: query + name: status + schema: + type: string + nullable: true + enum: + - '' + - ACTIVE + - INACTIVE + - + - PENDING + description: If provided, will only return accounts with this status. + tags: + - accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAccountList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: accounts_create + description: Creates an `Account` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - accounts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccountEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AccountEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AccountEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/accounts/{id}: + get: + operationId: accounts_retrieve + description: Returns an `Account` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - classification + - classification,status + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesClassification,Status: + value: classification,status + summary: Original Enum Values Classification, Status + - in: query + name: show_enum_origins + schema: + type: string + enum: + - classification + - classification,status + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesClassification,Status: + value: classification,status + summary: Original Enum Values Classification, Status + tags: + - accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Account' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/accounts/meta/post: + get: + operationId: accounts_meta_post_retrieve + description: Returns metadata for `Account` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/addresses/{id}: + get: + operationId: addresses_retrieve + description: Returns an `Address` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesType: + value: type + summary: Original Enum Values Type + - in: query + name: show_enum_origins + schema: + type: string + enum: + - type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesType: + value: type + summary: Original Enum Values Type + tags: + - addresses + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Address' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/async-passthrough: + post: + operationId: async_passthrough_create + description: Asynchronously pull data from an endpoint not currently supported + by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - async-passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncPassthroughReciept' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/async-passthrough/{async_passthrough_receipt_id}: + get: + operationId: async_passthrough_retrieve + description: Retrieves data from earlier async-passthrough POST request + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: async_passthrough_receipt_id + schema: + type: string + format: uuid + required: true + tags: + - async-passthrough + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/RemoteResponse' + - type: string + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/async-tasks/{id}: + get: + operationId: async_tasks_retrieve + description: Returns an `AsyncPostTask` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + required: true + tags: + - async-tasks + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncPostTask' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/attachments: + get: + operationId: attachments_list + description: Returns a list of `AccountingAttachment` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return accounting attachments for this + company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - attachments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAccountingAttachmentList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: attachments_create + description: Creates an `AccountingAttachment` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - attachments + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccountingAttachmentEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AccountingAttachmentEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AccountingAttachmentEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountingAttachmentResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/attachments/{id}: + get: + operationId: attachments_retrieve + description: Returns an `AccountingAttachment` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - attachments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountingAttachment' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/attachments/meta/post: + get: + operationId: attachments_meta_post_retrieve + description: Returns metadata for `AccountingAttachment` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - attachments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/audit-trail: + get: + operationId: audit_trail_list + description: Gets a list of audit trail events. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include audit trail events that occurred + before this time + - in: query + name: event_type + schema: + type: string + description: 'If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, + `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, + `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, + `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, + `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, + `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, + `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED`' + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include audit trail events that occurred + after this time + - in: query + name: user_email + schema: + type: string + description: If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's email + at the time of the event, and may not be their current email. + tags: + - audit-trail + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAuditLogEventList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/available-actions: + get: + operationId: available_actions_retrieve + description: Returns a list of models and actions available for an account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - available-actions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AvailableActions' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/balance-sheets: + get: + operationId: balance_sheets_list + description: Returns a list of `BalanceSheet` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return balance sheets for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - balance-sheets + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBalanceSheetList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/balance-sheets/{id}: + get: + operationId: balance_sheets_retrieve + description: Returns a `BalanceSheet` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - balance-sheets + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BalanceSheet' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/bank-feed-accounts: + get: + operationId: bank_feed_accounts_list + description: Returns a list of `BankFeedAccount` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - bank-feed-accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBankFeedAccountList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + post: + operationId: bank_feed_accounts_create + description: Creates a `BankFeedAccount` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - bank-feed-accounts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BankFeedAccountEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BankFeedAccountEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BankFeedAccountEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BankFeedAccountResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/bank-feed-accounts/{id}: + get: + operationId: bank_feed_accounts_retrieve + description: Returns a `BankFeedAccount` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - bank-feed-accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BankFeedAccount' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/bank-feed-accounts/meta/post: + get: + operationId: bank_feed_accounts_meta_post_retrieve + description: Returns metadata for `BankFeedAccount` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - bank-feed-accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/bank-feed-transactions: + get: + operationId: bank_feed_transactions_list + description: Returns a list of `BankFeedTransaction` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - bank_feed_account + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandBankFeedAccount: + value: bank_feed_account + summary: Expand Bank_feed_account + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_processed + schema: + type: boolean + description: If provided, will only return bank feed transactions with this + is_processed value + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - bank-feed-transactions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBankFeedTransactionList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + post: + operationId: bank_feed_transactions_create + description: Creates a `BankFeedTransaction` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - bank-feed-transactions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BankFeedTransactionEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BankFeedTransactionEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/BankFeedTransactionEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/BankFeedTransactionResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/bank-feed-transactions/{id}: + get: + operationId: bank_feed_transactions_retrieve + description: Returns a `BankFeedTransaction` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - bank_feed_account + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandBankFeedAccount: + value: bank_feed_account + summary: Expand Bank_feed_account + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - bank-feed-transactions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BankFeedTransaction' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/bank-feed-transactions/meta/post: + get: + operationId: bank_feed_transactions_meta_post_retrieve + description: Returns metadata for `BankFeedTransaction` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - bank-feed-transactions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/cash-flow-statements: + get: + operationId: cash_flow_statements_list + description: Returns a list of `CashFlowStatement` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return cash flow statements for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - cash-flow-statements + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCashFlowStatementList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/cash-flow-statements/{id}: + get: + operationId: cash_flow_statements_retrieve + description: Returns a `CashFlowStatement` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - cash-flow-statements + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CashFlowStatement' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/company-info: + get: + operationId: company_info_list + description: Returns a list of `CompanyInfo` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - addresses + - phone_numbers + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandAddresses,PhoneNumbers: + value: addresses,phone_numbers + summary: Expand Addresses, Phone_numbers + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - company-info + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCompanyInfoList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/company-info/{id}: + get: + operationId: company_info_retrieve + description: Returns a `CompanyInfo` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - addresses + - phone_numbers + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandAddresses,PhoneNumbers: + value: addresses,phone_numbers + summary: Expand Addresses, Phone_numbers + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - company-info + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CompanyInfo' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/contacts: + get: + operationId: contacts_list + description: Returns a list of `Contact` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return contacts for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: email_address + schema: + type: string + nullable: true + description: If provided, will only return Contacts that match this email. + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - addresses + - company + - phone_numbers + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandAddresses,PhoneNumbers,Company: + value: addresses,phone_numbers,company + summary: Expand Addresses, Phone_numbers, Company + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_customer + schema: + type: string + description: If provided, will only return Contacts that are denoted as customers. + - in: query + name: is_supplier + schema: + type: string + description: If provided, will only return Contacts that are denoted as suppliers. + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: name + schema: + type: string + nullable: true + description: If provided, will only return Contacts that match this name. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: status + schema: + type: string + nullable: true + enum: + - '' + - ACTIVE + - ARCHIVED + - + description: If provided, will only return Contacts that match this status. + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedContactList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: contacts_create + description: Creates a `Contact` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - contacts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ContactEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ContactEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ContactEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ContactResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/contacts/{id}: + get: + operationId: contacts_retrieve + description: Returns a `Contact` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - addresses + - company + - phone_numbers + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandAddresses,PhoneNumbers,Company: + value: addresses,phone_numbers,company + summary: Expand Addresses, Phone_numbers, Company + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/contacts/meta/post: + get: + operationId: contacts_meta_post_retrieve + description: Returns metadata for `Contact` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/contacts/remote-field-classes: + get: + operationId: contacts_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/credit-notes: + get: + operationId: credit_notes_list + description: Returns a list of `CreditNote` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return credit notes for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - applied_payments + - company + - contact + - line_items + - payments + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandPayments,AppliedPayments,LineItems,TrackingCategories,Contact,Company,AccountingPeriod: + value: + payments,applied_payments,line_items,tracking_categories,contact,company,accounting_period + summary: Expand Payments, Applied_payments, Line_items, Tracking_categories, + Contact, Company, Accounting_period + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - status + - status,type + - type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus,Type: + value: status,type + summary: Original Enum Values Status, Type + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + - status,type + - type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus,Type: + value: status,type + summary: Original Enum Values Status, Type + - in: query + name: transaction_date_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created after this datetime. + - in: query + name: transaction_date_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created before this datetime. + tags: + - credit-notes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCreditNoteList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: credit_notes_create + description: Creates a `CreditNote` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - credit-notes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreditNoteEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CreditNoteEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreditNoteEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CreditNoteResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/credit-notes/{id}: + get: + operationId: credit_notes_retrieve + description: Returns a `CreditNote` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - applied_payments + - company + - contact + - line_items + - payments + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandPayments,AppliedPayments,LineItems,TrackingCategories,Contact,Company,AccountingPeriod: + value: + payments,applied_payments,line_items,tracking_categories,contact,company,accounting_period + summary: Expand Payments, Applied_payments, Line_items, Tracking_categories, + Contact, Company, Accounting_period + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - status + - status,type + - type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus,Type: + value: status,type + summary: Original Enum Values Status, Type + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + - status,type + - type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus,Type: + value: status,type + summary: Original Enum Values Status, Type + tags: + - credit-notes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreditNote' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/credit-notes/meta/post: + get: + operationId: credit_notes_meta_post_retrieve + description: Returns metadata for `CreditNote` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - credit-notes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/default-scopes: + get: + operationId: default_scopes_retrieve + description: Get the default permissions for Merge Common Models and fields + across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/delete-account: + post: + operationId: delete_account_delete + description: Delete a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - delete-account + security: + - tokenAuth: [] + responses: + '200': + description: No response body + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/employees: + get: + operationId: employees_list + description: Returns a list of `Employee` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - employees + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEmployeeList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/employees/{id}: + get: + operationId: employees_retrieve + description: Returns an `Employee` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - employees + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Employee' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/expenses: + get: + operationId: expenses_list + description: Returns a list of `Expense` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return expenses for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - accounting_period + - company + - contact + - employee + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTrackingCategories,Account,Contact,Company,Employee,AccountingPeriod: + value: tracking_categories,account,contact,company,employee,accounting_period + summary: Expand Tracking_categories, Account, Contact, Company, Employee, + Accounting_period + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: transaction_date_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created after this datetime. + - in: query + name: transaction_date_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created before this datetime. + tags: + - expenses + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedExpenseList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: expenses_create + description: Creates an `Expense` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - expenses + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ExpenseEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ExpenseEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ExpenseEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ExpenseResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/expenses/{id}: + get: + operationId: expenses_retrieve + description: Returns an `Expense` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - accounting_period + - company + - contact + - employee + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTrackingCategories,Account,Contact,Company,Employee,AccountingPeriod: + value: tracking_categories,account,contact,company,employee,accounting_period + summary: Expand Tracking_categories, Account, Contact, Company, Employee, + Accounting_period + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - expenses + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Expense' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/expenses/lines/remote-field-classes: + get: + operationId: expenses_lines_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - expenses + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/expenses/meta/post: + get: + operationId: expenses_meta_post_retrieve + description: Returns metadata for `Expense` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - expenses + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/expenses/remote-field-classes: + get: + operationId: expenses_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - expenses + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/field-mappings: + get: + operationId: field_mappings_retrieve + description: Get all Field Mappings for this Linked Account. Field Mappings + are mappings between third-party Remote Fields and user defined Merge fields. + [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingApiInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: field_mappings_create + description: Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to sync + **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/field-mappings/{field_mapping_id}: + patch: + operationId: field_mappings_partial_update + description: Create or update existing Field Mappings for a Linked Account. + Changes will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + delete: + operationId: field_mappings_destroy + description: Deletes Field Mappings for a Linked Account. All data related to + this Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked Account + to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '204': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/general-ledger-transactions: + get: + operationId: general_ledger_transactions_list + description: Returns a list of `GeneralLedgerTransaction` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return general ledger transactions for + this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - company + - general_ledger_transaction_lines + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTrackingCategories,GeneralLedgerTransactionLines,Company,AccountingPeriod: + value: tracking_categories,general_ledger_transaction_lines,company,accounting_period + summary: Expand Tracking_categories, General_ledger_transaction_lines, + Company, Accounting_period + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: posted_date_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects posted after this datetime. + - in: query + name: posted_date_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects posted before this datetime. + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - general-ledger-transactions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedGeneralLedgerTransactionList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/general-ledger-transactions/{id}: + get: + operationId: general_ledger_transactions_retrieve + description: Returns a `GeneralLedgerTransaction` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - company + - general_ledger_transaction_lines + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTrackingCategories,GeneralLedgerTransactionLines,Company,AccountingPeriod: + value: tracking_categories,general_ledger_transaction_lines,company,accounting_period + summary: Expand Tracking_categories, General_ledger_transaction_lines, + Company, Accounting_period + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - general-ledger-transactions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralLedgerTransaction' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/generate-key: + post: + operationId: generate_key_create + description: Create a remote key. + tags: + - generate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/income-statements: + get: + operationId: income_statements_list + description: Returns a list of `IncomeStatement` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return income statements for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - income-statements + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedIncomeStatementList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/income-statements/{id}: + get: + operationId: income_statements_retrieve + description: Returns an `IncomeStatement` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - income-statements + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/IncomeStatement' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/invoices: + get: + operationId: invoices_list + description: Returns a list of `Invoice` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return invoices for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: contact_id + schema: + type: string + description: If provided, will only return invoices for this contact. + examples: + ContactId: + summary: contact_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - applied_credit_notes + - applied_payments + - applied_vendor_credits + - company + - contact + - employee + - line_items + - payment_term + - payments + - purchase_orders + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ? ExpandPayments,AppliedPayments,LineItems,TrackingCategories,PurchaseOrders,AppliedCreditNotes,AppliedVendorCredits,Contact,Company,Employee,AccountingPeriod,PaymentTerm + : value: + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + summary: Expand Payments, Applied_payments, Line_items, Tracking_categories, + Purchase_orders, Applied_credit_notes, Applied_vendor_credits, Contact, + Company, Employee, Accounting_period, Payment_term + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: issue_date_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created after this datetime. + - in: query + name: issue_date_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created before this datetime. + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: number + schema: + type: string + nullable: true + description: If provided, will only return Invoices with this number. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesType: + value: type + summary: Original Enum Values Type + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesType: + value: type + summary: Original Enum Values Type + - in: query + name: status + schema: + type: string + nullable: true + enum: + - DRAFT + - OPEN + - PAID + - PARTIALLY_PAID + - SUBMITTED + - VOID + description: |- + If provided, will only return Invoices with this status. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + - in: query + name: type + schema: + type: string + nullable: true + enum: + - ACCOUNTS_PAYABLE + - ACCOUNTS_RECEIVABLE + description: |- + If provided, will only return Invoices with this type. + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + tags: + - invoices + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedInvoiceList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: invoices_create + description: "Creates an `Invoice` object with the given values.\n \ + \ Including a `PurchaseOrder` id in the `purchase_orders` property will + generate an Accounts Payable Invoice from the specified Purchase Order(s).\n\ + \ " + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - invoices + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InvoiceEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/InvoiceEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/InvoiceEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/InvoiceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/invoices/{id}: + get: + operationId: invoices_retrieve + description: Returns an `Invoice` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - applied_credit_notes + - applied_payments + - applied_vendor_credits + - company + - contact + - employee + - line_items + - payment_term + - payments + - purchase_orders + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ? ExpandPayments,AppliedPayments,LineItems,TrackingCategories,PurchaseOrders,AppliedCreditNotes,AppliedVendorCredits,Contact,Company,Employee,AccountingPeriod,PaymentTerm + : value: + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + summary: Expand Payments, Applied_payments, Line_items, Tracking_categories, + Purchase_orders, Applied_credit_notes, Applied_vendor_credits, Contact, + Company, Employee, Accounting_period, Payment_term + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesType: + value: type + summary: Original Enum Values Type + - in: query + name: show_enum_origins + schema: + type: string + enum: + - type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesType: + value: type + summary: Original Enum Values Type + tags: + - invoices + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Invoice' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + patch: + operationId: invoices_partial_update + description: Updates an `Invoice` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - invoices + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedInvoiceEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedInvoiceEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedInvoiceEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InvoiceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/invoices/line-items/remote-field-classes: + get: + operationId: invoices_line_items_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - invoices + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/invoices/meta/patch/{id}: + get: + operationId: invoices_meta_patch_retrieve + description: Returns metadata for `Invoice` PATCHs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - invoices + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-patch: META_PATCH + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/invoices/meta/post: + get: + operationId: invoices_meta_post_retrieve + description: Returns metadata for `Invoice` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - invoices + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/invoices/remote-field-classes: + get: + operationId: invoices_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - invoices + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/issues: + get: + operationId: issues_list + description: Gets all issues for Organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: account_token + schema: + type: string + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred before this time + - in: query + name: end_user_organization_name + schema: + type: string + - in: query + name: first_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was after this datetime. + - in: query + name: first_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was before this datetime. + - in: query + name: include_muted + schema: + type: string + description: If true, will include muted issues + - in: query + name: integration_name + schema: + type: string + - in: query + name: last_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was after this datetime. + - in: query + name: last_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was before this datetime. + - in: query + name: linked_account_id + schema: + type: string + description: If provided, will only include issues pertaining to the linked + account passed in. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred after this time + - in: query + name: status + schema: + type: string + enum: + - ONGOING + - RESOLVED + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedIssueList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/issues/{id}: + get: + operationId: issues_retrieve + description: Get a specific issue. + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Issue' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/items: + get: + operationId: items_list + description: Returns a list of `Item` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return items for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + - purchase_account + - purchase_tax_rate + - sales_account + - sales_tax_rate + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandPurchaseAccount,SalesAccount,Company,SalesTaxRate,PurchaseTaxRate: + value: purchase_account,sales_account,company,sales_tax_rate,purchase_tax_rate + summary: Expand Purchase_account, Sales_account, Company, Sales_tax_rate, + Purchase_tax_rate + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - items + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedItemList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: items_create + description: Creates an `Item` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - items + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ItemEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ItemEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ItemEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ItemResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/items/{id}: + get: + operationId: items_retrieve + description: Returns an `Item` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + - purchase_account + - purchase_tax_rate + - sales_account + - sales_tax_rate + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandPurchaseAccount,SalesAccount,Company,SalesTaxRate,PurchaseTaxRate: + value: purchase_account,sales_account,company,sales_tax_rate,purchase_tax_rate + summary: Expand Purchase_account, Sales_account, Company, Sales_tax_rate, + Purchase_tax_rate + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - items + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Item' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + patch: + operationId: items_partial_update + description: Updates an `Item` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - items + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedItemEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedItemEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedItemEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ItemResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/items/meta/patch/{id}: + get: + operationId: items_meta_patch_retrieve + description: Returns metadata for `Item` PATCHs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - items + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-patch: META_PATCH + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/items/meta/post: + get: + operationId: items_meta_post_retrieve + description: Returns metadata for `Item` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - items + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/journal-entries: + get: + operationId: journal_entries_list + description: Returns a list of `JournalEntry` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return journal entries for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - applied_payments + - company + - lines + - payments + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandLines,Payments,AppliedPayments,TrackingCategories,Company,AccountingPeriod: + value: lines,payments,applied_payments,tracking_categories,company,accounting_period + summary: Expand Lines, Payments, Applied_payments, Tracking_categories, + Company, Accounting_period + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: transaction_date_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created after this datetime. + - in: query + name: transaction_date_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created before this datetime. + tags: + - journal-entries + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedJournalEntryList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: journal_entries_create + description: Creates a `JournalEntry` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - journal-entries + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/JournalEntryEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/JournalEntryEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/JournalEntryEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/JournalEntryResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/journal-entries/{id}: + get: + operationId: journal_entries_retrieve + description: Returns a `JournalEntry` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - applied_payments + - company + - lines + - payments + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandLines,Payments,AppliedPayments,TrackingCategories,Company,AccountingPeriod: + value: lines,payments,applied_payments,tracking_categories,company,accounting_period + summary: Expand Lines, Payments, Applied_payments, Tracking_categories, + Company, Accounting_period + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - journal-entries + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/JournalEntry' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/journal-entries/lines/remote-field-classes: + get: + operationId: journal_entries_lines_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - journal-entries + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/journal-entries/meta/post: + get: + operationId: journal_entries_meta_post_retrieve + description: Returns metadata for `JournalEntry` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - journal-entries + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/journal-entries/remote-field-classes: + get: + operationId: journal_entries_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - journal-entries + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/link-token: + post: + operationId: link_token_create + description: Creates a link token to be used when linking a new end user. + tags: + - link-token + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LinkToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/linked-account-scopes: + get: + operationId: linked_account_scopes_retrieve + description: Get all available permissions for Merge Common Models and fields + for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: linked_account_scopes_create + description: Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the default + Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/linked-accounts: + get: + operationId: linked_accounts_list + description: List linked accounts for your organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: category + schema: + type: string + nullable: true + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + description: |- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `mktg`, `ticketing` + + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_user_email_address + schema: + type: string + description: If provided, will only return linked accounts associated with + the given email address. + - in: query + name: end_user_organization_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given organization name. + - in: query + name: end_user_origin_id + schema: + type: string + description: If provided, will only return linked accounts associated with + the given origin ID. + - in: query + name: end_user_origin_ids + schema: + type: string + description: Comma-separated list of EndUser origin IDs, making it possible + to specify multiple EndUsers at once. + - in: query + name: id + schema: + type: string + format: uuid + - in: query + name: ids + schema: + type: string + description: Comma-separated list of LinkedAccount IDs, making it possible + to specify multiple LinkedAccounts at once. + - in: query + name: include_duplicates + schema: + type: boolean + description: If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. `id` must + be for a complete production linked account. + - in: query + name: integration_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given integration name. + - in: query + name: is_test_account + schema: + type: string + description: If included, will only include test linked accounts. If not included, + will only include non-test linked accounts. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: status + schema: + type: string + description: 'Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED`' + tags: + - linked-accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAccountDetailsAndActionsList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/passthrough: + post: + operationId: passthrough_create + description: Pull data from an endpoint not currently supported by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/payment-methods: + get: + operationId: payment_methods_list + description: Returns a list of `PaymentMethod` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - payment-methods + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPaymentMethodList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/payment-methods/{id}: + get: + operationId: payment_methods_retrieve + description: Returns a `PaymentMethod` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - payment-methods + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentMethod' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/payment-terms: + get: + operationId: payment_terms_list + description: Returns a list of `PaymentTerm` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - payment-terms + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPaymentTermList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/payment-terms/{id}: + get: + operationId: payment_terms_retrieve + description: Returns a `PaymentTerm` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - payment-terms + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentTerm' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/payments: + get: + operationId: payments_list + description: Returns a list of `Payment` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: account_id + schema: + type: string + description: If provided, will only return payments for this account. + examples: + AccountId: + summary: account_id + - in: query + name: company_id + schema: + type: string + description: If provided, will only return payments for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: contact_id + schema: + type: string + description: If provided, will only return payments for this contact. + examples: + ContactId: + summary: contact_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - accounting_period + - applied_to_lines + - company + - contact + - payment_method + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTrackingCategories,AppliedToLines,Contact,Account,Company,AccountingPeriod,PaymentMethod: + value: + tracking_categories,applied_to_lines,contact,account,company,accounting_period,payment_method + summary: Expand Tracking_categories, Applied_to_lines, Contact, Account, + Company, Accounting_period, Payment_method + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: transaction_date_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created after this datetime. + - in: query + name: transaction_date_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created before this datetime. + tags: + - payments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPaymentList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: payments_create + description: Creates a `Payment` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - payments + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PaymentEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PaymentEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/payments/{id}: + get: + operationId: payments_retrieve + description: Returns a `Payment` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - accounting_period + - applied_to_lines + - company + - contact + - payment_method + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTrackingCategories,AppliedToLines,Contact,Account,Company,AccountingPeriod,PaymentMethod: + value: + tracking_categories,applied_to_lines,contact,account,company,accounting_period,payment_method + summary: Expand Tracking_categories, Applied_to_lines, Contact, Account, + Company, Accounting_period, Payment_method + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - payments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Payment' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + patch: + operationId: payments_partial_update + description: Updates a `Payment` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - payments + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedPaymentEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedPaymentEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedPaymentEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/payments/line-items/remote-field-classes: + get: + operationId: payments_line_items_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - payments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/payments/meta/patch/{id}: + get: + operationId: payments_meta_patch_retrieve + description: Returns metadata for `Payment` PATCHs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - payments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-patch: META_PATCH + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/payments/meta/post: + get: + operationId: payments_meta_post_retrieve + description: Returns metadata for `Payment` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - payments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/payments/remote-field-classes: + get: + operationId: payments_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - payments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/phone-numbers/{id}: + get: + operationId: phone_numbers_retrieve + description: Returns an `AccountingPhoneNumber` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - phone-numbers + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountingPhoneNumber' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/projects: + get: + operationId: projects_list + description: Returns a list of `Project` objects. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + - contact + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany,Contact: + value: company,contact + summary: Expand Company, Contact + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - projects + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedProjectList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/projects/{id}: + get: + operationId: projects_retrieve + description: Returns a `Project` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + - contact + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany,Contact: + value: company,contact + summary: Expand Company, Contact + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - projects + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Project' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/purchase-orders: + get: + operationId: purchase_orders_list + description: Returns a list of `PurchaseOrder` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return purchase orders for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - company + - delivery_address + - line_items + - payment_term + - tracking_categories + - vendor + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandLineItems,TrackingCategories,DeliveryAddress,Vendor,Company,AccountingPeriod,PaymentTerm: + value: + line_items,tracking_categories,delivery_address,vendor,company,accounting_period,payment_term + summary: Expand Line_items, Tracking_categories, Delivery_address, Vendor, + Company, Accounting_period, Payment_term + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: issue_date_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created after this datetime. + - in: query + name: issue_date_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created before this datetime. + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - purchase-orders + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPurchaseOrderList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: purchase_orders_create + description: Creates a `PurchaseOrder` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - purchase-orders + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PurchaseOrderEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PurchaseOrderEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrderResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/purchase-orders/{id}: + get: + operationId: purchase_orders_retrieve + description: Returns a `PurchaseOrder` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - company + - delivery_address + - line_items + - payment_term + - tracking_categories + - vendor + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandLineItems,TrackingCategories,DeliveryAddress,Vendor,Company,AccountingPeriod,PaymentTerm: + value: + line_items,tracking_categories,delivery_address,vendor,company,accounting_period,payment_term + summary: Expand Line_items, Tracking_categories, Delivery_address, Vendor, + Company, Accounting_period, Payment_term + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - purchase-orders + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PurchaseOrder' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/purchase-orders/line-items/remote-field-classes: + get: + operationId: purchase_orders_line_items_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - purchase-orders + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/purchase-orders/meta/post: + get: + operationId: purchase_orders_meta_post_retrieve + description: Returns metadata for `PurchaseOrder` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - purchase-orders + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/purchase-orders/remote-field-classes: + get: + operationId: purchase_orders_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - purchase-orders + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/regenerate-key: + post: + operationId: regenerate_key_create + description: Exchange remote keys. + tags: + - regenerate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/remote-fields: + get: + operationId: remote_fields_retrieve + description: Get all remote fields for a Linked Account. Remote fields are third-party + fields that are accessible after initial sync if remote_data is enabled. You + can use remote fields to override existing Merge fields or map a new Merge + field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: common_models + schema: + type: string + description: A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + - in: query + name: include_example_values + schema: + type: string + description: If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active data from + your customers. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/sync-status: + get: + operationId: sync_status_list + description: Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` + represents the most recent time any sync completed. These timestamps may correspond + to different sync instances which may result in a sync start time being later + than a separate sync completed time. To ensure you are retrieving the latest + available data reference the `last_sync_finished` timestamp where `last_sync_result` + is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about + sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - sync-status + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSyncStatusList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/sync-status/resync: + post: + operationId: sync_status_resync_create + description: Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or Enterprise + plans. Doing so will consume a sync credit for the relevant linked account. + Force re-syncs can also be triggered manually in the Merge Dashboard and is + available for all customers. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - force-resync + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/target-fields: + get: + operationId: target_fields_retrieve + description: Get all organization-wide Target Fields, this will not include + any Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked Accounts + in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExternalTargetFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/tax-rates: + get: + operationId: tax_rates_list + description: Returns a list of `TaxRate` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return tax rates for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: name + schema: + type: string + nullable: true + description: If provided, will only return TaxRates with this name. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - tax-rates + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTaxRateList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/tax-rates/{id}: + get: + operationId: tax_rates_retrieve + description: Returns a `TaxRate` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - tax-rates + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaxRate' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /accounting/v1/tracking-categories: + get: + operationId: tracking_categories_list + description: Returns a list of `TrackingCategory` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: category_type + schema: + type: string + nullable: true + enum: + - '' + - CLASS + - DEPARTMENT + - + description: If provided, will only return tracking categories with this type. + - in: query + name: company_id + schema: + type: string + description: If provided, will only return tracking categories for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: name + schema: + type: string + nullable: true + description: If provided, will only return tracking categories with this name. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: status + schema: + type: string + nullable: true + enum: + - '' + - ACTIVE + - ARCHIVED + - + description: If provided, will only return tracking categories with this status. + tags: + - tracking-categories + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTrackingCategoryList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/tracking-categories/{id}: + get: + operationId: tracking_categories_retrieve + description: Returns a `TrackingCategory` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCompany: + value: company + summary: Expand Company + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - tracking-categories + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TrackingCategory' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/transactions: + get: + operationId: transactions_list + description: Returns a list of `Transaction` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return accounting transactions for this + company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - accounting_period + - contact + - line_items + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandLineItems,TrackingCategories,Contact,Account,AccountingPeriod: + value: line_items,tracking_categories,contact,account,accounting_period + summary: Expand Line_items, Tracking_categories, Contact, Account, Accounting_period + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: transaction_date_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created after this datetime. + - in: query + name: transaction_date_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created before this datetime. + tags: + - transactions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTransactionList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/transactions/{id}: + get: + operationId: transactions_retrieve + description: Returns a `Transaction` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - accounting_period + - contact + - line_items + - tracking_categories + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandLineItems,TrackingCategories,Contact,Account,AccountingPeriod: + value: line_items,tracking_categories,contact,account,accounting_period + summary: Expand Line_items, Tracking_categories, Contact, Account, Accounting_period + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - transactions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Transaction' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/vendor-credits: + get: + operationId: vendor_credits_list + description: Returns a list of `VendorCredit` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return vendor credits for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - company + - lines + - tracking_categories + - vendor + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandLines,TrackingCategories,Vendor,Company,AccountingPeriod: + value: lines,tracking_categories,vendor,company,accounting_period + summary: Expand Lines, Tracking_categories, Vendor, Company, Accounting_period + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: transaction_date_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created after this datetime. + - in: query + name: transaction_date_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return objects created before this datetime. + tags: + - vendor-credits + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedVendorCreditList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: vendor_credits_create + description: Creates a `VendorCredit` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - vendor-credits + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/VendorCreditEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/VendorCreditEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/VendorCreditEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/VendorCreditResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/vendor-credits/{id}: + get: + operationId: vendor_credits_retrieve + description: Returns a `VendorCredit` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - accounting_period + - company + - lines + - tracking_categories + - vendor + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandLines,TrackingCategories,Vendor,Company,AccountingPeriod: + value: lines,tracking_categories,vendor,company,accounting_period + summary: Expand Lines, Tracking_categories, Vendor, Company, Accounting_period + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - vendor-credits + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/VendorCredit' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/vendor-credits/meta/post: + get: + operationId: vendor_credits_meta_post_retrieve + description: Returns metadata for `VendorCredit` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - vendor-credits + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /accounting/v1/webhook-receivers: + get: + operationId: webhook_receivers_list + description: Returns a list of `WebhookReceiver` objects. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: webhook_receivers_create + description: Creates a `WebhookReceiver` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC +components: + schemas: + Account: + type: object + description: |- + # The Account Object + ### Description + An `Account` represents a category in a company’s ledger in which a financial transaction is recorded against. The aggregation of each `Account` object is often referred to as the **Chart of Accounts**. + + An `Account` can be classified into one of the following categories, determined through the `classification` field: + * __Asset:__ Accounts Receivable and Bank Accounts + * __Liability:__ Accounts Payable and Credit Card Accounts + * __Equity:__ Treasury Accounts and Retained Earnings + * __Revenue:__ Income and Other Income + * __Expense:__ Cost of Goods Sold and Office Expenses + + ### Usage Example + Fetch from the `LIST Accounts` endpoint and view a company's accounts. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '21' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The account's name. + example: Cash + description: + type: string + nullable: true + description: The account's description. + example: Cash + classification: + oneOf: + - $ref: '#/components/schemas/ClassificationEnum' + - type: string + nullable: true + description: |- + The account's broadest grouping. + + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + example: ASSET + type: + type: string + nullable: true + description: The account's type is a narrower and more specific grouping + within the account's classification. + example: Asset + account_type: + oneOf: + - $ref: '#/components/schemas/AccountAccountTypeEnum' + - type: string + nullable: true + description: |- + Normalized account type- which is a narrower and more specific grouping within the account's classification. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `FIXED_ASSET` - FIXED_ASSET + * `OTHER_ASSET` - OTHER_ASSET + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + * `OTHER_EXPENSE` - OTHER_EXPENSE + * `OTHER_INCOME` - OTHER_INCOME + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + * `NON_POSTING` - NON_POSTING + example: FIXED_ASSET + status: + oneOf: + - $ref: '#/components/schemas/AccountStatusEnum' + - type: string + nullable: true + description: |- + The account's status. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + example: ACTIVE + current_balance: + type: number + format: double + nullable: true + description: The account's current balance. + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The account's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + account_number: + type: string + nullable: true + description: The account's number. + example: X12Y9AB + parent_account: + type: string + format: uuid + nullable: true + description: ID of the parent account. + example: 22d92d6c-22f9-11ed-861d-0242ac120002 + company: + type: string + format: uuid + nullable: true + description: The company the account belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-model-tooltip: + title: Looking for __Bank Accounts__? + content: Bank Accounts are represented as an __Account__ with a `classification` + of __ASSET__. + x-merge-expands: '{"owner": "User"}' + x-merge-category: accounting + AccountAccountTypeEnum: + enum: + - BANK + - CREDIT_CARD + - ACCOUNTS_PAYABLE + - ACCOUNTS_RECEIVABLE + - FIXED_ASSET + - OTHER_ASSET + - OTHER_CURRENT_ASSET + - OTHER_EXPENSE + - OTHER_INCOME + - COST_OF_GOODS_SOLD + - OTHER_CURRENT_LIABILITY + - LONG_TERM_LIABILITY + - NON_POSTING + type: string + description: |- + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `FIXED_ASSET` - FIXED_ASSET + * `OTHER_ASSET` - OTHER_ASSET + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + * `OTHER_EXPENSE` - OTHER_EXPENSE + * `OTHER_INCOME` - OTHER_INCOME + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + * `NON_POSTING` - NON_POSTING + x-merge-category: accounting + AccountDetails: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: + type: string + readOnly: true + example: BambooHR + integration_slug: + type: string + readOnly: true + example: bamboohr + category: + allOf: + - $ref: '#/components/schemas/CategoryEnum' + nullable: true + example: hris + end_user_origin_id: + type: string + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: + type: string + readOnly: true + example: Waystar Royco + end_user_email_address: + type: string + format: email + readOnly: true + example: kendall.roy@waystar-royco.com + status: + type: string + readOnly: true + example: COMPLETE + webhook_listener_url: + type: string + format: uri + readOnly: true + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + readOnly: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + account_type: + type: string + readOnly: true + example: PRODUCTION + completed_at: + type: string + format: date-time + nullable: true + description: The time at which account completes the linking flow. + example: '2024-08-26T20:11:19.277118Z' + x-merge-category: accounting + AccountDetailsAndActions: + type: object + description: |- + # The LinkedAccount Object + ### Description + The `LinkedAccount` object is used to represent an end user's link with a specific integration. + + ### Usage Example + View a list of your organization's `LinkedAccount` objects. + properties: + id: + type: string + example: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: + oneOf: + - $ref: '#/components/schemas/CategoryEnum' + - type: string + example: hris + status: + oneOf: + - $ref: '#/components/schemas/AccountDetailsAndActionsStatusEnum' + - type: string + example: INCOMPLETE + status_detail: + type: string + example: Invalid login credentials + end_user_origin_id: + type: string + example: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: + type: string + example: Foo Bar, LLC + end_user_email_address: + type: string + example: hradmin@foobar.dev + subdomain: + type: string + description: The tenant or domain the customer has provided access to. + example: foobar + webhook_listener_url: + type: string + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + integration: + $ref: '#/components/schemas/AccountDetailsAndActionsIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: + type: string + example: PRODUCTION + completed_at: + type: string + format: date-time + example: '2024-08-26T20:11:19.277118Z' + required: + - account_type + - completed_at + - end_user_email_address + - end_user_organization_name + - id + - status + - webhook_listener_url + x-merge-sample-json: '{"id": "e59b1821-f85c-4e28-a6b3-1804156f3563", "category": + "hris", "status": "INCOMPLETE", "status_detail": "Invalid login credentials", + "end_user_origin_id": "3ac95cde-6c7f-4eef-afec-be710b42308d", "end_user_organization_name": + "Foo Bar, LLC", "end_user_email_address": "hradmin@foobar.dev", "webhook_listener_url": + "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + "is_duplicate": true, "integration": {"name": "SAP SuccessFactors", "categories": + ["hris", "ats"], "image": "https://cdn.merge.dev/SuccessFactors_Logo.png", + "square_image": "https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg", "color": + "#F6A704", "slug": "sap-successfactors", "passthrough_available": true, "available_model_operations": + [{"model_name": "Candidate", "available_operations": ["FETCH", "CREATE"], + "required_post_parameters": ["remote_user_id"], "supported_fields": ["first_name", + "last_name", "company", "title"]}]}}' + x-merge-category: accounting + AccountDetailsAndActionsIntegration: + type: object + properties: + name: + type: string + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + image: + type: string + square_image: + type: string + color: + type: string + slug: + type: string + passthrough_available: + type: boolean + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + required: + - categories + - color + - name + - passthrough_available + - slug + x-merge-category: accounting + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + type: string + description: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + x-merge-category: accounting + AccountEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/AccountRequest' + required: + - model + x-merge-category: accounting + AccountIntegration: + type: object + properties: + name: + type: string + description: Company name. + abbreviated_name: + type: string + nullable: true + description: "Optional. This shortened name appears in places with limited + space, usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce Now), + SuccessFactors (in lieu of SAP SuccessFactors)" + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + readOnly: true + image: + type: string + format: uri + nullable: true + description: Company logo in rectangular shape. + square_image: + type: string + format: uri + nullable: true + description: Company logo in square shape. + color: + type: string + description: The color of this integration used for buttons and text throughout + the app and landing pages. Choose a darker, saturated color. + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: string + readOnly: true + api_endpoints_to_documentation_urls: + type: object + additionalProperties: {} + description: "Mapping of API endpoints to documentation urls for support. + Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []}" + webhook_setup_guide_url: + type: string + nullable: true + description: Setup guide URL for third party webhook creation. Exposed in + Merge Docs. + category_beta_status: + type: object + description: Category or categories this integration is in beta status for. + readOnly: true + required: + - name + x-merge-category: accounting + AccountRequest: + type: object + description: |- + # The Account Object + ### Description + An `Account` represents a category in a company’s ledger in which a financial transaction is recorded against. The aggregation of each `Account` object is often referred to as the **Chart of Accounts**. + + An `Account` can be classified into one of the following categories, determined through the `classification` field: + * __Asset:__ Accounts Receivable and Bank Accounts + * __Liability:__ Accounts Payable and Credit Card Accounts + * __Equity:__ Treasury Accounts and Retained Earnings + * __Revenue:__ Income and Other Income + * __Expense:__ Cost of Goods Sold and Office Expenses + + ### Usage Example + Fetch from the `LIST Accounts` endpoint and view a company's accounts. + properties: + name: + type: string + nullable: true + description: The account's name. + example: Cash + description: + type: string + nullable: true + description: The account's description. + example: Cash + classification: + oneOf: + - $ref: '#/components/schemas/ClassificationEnum' + - type: string + nullable: true + description: |- + The account's broadest grouping. + + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + example: ASSET + type: + type: string + nullable: true + description: The account's type is a narrower and more specific grouping + within the account's classification. + example: Asset + account_type: + oneOf: + - $ref: '#/components/schemas/AccountAccountTypeEnum' + - type: string + nullable: true + description: |- + Normalized account type- which is a narrower and more specific grouping within the account's classification. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `FIXED_ASSET` - FIXED_ASSET + * `OTHER_ASSET` - OTHER_ASSET + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + * `OTHER_EXPENSE` - OTHER_EXPENSE + * `OTHER_INCOME` - OTHER_INCOME + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + * `NON_POSTING` - NON_POSTING + example: FIXED_ASSET + status: + oneOf: + - $ref: '#/components/schemas/AccountStatusEnum' + - type: string + nullable: true + description: |- + The account's status. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + example: ACTIVE + current_balance: + type: number + format: double + nullable: true + description: The account's current balance. + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The account's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + account_number: + type: string + nullable: true + description: The account's number. + example: X12Y9AB + parent_account: + type: string + format: uuid + nullable: true + description: ID of the parent account. + example: 22d92d6c-22f9-11ed-861d-0242ac120002 + company: + type: string + format: uuid + nullable: true + description: The company the account belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-model-tooltip: + title: Looking for __Bank Accounts__? + content: Bank Accounts are represented as an __Account__ with a `classification` + of __ASSET__. + x-merge-expands: '{"owner": "User"}' + x-merge-category: accounting + AccountResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Account' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + AccountStatusEnum: + enum: + - ACTIVE + - PENDING + - INACTIVE + type: string + description: |- + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + x-merge-category: accounting + AccountToken: + type: object + properties: + account_token: + type: string + example: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + id: + type: string + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + required: + - account_token + - id + - integration + x-merge-category: accounting + AccountingAttachment: + type: object + description: |- + # The Accounting Attachment Object + ### Description + The `AccountingAttachment` object is used to represent a company's attachments. + + ### Usage Example + Fetch from the `LIST AccountingAttachments` endpoint and view a company's attachments. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '1018270' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + file_name: + type: string + nullable: true + description: The attachment's name. + example: invoice.png + file_url: + type: string + format: uri + nullable: true + maxLength: 2000 + example: https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png + description: The attachment's url. + company: + type: string + format: uuid + nullable: true + description: The company the accounting attachment belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-category: accounting + AccountingAttachmentEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/AccountingAttachmentRequest' + required: + - model + x-merge-category: accounting + AccountingAttachmentRequest: + type: object + description: |- + # The Accounting Attachment Object + ### Description + The `AccountingAttachment` object is used to represent a company's attachments. + + ### Usage Example + Fetch from the `LIST AccountingAttachments` endpoint and view a company's attachments. + properties: + file_name: + type: string + nullable: true + description: The attachment's name. + example: invoice.png + file_url: + type: string + format: uri + nullable: true + maxLength: 2000 + example: https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png + description: The attachment's url. + company: + type: string + format: uuid + nullable: true + description: The company the accounting attachment belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: accounting + AccountingAttachmentResponse: + type: object + properties: + model: + $ref: '#/components/schemas/AccountingAttachment' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + AccountingPeriod: + type: object + description: |- + # The AccountingPeriod Object + ### Description + The `AccountingPeriod` object is used to define a period of time in which events occurred. + + ### Usage Example + Common models like `Invoice` and `Transaction` will have `AccountingPeriod` objects which will denote when they occurred. + properties: + id: + type: string + format: uuid + readOnly: true + example: 3015f7b1-4d01-460d-bfab-02a52d16cbd0 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '2804580' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: Name of the accounting period. + maxLength: 100 + example: April 2020 Financials + status: + oneOf: + - $ref: '#/components/schemas/Status895Enum' + - type: string + nullable: true + example: ACTIVE + start_date: + type: string + format: date-time + nullable: true + description: Beginning date of the period + example: '2020-03-31T00:00:00Z' + end_date: + type: string + format: date-time + nullable: true + description: End date of the period + example: '2020-04-31T00:00:00Z' + field_mappings: + type: object + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-category: accounting + AccountingPhoneNumber: + type: object + description: |- + # The AccountingPhoneNumber Object + ### Description + The `AccountingPhoneNumber` object is used to represent a contact's or company's phone number. + + ### Usage Example + Fetch from the `GET CompanyInfo` endpoint and view the company's phone numbers. + properties: + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + number: + type: string + nullable: true + description: The phone number. + example: '+3198675309' + type: + type: string + nullable: true + description: The phone number's type. + example: Mobile + x-merge-category: accounting + AccountingPhoneNumberRequest: + type: object + description: |- + # The AccountingPhoneNumber Object + ### Description + The `AccountingPhoneNumber` object is used to represent a contact's or company's phone number. + + ### Usage Example + Fetch from the `GET CompanyInfo` endpoint and view the company's phone numbers. + properties: + number: + type: string + nullable: true + description: The phone number. + example: '+3198675309' + type: + type: string + nullable: true + description: The phone number's type. + example: Mobile + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: accounting + Address: + type: object + description: |- + # The Address Object + ### Description + The `Address` object is used to represent a contact's or company's address. + + ### Usage Example + Fetch from the `GET CompanyInfo` endpoint and view the company's addresses. + properties: + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + type: + oneOf: + - $ref: '#/components/schemas/AddressTypeEnum' + - type: string + nullable: true + description: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + example: SHIPPING + street_1: + type: string + nullable: true + description: Line 1 of the address's street. + example: 2920 Broadway + street_2: + type: string + nullable: true + description: Line 2 of the address's street. + example: 2nd Floor + city: + type: string + nullable: true + description: The address's city. + example: New York + state: + nullable: true + description: The address's state or region. + readOnly: true + example: NY + country_subdivision: + type: string + nullable: true + description: The address's state or region. + example: NY + country: + oneOf: + - $ref: '#/components/schemas/CountryEnum' + - type: string + nullable: true + description: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + example: US + zip_code: + type: string + nullable: true + description: The address's zip code. + example: '10027' + x-merge-nested-write-allowed: true + x-merge-category: accounting + AddressRequest: + type: object + description: |- + # The Address Object + ### Description + The `Address` object is used to represent a contact's or company's address. + + ### Usage Example + Fetch from the `GET CompanyInfo` endpoint and view the company's addresses. + properties: + type: + oneOf: + - $ref: '#/components/schemas/AddressTypeEnum' + - type: string + nullable: true + description: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + example: SHIPPING + street_1: + type: string + nullable: true + description: Line 1 of the address's street. + example: 2920 Broadway + street_2: + type: string + nullable: true + description: Line 2 of the address's street. + example: 2nd Floor + city: + type: string + nullable: true + description: The address's city. + example: New York + country_subdivision: + type: string + nullable: true + description: The address's state or region. + example: NY + country: + oneOf: + - $ref: '#/components/schemas/CountryEnum' + - type: string + nullable: true + description: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + example: US + zip_code: + type: string + nullable: true + description: The address's zip code. + example: '10027' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: accounting + AddressTypeEnum: + enum: + - BILLING + - SHIPPING + type: string + description: |- + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + x-merge-category: accounting + AdvancedMetadata: + type: object + properties: + id: + type: string + format: uuid + display_name: + type: string + description: + type: string + is_required: + type: boolean + is_custom: + type: boolean + field_choices: + type: array + items: {} + required: + - id + x-merge-category: accounting + AsyncPassthroughReciept: + type: object + properties: + async_passthrough_receipt_id: + type: string + format: uuid + example: fd29020f-2695-445e-922e-dcd5e81903fd + required: + - async_passthrough_receipt_id + x-merge-category: accounting + AsyncPostTask: + type: object + properties: + status: + oneOf: + - $ref: '#/components/schemas/AsyncPostTaskStatusEnum' + - type: string + example: COMPLETED + result: + $ref: '#/components/schemas/AsyncPostTaskResult' + required: + - result + - status + x-merge-category: accounting + AsyncPostTaskResult: + type: object + properties: + status_code: + type: integer + example: 201 + response: + type: object + additionalProperties: {} + example: + model: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '990110' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + integration_params: + unique_integration_field: unique_integration_field_value + linked_account_params: + unique_linked_account_field: unique_linked_account_field_value + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + type: ACCOUNTS_RECEIVABLE + contact: 022a2bef-57e5-4def-8ed2-7c41bd9a5ed8 + number: AIQ12546 + issue_date: '2020-03-31T00:00:00Z' + due_date: '2020-04-15T00:00:00Z' + memo: Weekly Payment + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + paid_on_date: '2020-04-01T00:00:00Z' + currency: USD + exchange_rate: '2.9' + status: DRAFT + total_discount: 0 + sub_total: 100 + total_tax_amount: 5 + total_amount: 105 + balance: 105 + inclusive_of_tax: false + remote_updated_at: '2020-04-01T00:00:00Z' + tracking_categories: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + purchase_orders: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + accounting_period: 7dc5ca17-d311-44cd-9ce0-333080367a18 + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + line_items: [] + applied_credit_notes: [] + applied_vendor_credits: [] + remote_data: + - path: /actions + data: + - Varies by platform + x-merge-category: accounting + AsyncPostTaskStatusEnum: + enum: + - QUEUED + - IN_PROGRESS + - COMPLETED + - FAILURE + type: string + description: |- + * `QUEUED` - QUEUED + * `IN_PROGRESS` - IN_PROGRESS + * `COMPLETED` - COMPLETED + * `FAILURE` - FAILURE + x-merge-category: accounting + AuditLogEvent: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: + type: string + nullable: true + description: The User's full name at the time of this Event occurring. + maxLength: 200 + example: Gil Feig + user_email: + type: string + format: email + nullable: true + description: The User's email at the time of this Event occurring. + maxLength: 254 + example: hello@merge.dev + role: + oneOf: + - $ref: '#/components/schemas/RoleEnum' + - type: string + description: |- + Designates the role of the user (or SYSTEM/API if action not taken by a user) at the time of this Event occurring. + + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + example: ADMIN + ip_address: + type: string + maxLength: 45 + example: 192.0.2.123 + event_type: + oneOf: + - $ref: '#/components/schemas/EventTypeEnum' + - type: string + description: |- + Designates the type of event that occurred. + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + example: CHANGED_SCOPES + event_description: + type: string + example: Organization-wide Scopes for model hris.Employee updated from Read + to Read+Write + created_at: + type: string + format: date-time + readOnly: true + required: + - event_description + - event_type + - ip_address + - role + x-merge-category: accounting + AvailableActions: + type: object + description: |- + # The AvailableActions Object + ### Description + The `Activity` object is used to see all available model/operation combinations for an integration. + + ### Usage Example + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: Lever + categories: + - ats + image: https://merge-api-production.s3.amazonaws.com/media/Lever_Logo.png + square_image: https://merge-api-production.s3.amazonaws.com/media/Lever_Square_Logo.png + color: '#262A34' + is_in_beta: 'true' + api_endpoints_to_documentation_urls: "{'GET': [('/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve')], + 'POST': []}" + passthrough_available: + type: boolean + example: true + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + example: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + required: + - integration + - passthrough_available + x-merge-category: accounting + BalanceSheet: + type: object + description: |- + # The BalanceSheet Object + ### Description + The `BalanceSheet` object shows a company’s assets, liabilities, and equity. Assets should be equal to liability and equity combined. This shows the company’s financial health at a specific point in time. + + ### Usage Example + Fetch from the `LIST BalanceSheets` endpoint and view a company's balance sheets. + properties: + id: + type: string + format: uuid + readOnly: true + example: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '8937018' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The balance sheet's name. + example: BalanceSheet + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The balance sheet's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: '`Company` object for the given `BalanceSheet` object.' + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + date: + type: string + format: date-time + nullable: true + description: The balance sheet's date. The balance sheet data will reflect + the company's financial position this point in time. + example: '2021-09-31T00:00:00Z' + net_assets: + type: number + format: double + nullable: true + description: The balance sheet's net assets. + example: 1000 + assets: + type: array + items: + $ref: '#/components/schemas/ReportItem' + readOnly: true + example: + - remote_id: '10010' + name: Assets + value: 1000 + sub_items: [] + liabilities: + type: array + items: + $ref: '#/components/schemas/ReportItem' + readOnly: true + example: + - remote_id: '10011' + name: Liabilities + value: 500 + sub_items: [] + equity: + type: array + items: + $ref: '#/components/schemas/ReportItem' + readOnly: true + example: + - remote_id: '10012' + name: Equity + value: 500 + sub_items: [] + remote_generated_at: + type: string + format: date-time + nullable: true + description: The time that balance sheet was generated by the accounting + system. + example: '2021-10-01T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-expands: '{"company": "CompanyInfo"}' + x-merge-category: accounting + BankFeedAccount: + type: object + description: |- + # The BankFeedAccount Object + ### Description + The `BankFeedAccount` object represents a bank feed account, detailing various attributes including account identifiers, names, currency, and balance information. This object is central to managing and tracking bank feed accounts within the system. + + ### Usage Example + Fetch from the `GET BankFeedAccount` endpoint to view details of a bank feed account. + properties: + id: + type: string + format: uuid + readOnly: true + example: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '987300' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + source_account_id: + type: string + nullable: true + description: The unique identifier of the source account from our customer’s + platform. + maxLength: 1024 + example: '123566909' + target_account_id: + type: string + nullable: true + description: The unique identifier of the target account from the third + party software. + maxLength: 1024 + example: 49cd5a42-b311-4750-9361-52e2ed1d4653 + source_account_name: + type: string + nullable: true + description: The name of the source account as stored in our customer’s + platform. + maxLength: 1024 + example: Travel Bank Account + source_account_number: + type: string + nullable: true + description: The human-readable account number of the source account as + stored in our customer’s platform. + maxLength: 1024 + example: '12567' + target_account_name: + type: string + nullable: true + description: The name of the target account from the third party software. + maxLength: 1024 + example: Netsuite Travel Bank Account + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The currency code of the bank feed. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + feed_status: + oneOf: + - $ref: '#/components/schemas/FeedStatusEnum' + - type: string + nullable: true + description: |- + The status of the bank feed. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + example: ACTIVE + feed_start_date: + type: string + format: date-time + nullable: true + description: The start date of the bank feed’s transactions. + example: '2024-02-02T00:00:00.000Z' + source_account_balance: + type: number + format: double + nullable: true + description: The current balance of funds in the source account. + example: 123.94 + account_type: + oneOf: + - $ref: '#/components/schemas/BankFeedAccountAccountTypeEnum' + - type: string + nullable: true + description: |- + The type of the account. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + example: BANK + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + type: object + additionalProperties: {} + nullable: true + description: The full data pulled from the third-party API for an object. + nullable: true + x-merge-category: accounting + BankFeedAccountAccountTypeEnum: + enum: + - BANK + - CREDIT_CARD + type: string + description: |- + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + x-merge-category: accounting + BankFeedAccountEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/BankFeedAccountRequest' + required: + - model + x-merge-category: accounting + BankFeedAccountRequest: + type: object + description: |- + # The BankFeedAccount Object + ### Description + The `BankFeedAccount` object represents a bank feed account, detailing various attributes including account identifiers, names, currency, and balance information. This object is central to managing and tracking bank feed accounts within the system. + + ### Usage Example + Fetch from the `GET BankFeedAccount` endpoint to view details of a bank feed account. + properties: + source_account_id: + type: string + nullable: true + description: The unique identifier of the source account from our customer’s + platform. + maxLength: 1024 + example: '123566909' + target_account_id: + type: string + nullable: true + description: The unique identifier of the target account from the third + party software. + maxLength: 1024 + example: 49cd5a42-b311-4750-9361-52e2ed1d4653 + source_account_name: + type: string + nullable: true + description: The name of the source account as stored in our customer’s + platform. + maxLength: 1024 + example: Travel Bank Account + source_account_number: + type: string + nullable: true + description: The human-readable account number of the source account as + stored in our customer’s platform. + maxLength: 1024 + example: '12567' + target_account_name: + type: string + nullable: true + description: The name of the target account from the third party software. + maxLength: 1024 + example: Netsuite Travel Bank Account + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The currency code of the bank feed. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + feed_status: + oneOf: + - $ref: '#/components/schemas/FeedStatusEnum' + - type: string + nullable: true + description: |- + The status of the bank feed. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + example: ACTIVE + feed_start_date: + type: string + format: date-time + nullable: true + description: The start date of the bank feed’s transactions. + example: '2024-02-02T00:00:00.000Z' + source_account_balance: + type: number + format: double + nullable: true + description: The current balance of funds in the source account. + example: 123.94 + account_type: + oneOf: + - $ref: '#/components/schemas/BankFeedAccountAccountTypeEnum' + - type: string + nullable: true + description: |- + The type of the account. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + example: BANK + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: accounting + BankFeedAccountResponse: + type: object + properties: + model: + $ref: '#/components/schemas/BankFeedAccount' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + BankFeedTransaction: + type: object + description: |- + # The BankFeedTransaction Object + ### Description + The `BankFeedTransaction` object is used to represent transactions linked to a bank feed account. This includes details about the transaction such as the date, amount, description, and type. + + ### Usage Example + Fetch from the `GET BankFeedTransaction` endpoint to view details of a transaction associated with a bank feed account. + properties: + id: + type: string + format: uuid + readOnly: true + example: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '987300' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + bank_feed_account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/BankFeedAccount' + nullable: true + description: The bank feed account associated with the transaction. + example: 49cd5a42-b311-4750-9361-52e2ed1d4653 + x-merge-expands-to: BankFeedAccount + transaction_date: + type: string + format: date-time + nullable: true + description: The date that the transaction occurred. + example: '2024-02-02T00:00:00.000Z' + posted_date: + type: string + format: date-time + nullable: true + description: The date the transaction was posted to the bank account. + example: '2024-02-03T00:00:00.000Z' + amount: + type: number + format: double + nullable: true + description: The amount of the transaction. + example: 100.1 + description: + type: string + nullable: true + description: The description of the transaction. + maxLength: 1024 + example: Lunch expense + transaction_type: + type: string + nullable: true + description: The underlying type of the transaction. + maxLength: 1024 + example: payment + payee: + type: string + nullable: true + description: The person or merchant who initiated the transaction, or alternatively, + to whom the transaction was paid. + maxLength: 1024 + example: Elmo's diner + credit_or_debit: + oneOf: + - $ref: '#/components/schemas/CreditOrDebitEnum' + - type: string + nullable: true + description: |- + If the transaction is of type debit or credit. + + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + example: CREDIT + source_transaction_id: + type: string + nullable: true + description: The customer’s identifier for the transaction. + maxLength: 1024 + example: '124569' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + is_processed: + type: boolean + readOnly: true + description: Whether or not this transaction has been processed by the external + system. For example, NetSuite writes this field as True when the SuiteApp + has processed the transaction. + x-merge-expands: '{"bank_feed_account": "BankFeedAccount"}' + x-merge-category: accounting + BankFeedTransactionEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/BankFeedTransactionRequestRequest' + required: + - model + x-merge-category: accounting + BankFeedTransactionRequestRequest: + type: object + description: |- + # The BankFeedTransaction Object + ### Description + The `BankFeedTransaction` object is used to represent transactions linked to a bank feed account. This includes details about the transaction such as the date, amount, description, and type. + + ### Usage Example + Fetch from the `GET BankFeedTransaction` endpoint to view details of a transaction associated with a bank feed account. + properties: + bank_feed_account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/BankFeedAccount' + nullable: true + description: The bank feed account associated with the transaction. + example: 49cd5a42-b311-4750-9361-52e2ed1d4653 + x-merge-expands-to: BankFeedAccount + transaction_date: + type: string + format: date-time + nullable: true + description: The date that the transaction occurred. + example: '2024-02-02T00:00:00.000Z' + posted_date: + type: string + format: date-time + nullable: true + description: The date the transaction was posted to the bank account. + example: '2024-02-03T00:00:00.000Z' + amount: + type: number + format: double + nullable: true + description: The amount of the transaction. + example: 100.1 + description: + type: string + nullable: true + description: The description of the transaction. + maxLength: 1024 + example: Lunch expense + transaction_type: + type: string + nullable: true + description: The underlying type of the transaction. + maxLength: 1024 + example: payment + payee: + type: string + nullable: true + description: The person or merchant who initiated the transaction, or alternatively, + to whom the transaction was paid. + maxLength: 1024 + example: Elmo's diner + credit_or_debit: + oneOf: + - $ref: '#/components/schemas/CreditOrDebitEnum' + - type: string + nullable: true + description: |- + If the transaction is of type debit or credit. + + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + example: CREDIT + source_transaction_id: + type: string + nullable: true + description: The customer’s identifier for the transaction. + maxLength: 1024 + example: '124569' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + required: + - bank_feed_account + x-merge-expands: '{"bank_feed_account": "BankFeedAccount"}' + x-merge-category: accounting + BankFeedTransactionResponse: + type: object + properties: + model: + $ref: '#/components/schemas/BankFeedTransaction' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + CashFlowStatement: + type: object + description: |- + # The CashFlowStatement Object + ### Description + The `CashFlowStatement` object shows operating activities, investing activities, and financing activities over a period of time (month, quarter, or year). + + ### Usage Example + Fetch from the `LIST CashFlowStatements` endpoint and view a company's cash flow statements. + properties: + id: + type: string + format: uuid + readOnly: true + example: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '8211088' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The cash flow statement's name. + example: CashFlow + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The cash flow statement's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the cash flow statement belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + start_period: + type: string + format: date-time + nullable: true + description: The cash flow statement's start period. + example: '2020-01-01T00:00:00Z' + end_period: + type: string + format: date-time + nullable: true + description: The cash flow statement's end period. + example: '2020-03-31T00:00:00Z' + cash_at_beginning_of_period: + type: number + format: double + nullable: true + description: Cash and cash equivalents at the beginning of the cash flow + statement's period. + example: 5000 + cash_at_end_of_period: + type: number + format: double + nullable: true + description: Cash and cash equivalents at the beginning of the cash flow + statement's period. + example: 4063.52 + operating_activities: + type: array + items: + $ref: '#/components/schemas/ReportItem' + readOnly: true + example: + - remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Operating Activities + value: 1000 + sub_items: + - remote_id: '23042938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Net Income + value: 1097.13 + sub_items: [] + company: + investing_activities: + type: array + items: + $ref: '#/components/schemas/ReportItem' + readOnly: true + example: + - remote_id: '192406939' + created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-11-18T00:00:00Z' + name: Equipment + value: 1000 + sub_items: + - remote_id: + created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Equipment + value: 1000 + sub_items: [] + company: + financing_activities: + type: array + items: + $ref: '#/components/schemas/ReportItem' + readOnly: true + example: + - remote_id: '192406939' + created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-11-15T00:00:00Z' + sub_items: [] + remote_generated_at: + type: string + format: date-time + nullable: true + description: The time that cash flow statement was generated by the accounting + system. + example: '2020-04-01T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-expands: '{"company": "CompanyInfo"}' + x-merge-category: accounting + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: accounting + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: accounting + CategoryTypeEnum: + enum: + - CLASS + - DEPARTMENT + type: string + description: |- + * `CLASS` - CLASS + * `DEPARTMENT` - DEPARTMENT + x-merge-category: accounting + ClassificationEnum: + enum: + - ASSET + - EQUITY + - EXPENSE + - LIABILITY + - REVENUE + type: string + description: |- + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + x-merge-category: accounting + CommonModelScopeAPI: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializer' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + required: + - common_models + x-merge-category: accounting + CommonModelScopesBodyRequest: + type: object + properties: + model_id: + type: string + minLength: 1 + example: hris.Employee + enabled_actions: + type: array + items: + $ref: '#/components/schemas/EnabledActionsEnum' + example: + - READ + - WRITE + disabled_fields: + type: array + items: + type: string + minLength: 1 + example: + - first_name + required: + - disabled_fields + - enabled_actions + - model_id + x-merge-category: accounting + CompanyInfo: + type: object + description: |- + # The CompanyInfo Object + ### Description + The `CompanyInfo` object contains information about the company of the linked account. If the company has multiple entities (also known as subsidiaries), each entity may show up as a single `CompanyInfo` record. + + ### Usage Example + Fetch from the `GET CompanyInfo` endpoint and view a company's information. + properties: + id: + type: string + format: uuid + readOnly: true + example: 65d8ffd0-211b-4ba4-b85a-fbe2ce220982 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The company's name. + example: Merge Pickleball Company + legal_name: + type: string + nullable: true + description: The company's legal name. + example: Merge Pickleball Company Inc. + tax_number: + type: string + nullable: true + description: The company's tax number. + example: 11-0011000 + fiscal_year_end_month: + type: integer + maximum: 12 + minimum: 1 + nullable: true + description: The company's fiscal year end month. + example: 12 + fiscal_year_end_day: + type: integer + maximum: 31 + minimum: 1 + nullable: true + description: The company's fiscal year end day. + example: 31 + currency: + nullable: true + description: |- + The currency set in the company's accounting platform. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's company was created. + example: '2020-03-31T00:00:00Z' + urls: + type: array + items: + type: string + nullable: true + description: The url. + nullable: true + description: The company's urls. + example: https://www.merge.dev + addresses: + type: array + items: + $ref: '#/components/schemas/Address' + example: + - street_1: 2920 Broadway + street_2: 2nd Floor + city: New York + state: NY + country: US + zip_code: '10027' + x-merge-expands-to: Address + phone_numbers: + type: array + items: + $ref: '#/components/schemas/AccountingPhoneNumber' + x-merge-expands-to: AccountingPhoneNumber + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-expands: '{"addresses": "Address", "phone_numbers": "AccountingPhoneNumber"}' + x-merge-category: accounting + ComponentTypeEnum: + enum: + - SALES + - PURCHASE + type: string + description: |- + * `SALES` - SALES + * `PURCHASE` - PURCHASE + x-merge-category: accounting + Contact: + type: object + description: |- + # The Contact Object + ### Description + A `Contact` is an individual or business entity to which products and services are sold to or purchased from. The `Contact` model contains both Customers, in which products and services are sold to, and Vendors (or Suppliers), in which products and services are purchased from. + * A `Contact` is a Vendor/Supplier if the `is_supplier` property is true. + * A `Contact` is a customer if the `is_customer` property is true. + + ### Usage Example + Fetch from the `LIST Contacts` endpoint and view a company's contacts. + properties: + id: + type: string + format: uuid + readOnly: true + example: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '11167' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The contact's name. + example: Gil Feig's pickleball store + is_supplier: + type: boolean + nullable: true + description: Whether the contact is a supplier. + is_customer: + type: boolean + nullable: true + description: Whether the contact is a customer. + example: true + email_address: + type: string + nullable: true + description: The contact's email address. + example: pickleball@merge.dev + tax_number: + type: string + nullable: true + description: The contact's tax number. + example: 12-3456789 + status: + oneOf: + - $ref: '#/components/schemas/Status7d1Enum' + - type: string + nullable: true + description: |- + The contact's status + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + example: ACTIVE + currency: + type: string + nullable: true + description: The currency the contact's transactions are in. + example: USD + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's contact was updated. + example: '2020-03-31T00:00:00Z' + company: + type: string + format: uuid + nullable: true + description: The company the contact belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + addresses: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Address' + nullable: true + example: + - 2f2702aa-8948-492b-a412-2acdf6d2c499 + - d98c7428-8dda-48a8-a1da-c570f65e2375 + description: '`Address` object IDs for the given `Contacts` object.' + phone_numbers: + type: array + items: + $ref: '#/components/schemas/AccountingPhoneNumber' + example: + - number: '+3198675309' + type: Mobile + description: '`AccountingPhoneNumber` object for the given `Contacts` object.' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"account": "Account"}' + x-merge-category: accounting + ContactEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/ContactRequest' + required: + - model + x-merge-category: accounting + ContactRequest: + type: object + description: |- + # The Contact Object + ### Description + A `Contact` is an individual or business entity to which products and services are sold to or purchased from. The `Contact` model contains both Customers, in which products and services are sold to, and Vendors (or Suppliers), in which products and services are purchased from. + * A `Contact` is a Vendor/Supplier if the `is_supplier` property is true. + * A `Contact` is a customer if the `is_customer` property is true. + + ### Usage Example + Fetch from the `LIST Contacts` endpoint and view a company's contacts. + properties: + name: + type: string + nullable: true + description: The contact's name. + example: Gil Feig's pickleball store + is_supplier: + type: boolean + nullable: true + description: Whether the contact is a supplier. + is_customer: + type: boolean + nullable: true + description: Whether the contact is a customer. + example: true + email_address: + type: string + nullable: true + description: The contact's email address. + example: pickleball@merge.dev + tax_number: + type: string + nullable: true + description: The contact's tax number. + example: 12-3456789 + status: + oneOf: + - $ref: '#/components/schemas/Status7d1Enum' + - type: string + nullable: true + description: |- + The contact's status + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + example: ACTIVE + currency: + type: string + nullable: true + description: The currency the contact's transactions are in. + example: USD + company: + type: string + format: uuid + nullable: true + description: The company the contact belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + addresses: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Address' + nullable: true + example: + - 2f2702aa-8948-492b-a412-2acdf6d2c499 + - d98c7428-8dda-48a8-a1da-c570f65e2375 + description: '`Address` object IDs for the given `Contacts` object.' + phone_numbers: + type: array + items: + $ref: '#/components/schemas/AccountingPhoneNumberRequest' + example: + - number: '+3198675309' + type: Mobile + description: '`AccountingPhoneNumber` object for the given `Contacts` object.' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account"}' + x-merge-category: accounting + ContactResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Contact' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + CountryEnum: + enum: + - AF + - AX + - AL + - DZ + - AS + - AD + - AO + - AI + - AQ + - AG + - AR + - AM + - AW + - AU + - AT + - AZ + - BS + - BH + - BD + - BB + - BY + - BE + - BZ + - BJ + - BM + - BT + - BO + - BQ + - BA + - BW + - BV + - BR + - IO + - BN + - BG + - BF + - BI + - CV + - KH + - CM + - CA + - KY + - CF + - TD + - CL + - CN + - CX + - CC + - CO + - KM + - CG + - CD + - CK + - CR + - CI + - HR + - CU + - CW + - CY + - CZ + - DK + - DJ + - DM + - DO + - EC + - EG + - SV + - GQ + - ER + - EE + - SZ + - ET + - FK + - FO + - FJ + - FI + - FR + - GF + - PF + - TF + - GA + - GM + - GE + - DE + - GH + - GI + - GR + - GL + - GD + - GP + - GU + - GT + - GG + - GN + - GW + - GY + - HT + - HM + - VA + - HN + - HK + - HU + - IS + - IN + - ID + - IR + - IQ + - IE + - IM + - IL + - IT + - JM + - JP + - JE + - JO + - KZ + - KE + - KI + - KW + - KG + - LA + - LV + - LB + - LS + - LR + - LY + - LI + - LT + - LU + - MO + - MG + - MW + - MY + - MV + - ML + - MT + - MH + - MQ + - MR + - MU + - YT + - MX + - FM + - MD + - MC + - MN + - ME + - MS + - MA + - MZ + - MM + - NA + - NR + - NP + - NL + - NC + - NZ + - NI + - NE + - NG + - NU + - NF + - KP + - MK + - MP + - NO + - OM + - PK + - PW + - PS + - PA + - PG + - PY + - PE + - PH + - PN + - PL + - PT + - PR + - QA + - RE + - RO + - RU + - RW + - BL + - SH + - KN + - LC + - MF + - PM + - VC + - WS + - SM + - ST + - SA + - SN + - RS + - SC + - SL + - SG + - SX + - SK + - SI + - SB + - SO + - ZA + - GS + - KR + - SS + - ES + - LK + - SD + - SR + - SJ + - SE + - CH + - SY + - TW + - TJ + - TZ + - TH + - TL + - TG + - TK + - TO + - TT + - TN + - TR + - TM + - TC + - TV + - UG + - UA + - AE + - GB + - UM + - US + - UY + - UZ + - VU + - VE + - VN + - VG + - VI + - WF + - EH + - YE + - ZM + - ZW + type: string + description: |- + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + x-merge-category: accounting + CreateFieldMappingRequest: + type: object + properties: + target_field_name: + type: string + minLength: 1 + description: The name of the target field you want this remote field to + map to. + example: example_target_field_name + target_field_description: + type: string + minLength: 1 + description: The description of the target field you want this remote field + to map to. + example: this is a example description of the target field + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + common_model_name: + type: string + minLength: 1 + description: The name of the Common Model that the remote field corresponds + to in a given category. + example: ExampleCommonModel + required: + - common_model_name + - remote_field_traversal_path + - remote_method + - remote_url_path + - target_field_description + - target_field_name + x-merge-category: accounting + CreditNote: + type: object + description: |- + # The CreditNote Object + ### Description + A `CreditNote` is transaction issued to a customer, indicating a reduction or cancellation of the amount owed by the customer. It is most generally used as an adjustment note used to rectify errors, returns, or overpayments related to a sales transaction. A `CreditNote` can be applied to *Accounts Receivable* Invoices to decrease the overall amount of the Invoice. + + ### Usage Example + Fetch from the `LIST CreditNotes` endpoint and view a company's credit notes. + properties: + id: + type: string + format: uuid + readOnly: true + example: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '123877' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + transaction_date: + type: string + format: date-time + nullable: true + description: The credit note's transaction date. + example: '2020-03-31T00:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/CreditNoteStatusEnum' + - type: string + nullable: true + description: |- + The credit note's status. + + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + example: PAID + number: + type: string + nullable: true + description: The credit note's number. + example: CN-29 + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The credit note's contact. + example: c6c7b870-bb4d-489a-921e-2f0ee4192ff9 + x-merge-expands-to: Contact + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the credit note belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The credit note's exchange rate. + example: '2.9' + total_amount: + type: number + format: double + nullable: true + description: The credit note's total amount. + example: 50 + remaining_credit: + type: number + format: double + nullable: true + description: The amount of value remaining in the credit note that the customer + can use. + example: 20 + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + line_items: + type: array + items: + $ref: '#/components/schemas/CreditNoteLineItem' + readOnly: true + example: + - item: 0e3fd929-436c-4fd4-a48b-0c61f68d6178 + name: Basic Monthly + description: prorated amount for items + quantity: 1 + memo: privNote + unit_price: '5.0' + tax_rate: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + total_line_amount: '5.0' + tracking_categories: + - 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + account: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_id: '121222' + remote_was_deleted: true + x-merge-expands-to: CreditNoteLineItem + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The credit note's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's credit note was created. + example: '2020-03-31T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's credit note was updated. + example: '2020-03-31T00:00:00Z' + payments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Payment' + nullable: true + example: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + description: Array of `Payment` object IDs + x-merge-expands-to: Payment + applied_payments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentLineItem' + nullable: true + example: + - a9a94a75-19c1-41fe-90d8-d9ba959c38e5 + description: A list of the Payment Applied to Lines common models related + to a given Invoice, Credit Note, or Journal Entry. + x-merge-expands-to: PaymentLineItemWithPayment + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the CreditNote was generated in. + example: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + x-merge-expands-to: AccountingPeriod + applied_to_lines: + type: array + items: + $ref: '#/components/schemas/CreditNoteApplyLineForCreditNote' + description: A list of the CreditNote Applied to Lines common models related + to a given Credit Note + example: + - invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-expands: '{"accounting_period": "AccountingPeriod", "applied_payments": + "PaymentLineItemWithPayment", "company": "CompanyInfo", "contact": "Contact", + "line_items": "CreditNoteLineItem", "payments": "Payment", "tracking_categories": + "TrackingCategory"}' + x-merge-category: accounting + CreditNoteApplyLineForCreditNote: + type: object + description: |- + # The CreditNoteApplyLine Object + ### Description + The `CreditNoteApplyLine` is attached to the CreditNote model. + + ### Usage Example + Fetch from the `GET CreditNote` endpoint and view the invoice's applied to lines. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + invoice: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Invoice' + nullable: true + example: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + x-merge-expands-to: Invoice + applied_date: + type: string + format: date-time + nullable: true + description: Date that the credit note is applied to the invoice. + example: '2020-03-31T00:00:00Z' + applied_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The amount of the Credit Note applied to the invoice. + example: '2.9' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-expands: '{"invoice": "Invoice"}' + x-merge-category: accounting + CreditNoteApplyLineForCreditNoteRequest: + type: object + description: |- + # The CreditNoteApplyLine Object + ### Description + The `CreditNoteApplyLine` is attached to the CreditNote model. + + ### Usage Example + Fetch from the `GET CreditNote` endpoint and view the invoice's applied to lines. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + invoice: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Invoice' + nullable: true + example: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + x-merge-expands-to: Invoice + applied_date: + type: string + format: date-time + nullable: true + description: Date that the credit note is applied to the invoice. + example: '2020-03-31T00:00:00Z' + applied_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The amount of the Credit Note applied to the invoice. + example: '2.9' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"invoice": "Invoice"}' + x-merge-category: accounting + CreditNoteApplyLineForInvoice: + type: object + description: |- + # The CreditNoteApplyLine Object + ### Description + The `CreditNoteApplyLine` is attached to the CreditNote model. + + ### Usage Example + Fetch from the `GET CreditNote` endpoint and view the invoice's applied to lines. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + credit_note: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CreditNote' + nullable: true + example: dd7ae92086acb2fc9c2739de564ef8e9571f7263 + x-merge-expands-to: CreditNote + applied_date: + type: string + format: date-time + nullable: true + description: Date that the credit note is applied to the invoice. + example: '2020-03-31T00:00:00Z' + applied_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The amount of the Credit Note applied to the invoice. + example: '2.9' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-expands: '{"credit_note": "CreditNote"}' + x-merge-category: accounting + CreditNoteEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/CreditNoteRequest' + required: + - model + x-merge-category: accounting + CreditNoteLineItem: + type: object + description: |- + # The CreditNoteLineItem Object + ### Description + The `CreditNoteLineItem` object is used to represent a credit note's line items. + + ### Usage Example + Fetch from the `GET CreditNote` endpoint and view the credit note's line items. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '121222' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + item: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Item' + nullable: true + example: 0e3fd929-436c-4fd4-a48b-0c61f68d6178 + x-merge-expands-to: Item + name: + type: string + nullable: true + description: The credit note line item's name. + example: Basic Monthly + description: + type: string + nullable: true + description: The description of the item that is owed. + example: prorated amount for items + quantity: + type: string + format: decimal + pattern: ^-?\d{0,24}(?:\.\d{0,8})?$ + nullable: true + description: The credit note line item's quantity. + example: 1 + memo: + type: string + nullable: true + description: The credit note line item's memo. + example: privNote + unit_price: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The credit note line item's unit price. + example: '5.0' + tax_rate: + type: string + format: uuid + nullable: true + example: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + description: The tax rate that applies to this line item. + total_line_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The credit note line item's total. + example: '5.0' + tracking_category: + type: string + format: uuid + nullable: true + description: The credit note line item's associated tracking category. + deprecated: true + tracking_categories: + type: array + items: + type: string + format: uuid + nullable: true + example: + - 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The credit note line item's associated tracking categories. + account: + type: string + format: uuid + nullable: true + description: The credit note line item's account. + example: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the credit note belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The credit note's contact. + example: 908934-49j9-093f-0989-908923908 + x-merge-expands-to: Contact + project: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Project' + nullable: true + example: 22e65a5d-2df5-4e6e-884a-e538d0339000 + x-merge-expands-to: Project + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + example: true + x-merge-nested-write-allowed: true + x-merge-expands: '{"company": "CompanyInfo", "contact": "Contact", "item": "Item", + "project": "Project"}' + x-merge-category: accounting + CreditNoteLineItemRequest: + type: object + description: |- + # The CreditNoteLineItem Object + ### Description + The `CreditNoteLineItem` object is used to represent a credit note's line items. + + ### Usage Example + Fetch from the `GET CreditNote` endpoint and view the credit note's line items. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '121222' + item: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Item' + nullable: true + example: 0e3fd929-436c-4fd4-a48b-0c61f68d6178 + x-merge-expands-to: Item + name: + type: string + nullable: true + description: The credit note line item's name. + example: Basic Monthly + description: + type: string + nullable: true + description: The description of the item that is owed. + example: prorated amount for items + quantity: + type: string + format: decimal + pattern: ^-?\d{0,24}(?:\.\d{0,8})?$ + nullable: true + description: The credit note line item's quantity. + example: 1 + memo: + type: string + nullable: true + description: The credit note line item's memo. + example: privNote + unit_price: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The credit note line item's unit price. + example: '5.0' + tax_rate: + type: string + format: uuid + nullable: true + example: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + description: The tax rate that applies to this line item. + total_line_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The credit note line item's total. + example: '5.0' + tracking_category: + type: string + format: uuid + nullable: true + description: The credit note line item's associated tracking category. + deprecated: true + tracking_categories: + type: array + items: + type: string + format: uuid + nullable: true + example: + - 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The credit note line item's associated tracking categories. + account: + type: string + format: uuid + nullable: true + description: The credit note line item's account. + example: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the credit note belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The credit note's contact. + example: 908934-49j9-093f-0989-908923908 + x-merge-expands-to: Contact + project: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Project' + nullable: true + example: 22e65a5d-2df5-4e6e-884a-e538d0339000 + x-merge-expands-to: Project + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"company": "CompanyInfo", "contact": "Contact", "item": "Item", + "project": "Project"}' + x-merge-category: accounting + CreditNoteRequest: + type: object + description: |- + # The CreditNote Object + ### Description + A `CreditNote` is transaction issued to a customer, indicating a reduction or cancellation of the amount owed by the customer. It is most generally used as an adjustment note used to rectify errors, returns, or overpayments related to a sales transaction. A `CreditNote` can be applied to *Accounts Receivable* Invoices to decrease the overall amount of the Invoice. + + ### Usage Example + Fetch from the `LIST CreditNotes` endpoint and view a company's credit notes. + properties: + transaction_date: + type: string + format: date-time + nullable: true + description: The credit note's transaction date. + example: '2020-03-31T00:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/CreditNoteStatusEnum' + - type: string + nullable: true + description: |- + The credit note's status. + + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + example: PAID + number: + type: string + nullable: true + description: The credit note's number. + example: CN-29 + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The credit note's contact. + example: c6c7b870-bb4d-489a-921e-2f0ee4192ff9 + x-merge-expands-to: Contact + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the credit note belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The credit note's exchange rate. + example: '2.9' + total_amount: + type: number + format: double + nullable: true + description: The credit note's total amount. + example: 50 + remaining_credit: + type: number + format: double + nullable: true + description: The amount of value remaining in the credit note that the customer + can use. + example: 20 + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + line_items: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CreditNoteLineItemRequest' + example: + - item: 0e3fd929-436c-4fd4-a48b-0c61f68d6178 + name: Basic Monthly + description: prorated amount for items + quantity: 1 + memo: privNote + unit_price: '5.0' + tax_rate: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + total_line_amount: '5.0' + tracking_categories: + - 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + account: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_id: '121222' + remote_was_deleted: true + x-merge-expands-to: CreditNoteLineItem + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The credit note's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + payments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Payment' + nullable: true + example: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + description: Array of `Payment` object IDs + x-merge-expands-to: Payment + applied_payments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentLineItem' + nullable: true + example: + - a9a94a75-19c1-41fe-90d8-d9ba959c38e5 + description: A list of the Payment Applied to Lines common models related + to a given Invoice, Credit Note, or Journal Entry. + x-merge-expands-to: PaymentLineItemWithPayment + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the CreditNote was generated in. + example: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + x-merge-expands-to: AccountingPeriod + applied_to_lines: + type: array + items: + $ref: '#/components/schemas/CreditNoteApplyLineForCreditNoteRequest' + description: A list of the CreditNote Applied to Lines common models related + to a given Credit Note + example: + - invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"accounting_period": "AccountingPeriod", "applied_payments": + "PaymentLineItemWithPayment", "company": "CompanyInfo", "contact": "Contact", + "line_items": "CreditNoteLineItem", "payments": "Payment", "tracking_categories": + "TrackingCategory"}' + x-merge-category: accounting + CreditNoteResponse: + type: object + properties: + model: + $ref: '#/components/schemas/CreditNote' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + CreditNoteStatusEnum: + enum: + - SUBMITTED + - AUTHORIZED + - PAID + type: string + description: |- + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + x-merge-category: accounting + CreditOrDebitEnum: + enum: + - CREDIT + - DEBIT + type: string + description: |- + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + x-merge-category: accounting + DataPassthroughRequest: + type: object + description: |- + # The DataPassthrough Object + ### Description + The `DataPassthrough` object is used to send information to an otherwise-unsupported third-party endpoint. + + ### Usage Example + Create a `DataPassthrough` to get team hierarchies from your Rippling integration. + properties: + method: + allOf: + - $ref: '#/components/schemas/MethodEnum' + example: POST + path: + type: string + minLength: 1 + description: The path of the request in the third party's platform. + example: /scooters + base_url_override: + type: string + nullable: true + minLength: 1 + description: An optional override of the third party's base url for the + request. + example: https://api.example.com + data: + type: string + nullable: true + minLength: 1 + description: The data with the request. You must include a `request_format` + parameter matching the data's format + example: '{"company": "Lime", "model": "Gen 2.5"}' + multipart_form_data: + type: array + items: + $ref: '#/components/schemas/MultipartFormFieldRequest' + nullable: true + description: Pass an array of `MultipartFormField` objects in here instead + of using the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: object + additionalProperties: {} + nullable: true + description: The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for passthrough. + Choose content type corresponding to expected format of receiving server. + example: + EXTRA-HEADER: value + request_format: + allOf: + - $ref: '#/components/schemas/RequestFormatEnum' + nullable: true + example: JSON + normalize_response: + type: boolean + description: 'Optional. If true, the response will always be an object of + the form `{"type": T, "value": ...}` where `T` will be one of `string, + boolean, number, null, array, object`.' + required: + - method + - path + x-merge-category: accounting + DebugModeLog: + type: object + properties: + log_id: + type: string + example: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: + type: string + example: https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + $ref: '#/components/schemas/DebugModelLogSummary' + example: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + required: + - dashboard_view + - log_id + - log_summary + x-merge-sample-json: '{"log_id": "99433219-8017-4acd-bb3c-ceb23d663832", "dashboard_view": + "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", "log_summary": + {"url": "www.exampleintegration.com/api/v1/exampleapi", "method": "POST", + "status_code": 200}}' + x-merge-category: accounting + DebugModelLogSummary: + type: object + properties: + url: + type: string + example: www.exampleintegration.com/api/v1/exampleapi + method: + type: string + example: POST + status_code: + type: integer + example: 200 + required: + - method + - status_code + - url + x-merge-sample-json: '{"url": "www.exampleintegration.com/api/v1/exampleapi", + "method": "POST", "status_code": 200}' + x-merge-category: accounting + Employee: + type: object + description: |- + # The Employee Object + ### Description + An `Employee` is an individual who works for the company of the linked account. The `Employee` model contains both contractors and full time employees. + * An `Employee` is a contractor if `is_contractor` property is `True` + * An `Employee` is a full time employee if `is_contractor` property is `False` + + ### Usage Example + Fetch from the `LIST Employees` endpoint and view a company's employees. + properties: + id: + type: string + format: uuid + readOnly: true + example: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '11167' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + first_name: + type: string + nullable: true + description: The employee's first name. + maxLength: 255 + example: John + last_name: + type: string + nullable: true + description: The employee's last name. + maxLength: 255 + example: Smith + is_contractor: + type: boolean + nullable: true + description: '`True` if the employee is a contractor, `False` if not.' + example: true + employee_number: + type: string + nullable: true + description: The employee's internal identification number. + maxLength: 50 + example: '325462' + email_address: + type: string + nullable: true + description: The employee's email address. + example: johnsmith@merge.dev + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The subsidiary that the employee belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + status: + oneOf: + - $ref: '#/components/schemas/Status895Enum' + - type: string + description: |- + The employee's status in the accounting system. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + example: ACTIVE + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + required: + - status + x-merge-expands: '{"company": "Company", "employments": "Employment", "groups": + "Group", "home_location": "Location", "manager": "Employee", "pay_group": + "PayGroup", "team": "Team", "work_location": "Location"}' + x-merge-category: accounting + EnabledActionsEnum: + enum: + - READ + - WRITE + type: string + description: |- + * `READ` - READ + * `WRITE` - WRITE + x-merge-category: accounting + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + type: string + description: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + x-merge-category: accounting + EndUserDetailsRequest: + type: object + properties: + end_user_email_address: + type: string + minLength: 1 + description: Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be sent. + maxLength: 100 + example: example@gmail.com + end_user_organization_name: + type: string + minLength: 1 + description: Your end user's organization. + maxLength: 100 + example: Test Organization + end_user_origin_id: + type: string + minLength: 1 + description: This unique identifier typically represents the ID for your + end user in your product's database. This value must be distinct from + other Linked Accounts' unique identifiers. + maxLength: 100 + example: '12345' + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: The integration categories to show in Merge Link. + example: + - hris + - ats + integration: + type: string + nullable: true + minLength: 1 + description: The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see https://docs.merge.dev/guides/merge-link/single-integration/. + example: bamboohr + link_expiry_mins: + type: integer + maximum: 10080 + minimum: 30 + default: 30 + description: An integer number of minutes between [30, 720 or 10080 if for + a Magic Link URL] for how long this token is valid. Defaults to 30. + should_create_magic_link_url: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + hide_admin_magic_link: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information on Magic + Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + common_models: + type: array + items: + $ref: '#/components/schemas/CommonModelScopesBodyRequest' + nullable: true + description: An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses model_id, enabled_actions, + and disabled_fields to specify the model, method, and fields that are + scoped for a given Linked Account. + category_common_model_scopes: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + nullable: true + description: When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be linked. Any + model or field not specified in link token payload will default to existing + settings. + example: + hris: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - first_name + - last_name + - personal_email + disabled_fields: + - preferred_name + - model_name: Employment + model_permissions: + READ: + is_enabled: false + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - effective_date + ats: + - model_name: Job + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - name + disabled_fields: + - description + - model_name: Department + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + language: + oneOf: + - $ref: '#/components/schemas/LanguageEnum' + - type: string + nullable: true + description: |- + The following subset of IETF language tags can be used to configure localization. + + * `en` - en + * `de` - de + example: en + are_syncs_disabled: + type: boolean + nullable: true + default: false + description: The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + integration_specific_config: + type: object + additionalProperties: {} + nullable: true + description: A JSON object containing integration-specific configuration + options. + example: + rippling: + oauth_code: 3h1jj8ssdf31dfji3o1jjdfjasd + required: + - categories + - end_user_email_address + - end_user_organization_name + - end_user_origin_id + x-merge-category: accounting + ErrorValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /model/custom_fields + title: + type: string + example: Missing Required Field + detail: + type: string + example: custom_fields is a required field on model. + problem_type: + type: string + example: MISSING_REQUIRED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: accounting + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + type: string + description: |- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + x-merge-category: accounting + Expense: + type: object + description: |- + # The Expense Object + ### Description + The `Expense` object is used to represent a direct purchase by a business, typically made with a check, credit card, or cash. Each `Expense` object is dedicated to a grouping of expenses, with each expense recorded in the lines object. + + The `Expense` object is used also used to represent refunds to direct purchases. Refunds can be distinguished from purchases by the amount sign of the records. Expense objects with a negative amount are purchases and `Expense` objects with a positive amount are refunds to those purchases. + + ### Usage Example + Fetch from the `GET Expense` endpoint and view a company's expense. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + transaction_date: + type: string + format: date-time + nullable: true + description: When the transaction occurred. + remote_created_at: + type: string + format: date-time + nullable: true + description: When the expense was created. + example: '2020-03-31T00:00:00Z' + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The expense's payment account. + example: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + x-merge-expands-to: Account + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The expense's contact. + example: 3d263469-51a1-4766-9205-f6c997826be1 + x-merge-expands-to: Contact + total_amount: + type: number + format: double + nullable: true + description: The expense's total amount. + example: 10000 + sub_total: + type: number + format: double + nullable: true + description: The expense's total amount before tax. + total_tax_amount: + type: number + format: double + nullable: true + description: The expense's total tax amount. + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The expense's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The expense's exchange rate. + example: '2.9' + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the expense belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee this overall transaction relates to. + example: 7442f0d5-722d-45bd-b807-6e38489d37fe + x-merge-expands-to: Employee + memo: + type: string + nullable: true + description: The expense's private note. + example: New employee supplies + lines: + type: array + items: + $ref: '#/components/schemas/ExpenseLine' + example: + - remote_id: '121222' + net_amount: 25.54 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + account: 2a56344a-a491-11ec-b909-0242ac120002 + contact: c640b80b-fac9-409f-aa19-1f9221aec445 + description: MacBook Pro + exchange_rate: '2.9' + remote_was_deleted: false + - remote_id: '121223' + net_amount: 10 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + account: 2a56344a-a491-11ec-b909-0242ac120002 + description: Desk Lamp + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the Expense was generated in. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: AccountingPeriod + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"account": "Account", "accounting_period": "AccountingPeriod", + "company": "CompanyInfo", "contact": "Contact", "employee": "Employee", "tracking_categories": + "TrackingCategory"}' + x-merge-category: accounting + ExpenseEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/ExpenseRequest' + required: + - model + x-merge-category: accounting + ExpenseLine: + type: object + description: |- + # The ExpenseLine Object + ### Description + The `ExpenseLine` object is used to represent an expense's line items. + + ### Usage Example + Fetch from the `GET Expense` endpoint and view the expense's line items. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '121222' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + item: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Item' + nullable: true + description: The line's item. + example: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + x-merge-expands-to: Item + net_amount: + type: number + format: double + nullable: true + description: The line's net amount. + example: 25.54 + tracking_category: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + deprecated: true + x-merge-expands-to: TrackingCategory + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The expense line item's associated tracking categories. + x-merge-expands-to: TrackingCategory + company: + type: string + format: uuid + nullable: true + description: The company the expense belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee this overall transaction relates to. + example: 7442f0d5-722d-45bd-b807-6e38489d37fe + x-merge-expands-to: Employee + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + = type: string + nullable: true + description: |- + The expense line item's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The expense's payment account. + example: 2a56344a-a491-11ec-b909-0242ac120002 + x-merge-expands-to: Account + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The expense's contact. + example: c640b80b-fac9-409f-aa19-1f9221aec445 + x-merge-expands-to: Contact + project: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Project' + nullable: true + example: 22e65a5d-2df5-4e6e-884a-e538d0339000 + x-merge-expands-to: Project + description: + type: string + nullable: true + description: The description of the item that was purchased by the company. + example: MacBook Pro + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The expense line item's exchange rate. + example: '2.9' + tax_rate: + type: string + format: uuid + nullable: true + example: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: The tax rate that applies to this line item. + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-expands: '{"account": "Account", "contact": "Contact", "employee": "Employee", + "item": "Item", "project": "Project", "tracking_categories": "TrackingCategory", + "tracking_category": "TrackingCategory"}' + x-merge-category: accounting + ExpenseLineRequest: + type: object + description: |- + # The ExpenseLine Object + ### Description + The `ExpenseLine` object is used to represent an expense's line items. + + ### Usage Example + Fetch from the `GET Expense` endpoint and view the expense's line items. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '121222' + item: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Item' + nullable: true + description: The line's item. + example: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + x-merge-expands-to: Item + net_amount: + type: number + format: double + nullable: true + description: The line's net amount. + example: 25.54 + tracking_category: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + deprecated: true + x-merge-expands-to: TrackingCategory + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The expense line item's associated tracking categories. + x-merge-expands-to: TrackingCategory + company: + type: string + format: uuid + nullable: true + description: The company the expense belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee this overall transaction relates to. + example: 7442f0d5-722d-45bd-b807-6e38489d37fe + x-merge-expands-to: Employee + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The expense line item's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The expense's payment account. + example: 2a56344a-a491-11ec-b909-0242ac120002 + x-merge-expands-to: Account + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The expense's contact. + example: c640b80b-fac9-409f-aa19-1f9221aec445 + x-merge-expands-to: Contact + project: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Project' + nullable: true + example: 22e65a5d-2df5-4e6e-884a-e538d0339000 + x-merge-expands-to: Project + description: + type: string + nullable: true + description: The description of the item that was purchased by the company. + example: MacBook Pro + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The expense line item's exchange rate. + example: '2.9' + tax_rate: + type: string + format: uuid + nullable: true + example: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: The tax rate that applies to this line item. + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account", "contact": "Contact", "employee": "Employee", + "item": "Item", "project": "Project", "tracking_categories": "TrackingCategory", + "tracking_category": "TrackingCategory"}' + x-merge-category: accounting + ExpenseRequest: + type: object + description: |- + # The Expense Object + ### Description + The `Expense` object is used to represent a direct purchase by a business, typically made with a check, credit card, or cash. Each `Expense` object is dedicated to a grouping of expenses, with each expense recorded in the lines object. + + The `Expense` object is used also used to represent refunds to direct purchases. Refunds can be distinguished from purchases by the amount sign of the records. Expense objects with a negative amount are purchases and `Expense` objects with a positive amount are refunds to those purchases. + + ### Usage Example + Fetch from the `GET Expense` endpoint and view a company's expense. + properties: + transaction_date: + type: string + format: date-time + nullable: true + description: When the transaction occurred. + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The expense's payment account. + example: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + x-merge-expands-to: Account + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The expense's contact. + example: 3d263469-51a1-4766-9205-f6c997826be1 + x-merge-expands-to: Contact + total_amount: + type: number + format: double + nullable: true + description: The expense's total amount. + example: 10000 + sub_total: + type: number + format: double + nullable: true + description: The expense's total amount before tax. + total_tax_amount: + type: number + format: double + nullable: true + description: The expense's total tax amount. + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + = type: string + nullable: true + description: |- + The expense's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The expense's exchange rate. + example: '2.9' + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the expense belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee this overall transaction relates to. + example: 7442f0d5-722d-45bd-b807-6e38489d37fe + x-merge-expands-to: Employee + memo: + type: string + nullable: true + description: The expense's private note. + example: New employee supplies + lines: + type: array + items: + $ref: '#/components/schemas/ExpenseLineRequest' + example: + - remote_id: '121222' + net_amount: 25.54 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + account: 2a56344a-a491-11ec-b909-0242ac120002 + contact: c640b80b-fac9-409f-aa19-1f9221aec445 + description: MacBook Pro + exchange_rate: '2.9' + remote_was_deleted: false + - remote_id: '121223' + net_amount: 10 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + account: 2a56344a-a491-11ec-b909-0242ac120002 + description: Desk Lamp + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the Expense was generated in. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: AccountingPeriod + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account", "accounting_period": "AccountingPeriod", + "company": "CompanyInfo", "contact": "Contact", "employee": "Employee", "tracking_categories": + "TrackingCategory"}' + x-merge-category: accounting + ExpenseResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Expense' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + ExternalTargetFieldAPI: + type: object + properties: + name: + type: string + nullable: true + readOnly: true + example: example_target_field_name + description: + type: string + nullable: true + readOnly: true + example: this is a example description of a target field + is_mapped: + type: string + nullable: true + readOnly: true + example: true + x-merge-category: accounting + ExternalTargetFieldAPIResponse: + type: object + properties: + Account: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + AccountingAttachment: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + BalanceSheet: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + CashFlowStatement: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + CompanyInfo: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Contact: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + IncomeStatement: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + CreditNote: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Item: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + PurchaseOrder: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + TrackingCategory: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + JournalEntry: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + TaxRate: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Invoice: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Payment: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Expense: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + VendorCredit: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Transaction: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + AccountingPeriod: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + GeneralLedgerTransaction: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + BankFeedAccount: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Employee: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + PaymentMethod: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Project: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + PaymentTerm: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + x-merge-category: accounting + FeedStatusEnum: + enum: + - ACTIVE + - INACTIVE + type: string + description: |- + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + x-merge-category: accounting + FieldFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + x-merge-category: accounting + FieldMappingApiInstance: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: + type: boolean + readOnly: true + target_field: + type: object + properties: + name: + type: string + description: + type: string + is_organization_wide: + type: boolean + required: + - description + - is_organization_wide + - name + nullable: true + readOnly: true + example: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + type: object + properties: + remote_key_name: + type: string + nullable: true + schema: + type: object + additionalProperties: {} + nullable: true + remote_endpoint_info: + type: object + properties: + method: + type: string + nullable: true + url_path: + type: string + nullable: true + field_traversal_path: + type: array + items: + type: string + nullable: true + required: + - field_traversal_path + - method + - url_path + required: + - remote_endpoint_info + - remote_key_name + - schema + nullable: true + readOnly: true + example: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + x-merge-category: accounting + FieldMappingApiInstanceResponse: + type: object + properties: + Account: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + AccountingAttachment: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + BalanceSheet: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + CashFlowStatement: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + CompanyInfo: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Contact: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + IncomeStatement: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + CreditNote: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Item: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + PurchaseOrder: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + TrackingCategory: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + JournalEntry: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + TaxRate: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Invoice: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Payment: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Expense: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + VendorCredit: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Transaction: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + AccountingPeriod: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + GeneralLedgerTransaction: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + BankFeedAccount: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Employee: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + PaymentMethod: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Project: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + PaymentTerm: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + x-merge-category: accounting + FieldMappingInstanceResponse: + type: object + properties: + model: + $ref: '#/components/schemas/FieldMappingApiInstance' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + FieldPermissionDeserializer: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: accounting + FieldPermissionDeserializerRequest: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: accounting + FieldTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + x-merge-category: accounting + GeneralLedgerTransaction: + type: object + description: |- + # The GeneralLedgerTransaction Object + ### Description + A General Ledger Entry is a record of a financial transaction that is posted to the general ledger, the central repository of a company’s financial data. + + The `GeneralLedgerTransaction` object is a singular endpoint to pull all transactions posted to a company’s general ledger. The transaction that generated the `GeneralLedgerTransaction` can be found by referencing the `underlying_transaction_type` and `underlying_transaction_remote_id` fields. + + The lines of a `GeneralLedgerTransaction` object will always have equal amounts of debits and credits. + + ### Usage Example + Fetch from the `GET GeneralLedgerTransaction` endpoint and view a general ledger transaction. + properties: + id: + type: string + format: uuid + readOnly: true + example: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '987300' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + underlying_transaction_remote_id: + type: string + nullable: true + description: The third party remote ID of the underlying transaction. + maxLength: 50 + example: '1234' + underlying_transaction_type: + oneOf: + - $ref: '#/components/schemas/UnderlyingTransactionTypeEnum' + - type: string + nullable: true + description: |- + The type of the underlying transaction. + + * `INVOICE` - INVOICE + * `EXPENSE` - EXPENSE + * `TRANSACTION` - TRANSACTION + * `JOURNAL_ENTRY` - JOURNAL_ENTRY + * `PAYMENT` - PAYMENT + * `VENDOR_CREDIT` - VENDOR_CREDIT + * `CREDIT_NOTE` - CREDIT_NOTE + example: INVOICE + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the GeneralLedgerTransaction was + generated in. + example: d6e687d6-0c36-48a1-8114-35324b5cb38f + x-merge-expands-to: AccountingPeriod + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the GeneralLedgerTransaction belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's GeneralLedgerTransaction entry was updated. + example: '2020-03-31T00:00:00Z' + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's GeneralLedgerTransaction entry was created. + example: '2020-03-31T00:00:00Z' + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + posting_date: + type: string + format: date-time + nullable: true + description: The date that the transaction was posted to the general ledger. + example: '2020-03-31T00:00:00Z' + general_ledger_transaction_lines: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/GeneralLedgerTransactionLine' + readOnly: true + example: + - remote_id: '123' + account: a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + contact: d6e687d6-0c36-48a1-8114-35324b5cb38f + base_currency: USD + transaction_currency: USD + description: Invoice created + exchange_rate: 1 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + debit_amount: 0 + crebit_amount: 123.5 + item: a47e11b6-c73b-4a0c-be31-130fc48177fa + foreign_debit_amount: 0 + foreign_credit_amount: 123.5 + remote_was_deleted: false + remote_data: + - path: /actions + data: + - Varies by platform + description: A list of “General Ledger Transaction Applied to Lines” objects. + x-merge-expands-to: GeneralLedgerTransactionLine + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-expands: '{"accounting_period": "AccountingPeriod", "company": "CompanyInfo", + "general_ledger_transaction_lines": "GeneralLedgerTransactionLine", "tracking_categories": + "TrackingCategory"}' + x-merge-category: accounting + GeneralLedgerTransactionLine: + type: object + description: |- + # The GeneralLedgerTransactionLineSerializer Object + ### Description + The `GeneralLedgerTransactionLineSerializer` object represents general ledger transaction line item. + + ### Usage Example Fetch from the `GET GeneralLedgerTransactionLineSerializer` endpoint and view an + `GeneralLedgerTransaction` line item. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '123' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + example: a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: Account + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the GeneralLedgerTransaction belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + example: 7442f0d5-722d-45bd-b807-6e38489d37fe + x-merge-expands-to: Employee + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + example: d6e687d6-0c36-48a1-8114-35324b5cb38f + x-merge-expands-to: Contact + project: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Project' + nullable: true + example: 22e65a5d-2df5-4e6e-884a-e538d0339000 + x-merge-expands-to: Project + base_currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + = type: string + nullable: true + description: |- + The base currency of the transaction + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + transaction_currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The transaction currency that the transaction is made in. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The exchange rate between the base currency and the transaction + currency. + example: 1 + description: + type: string + nullable: true + description: A description of the line item. + example: Invoice created + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + readOnly: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + debit_amount: + type: string + format: decimal + credit_amount: + type: string + format: decimal + item: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Item' + nullable: true + example: a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: Item + foreign_debit_amount: + type: string + format: decimal + foreign_credit_amount: + type: string + format: decimal + example: 123.5 + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + required: + - credit_amount + - debit_amount + - foreign_credit_amount + - foreign_debit_amount + x-merge-nested-write-allowed: true + x-merge-expands: '{"account": "Account", "company": "CompanyInfo", "contact": + "Contact", "employee": "Employee", "item": "Item", "project": "Project"}' + x-merge-category: accounting + GenerateRemoteKeyRequest: + type: object + description: |- + # The GenerateRemoteKey Object + ### Description + The `GenerateRemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to create a new remote key. + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: accounting + IncomeStatement: + type: object + description: |- + # The IncomeStatement Object + ### Description + The `IncomeStatement` object is used to represent a company’s income, the cost of sales, operating expenses, and other non-operating expenses. The object also includes other important values like gross profit, gross operating profit, and net income. This represents a period of time (month, quarter, or year). + + ### Usage Example + Fetch from the `GET IncomeStatement` endpoint and view a company's income statement for a given period. + properties: + id: + type: string + format: uuid + readOnly: true + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '1342348' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The income statement's name. + example: IncomeStatement + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The income statement's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the income statement belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + start_period: + type: string + format: date-time + nullable: true + description: The income statement's start period. + end_period: + type: string + format: date-time + nullable: true + description: The income statement's end period. + income: + type: array + items: + $ref: '#/components/schemas/ReportItem' + readOnly: true + example: + - remote_id: '10299' + name: Total Income + value: 325 + sub_items: + - remote_id: '10200' + name: Landscaping Services + value: 425 + sub_items: [] + - remote_id: '10201' + name: Pest Control Services + value: -100 + sub_items: [] + cost_of_sales: + type: array + items: + $ref: '#/components/schemas/ReportItem' + readOnly: true + example: + - remote_id: '10299' + name: Total COGS + value: 25 + sub_items: + - remote_id: '10200' + name: Supplies + value: 10 + sub_items: [] + gross_profit: + type: number + format: double + nullable: true + description: The revenue minus the cost of sale. + example: 300 + operating_expenses: + type: array + items: + $ref: '#/components/schemas/ReportItem' + readOnly: true + example: + - remote_id: '10299' + name: Total Operating Expenses + value: 100 + sub_items: [] + net_operating_income: + type: number + format: double + nullable: true + description: The revenue minus the operating expenses. + example: 200 + non_operating_expenses: + type: array + items: + $ref: '#/components/schemas/ReportItem' + readOnly: true + example: + - remote_id: '10299' + name: Total Non-Operating Expenses + value: 100 + sub_items: [] + net_income: + type: number + format: double + nullable: true + description: The gross profit minus the total expenses. + example: 100 + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-expands: '{"company": "CompanyInfo"}' + x-merge-category: accounting + IndividualCommonModelScopeDeserializer: + type: object + properties: + model_name: + type: string + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializer' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializer' + required: + - model_name + x-merge-category: accounting + IndividualCommonModelScopeDeserializerRequest: + type: object + properties: + model_name: + type: string + minLength: 1 + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializerRequest' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializerRequest' + required: + - model_name + x-merge-category: accounting + Invoice: + type: object + description: |- + # The Invoice Object + ### Description + The `Invoice` object represents an itemized record of goods and/or services sold to a customer or bought from a vendor. + + + Represents a Bill when the `Invoice` type is `ACCOUNTS_PAYABLE`. References an Invoice when the `Invoice` type is `ACCOUNTS_RECEIVABLE`. + + ### Usage Example + Fetch from the `LIST Invoices` endpoint and view a company's invoices. + properties: + id: + type: string + format: uuid + readOnly: true + example: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '990110' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + type: + oneOf: + - $ref: '#/components/schemas/InvoiceTypeEnum' + = type: string + nullable: true + description: |- + Whether the invoice is an accounts receivable or accounts payable. If `type` is `ACCOUNTS_PAYABLE`, the invoice is a bill. If `type` is `ACCOUNTS_RECEIVABLE`, it is an invoice. + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + example: ACCOUNTS_RECEIVABLE + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The invoice's contact. + example: 022a2bef-57e5-4def-8ed2-7c41bd9a5ed8 + x-merge-expands-to: Contact + number: + type: string + nullable: true + description: The invoice's number. + example: AIQ12546 + issue_date: + type: string + format: date-time + nullable: true + description: The invoice's issue date. + example: '2020-03-31T00:00:00Z' + due_date: + type: string + format: date-time + nullable: true + description: The invoice's due date. + example: '2020-04-15T00:00:00Z' + paid_on_date: + type: string + format: date-time + nullable: true + description: The invoice's paid date. + example: '2020-04-01T00:00:00Z' + memo: + type: string + nullable: true + description: The invoice's private note. + example: Weekly Payment + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the invoice belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee this overall transaction relates to. + example: 7442f0d5-722d-45bd-b807-6e38489d37fe + x-merge-expands-to: Employee + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The invoice's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The invoice's exchange rate. + example: '2.9' + payment_term: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentTerm' + nullable: true + description: The payment term that applies to this transaction. + example: 89d329de-825f-4ac6-8369-3c58b4e68bee + x-merge-expands-to: PaymentTerm + total_discount: + type: number + format: double + nullable: true + description: The total discounts applied to the total cost. + sub_total: + type: number + format: double + nullable: true + description: The total amount being paid before taxes. + example: 100 + status: + oneOf: + - $ref: '#/components/schemas/InvoiceStatusEnum' + - type: string + nullable: true + description: |- + The status of the invoice. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + example: DRAFT + total_tax_amount: + type: number + format: double + nullable: true + description: The total amount being paid in taxes. + example: 5 + total_amount: + type: number + format: double + nullable: true + description: The invoice's total amount. + example: 105 + balance: + type: number + format: double + nullable: true + description: The invoice's remaining balance. + example: 105 + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's invoice entry was updated. + example: '2020-04-01T00:00:00Z' + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + x-merge-expands-to: TrackingCategory + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the Invoice was generated in. + example: 7dc5ca17-d311-44cd-9ce0-333080367a18 + x-merge-expands-to: AccountingPeriod + purchase_orders: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PurchaseOrder' + nullable: true + example: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + x-merge-expands-to: PurchaseOrder + payments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Payment' + nullable: true + example: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + description: Array of `Payment` object IDs. + x-merge-expands-to: Payment + applied_payments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentLineItem' + nullable: true + example: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + description: A list of the Payment Applied to Lines common models related + to a given Invoice, Credit Note, or Journal Entry. + x-merge-expands-to: PaymentLineItemWithPayment + line_items: + type: array + items: + $ref: '#/components/schemas/InvoiceLineItem' + readOnly: true + example: + - remote_id: '8765432' + description: Pickleball lessons + unit_price: 50 + quantity: 1 + total_amount: 50 + currency: USD + exchange_rate: '2.9' + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + item: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + account: cd0f32d4-a493-11ec-b909-0242ac120002 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_data: + - path: /actions + data: + - Varies by platform + x-merge-expands-to: InvoiceLineItem + applied_credit_notes: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CreditNoteApplyLineForInvoice' + readOnly: true + example: + - credit_note: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + description: '`CreditNoteApplyLines` applied to the Invoice.' + x-merge-expands-to: CreditNoteApplyLineForInvoice + applied_vendor_credits: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/VendorCreditApplyLineForInvoice' + readOnly: true + example: + - vendor_credit: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + description: '`VendorCreditApplyLines` applied to the Invoice.' + x-merge-expands-to: VendorCreditApplyLineForInvoice + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"accounting_period": "AccountingPeriod", "applied_credit_notes": + "CreditNoteApplyLineForInvoice", "applied_payments": "PaymentLineItemWithPayment", + "applied_vendor_credits": "VendorCreditApplyLineForInvoice", "company": "CompanyInfo", + "contact": "Contact", "employee": "Employee", "line_items": "InvoiceLineItem", + "payment_term": "PaymentTerm", "payments": "Payment", "purchase_orders": "PurchaseOrder", + "tracking_categories": "TrackingCategory"}' + x-merge-category: accounting + InvoiceEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/InvoiceRequest' + required: + - model + x-merge-category: accounting + InvoiceLineItem: + type: object + description: |- + # The InvoiceLineItem Object + ### Description + The `InvoiceLineItem` object represents an itemized record of goods and/or services sold to a customer. + + ### Usage Example + Fetch from the `GET Invoice` endpoint and view the invoice's line items. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '8765432' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + description: + type: string + nullable: true + description: The line item's description. + example: Pickleball lessons + unit_price: + type: number + format: double + nullable: true + description: The line item's unit price. + example: 50 + quantity: + type: number + format: double + nullable: true + description: The line item's quantity. + example: 1 + total_amount: + type: number + format: double + nullable: true + description: The line item's total amount. + example: 50 + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee this overall transaction relates to. + example: 7442f0d5-722d-45bd-b807-6e38489d37fe + project: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Project' + nullable: true + example: 22e65a5d-2df5-4e6e-884a-e538d0339000 + x-merge-expands-to: Project + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The invoice's contact. + example: 908934-49j9-093f-0989-908923908 + x-merge-expands-to: Contact + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The line item's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The line item's exchange rate. + example: '2.9' + item: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Item' + nullable: true + example: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + x-merge-expands-to: Item + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + example: cd0f32d4-a493-11ec-b909-0242ac120002 + x-merge-expands-to: Account + tax_rate: + type: string + format: uuid + nullable: true + example: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: The tax rate that applies to this line item. + tracking_category: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + deprecated: true + x-merge-expands-to: TrackingCategory + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The invoice line item's associated tracking categories. + x-merge-expands-to: TrackingCategory + company: + type: string + format: uuid + nullable: true + description: The company the invoice belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-nested-write-allowed: true + x-merge-expands: '{"account": "Account", "contact": "Contact", "item": "Item", + "project": "Project", "tracking_categories": "TrackingCategory", "tracking_category": + "TrackingCategory"}' + x-merge-category: accounting + InvoiceLineItemRequest: + type: object + description: |- + # The InvoiceLineItem Object + ### Description + The `InvoiceLineItem` object represents an itemized record of goods and/or services sold to a customer. + + ### Usage Example + Fetch from the `GET Invoice` endpoint and view the invoice's line items. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '8765432' + description: + type: string + nullable: true + description: The line item's description. + example: Pickleball lessons + unit_price: + type: number + format: double + nullable: true + description: The line item's unit price. + example: 50 + quantity: + type: number + format: double + nullable: true + description: The line item's quantity. + example: 1 + total_amount: + type: number + format: double + nullable: true + description: The line item's total amount. + example: 50 + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee this overall transaction relates to. + example: 7442f0d5-722d-45bd-b807-6e38489d37fe + project: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Project' + nullable: true + example: 22e65a5d-2df5-4e6e-884a-e538d0339000 + x-merge-expands-to: Project + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The invoice's contact. + example: 908934-49j9-093f-0989-908923908 + x-merge-expands-to: Contact + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The line item's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The line item's exchange rate. + example: '2.9' + item: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Item' + nullable: true + example: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + x-merge-expands-to: Item + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + example: cd0f32d4-a493-11ec-b909-0242ac120002 + x-merge-expands-to: Account + tax_rate: + type: string + format: uuid + nullable: true + example: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: The tax rate that applies to this line item. + tracking_category: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + deprecated: true + x-merge-expands-to: TrackingCategory + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The invoice line item's associated tracking categories. + x-merge-expands-to: TrackingCategory + company: + type: string + format: uuid + nullable: true + description: The company the invoice belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account", "contact": "Contact", "item": "Item", + "project": "Project", "tracking_categories": "TrackingCategory", "tracking_category": + "TrackingCategory"}' + x-merge-category: accounting + InvoiceRequest: + type: object + description: |- + # The Invoice Object + ### Description + The `Invoice` object represents an itemized record of goods and/or services sold to a customer or bought from a vendor. + + + Represents a Bill when the `Invoice` type is `ACCOUNTS_PAYABLE`. References an Invoice when the `Invoice` type is `ACCOUNTS_RECEIVABLE`. + + ### Usage Example + Fetch from the `LIST Invoices` endpoint and view a company's invoices. + properties: + type: + oneOf: + - $ref: '#/components/schemas/InvoiceTypeEnum' + - type: string + nullable: true + description: |- + Whether the invoice is an accounts receivable or accounts payable. If `type` is `ACCOUNTS_PAYABLE`, the invoice is a bill. If `type` is `ACCOUNTS_RECEIVABLE`, it is an invoice. + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The invoice's contact. + x-merge-expands-to: Contact + number: + type: string + nullable: true + description: The invoice's number. + issue_date: + type: string + format: date-time + nullable: true + description: The invoice's issue date. + due_date: + type: string + format: date-time + nullable: true + description: The invoice's due date. + paid_on_date: + type: string + format: date-time + nullable: true + description: The invoice's paid date. + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee this overall transaction relates to. + x-merge-expands-to: Employee + memo: + type: string + nullable: true + description: The invoice's private note. + status: + oneOf: + - $ref: '#/components/schemas/InvoiceStatusEnum' + - type: string + nullable: true + description: |- + The status of the invoice. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the invoice belongs to. + x-merge-expands-to: CompanyInfo + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The invoice's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The invoice's exchange rate. + total_discount: + type: number + format: double + nullable: true + description: The total discounts applied to the total cost. + sub_total: + type: number + format: double + nullable: true + description: The total amount being paid before taxes. + payment_term: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentTerm' + nullable: true + description: The payment term that applies to this transaction. + x-merge-expands-to: PaymentTerm + total_tax_amount: + type: number + format: double + nullable: true + description: The total amount being paid in taxes. + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + total_amount: + type: number + format: double + nullable: true + description: The invoice's total amount. + balance: + type: number + format: double + nullable: true + description: The invoice's remaining balance. + payments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Payment' + nullable: true + description: Array of `Payment` object IDs. + x-merge-expands-to: Payment + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + x-merge-expands-to: TrackingCategory + line_items: + type: array + items: + $ref: '#/components/schemas/InvoiceLineItemRequest' + x-merge-expands-to: InvoiceLineItem + purchase_orders: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PurchaseOrder' + nullable: true + x-merge-expands-to: PurchaseOrder + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"accounting_period": "AccountingPeriod", "applied_credit_notes": + "CreditNoteApplyLineForInvoice", "applied_payments": "PaymentLineItemWithPayment", + "applied_vendor_credits": "VendorCreditApplyLineForInvoice", "company": "CompanyInfo", + "contact": "Contact", "employee": "Employee", "line_items": "InvoiceLineItem", + "payment_term": "PaymentTerm", "payments": "Payment", "purchase_orders": "PurchaseOrder", + "tracking_categories": "TrackingCategory"}' + x-merge-category: accounting + InvoiceResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Invoice' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + InvoiceStatusEnum: + enum: + - PAID + - DRAFT + - SUBMITTED + - PARTIALLY_PAID + - OPEN + - VOID + type: string + description: |- + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + x-merge-category: accounting + InvoiceTypeEnum: + enum: + - ACCOUNTS_RECEIVABLE + - ACCOUNTS_PAYABLE + type: string + description: |- + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + x-merge-category: accounting + Issue: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: + oneOf: + - $ref: '#/components/schemas/IssueStatusEnum' + - type: string + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + example: ONGOING + error_description: + type: string + example: Missing Permissions + end_user: + type: object + additionalProperties: {} + readOnly: true + example: b82302de-852e-4e60-b050-edf9da3b7c02 + first_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + last_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + is_muted: + type: boolean + readOnly: true + example: true + error_details: + type: array + items: + type: string + readOnly: true + example: + - Missing employee permissions. + - Missing time off permissions. + required: + - error_description + x-merge-category: accounting + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + type: string + description: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + x-merge-category: accounting + Item: + type: object + description: |- + # The Item Object + ### Description + The `Item` object refers to the goods involved in a transaction. + + ### Usage Example + Fetch from the `LIST Items` endpoint and view a company's items. + properties: + id: + type: string + format: uuid + readOnly: true + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '12374' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The item's name. + example: Pickleball Paddle + status: + oneOf: + - $ref: '#/components/schemas/Status7d1Enum' + - type: string + nullable: true + description: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + example: ACTIVE + type: + oneOf: + - $ref: '#/components/schemas/Type2bbEnum' + - type: string + nullable: true + description: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + example: INVENTORY + unit_price: + type: number + format: double + nullable: true + description: The item's unit price. + example: 10 + purchase_price: + type: number + format: double + nullable: true + description: The price at which the item is purchased from a vendor. + example: 25 + purchase_account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: References the default account used to record a purchase of + the item. + example: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + x-merge-expands-to: Account + sales_account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: References the default account used to record a sale. + example: 3872b4c9-f5d2-4f3b-a66b-dfedbed42c49 + x-merge-expands-to: Account + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the item belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + purchase_tax_rate: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TaxRate' + nullable: true + description: The default purchase tax rate for this item. + example: 983e8f97-9qw2-34v9-p123-67bdf98740v5 + x-merge-expands-to: TaxRate + sales_tax_rate: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TaxRate' + nullable: true + description: The default sales tax rate for this item. + example: 232c8f56-7se4-98f2-y334-12bdf89249f5 + x-merge-expands-to: TaxRate + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's item note was updated. + example: '2020-03-31T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-expands: '{"company": "CompanyInfo", "purchase_account": "Account", + "purchase_tax_rate": "TaxRate", "sales_account": "Account", "sales_tax_rate": + "TaxRate"}' + x-merge-category: accounting + ItemEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/ItemRequestRequest' + required: + - model + x-merge-category: accounting + ItemFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - uuid + * `number` - url + * `date` - email + * `datetime` - phone + * `bool` - currency + * `list` - decimal + x-merge-category: accounting + ItemRequestRequest: + type: object + description: |- + # The Item Object + ### Description + The `Item` object refers to the goods involved in a transaction. + + ### Usage Example + Fetch from the `LIST Items` endpoint and view a company's items. + properties: + name: + type: string + nullable: true + description: The item's name. + example: Pickleball Paddle + status: + oneOf: + - $ref: '#/components/schemas/Status7d1Enum' + - type: string + nullable: true + description: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + example: ACTIVE + type: + oneOf: + - $ref: '#/components/schemas/Type2bbEnum' + - type: string + nullable: true + description: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + example: INVENTORY + unit_price: + type: number + format: double + nullable: true + description: The item's unit price. + example: 10 + purchase_price: + type: number + format: double + nullable: true + description: The price at which the item is purchased from a vendor. + example: 25 + purchase_account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: References the default account used to record a purchase of + the item. + example: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + x-merge-expands-to: Account + sales_account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: References the default account used to record a sale. + example: 3872b4c9-f5d2-4f3b-a66b-dfedbed42c49 + x-merge-expands-to: Account + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the item belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + purchase_tax_rate: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TaxRate' + nullable: true + description: The default purchase tax rate for this item. + example: 983e8f97-9qw2-34v9-p123-67bdf98740v5 + x-merge-expands-to: TaxRate + sales_tax_rate: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TaxRate' + nullable: true + description: The default sales tax rate for this item. + example: 232c8f56-7se4-98f2-y334-12bdf89249f5 + x-merge-expands-to: TaxRate + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"company": "CompanyInfo", "purchase_account": "Account", + "purchase_tax_rate": "TaxRate", "sales_account": "Account", "sales_tax_rate": + "TaxRate"}' + x-merge-category: accounting + ItemResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Item' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + ItemSchema: + type: object + properties: + item_type: + $ref: '#/components/schemas/ItemTypeEnum' + item_format: + $ref: '#/components/schemas/ItemFormatEnum' + item_choices: + type: array + items: + type: string + x-merge-category: accounting + ItemTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + x-merge-category: accounting + JournalEntry: + type: object + description: |- + # The JournalEntry Object + ### Description + A `JournalEntry` is a record of a transaction or event that is entered into a company's accounting system. + + The `JournalEntry` common model contains records that are automatically created as a result of a certain type of transaction, like an Invoice, and records that are manually created against a company’s ledger. + + The lines of a given `JournalEntry` object should always sum to 0. A positive `net_amount` means the line represents a debit and a negative net_amount represents a credit. + + ### Usage Example + Fetch from the `GET JournalEntry` endpoint and view a company's journey entry. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + transaction_date: + type: string + format: date-time + nullable: true + description: The journal entry's transaction date. + example: '2020-03-31T00:00:00Z' + payments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Payment' + nullable: true + example: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + description: Array of `Payment` object IDs. + x-merge-expands-to: Payment + applied_payments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentLineItem' + nullable: true + example: + - 4311155d-f236-4a5d-9e0f-1cb167e38f95 + description: A list of the Payment Applied to Lines common models related + to a given Invoice, Credit Note, or Journal Entry. + x-merge-expands-to: PaymentLineItemWithPayment + memo: + type: string + nullable: true + description: The journal entry's private note. + example: Weekly Payment + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The journal's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The journal entry's exchange rate. + example: '2.9' + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the journal entry belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + lines: + type: array + items: + $ref: '#/components/schemas/JournalLine' + readOnly: true + example: + - remote_id: '121222' + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + net_amount: 25.54 + tracking_categories: + - d25d609b-945f-4762-b55a-1c8fb220c43c + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + contact: d2d5ea3c-b032-11ec-b909-0242ac120002 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + employee: 123c8r35-5kf5-12x5-r833-99bwf35210b5 + description: Cash payment for lunch + exchange_rate: '2.9' + remote_was_deleted: false + - remote_id: '121223' + account: f963f34d-3d2f-4f77-b557-cf36bc7e6498 + net_amount: 10 + x-merge-expands-to: JournalLine + journal_number: + type: string + nullable: true + description: Reference number for identifying journal entries. + maxLength: 70 + example: '42' + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + posting_status: + oneOf: + - $ref: '#/components/schemas/PostingStatusEnum' + - type: string + nullable: true + description: |- + The journal's posting status. + + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + example: POSTED + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the JournalEntry was generated in. + example: 655c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: AccountingPeriod + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's journal entry was created. + example: '2020-03-31T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's journal entry was updated. + example: '2020-03-31T00:00:00Z' + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"accounting_period": "AccountingPeriod", "applied_payments": + "PaymentLineItemWithPayment", "company": "CompanyInfo", "lines": "JournalLine", + "payments": "Payment", "tracking_categories": "TrackingCategory"}' + x-merge-category: accounting + JournalEntryEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/JournalEntryRequest' + required: + - model + x-merge-category: accounting + JournalEntryRequest: + type: object + description: |- + # The JournalEntry Object + ### Description + The `JournalEntry` object is used to get a record of all manually created entries made in a company’s general ledger. The journal line items for each journal entry should sum to zero. + + ### Usage Example + Fetch from the `GET JournalEntry` endpoint and view a company's journey entry. + properties: + transaction_date: + type: string + format: date-time + nullable: true + description: The journal entry's transaction date. + payments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Payment' + nullable: true + description: Array of `Payment` object IDs. + x-merge-expands-to: Payment + memo: + type: string + nullable: true + description: The journal entry's private note. + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The journal's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The journal entry's exchange rate. + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the journal entry belongs to. + x-merge-expands-to: CompanyInfo + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + x-merge-expands-to: TrackingCategory + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + lines: + type: array + items: + $ref: '#/components/schemas/JournalLineRequest' + x-merge-expands-to: JournalLine + journal_number: + type: string + nullable: true + description: Reference number for identifying journal entries. + maxLength: 70 + posting_status: + oneOf: + - $ref: '#/components/schemas/PostingStatusEnum' + - type: string + nullable: true + description: |- + The journal's posting status. + + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"accounting_period": "AccountingPeriod", "applied_payments": + "PaymentLineItemWithPayment", "company": "CompanyInfo", "lines": "JournalLine", + "payments": "Payment", "tracking_categories": "TrackingCategory"}' + x-merge-category: accounting + JournalEntryResponse: + type: object + properties: + model: + $ref: '#/components/schemas/JournalEntry' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + JournalLine: + type: object + description: |- + # The JournalLine Object + ### Description + The `JournalLine` object is used to represent a journal entry's line items. + + ### Usage Example + Fetch from the `GET JournalEntry` endpoint and view the journal entry's line items. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '121222' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + example: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + x-merge-expands-to: Account + net_amount: + type: number + format: double + nullable: true + description: The value of the line item including taxes and other fees. + example: 25.54 + tracking_category: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + deprecated: true + x-merge-expands-to: TrackingCategory + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - d25d609b-945f-4762-b55a-1c8fb220c43c + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The journal line item's associated tracking categories. + x-merge-expands-to: TrackingCategory + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The journal line item's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: string + format: uuid + nullable: true + description: The company the journal entry belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: + type: string + format: uuid + nullable: true + example: 123c8r35-5kf5-12x5-r833-99bwf35210b5 + project: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Project' + nullable: true + example: 22e65a5d-2df5-4e6e-884a-e538d0339000 + x-merge-expands-to: Project + contact: + type: string + format: uuid + nullable: true + example: d2d5ea3c-b032-11ec-b909-0242ac120002 + tax_rate: + type: string + format: uuid + nullable: true + example: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: The tax rate that applies to this line item. + description: + type: string + nullable: true + description: The line's description. + example: Cash payment for lunch + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The journal line item's exchange rate. + example: '2.9' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-nested-write-allowed: true + x-merge-expands: '{"account": "Account", "project": "Project", "tracking_categories": + "TrackingCategory", "tracking_category": "TrackingCategory"}' + x-merge-category: accounting + JournalLineRequest: + type: object + description: |- + # The JournalLine Object + ### Description + The `JournalLine` object is used to represent a journal entry's line items. + + ### Usage Example + Fetch from the `GET JournalEntry` endpoint and view the journal entry's line items. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '121222' + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + example: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + x-merge-expands-to: Account + net_amount: + type: number + format: double + nullable: true + description: The value of the line item including taxes and other fees. + example: 25.54 + tracking_category: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + deprecated: true + x-merge-expands-to: TrackingCategory + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - d25d609b-945f-4762-b55a-1c8fb220c43c + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The journal line item's associated tracking categories. + x-merge-expands-to: TrackingCategory + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The journal line item's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: string + format: uuid + nullable: true + description: The company the journal entry belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: + type: string + format: uuid + nullable: true + example: 123c8r35-5kf5-12x5-r833-99bwf35210b5 + project: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Project' + nullable: true + example: 22e65a5d-2df5-4e6e-884a-e538d0339000 + x-merge-expands-to: Project + contact: + type: string + format: uuid + nullable: true + example: d2d5ea3c-b032-11ec-b909-0242ac120002 + tax_rate: + type: string + format: uuid + nullable: true + example: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: The tax rate that applies to this line item. + description: + type: string + nullable: true + description: The line's description. + example: Cash payment for lunch + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The journal line item's exchange rate. + example: '2.9' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account", "project": "Project", "tracking_categories": + "TrackingCategory", "tracking_category": "TrackingCategory"}' + x-merge-category: accounting + LanguageEnum: + enum: + - en + - de + type: string + description: |- + * `en` - en + * `de` - de + x-merge-category: accounting + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: accounting + LinkToken: + type: object + properties: + link_token: + type: string + example: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: + type: string + example: Lever + magic_link_url: + type: string + example: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + required: + - link_token + x-merge-category: accounting + LinkedAccountCommonModelScopeDeserializerRequest: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + required: + - common_models + x-merge-category: accounting + LinkedAccountStatus: + type: object + properties: + linked_account_status: + type: string + can_make_request: + type: boolean + required: + - can_make_request + - linked_account_status + x-merge-category: accounting + MetaResponse: + type: object + properties: + request_schema: + type: object + additionalProperties: {} + example: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + type: object + additionalProperties: {} + status: + $ref: '#/components/schemas/LinkedAccountStatus' + example: + linked_account_status: COMPLETE + can_make_request: true + has_conditional_params: + type: boolean + has_required_linked_account_params: + type: boolean + required: + - has_conditional_params + - has_required_linked_account_params + - request_schema + x-merge-category: accounting + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + type: string + description: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + x-merge-category: accounting + MethodTypeEnum: + enum: + - CREDIT_CARD + - DEBIT_CARD + - ACH + - CASH + - CHECK + type: string + description: |- + * `CREDIT_CARD` - CREDIT_CARD + * `DEBIT_CARD` - DEBIT_CARD + * `ACH` - ACH + * `CASH` - CASH + * `CHECK` - CHECK + x-merge-category: accounting + ModelOperation: + type: object + description: |- + # The ModelOperation Object + ### Description + The `ModelOperation` object is used to represent the operations that are currently supported for a given model. + + ### Usage Example + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: + type: string + example: Candidate + available_operations: + type: array + items: + type: string + example: + - FETCH + - CREATE + required_post_parameters: + type: array + items: + type: string + example: + - remote_user_id + supported_fields: + type: array + items: + type: string + example: + - first_name + - last_name + - company + - title + required: + - available_operations + - model_name + - required_post_parameters + - supported_fields + x-merge-category: accounting + ModelPermissionDeserializer: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: accounting + ModelPermissionDeserializerRequest: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: accounting + MultipartFormFieldRequest: + type: object + description: |- + # The MultipartFormField Object + ### Description + The `MultipartFormField` object is used to represent fields in an HTTP request using `multipart/form-data`. + + ### Usage Example + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + minLength: 1 + description: The name of the form field + example: resume + data: + type: string + minLength: 1 + description: The data for the form field. + example: SW50ZWdyYXRlIGZhc3QKSW50ZWdyYXRlIG9uY2U= + encoding: + oneOf: + - $ref: '#/components/schemas/EncodingEnum' + nullable: true + default: RAW + description: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + example: BASE64 + file_name: + type: string + nullable: true + minLength: 1 + description: The file name of the form field, if the field is for a file. + example: resume.pdf + content_type: + type: string + nullable: true + minLength: 1 + description: The MIME type of the file, if the field is for a file. + example: application/pdf + required: + - data + - name + x-merge-category: accounting + PaginatedAccountDetailsAndActionsList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AccountDetailsAndActions' + x-merge-category: accounting + PaginatedAccountList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Account' + x-merge-category: accounting + PaginatedAccountingAttachmentList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AccountingAttachment' + x-merge-category: accounting + PaginatedAccountingPeriodList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AccountingPeriod' + x-merge-category: accounting + PaginatedAuditLogEventList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AuditLogEvent' + x-merge-category: accounting + PaginatedBalanceSheetList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/BalanceSheet' + x-merge-category: accounting + PaginatedBankFeedAccountList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/BankFeedAccount' + x-merge-category: accounting + PaginatedBankFeedTransactionList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/BankFeedTransaction' + x-merge-category: accounting + PaginatedCashFlowStatementList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/CashFlowStatement' + x-merge-category: accounting + PaginatedCompanyInfoList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/CompanyInfo' + x-merge-category: accounting + PaginatedContactList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Contact' + x-merge-category: accounting + PaginatedCreditNoteList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/CreditNote' + x-merge-category: accounting + PaginatedEmployeeList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Employee' + x-merge-category: accounting + PaginatedExpenseList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Expense' + x-merge-category: accounting + PaginatedGeneralLedgerTransactionList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/GeneralLedgerTransaction' + x-merge-category: accounting + PaginatedIncomeStatementList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/IncomeStatement' + x-merge-category: accounting + PaginatedInvoiceList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Invoice' + x-merge-category: accounting + PaginatedIssueList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Issue' + x-merge-category: accounting + PaginatedItemList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Item' + x-merge-category: accounting + PaginatedJournalEntryList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/JournalEntry' + x-merge-category: accounting + PaginatedPaymentList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Payment' + x-merge-category: accounting + PaginatedPaymentMethodList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/PaymentMethod' + x-merge-category: accounting + PaginatedPaymentTermList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/PaymentTerm' + x-merge-category: accounting + PaginatedProjectList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Project' + x-merge-category: accounting + PaginatedPurchaseOrderList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/PurchaseOrder' + x-merge-category: accounting + PaginatedRemoteFieldClassList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/RemoteFieldClass' + x-merge-category: accounting + PaginatedSyncStatusList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + x-merge-category: accounting + PaginatedTaxRateList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/TaxRate' + x-merge-category: accounting + PaginatedTrackingCategoryList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/TrackingCategory' + x-merge-category: accounting + PaginatedTransactionList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Transaction' + x-merge-category: accounting + PaginatedVendorCreditList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/VendorCredit' + x-merge-category: accounting + PatchedEditFieldMappingRequest: + type: object + properties: + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field_name + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + x-merge-category: accounting + PatchedInvoiceEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/InvoiceRequest' + required: + - model + x-merge-category: accounting + PatchedItemEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/PatchedItemRequestRequest' + required: + - model + x-merge-category: accounting + PatchedItemRequestRequest: + type: object + description: |- + # The Item Object + ### Description + The `Item` object refers to the goods involved in a transaction. + + ### Usage Example + Fetch from the `LIST Items` endpoint and view a company's items. + properties: + name: + type: string + nullable: true + description: The item's name. + example: Pickleball Paddle + status: + oneOf: + - $ref: '#/components/schemas/Status7d1Enum' + - type: string + nullable: true + description: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + example: ACTIVE + type: + oneOf: + - $ref: '#/components/schemas/Type2bbEnum' + - type: string + nullable: true + description: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + example: INVENTORY + unit_price: + type: number + format: double + nullable: true + description: The item's unit price. + example: 10 + purchase_price: + type: number + format: double + nullable: true + description: The price at which the item is purchased from a vendor. + example: 25 + purchase_account: + type: string + format: uuid + nullable: true + description: References the default account used to record a purchase of + the item. + example: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + sales_account: + type: string + format: uuid + nullable: true + description: References the default account used to record a sale. + example: 3872b4c9-f5d2-4f3b-a66b-dfedbed42c49 + company: + type: string + format: uuid + nullable: true + description: The company the item belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + purchase_tax_rate: + type: string + format: uuid + nullable: true + description: The default purchase tax rate for this item. + example: 983e8f97-9qw2-34v9-p123-67bdf98740v5 + sales_tax_rate: + type: string + format: uuid + nullable: true + description: The default sales tax rate for this item. + example: 232c8f56-7se4-98f2-y334-12bdf89249f5 + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: accounting + PatchedPaymentEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/PatchedPaymentRequest' + required: + - model + x-merge-category: accounting + PatchedPaymentRequest: + type: object + description: |- + # The Payment Object + ### Description + The `Payment` object represents general payments made towards a specific transaction. + + ### Usage Example + Fetch from the `GET Payment` endpoint and view an invoice's payment. + properties: + transaction_date: + type: string + format: date-time + nullable: true + description: The payment's transaction date. + example: '2020-03-31T00:00:00Z' + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The supplier, or customer involved in the payment. + example: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The supplier’s or customer’s account in which the payment is + made. + example: d6e687d6-0c36-48a1-8114-35324b5cb38f + payment_method: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentMethod' + nullable: true + description: The method which this payment was made by. + example: 9394320-8864-2343-4343-9008789 + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The payment's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: FKP + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The payment's exchange rate. + example: '2.9' + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the payment belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + total_amount: + type: number + format: double + nullable: true + description: The total amount of money being paid to the supplier, or customer, + after taxes. + example: 50 + type: + oneOf: + - $ref: '#/components/schemas/PaymentTypeEnum' + - type: string + nullable: true + description: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + example: ACCOUNTS_PAYABLE + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the Payment was generated in. + example: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + applied_to_lines: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentLineItemRequest' + description: A list of “Payment Applied to Lines” objects. + example: + - remote_id: '234' + applied_amount: '25' + related_object_id: a47e11b6-c73b-4a0c-be31-130fc48177fa + related_object_type: INVOICE + applied_date: '2020-03-31T00:00:00Z' + - remote_id: '235' + applied_amount: '25' + related_object_id: 9b96a886-29a5-452b-8733-2a1e03497cf4 + related_object_type: CREDIT_NOTE + applied_date: '2020-03-31T00:00:00Z' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-category: accounting + Payment: + type: object + description: |- + # The Payment Object + ### Description + The `Payment` object represents general payments made towards a specific transaction. + + ### Usage Example + Fetch from the `GET Payment` endpoint and view an invoice's payment. + properties: + id: + type: string + format: uuid + readOnly: true + example: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '987300' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + transaction_date: + type: string + format: date-time + nullable: true + description: The payment's transaction date. + example: '2020-03-31T00:00:00Z' + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The supplier, or customer involved in the payment. + example: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + x-merge-expands-to: Contact + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The supplier’s or customer’s account in which the payment is + made. + example: d6e687d6-0c36-48a1-8114-35324b5cb38f + x-merge-expands-to: Account + payment_method: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentMethod' + nullable: true + description: The method which this payment was made by. + example: 9394320-8864-2343-4343-9008789 + x-merge-expands-to: PaymentMethod + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The payment's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: FKP + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The payment's exchange rate. + example: '2.9' + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the payment belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + total_amount: + type: number + format: double + nullable: true + description: The total amount of money being paid to the supplier, or customer, + after taxes. + example: 50 + type: + oneOf: + - $ref: '#/components/schemas/PaymentTypeEnum' + - type: string + nullable: true + description: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + example: ACCOUNTS_PAYABLE + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the Payment was generated in. + example: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + x-merge-expands-to: AccountingPeriod + applied_to_lines: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentLineItem' + description: A list of “Payment Applied to Lines” objects. + example: + - remote_id: '234' + applied_amount: '25' + related_object_id: a47e11b6-c73b-4a0c-be31-130fc48177fa + related_object_type: INVOICE + applied_date: '2020-03-31T00:00:00Z' + - remote_id: '235' + applied_amount: '25' + related_object_id: 9b96a886-29a5-452b-8733-2a1e03497cf4 + related_object_type: CREDIT_NOTE + applied_date: '2020-03-31T00:00:00Z' + x-merge-expands-to: PaymentLineItem + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's payment entry was updated. + example: '2020-03-31T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"account": "Account", "accounting_period": "AccountingPeriod", + "applied_to_lines": "PaymentLineItem", "company": "CompanyInfo", "contact": + "Contact", "payment_method": "PaymentMethod", "tracking_categories": "TrackingCategory"}' + x-merge-category: accounting + PaymentEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/PaymentRequest' + required: + - model + x-merge-category: accounting + PaymentLineItem: + type: object + description: |- + # The PaymentLineItem Object + ### Description + The `PaymentLineItem` object is an applied-to-line on a `Payment` that can either be a `Invoice`, `CreditNote`, or `JournalEntry`. + + ### Usage Example + `Payment` will have a field called `applied-to-lines` which will be an array of `PaymentLineItemInternalMappingSerializer` objects that can either be a `Invoice`, `CreditNote`, or `JournalEntry`. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '234' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + applied_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The amount being applied to the transaction. + example: '25' + applied_date: + type: string + format: date-time + nullable: true + description: The date the payment portion is applied. + example: '2020-03-31T00:00:00Z' + related_object_id: + type: string + format: uuid + description: The Merge ID of the transaction the payment portion is being + applied to. + example: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + related_object_type: + type: string + description: 'The type of transaction the payment portion is being applied + to. Possible values include: INVOICE, JOURNAL_ENTRY, or CREDIT_NOTE.' + example: INVOICE + x-merge-nested-write-allowed: true + x-merge-category: accounting + PaymentLineItemRequest: + type: object + description: |- + # The PaymentLineItem Object + ### Description + The `PaymentLineItem` object is an applied-to-line on a `Payment` that can either be a `Invoice`, `CreditNote`, or `JournalEntry`. + + ### Usage Example + `Payment` will have a field called `applied-to-lines` which will be an array of `PaymentLineItemInternalMappingSerializer` objects that can either be a `Invoice`, `CreditNote`, or `JournalEntry`. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '234' + applied_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The amount being applied to the transaction. + example: '25' + applied_date: + type: string + format: date-time + nullable: true + description: The date the payment portion is applied. + example: '2020-03-31T00:00:00Z' + related_object_id: + type: string + format: uuid + description: The Merge ID of the transaction the payment portion is being + applied to. + example: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + related_object_type: + type: string + minLength: 1 + description: 'The type of transaction the payment portion is being applied + to. Possible values include: INVOICE, JOURNAL_ENTRY, or CREDIT_NOTE.' + example: INVOICE + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-category: accounting + PaymentMethod: + type: object + description: |- + # The PaymentMethod Object + ### Description + The `PaymentMethod` object defines how a payment against an invoice is made. + + ### Usage Example + Fetch from the `GET PaymentMethod` endpoint and view payment method information. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + method_type: + oneOf: + - $ref: '#/components/schemas/MethodTypeEnum' + - type: string + description: |- + The type of the payment method. + + * `CREDIT_CARD` - CREDIT_CARD + * `DEBIT_CARD` - DEBIT_CARD + * `ACH` - ACH + * `CASH` - CASH + * `CHECK` - CHECK + example: CREDIT_CARD + name: + type: string + description: The payment method’s name + maxLength: 255 + example: John Smith's Credit Card + is_active: + type: boolean + description: '`True` if the payment method is active, `False` if not.' + example: true + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's payment method was updated. + example: '2021-09-15T00:00:00Z' + field_mappings: + type: object + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + required: + - method_type + - name + x-merge-category: accounting + PaymentRequest: + type: object + description: |- + # The Payment Object + ### Description + The `Payment` object represents general payments made towards a specific transaction. + + ### Usage Example + Fetch from the `GET Payment` endpoint and view an invoice's payment. + properties: + transaction_date: + type: string + format: date-time + nullable: true + description: The payment's transaction date. + example: '2020-03-31T00:00:00Z' + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The supplier, or customer involved in the payment. + example: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + x-merge-expands-to: Contact + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The supplier’s or customer’s account in which the payment is + made. + example: d6e687d6-0c36-48a1-8114-35324b5cb38f + x-merge-expands-to: Account + payment_method: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentMethod' + nullable: true + description: The method which this payment was made by. + example: 9394320-8864-2343-4343-9008789 + x-merge-expands-to: PaymentMethod + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The payment's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: FKP + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The payment's exchange rate. + example: '2.9' + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the payment belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + total_amount: + type: number + format: double + nullable: true + description: The total amount of money being paid to the supplier, or customer, + after taxes. + example: 50 + type: + oneOf: + - $ref: '#/components/schemas/PaymentTypeEnum' + - type: string + nullable: true + description: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + example: ACCOUNTS_PAYABLE + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the Payment was generated in. + example: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + x-merge-expands-to: AccountingPeriod + applied_to_lines: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentLineItemRequest' + description: A list of “Payment Applied to Lines” objects. + example: + - remote_id: '234' + applied_amount: 25 + related_object_id: a47e11b6-c73b-4a0c-be31-130fc48177fa + related_object_type: INVOICE + applied_date: '2020-03-31T00:00:00Z' + - remote_id: '235' + applied_amount: 25 + related_object_id: 9b96a886-29a5-452b-8733-2a1e03497cf4 + related_object_type: CREDIT_NOTE + applied_date: '2020-03-31T00:00:00Z' + x-merge-expands-to: PaymentLineItem + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account", "accounting_period": "AccountingPeriod", + "applied_to_lines": "PaymentLineItem", "company": "CompanyInfo", "contact": + "Contact", "payment_method": "PaymentMethod", "tracking_categories": "TrackingCategory"}' + x-merge-category: accounting + PaymentResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Payment' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + PaymentTerm: + type: object + description: |- + # The PaymentTerm Object + ### Description + The `PaymentTerm` object is the agreed-upon conditions between a buyer and a seller that define the timing, + amount, and conditions under which payment for goods or services must be made. + + ### Usage Example + Fetch from the `GET PaymentTerm` endpoint and view payment term information. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + description: The name of the payment term. + maxLength: 255 + example: Net 30 + is_active: + type: boolean + description: '`True` if the payment term is active, `False` if not.' + example: true + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The subsidiary that the payment term belongs to. + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: CompanyInfo + days_until_due: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + description: The number of days after the invoice date that payment is due. + example: 30 + discount_days: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + description: The number of days the invoice must be paid before discounts + expire. + example: 15 + remote_last_modified_at: + type: string + format: date-time + nullable: true + description: When the third party's payment term was modified. + example: '2024-10-16T00:00:00Z' + field_mappings: + type: object + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + required: + - name + x-merge-expands: '{"company": "CompanyInfo"}' + x-merge-category: accounting + PaymentTypeEnum: + enum: + - ACCOUNTS_PAYABLE + - ACCOUNTS_RECEIVABLE + type: string + description: |- + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + x-merge-category: accounting + PostingStatusEnum: + enum: + - UNPOSTED + - POSTED + type: string + description: |- + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + x-merge-category: accounting + Project: + type: object + description: |- + # The Project Object + ### Description + The `Project` object is used to track and manage time, costs, resources, and revenue for specific initiatives or work efforts. + It provides classification on transactions for allocating expenses, revenue, and activities to a specific project for financial reporting. + + ### Usage Example + Fetch from the `GET Project` endpoint and view project information. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + description: The project’s name + maxLength: 255 + example: Permissions Mapping + is_active: + type: boolean + description: '`True` if the project is active, `False` if the project is + not active.' + example: true + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The subsidiary that the project belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The supplier, or customer involved in the project. + example: d25d609b-945f-4762-b55a-1c8fb220c43c + x-merge-expands-to: Contact + field_mappings: + type: object + nullable: true + readOnly: true + additionalProperties: {} + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + required: + - name + x-merge-expands: '{"company": "CompanyInfo", "contact": "Contact"}' + x-merge-category: accounting + PurchaseOrder: + type: object + description: |- + # The PurchaseOrder Object + ### Description + A `PurchaseOrder` represents a request to purchase goods or services from a vendor. It outlines the details of the purchase, such as the items or services requested, quantities, prices, and delivery details. + + A `PurchaseOrder` is a crucial component of the procurement process, but does not typically result in any impact on the company’s general ledger. The general ledger is typically only affected when the `PurchaseOrder` is fulfilled as an *Accounts Payable* `Invoice` object (also known as a Bill). + + ### Usage Example + Fetch from the `LIST PurchaseOrders` endpoint and view a company's purchase orders. + properties: + id: + type: string + format: uuid + readOnly: true + example: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '239741' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/PurchaseOrderStatusEnum' + - type: string + nullable: true + description: |- + The purchase order's status. + + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + example: SUBMITTED + issue_date: + type: string + format: date-time + nullable: true + description: The purchase order's issue date. + example: '2020-03-31T00:00:00Z' + purchase_order_number: + type: string + nullable: true + description: The human-readable number of the purchase order. + maxLength: 100 + example: PO1234 + delivery_date: + type: string + format: date-time + nullable: true + description: The purchase order's delivery date. + example: '2020-04-15T00:00:00Z' + delivery_address: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Address' + nullable: true + description: The purchase order's delivery address. + example: + street_1: 2920 Broadway + street_2: 2nd Floor + city: New York + state: NY + country: US + zip_code: '10027' + x-merge-expands-to: Address + customer: + type: string + format: uuid + nullable: true + description: The contact making the purchase order. + example: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + vendor: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The party fulfilling the purchase order. + example: 2c22ce34-5c6e-4fc7-a594-7f26bb4cf78b + x-merge-expands-to: Contact + memo: + type: string + nullable: true + description: A memo attached to the purchase order. + example: private note + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the purchase order belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + total_amount: + type: number + format: double + nullable: true + description: The purchase order's total amount. + example: 260 + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The purchase order's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The purchase order's exchange rate. + example: '2.9' + payment_term: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentTerm' + nullable: true + description: The payment term that applies to this transaction. + example: 89d329de-825f-4ac6-8369-3c58b4e68bee + x-merge-expands-to: PaymentTerm + line_items: + type: array + items: + $ref: '#/components/schemas/PurchaseOrderLineItem' + readOnly: true + example: + - remote_id: '121222' + description: Pickleball paddles + unit_price: 25 + quantity: 10 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: 10 + total_line_amount: 260 + currency: USD + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + - description: Pickleball Balls + unit_price: 1 + quantity: 10 + item: 249c9faa-3045-4a31-953b-8f22d3613301 + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: 10 + total_line_amount: 20 + x-merge-expands-to: PurchaseOrderLineItem + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the PurchaseOrder was generated + in. + example: 2c22ce34-5c6e-4fc7-a594-7f26bb4cf78b + x-merge-expands-to: AccountingPeriod + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's purchase order note was created. + example: '2020-03-31T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's purchase order note was updated. + example: '2020-03-31T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"accounting_period": "AccountingPeriod", "company": "CompanyInfo", + "delivery_address": "Address", "line_items": "PurchaseOrderLineItem", "payment_term": + "PaymentTerm", "tracking_categories": "TrackingCategory", "vendor": "Contact"}' + x-merge-category: accounting + PurchaseOrderEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/PurchaseOrderRequest' + required: + - model + x-merge-category: accounting + PurchaseOrderLineItem: + type: object + description: |- + # The PurchaseOrderLineItem Object + ### Description + The `PurchaseOrderLineItem` object is used to represent a purchase order's line item. + + ### Usage Example + Fetch from the `GET PurchaseOrder` endpoint and view a company's purchase orders. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '121222' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + description: + type: string + nullable: true + description: A description of the good being purchased. + example: Pickleball paddles + unit_price: + type: number + format: double + nullable: true + description: The line item's unit price. + example: 25 + quantity: + type: number + format: double + nullable: true + description: The line item's quantity. + example: 10 + item: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Item' + nullable: true + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Item + account: + type: string + format: uuid + nullable: true + description: The purchase order line item's account. + tracking_category: + type: string + format: uuid + nullable: true + description: The purchase order line item's associated tracking category. + deprecated: true + tracking_categories: + type: array + items: + type: string + format: uuid + nullable: true + example: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The purchase order line item's associated tracking categories. + tax_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The purchase order line item's tax amount. + example: 10 + total_line_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The purchase order line item's total amount. + example: 260 + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The purchase order line item's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + tax_rate: + type: string + format: uuid + nullable: true + example: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: The tax rate that applies to this line item. + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The purchase order line item's exchange rate. + example: '2.9' + company: + type: string + format: uuid + nullable: true + description: The company the purchase order line item belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-nested-write-allowed: true + x-merge-expands: '{"item": "Item"}' + x-merge-category: accounting + PurchaseOrderLineItemRequest: + type: object + description: |- + # The PurchaseOrderLineItem Object + ### Description + The `PurchaseOrderLineItem` object is used to represent a purchase order's line item. + + ### Usage Example + Fetch from the `GET PurchaseOrder` endpoint and view a company's purchase orders. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '121222' + description: + type: string + nullable: true + description: A description of the good being purchased. + example: Pickleball paddles + unit_price: + type: number + format: double + nullable: true + description: The line item's unit price. + example: 25 + quantity: + type: number + format: double + nullable: true + description: The line item's quantity. + example: 10 + item: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Item' + nullable: true + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Item + account: + type: string + format: uuid + nullable: true + description: The purchase order line item's account. + tracking_category: + type: string + format: uuid + nullable: true + description: The purchase order line item's associated tracking category. + deprecated: true + tracking_categories: + type: array + items: + type: string + format: uuid + nullable: true + example: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The purchase order line item's associated tracking categories. + tax_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The purchase order line item's tax amount. + example: 10 + total_line_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The purchase order line item's total amount. + example: 260 + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The purchase order line item's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + tax_rate: + type: string + format: uuid + nullable: true + example: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: The tax rate that applies to this line item. + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The purchase order line item's exchange rate. + example: '2.9' + company: + type: string + format: uuid + nullable: true + description: The company the purchase order line item belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"item": "Item"}' + x-merge-category: accounting + PurchaseOrderRequest: + type: object + description: |- + # The PurchaseOrder Object + ### Description + The `PurchaseOrder` object is a record of request for a product or service between a buyer and seller. + + ### Usage Example + Fetch from the `LIST PurchaseOrders` endpoint and view a company's purchase orders. + properties: + status: + oneOf: + - $ref: '#/components/schemas/PurchaseOrderStatusEnum' + - type: string + nullable: true + description: |- + The purchase order's status. + + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + issue_date: + type: string + format: date-time + nullable: true + description: The purchase order's issue date. + delivery_date: + type: string + format: date-time + nullable: true + description: The purchase order's delivery date. + delivery_address: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Address' + nullable: true + description: The purchase order's delivery address. + x-merge-expands-to: Address + customer: + type: string + format: uuid + nullable: true + description: The contact making the purchase order. + vendor: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The party fulfilling the purchase order. + x-merge-expands-to: Contact + memo: + type: string + nullable: true + description: A memo attached to the purchase order. + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the purchase order belongs to. + x-merge-expands-to: CompanyInfo + total_amount: + type: number + format: double + nullable: true + description: The purchase order's total amount. + payment_term: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PaymentTerm' + nullable: true + description: The payment term that applies to this transaction. + x-merge-expands-to: PaymentTerm + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The purchase order's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The purchase order's exchange rate. + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + x-merge-expands-to: TrackingCategory + line_items: + type: array + items: + $ref: '#/components/schemas/PurchaseOrderLineItemRequest' + x-merge-expands-to: PurchaseOrderLineItem + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"accounting_period": "AccountingPeriod", "company": "CompanyInfo", + "delivery_address": "Address", "line_items": "PurchaseOrderLineItem", "payment_term": + "PaymentTerm", "tracking_categories": "TrackingCategory", "vendor": "Contact"}' + x-merge-category: accounting + PurchaseOrderResponse: + type: object + properties: + model: + $ref: '#/components/schemas/PurchaseOrder' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + PurchaseOrderStatusEnum: + enum: + - DRAFT + - SUBMITTED + - AUTHORIZED + - BILLED + - DELETED + type: string + description: |- + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + x-merge-category: accounting + RemoteData: + type: object + description: |- + # The RemoteData Object + ### Description + The `RemoteData` object is used to represent the full data pulled from the third-party API for an object. + + ### Usage Example + TODO + properties: + path: + type: string + description: The third-party API path that is being called. + example: /platform-endpoint + data: + readOnly: true + description: The data returned from the third-party for this object in its + original, unnormalized format. + example: + - Varies by platform + required: + - path + x-merge-category: accounting + RemoteEndpointInfo: + type: object + properties: + method: + type: string + example: GET + url_path: + type: string + example: /example-url-path + field_traversal_path: + type: array + items: {} + example: + - example_key_name + required: + - field_traversal_path + - method + - url_path + x-merge-category: accounting + RemoteField: + type: object + properties: + remote_field_class: + oneOf: + - type: string + - $ref: '#/components/schemas/RemoteFieldClass' + x-merge-expands-to: RemoteFieldClass + value: + nullable: true + example: string + required: + - remote_field_class + x-merge-expands: '{"remote_field_class": "RemoteFieldClass"}' + x-merge-category: accounting + RemoteFieldAPI: + type: object + properties: + schema: + type: object + additionalProperties: {} + example: + type: string + remote_key_name: + type: string + example: example_remote_key_name + remote_endpoint_info: + $ref: '#/components/schemas/RemoteEndpointInfo' + example: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + type: array + items: {} + nullable: true + example: + - example + advanced_metadata: + allOf: + - $ref: '#/components/schemas/AdvancedMetadata' + nullable: true + coverage: + oneOf: + - type: integer + - type: number + format: double + nullable: true + readOnly: true + example: 0.33 + required: + - advanced_metadata + - remote_endpoint_info + - remote_key_name + - schema + x-merge-category: accounting + RemoteFieldAPIResponse: + type: object + properties: + Account: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + AccountingAttachment: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + BalanceSheet: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + CashFlowStatement: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + CompanyInfo: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Contact: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + IncomeStatement: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + CreditNote: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Item: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + PurchaseOrder: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + TrackingCategory: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + JournalEntry: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + TaxRate: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Invoice: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Payment: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Expense: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + VendorCredit: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Transaction: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + AccountingPeriod: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + GeneralLedgerTransaction: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + BankFeedAccount: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Employee: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + PaymentMethod: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Project: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + PaymentTerm: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + x-merge-category: accounting + RemoteFieldClass: + type: object + properties: + id: + type: string + display_name: + type: string + remote_key_name: + type: string + description: + type: string + is_custom: + type: boolean + is_required: + type: boolean + field_type: + $ref: '#/components/schemas/FieldTypeEnum' + field_format: + $ref: '#/components/schemas/FieldFormatEnum' + field_choices: + type: array + items: + type: string + item_schema: + $ref: '#/components/schemas/ItemSchema' + x-merge-category: accounting + RemoteFieldRequest: + type: object + properties: + remote_field_class: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteFieldClass' + example: b057d1d2-c204-4da8-a74c-c91d1a260614 + x-merge-expands-to: RemoteFieldClass + value: + nullable: true + example: string + required: + - remote_field_class + x-merge-expands: '{"remote_field_class": "RemoteFieldClass"}' + x-merge-category: accounting + RemoteKey: + type: object + description: |- + # The RemoteKey Object + ### Description + The `RemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: + type: string + example: Remote Deployment Key 1 + key: + type: string + example: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + required: + - key + - name + x-merge-category: accounting + RemoteKeyForRegenerationRequest: + type: object + description: |- + # The RemoteKeyForRegeneration Object + ### Description + The `RemoteKeyForRegeneration` object is used to exchange an old remote key for a new one + + ### Usage Example + Post a `RemoteKeyForRegeneration` to swap out an old remote key for a new one + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: accounting + RemoteResponse: + type: object + description: |- + # The RemoteResponse Object + ### Description + The `RemoteResponse` object is used to represent information returned from a third-party endpoint. + + ### Usage Example + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: + type: string + example: GET + path: + type: string + example: /scooters + status: + type: integer + example: 200 + response: + example: + scooters: + - company: Lime + model: Gen 2.5 + - company: Bird + model: Bird Zero + response_headers: + type: object + additionalProperties: {} + example: + X-Page-Token: value + response_type: + allOf: + - $ref: '#/components/schemas/ResponseTypeEnum' + example: JSON + headers: + type: object + additionalProperties: {} + example: + EXTRA-HEADER: value + Authorization: + required: + - method + - path + - response + - status + x-merge-category: accounting + ReportItem: + type: object + description: |- + # The ReportItem Object + ### Description + The `ReportItem` object is used to represent a report item for a Balance Sheet, Cash Flow Statement or Profit and Loss Report. + + ### Usage Example + Fetch from the `GET BalanceSheet` endpoint and view the balance sheet's report items. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '10299' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The report item's name. + example: Revenue + value: + type: number + format: double + nullable: true + description: The report item's value. + example: 1000 + sub_items: + type: array + items: + type: object + additionalProperties: {} + readOnly: true + example: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + sub_items: [] + - remote_id: '10301' + name: Revenue - New York + value: 500 + sub_items: [] + company: + type: string + format: uuid + nullable: true + description: The company the report item belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-category: accounting + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + type: string + description: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + x-merge-category: accounting + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + type: string + description: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + x-merge-category: accounting + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + type: string + description: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + x-merge-category: accounting + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + type: string + description: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + x-merge-category: accounting + Status7d1Enum: + enum: + - ACTIVE + - ARCHIVED + type: string + description: |- + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + x-merge-category: accounting + Status895Enum: + enum: + - ACTIVE + - INACTIVE + type: string + description: |- + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + x-merge-category: accounting + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: accounting + SyncStatus: + type: object + description: |- + # The SyncStatus Object + ### Description + The `SyncStatus` object is used to represent the syncing state of an account + + ### Usage Example + View the `SyncStatus` for an account to see how recently its models were synced. + properties: + model_name: + type: string + example: Invoice + model_id: + type: string + example: accounting.Invoices + last_sync_start: + type: string + format: date-time + example: '2021-03-30T19:44:18.695973Z' + next_sync_start: + type: string + format: date-time + example: '2021-03-30T20:44:18.662942Z' + last_sync_result: + oneOf: + - $ref: '#/components/schemas/LastSyncResultEnum' + - type: string + example: DONE + last_sync_finished: + type: string + format: date-time + example: '2021-03-30T19:55:18.695973Z' + status: + oneOf: + - $ref: '#/components/schemas/StatusFd5Enum' + - type: string + example: SYNCING + is_initial_sync: + type: boolean + example: true + selective_sync_configurations_usage: + $ref: '#/components/schemas/SelectiveSyncConfigurationsUsageEnum' + required: + - is_initial_sync + - model_id + - model_name + - status + x-merge-sample-json: '{"model_name": "Candidate", "model_id": "ats.Candidate", + "last_sync_start": "2021-03-30T19:44:18.695973Z", "next_sync_start": "2021-03-30T20:44:18.662942Z", + "status": "SYNCING", "is_initial_sync": true}' + x-merge-category: accounting + TaxComponent: + type: object + description: |- + # The TaxRate Object + ### Description + The `TaxComponent` object is used to represent any sub-taxes that make up the `TaxRate`. + + ### Usage Example + Fetch from the `LIST TaxRates` endpoint and view tax components relevant to a tax rate. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '039111' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The tax rate’s name. + maxLength: 100 + example: Drink Tax Component + rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The tax component’s rate. + example: 15 + is_compound: + type: boolean + nullable: true + description: Returns True if the tax component is compound, False if not. + example: true + component_type: + oneOf: + - $ref: '#/components/schemas/ComponentTypeEnum' + - type: string + nullable: true + description: |- + Returns PURCHASE if the tax component corresponds to a purchase tax or SALES if the tax component corresponds to a sales tax. + + * `SALES` - SALES + * `PURCHASE` - PURCHASE + example: SALES + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-category: accounting + TaxRate: + type: object + description: |- + # The TaxRate Object + ### Description + The `TaxRate` object is used to represent a tax rate. + + ### Usage Example + Fetch from the `LIST TaxRates` endpoint and view tax rates relevant to a company. + properties: + id: + type: string + format: uuid + readOnly: true + example: b82302de-852e-4e60-b050-edf9da3b7c02 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '039111' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The subsidiary that the tax rate belongs to (in the case of + multi-entity systems). + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + code: + type: string + nullable: true + description: The tax code associated with this tax rate or group of tax + rates from the third-party platform. + maxLength: 100 + example: '890' + name: + type: string + nullable: true + description: The tax rate’s name. + maxLength: 100 + example: State tax rate + description: + type: string + nullable: true + description: The tax rate's description. + example: Sales Tax + status: + oneOf: + - $ref: '#/components/schemas/Status7d1Enum' + - type: string + nullable: true + description: |- + The tax rate’s status - `ACTIVE` if an active tax rate, `ARCHIVED` if not active. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + example: ACTIVE + country: + type: string + nullable: true + description: The country the tax rate is associated with. + maxLength: 100 + example: US + total_tax_rate: + type: number + format: double + nullable: true + description: The tax’s total tax rate - sum of the tax components (not compounded). + example: 15 + effective_tax_rate: + type: number + format: double + nullable: true + description: The tax rate’s effective tax rate - total amount of tax with + compounding. + example: 15 + tax_components: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TaxComponent' + example: + - remote_id: '039111' + is_compound: true + rate: 15 + component_type: SALES + name: Drink Tax Component + description: The related tax components of the tax rate. + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-expands: '{"company": "CompanyInfo"}' + x-merge-category: accounting + TrackingCategory: + type: object + description: |- + # The TrackingCategory Object + ### Description + A `TrackingCategory` object represents a categorization method used to classify transactions within an accounting platform. They are often used to group records for reporting and analysis purposes. The most common types of `TrackingCategories` are Classes and Departments. + + ### Usage Example + Fetch from the `GET TrackingCategory` endpoint and view a company's tracking category. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '948201' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The tracking category's name. + example: Marketing Department + status: + oneOf: + - $ref: '#/components/schemas/Status7d1Enum' + - type: string + nullable: true + description: |- + The tracking category's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + example: ACTIVE + category_type: + oneOf: + - $ref: '#/components/schemas/CategoryTypeEnum' + - type: string + nullable: true + description: |- + The tracking category’s type. + + * `CLASS` - CLASS + * `DEPARTMENT` - DEPARTMENT + example: DEPARTMENT + parent_category: + type: string + format: uuid + nullable: true + example: d25d609b-945f-4762-b55a-1c8fb220c43c + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the GeneralLedgerTransaction belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + x-merge-expands: '{"company": "CompanyInfo"}' + x-merge-category: accounting + Transaction: + type: object + description: |- + # The Transaction Object + ### Description + The `Transaction` common model includes records of all types of transactions that do not appear in other common models. The type of transaction can be identified through the type field. More specifically, it will contain all types of transactions outside of: + * __Credit Notes__ + * __Expenses__ + * __Invoices__ + * __Journal Entries__ + * __Payments__ + * __Purchase Orders__ + * __Vendor Credits__ + + ### Usage Example + Fetch from the `GET Transaction` endpoint and view a company's transactions. + properties: + id: + type: string + format: uuid + readOnly: true + example: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '239741' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + transaction_type: + type: string + nullable: true + description: The type of transaction, which can by any transaction object + not already included in Merge’s common model. + example: estimate + number: + type: string + nullable: true + description: The transaction's number used for identifying purposes. + example: '122' + transaction_date: + type: string + format: date-time + nullable: true + description: The date upon which the transaction occurred. + example: '2020-03-31T00:00:00Z' + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The transaction's account. + example: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + x-merge-expands-to: Account + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The contact to whom the transaction relates to. + example: 2c22ce34-5c6e-4fc7-a594-7f26bb4cf78b + x-merge-expands-to: Contact + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + total_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The total amount being paid after taxes. + example: 260 + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The transaction's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The transaction's exchange rate. + example: '2.9' + company: + type: string + format: uuid + nullable: true + description: The company the transaction belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + line_items: + type: array + items: + $ref: '#/components/schemas/TransactionLineItem' + readOnly: true + example: + - remote_id: '121222' + memo: Pickleball paddles + unit_price: '25.0' + quantity: '10.0' + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + account: 2b38c085-2620-4269-b5ec-75dd9095ed2c + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + total_line_amount: 260 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + currency: USD + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + - memo: Pickleball balls + unit_price: 1 + quantity: 10 + item: 249c9faa-3045-4a31-953b-8f22d3613301 + account: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + total_line_amount: 20 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + x-merge-expands-to: TransactionLineItem + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the Transaction was generated in. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: AccountingPeriod + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-model-tooltip: + title: + content: A positive `net_amount` means the line represents a debit and a negative + `net_amount` represents a credit. + x-merge-expands: '{"account": "Account", "accounting_period": "AccountingPeriod", + "contact": "Contact", "line_items": "TransactionLineItem", "tracking_categories": + "TrackingCategory"}' + x-merge-category: accounting + TransactionCurrencyEnum: + enum: + - XUA + - AFN + - AFA + - ALL + - ALK + - DZD + - ADP + - AOA + - AOK + - AON + - AOR + - ARA + - ARS + - ARM + - ARP + - ARL + - AMD + - AWG + - AUD + - ATS + - AZN + - AZM + - BSD + - BHD + - BDT + - BBD + - BYN + - BYB + - BYR + - BEF + - BEC + - BEL + - BZD + - BMD + - BTN + - BOB + - BOL + - BOV + - BOP + - BAM + - BAD + - BAN + - BWP + - BRC + - BRZ + - BRE + - BRR + - BRN + - BRB + - BRL + - GBP + - BND + - BGL + - BGN + - BGO + - BGM + - BUK + - BIF + - XPF + - KHR + - CAD + - CVE + - KYD + - XAF + - CLE + - CLP + - CLF + - CNX + - CNY + - CNH + - COP + - COU + - KMF + - CDF + - CRC + - HRD + - HRK + - CUC + - CUP + - CYP + - CZK + - CSK + - DKK + - DJF + - DOP + - NLG + - XCD + - DDM + - ECS + - ECV + - EGP + - GQE + - ERN + - EEK + - ETB + - EUR + - XBA + - XEU + - XBB + - XBC + - XBD + - FKP + - FJD + - FIM + - FRF + - XFO + - XFU + - GMD + - GEK + - GEL + - DEM + - GHS + - GHC + - GIP + - XAU + - GRD + - GTQ + - GWP + - GNF + - GNS + - GYD + - HTG + - HNL + - HKD + - HUF + - IMP + - ISK + - ISJ + - INR + - IDR + - IRR + - IQD + - IEP + - ILS + - ILP + - ILR + - ITL + - JMD + - JPY + - JOD + - KZT + - KES + - KWD + - KGS + - LAK + - LVL + - LVR + - LBP + - LSL + - LRD + - LYD + - LTL + - LTT + - LUL + - LUC + - LUF + - MOP + - MKD + - MKN + - MGA + - MGF + - MWK + - MYR + - MVR + - MVP + - MLF + - MTL + - MTP + - MRU + - MRO + - MUR + - MXV + - MXN + - MXP + - MDC + - MDL + - MCF + - MNT + - MAD + - MAF + - MZE + - MZN + - MZM + - MMK + - NAD + - NPR + - ANG + - TWD + - NZD + - NIO + - NIC + - NGN + - KPW + - NOK + - OMR + - PKR + - XPD + - PAB + - PGK + - PYG + - PEI + - PEN + - PES + - PHP + - XPT + - PLN + - PLZ + - PTE + - GWE + - QAR + - XRE + - RHD + - RON + - ROL + - RUB + - RUR + - RWF + - SVC + - WST + - SAR + - RSD + - CSD + - SCR + - SLL + - XAG + - SGD + - SKK + - SIT + - SBD + - SOS + - ZAR + - ZAL + - KRH + - KRW + - KRO + - SSP + - SUR + - ESP + - ESA + - ESB + - XDR + - LKR + - SHP + - XSU + - SDD + - SDG + - SDP + - SRD + - SRG + - SZL + - SEK + - CHF + - SYP + - STN + - STD + - TVD + - TJR + - TJS + - TZS + - XTS + - THB + - XXX + - TPE + - TOP + - TTD + - TND + - TRY + - TRL + - TMT + - TMM + - USD + - USN + - USS + - UGX + - UGS + - UAH + - UAK + - AED + - UYW + - UYU + - UYP + - UYI + - UZS + - VUV + - VES + - VEB + - VEF + - VND + - VNN + - CHE + - CHW + - XOF + - YDD + - YER + - YUN + - YUD + - YUM + - YUR + - ZWN + - ZRN + - ZRZ + - ZMW + - ZMK + - ZWD + - ZWR + - ZWL + type: string + description: |- + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + x-merge-category: accounting + TransactionLineItem: + type: object + description: |- + # The TransactionLineItem Object + ### Description + The `TransactionLineItem` object is used to represent a transaction's line items. + + ### Usage Example + Fetch from the `GET TransactionLineItem` endpoint and view the transaction's line items. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '121222' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + memo: + type: string + nullable: true + description: An internal note used by the business to clarify purpose of + the transaction. + example: Pickleball paddles + unit_price: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The line item's unit price. + example: '25.0' + quantity: + type: string + format: decimal + pattern: ^-?\d{0,24}(?:\.\d{0,8})?$ + nullable: true + description: The line item's quantity. + example: '10.0' + item: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Item' + nullable: true + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Item + account: + type: string + format: uuid + nullable: true + description: The line item's account. + example: 2b38c085-2620-4269-b5ec-75dd9095ed2c + tracking_category: + type: string + format: uuid + nullable: true + description: The line's associated tracking category. + deprecated: true + tracking_categories: + type: array + items: + type: string + format: uuid + nullable: true + example: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The transaction line item's associated tracking categories. + total_line_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The line item's total. + example: 260 + tax_rate: + type: string + format: uuid + nullable: true + example: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: The tax rate that applies to this line item. + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The line item's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The line item's exchange rate. + example: '2.9' + company: + type: string + format: uuid + nullable: true + description: The company the line belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-expands: '{"item": "Item"}' + x-merge-category: accounting + Type2bbEnum: + enum: + - INVENTORY + - NON_INVENTORY + - SERVICE + - UNKNOWN + type: string + description: |- + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + x-merge-category: accounting + UnderlyingTransactionTypeEnum: + enum: + - INVOICE + - EXPENSE + - TRANSACTION + - JOURNAL_ENTRY + - PAYMENT + - VENDOR_CREDIT + - CREDIT_NOTE + type: string + description: |- + * `INVOICE` - INVOICE + * `EXPENSE` - EXPENSE + * `TRANSACTION` - TRANSACTION + * `JOURNAL_ENTRY` - JOURNAL_ENTRY + * `PAYMENT` - PAYMENT + * `VENDOR_CREDIT` - VENDOR_CREDIT + * `CREDIT_NOTE` - CREDIT_NOTE + x-merge-category: accounting + ValidationProblemSource: + type: object + properties: + pointer: + type: string + required: + - pointer + x-merge-category: accounting + VendorCredit: + type: object + description: |- + # The VendorCredit Object + ### Description + A `VendorCredit` is transaction issued by a vendor to the accounting company, indicating a reduction or cancellation of the amount owed to the vendor. It is most generally used as an adjustment note used to rectify errors, returns, or overpayments related to a purchasing transaction. A `VendorCredit` can be applied to `Accounts Payable` Invoices to decrease the overall amount of the `Invoice`. + + ### Usage Example + Fetch from the `GET VendorCredit` endpoint and view a company's vendor credits. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + number: + type: string + nullable: true + description: The vendor credit's number. + example: '6' + transaction_date: + type: string + format: date-time + nullable: true + description: The vendor credit's transaction date. + example: '2020-03-31T00:00:00Z' + vendor: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The vendor that owes the gift or refund. + example: 3d263469-51a1-4766-9205-f6c997826be1 + x-merge-expands-to: Contact + total_amount: + type: number + format: double + nullable: true + description: The vendor credit's total amount. + example: 10000 + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The vendor credit's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The vendor credit's exchange rate. + example: '2.9' + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the vendor credit belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + lines: + type: array + items: + $ref: '#/components/schemas/VendorCreditLine' + readOnly: true + example: + - remote_id: '121222' + net_amount: 25.54 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + description: Gifted Merge Credit + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + - remote_id: '121223' + net_amount: 10 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Refund for overpayment + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + x-merge-expands-to: VendorCreditLine + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + applied_to_lines: + type: array + items: + $ref: '#/components/schemas/VendorCreditApplyLineForVendorCredit' + description: A list of VendorCredit Applied to Lines objects. + example: + - invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the VendorCredit was generated in. + example: 9b840d2-686a-465a-8a8e-7b028498f8e4 + x-merge-expands-to: AccountingPeriod + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-expands: '{"accounting_period": "AccountingPeriod", "company": "CompanyInfo", + "lines": "VendorCreditLine", "tracking_categories": "TrackingCategory", "vendor": + "Contact"}' + x-merge-category: accounting + VendorCreditApplyLineForInvoice: + type: object + description: |- + # The VendorCreditApplyLine Object + ### Description + The `VendorCreditApplyLine` object is used to represent a applied vendor credit. + + ### Usage Example + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's applied to lines. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + vendor_credit: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/VendorCredit' + nullable: true + example: f776d7e886ebcc3c56ff31b5ab2608c10f9fd823 + x-merge-expands-to: VendorCredit + applied_date: + type: string + format: date-time + nullable: true + description: Date that the vendor credit is applied to the invoice. + example: '2020-03-31T00:00:00Z' + applied_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The amount of the VendorCredit applied to the invoice. + example: '2.9' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-expands: '{"vendor_credit": "VendorCredit"}' + x-merge-category: accounting + VendorCreditApplyLineForVendorCredit: + type: object + description: |- + # The VendorCreditApplyLine Object + ### Description + The `VendorCreditApplyLine` object is used to represent a applied vendor credit. + + ### Usage Example + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's applied to lines. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + invoice: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Invoice' + nullable: true + example: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + x-merge-expands-to: Invoice + applied_date: + type: string + format: date-time + nullable: true + description: Date that the vendor credit is applied to the invoice. + example: '2020-03-31T00:00:00Z' + applied_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The amount of the VendorCredit applied to the invoice. + example: '2.9' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-expands: '{"invoice": "Invoice"}' + x-merge-category: accounting + VendorCreditApplyLineForVendorCreditRequest: + type: object + description: |- + # The VendorCreditApplyLine Object + ### Description + The `VendorCreditApplyLine` object is used to represent a applied vendor credit. + + ### Usage Example + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's applied to lines. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + invoice: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Invoice' + nullable: true + example: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + x-merge-expands-to: Invoice + applied_date: + type: string + format: date-time + nullable: true + description: Date that the vendor credit is applied to the invoice. + example: '2020-03-31T00:00:00Z' + applied_amount: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The amount of the VendorCredit applied to the invoice. + example: '2.9' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"invoice": "Invoice"}' + x-merge-category: accounting + VendorCreditEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/VendorCreditRequest' + required: + - model + x-merge-category: accounting + VendorCreditLine: + type: object + description: |- + # The VendorCreditLine Object + ### Description + The `VendorCreditLine` object is used to represent a vendor credit's line items. + + ### Usage Example + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's line items. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '121222' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + net_amount: + type: number + format: double + nullable: true + description: The full value of the credit. + example: 25.54 + tracking_category: + type: string + format: uuid + nullable: true + description: The line's associated tracking category. + deprecated: true + tracking_categories: + type: array + items: + type: string + format: uuid + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The vendor credit line item's associated tracking categories. + description: + type: string + nullable: true + description: The line's description. + example: Gifted Merge Credit + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The line's account. + example: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + x-merge-expands-to: Account + company: + type: string + format: uuid + nullable: true + description: The company the line belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Project' + nullable: true + example: 22e65a5d-2df5-4e6e-884a-e538d0339000 + x-merge-expands-to: Project + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + example: 908934-49j9-093f-0989-908923908 + x-merge-expands-to: Contact + tax_rate: + type: string + format: uuid + nullable: true + example: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: The tax rate that applies to this line item. + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The vendor credit line item's exchange rate. + example: '2.9' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-expands: '{"account": "Account", "contact": "Contact", "project": "Project"}' + x-merge-category: accounting + VendorCreditLineRequest: + type: object + description: |- + # The VendorCreditLine Object + ### Description + The `VendorCreditLine` object is used to represent a vendor credit's line items. + + ### Usage Example + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's line items. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '121222' + net_amount: + type: number + format: double + nullable: true + description: The full value of the credit. + example: 25.54 + tracking_category: + type: string + format: uuid + nullable: true + description: The line's associated tracking category. + deprecated: true + tracking_categories: + type: array + items: + type: string + format: uuid + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: The vendor credit line item's associated tracking categories. + description: + type: string + nullable: true + description: The line's description. + example: Gifted Merge Credit + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The line's account. + example: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + x-merge-expands-to: Account + company: + type: string + format: uuid + nullable: true + description: The company the line belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Project' + nullable: true + example: 22e65a5d-2df5-4e6e-884a-e538d0339000 + x-merge-expands-to: Project + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + example: 908934-49j9-093f-0989-908923908 + x-merge-expands-to: Contact + tax_rate: + type: string + format: uuid + nullable: true + example: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: The tax rate that applies to this line item. + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The vendor credit line item's exchange rate. + example: '2.9' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"account": "Account", "contact": "Contact", "project": "Project"}' + x-merge-category: accounting + VendorCreditRequest: + type: object + description: |- + # The VendorCredit Object + ### Description + A `VendorCredit` is transaction issued by a vendor to the accounting company, indicating a reduction or cancellation of the amount owed to the vendor. It is most generally used as an adjustment note used to rectify errors, returns, or overpayments related to a purchasing transaction. A `VendorCredit` can be applied to `Accounts Payable` Invoices to decrease the overall amount of the `Invoice`. + + ### Usage Example + Fetch from the `GET VendorCredit` endpoint and view a company's vendor credits. + properties: + number: + type: string + nullable: true + description: The vendor credit's number. + example: '6' + transaction_date: + type: string + format: date-time + nullable: true + description: The vendor credit's transaction date. + example: '2020-03-31T00:00:00Z' + vendor: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The vendor that owes the gift or refund. + example: 3d263469-51a1-4766-9205-f6c997826be1 + x-merge-expands-to: Contact + total_amount: + type: number + format: double + nullable: true + description: The vendor credit's total amount. + example: 10000 + currency: + oneOf: + - $ref: '#/components/schemas/TransactionCurrencyEnum' + - type: string + nullable: true + description: |- + The vendor credit's currency. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + exchange_rate: + type: string + format: decimal + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + nullable: true + description: The vendor credit's exchange rate. + example: '2.9' + inclusive_of_tax: + type: boolean + nullable: true + description: If the transaction is inclusive or exclusive of tax. `True` + if inclusive, `False` if exclusive. + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/CompanyInfo' + nullable: true + description: The company the vendor credit belongs to. + example: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + x-merge-expands-to: CompanyInfo + tracking_categories: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/TrackingCategory' + nullable: true + example: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + x-merge-expands-to: TrackingCategory + applied_to_lines: + type: array + items: + $ref: '#/components/schemas/VendorCreditApplyLineForVendorCreditRequest' + description: A list of VendorCredit Applied to Lines objects. + example: + - invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + accounting_period: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AccountingPeriod' + nullable: true + description: The accounting period that the VendorCredit was generated in. + example: 9b840d2-686a-465a-8a8e-7b028498f8e4 + x-merge-expands-to: AccountingPeriod + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"accounting_period": "AccountingPeriod", "company": "CompanyInfo", + "lines": "VendorCreditLine", "tracking_categories": "TrackingCategory", "vendor": + "Contact"}' + x-merge-category: accounting + VendorCreditResponse: + type: object + properties: + model: + $ref: '#/components/schemas/VendorCredit' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: accounting + WarningValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /age + title: + type: string + example: Unrecognized Field + detail: + type: string + example: An unrecognized field, age, was passed in with request data. + problem_type: + type: string + example: UNRECOGNIZED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: accounting + WebhookReceiver: + type: object + properties: + event: + type: string + is_active: + type: boolean + key: + type: string + required: + - event + - is_active + x-merge-category: accounting + WebhookReceiverRequest: + type: object + properties: + event: + type: string + minLength: 1 + is_active: + type: boolean + key: + type: string + minLength: 1 + required: + - event + - is_active + x-merge-category: accounting + securitySchemes: + tokenAuth: + type: http + scheme: bearer + description: Token-based authentication with required prefix "Bearer" + x-fern-token-variable-name: api_key +servers: +- url: https://api.merge.dev/api/accounting/v1 + description: Production + x-fern-server-name: Production +- url: https://api-sandbox.merge.dev/api/accounting/v1 + description: Sandbox + x-fern-server-name: Sandbox +- url: https://api-eu.merge.dev/api/accounting/v1 + description: Production EU + x-fern-server-name: ProductionEU +- url: https://api-ap.merge.dev/api/accounting/v1 + description: Production APSE1 + x-fern-server-name: ProductionAPSE1 diff --git a/.mock/ats_v3.yml b/.mock/ats_v3.yml new file mode 100644 index 00000000..c478403c --- /dev/null +++ b/.mock/ats_v3.yml @@ -0,0 +1,10845 @@ +openapi: 3.0.3 +info: + title: Merge ATS API + version: '1.0' + description: The unified API for building rich integrations with multiple Applicant + Tracking System platforms. + contact: + name: Merge Team + url: https://www.merge.dev/ + email: hello@merge.dev +paths: + /ats/v1/account-details: + get: + operationId: account_details_retrieve + description: Get details for a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - account-details + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountDetails' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/account-token/{public_token}: + get: + operationId: account_token_retrieve + description: Returns the account token for the end user with the provided public + token. + parameters: + - in: path + name: public_token + schema: + type: string + required: true + tags: + - account-token + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/activities: + get: + operationId: activities_list + description: Returns a list of `Activity` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - user + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandUser: + value: user + summary: Expand User + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - activity_type + - activity_type,visibility + - visibility + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesActivityType,Visibility: + value: activity_type,visibility + summary: Original Enum Values Activity_type, Visibility + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - activity_type + - activity_type,visibility + - visibility + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesActivityType,Visibility: + value: activity_type,visibility + summary: Original Enum Values Activity_type, Visibility + - in: query + name: user_id + schema: + type: string + description: If provided, will only return activities done by this user. + examples: + UserId: + summary: user_id + tags: + - activities + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedActivityList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: activities_create + description: Creates an `Activity` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - activities + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ActivityEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ActivityEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /ats/v1/activities/{id}: + get: + operationId: activities_retrieve + description: Returns an `Activity` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - user + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandUser: + value: user + summary: Expand User + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - activity_type + - activity_type,visibility + - visibility + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesActivityType,Visibility: + value: activity_type,visibility + summary: Original Enum Values Activity_type, Visibility + - in: query + name: show_enum_origins + schema: + type: string + enum: + - activity_type + - activity_type,visibility + - visibility + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesActivityType,Visibility: + value: activity_type,visibility + summary: Original Enum Values Activity_type, Visibility + tags: + - activities + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Activity' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/activities/meta/post: + get: + operationId: activities_meta_post_retrieve + description: Returns metadata for `Activity` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - activities + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/applications: + get: + operationId: applications_list + description: Returns a list of `Application` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: candidate_id + schema: + type: string + description: If provided, will only return applications for this candidate. + examples: + CandidateId: + summary: candidate_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: credited_to_id + schema: + type: string + description: If provided, will only return applications credited to this user. + examples: + CreditedToId: + summary: credited_to_id + - in: query + name: current_stage_id + schema: + type: string + description: If provided, will only return applications at this interview + stage. + examples: + CurrentStageId: + summary: current_stage_id + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - candidate + - credited_to + - current_stage + - job + - offers + - reject_reason + - screening_question_answers + - screening_question_answers.question + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOffers,ScreeningQuestionAnswers,ScreeningQuestionAnswers.question,Candidate,Job,CreditedTo,CurrentStage,RejectReason: + value: + offers,screening_question_answers,screening_question_answers.question,candidate,job,credited_to,current_stage,reject_reason + summary: Expand Offers, Screening_question_answers, Screening_question_answers.question, + Candidate, Job, Credited_to, Current_stage, Reject_reason + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: job_id + schema: + type: string + description: If provided, will only return applications for this job. + examples: + JobId: + summary: job_id + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: reject_reason_id + schema: + type: string + description: If provided, will only return applications with this reject reason. + examples: + RejectReasonId: + summary: reject_reason_id + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: source + schema: + type: string + nullable: true + description: If provided, will only return applications with this source. + tags: + - applications + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedApplicationList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: applications_create + description: | + Creates an `Application` object with the given values. + For certain integrations, but not all, our API detects duplicate candidates and will associate applications with existing records in the third-party. New candidates are created and automatically linked to the application. + + See our [Help Center article](https://help.merge.dev/en/articles/10012366-updates-to-post-applications-oct-2024) for detailed support per integration. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - applications + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ApplicationEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ApplicationEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/applications/{id}: + get: + operationId: applications_retrieve + description: Returns an `Application` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - candidate + - credited_to + - current_stage + - job + - offers + - reject_reason + - screening_question_answers + - screening_question_answers.question + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOffers,ScreeningQuestionAnswers,ScreeningQuestionAnswers.question,Candidate,Job,CreditedTo,CurrentStage,RejectReason: + value: + offers,screening_question_answers,screening_question_answers.question,candidate,job,credited_to,current_stage,reject_reason + summary: Expand Offers, Screening_question_answers, Screening_question_answers.question, + Candidate, Job, Credited_to, Current_stage, Reject_reason + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - applications + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Application' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/applications/{id}/change-stage: + post: + operationId: applications_change_stage_create + description: Updates the `current_stage` field of an `Application` object + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - applications + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateApplicationStageRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateApplicationStageRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/UpdateApplicationStageRequest' + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /ats/v1/applications/meta/post: + get: + operationId: applications_meta_post_retrieve + description: Returns metadata for `Application` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: application_remote_template_id + schema: + type: string + description: The template ID associated with the nested application in the + request. + tags: + - applications + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/async-passthrough: + post: + operationId: async_passthrough_create + description: Asynchronously pull data from an endpoint not currently supported + by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - async-passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncPassthroughReciept' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/async-passthrough/{async_passthrough_receipt_id}: + get: + operationId: async_passthrough_retrieve + description: Retrieves data from earlier async-passthrough POST request + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: async_passthrough_receipt_id + schema: + type: string + format: uuid + required: true + tags: + - async-passthrough + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/RemoteResponse' + - type: string + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/attachments: + get: + operationId: attachments_list + description: Returns a list of `Attachment` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: candidate_id + schema: + type: string + description: If provided, will only return attachments for this candidate. + examples: + CandidateId: + summary: candidate_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - candidate + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCandidate: + value: candidate + summary: Expand Candidate + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - attachment_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesAttachmentType: + value: attachment_type + summary: Original Enum Values Attachment_type + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - attachment_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesAttachmentType: + value: attachment_type + summary: Original Enum Values Attachment_type + tags: + - attachments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAttachmentList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: attachments_create + description: Creates an `Attachment` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - attachments + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AttachmentEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AttachmentEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AttachmentEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/AttachmentResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/attachments/{id}: + get: + operationId: attachments_retrieve + description: Returns an `Attachment` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - candidate + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCandidate: + value: candidate + summary: Expand Candidate + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - attachment_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesAttachmentType: + value: attachment_type + summary: Original Enum Values Attachment_type + - in: query + name: show_enum_origins + schema: + type: string + enum: + - attachment_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesAttachmentType: + value: attachment_type + summary: Original Enum Values Attachment_type + tags: + - attachments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/attachments/meta/post: + get: + operationId: attachments_meta_post_retrieve + description: Returns metadata for `Attachment` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - attachments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/audit-trail: + get: + operationId: audit_trail_list + description: Gets a list of audit trail events. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include audit trail events that occurred + before this time + - in: query + name: event_type + schema: + type: string + description: 'If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, + `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, + `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, + `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, + `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, + `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, + `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED`' + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include audit trail events that occurred + after this time + - in: query + name: user_email + schema: + type: string + description: If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's email + at the time of the event, and may not be their current email. + tags: + - audit-trail + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAuditLogEventList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/available-actions: + get: + operationId: available_actions_retrieve + description: Returns a list of models and actions available for an account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - available-actions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AvailableActions' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/candidates: + get: + operationId: candidates_list + description: Returns a list of `Candidate` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: email_addresses + schema: + type: string + description: If provided, will only return candidates with these email addresses; + multiple addresses can be separated by commas. + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - applications + - attachments + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandApplications,Attachments: + value: applications,attachments + summary: Expand Applications, Attachments + explode: false + - in: query + name: first_name + schema: + type: string + nullable: true + description: If provided, will only return candidates with this first name. + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: last_name + schema: + type: string + nullable: true + description: If provided, will only return candidates with this last name. + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: tags + schema: + type: string + description: If provided, will only return candidates with these tags; multiple + tags can be separated by commas. + tags: + - candidates + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCandidateList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: candidates_create + description: Creates a `Candidate` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - candidates + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CandidateEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CandidateEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CandidateEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CandidateResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/candidates/{id}: + get: + operationId: candidates_retrieve + description: Returns a `Candidate` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - applications + - attachments + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandApplications,Attachments: + value: applications,attachments + summary: Expand Applications, Attachments + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - candidates + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Candidate' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + patch: + operationId: candidates_partial_update + description: Updates a `Candidate` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - candidates + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCandidateEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCandidateEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCandidateEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CandidateResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /ats/v1/candidates/ignore/{model_id}: + post: + operationId: candidates_ignore_create + description: Ignores a specific row based on the `model_id` in the url. These + records will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will be + stored for audit purposes. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: model_id + schema: + type: string + format: uuid + required: true + tags: + - candidates + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + description: No response body + x-extra-tags: + - ignore-model + /ats/v1/candidates/meta/patch/{id}: + get: + operationId: candidates_meta_patch_retrieve + description: Returns metadata for `Candidate` PATCHs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - candidates + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-patch: META_PATCH + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/candidates/meta/post: + get: + operationId: candidates_meta_post_retrieve + description: Returns metadata for `Candidate` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - candidates + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/default-scopes: + get: + operationId: default_scopes_retrieve + description: Get the default permissions for Merge Common Models and fields + across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/delete-account: + post: + operationId: delete_account_delete + description: Delete a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - delete-account + security: + - tokenAuth: [] + responses: + '200': + description: No response body + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/departments: + get: + operationId: departments_list + description: Returns a list of `Department` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - departments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDepartmentList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/departments/{id}: + get: + operationId: departments_retrieve + description: Returns a `Department` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - departments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Department' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/eeocs: + get: + operationId: eeocs_list + description: Returns a list of `EEOC` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: candidate_id + schema: + type: string + description: If provided, will only return EEOC info for this candidate. + examples: + CandidateId: + summary: candidate_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - candidate + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCandidate: + value: candidate + summary: Expand Candidate + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - disability_status + - disability_status,gender + - disability_status,gender,race + - disability_status,gender,race,veteran_status + - disability_status,gender,veteran_status + - disability_status,race + - disability_status,race,veteran_status + - disability_status,veteran_status + - gender + - gender,race + - gender,race,veteran_status + - gender,veteran_status + - race + - race,veteran_status + - veteran_status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesDisabilityStatus,Gender,Race,VeteranStatus: + value: disability_status,gender,race,veteran_status + summary: Original Enum Values Disability_status, Gender, Race, Veteran_status + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - disability_status + - disability_status,gender + - disability_status,gender,race + - disability_status,gender,race,veteran_status + - disability_status,gender,veteran_status + - disability_status,race + - disability_status,race,veteran_status + - disability_status,veteran_status + - gender + - gender,race + - gender,race,veteran_status + - gender,veteran_status + - race + - race,veteran_status + - veteran_status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesDisabilityStatus,Gender,Race,VeteranStatus: + value: disability_status,gender,race,veteran_status + summary: Original Enum Values Disability_status, Gender, Race, Veteran_status + tags: + - eeocs + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEEOCList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/eeocs/{id}: + get: + operationId: eeocs_retrieve + description: Returns an `EEOC` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - candidate + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandCandidate: + value: candidate + summary: Expand Candidate + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - disability_status + - disability_status,gender + - disability_status,gender,race + - disability_status,gender,race,veteran_status + - disability_status,gender,veteran_status + - disability_status,race + - disability_status,race,veteran_status + - disability_status,veteran_status + - gender + - gender,race + - gender,race,veteran_status + - gender,veteran_status + - race + - race,veteran_status + - veteran_status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesDisabilityStatus,Gender,Race,VeteranStatus: + value: disability_status,gender,race,veteran_status + summary: Original Enum Values Disability_status, Gender, Race, Veteran_status + - in: query + name: show_enum_origins + schema: + type: string + enum: + - disability_status + - disability_status,gender + - disability_status,gender,race + - disability_status,gender,race,veteran_status + - disability_status,gender,veteran_status + - disability_status,race + - disability_status,race,veteran_status + - disability_status,veteran_status + - gender + - gender,race + - gender,race,veteran_status + - gender,veteran_status + - race + - race,veteran_status + - veteran_status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesDisabilityStatus,Gender,Race,VeteranStatus: + value: disability_status,gender,race,veteran_status + summary: Original Enum Values Disability_status, Gender, Race, Veteran_status + tags: + - eeocs + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/EEOC' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/field-mappings: + get: + operationId: field_mappings_retrieve + description: Get all Field Mappings for this Linked Account. Field Mappings + are mappings between third-party Remote Fields and user defined Merge fields. + [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingApiInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: field_mappings_create + description: Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to sync + **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/field-mappings/{field_mapping_id}: + patch: + operationId: field_mappings_partial_update + description: Create or update existing Field Mappings for a Linked Account. + Changes will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + delete: + operationId: field_mappings_destroy + description: Deletes Field Mappings for a Linked Account. All data related to + this Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked Account + to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '204': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/generate-key: + post: + operationId: generate_key_create + description: Create a remote key. + tags: + - generate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/interviews: + get: + operationId: interviews_list + description: Returns a list of `ScheduledInterview` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: application_id + schema: + type: string + description: If provided, will only return interviews for this application. + examples: + ApplicationId: + summary: application_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - application + - interviewers + - job_interview_stage + - organizer + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandInterviewers,Organizer,Application,JobInterviewStage: + value: interviewers,organizer,application,job_interview_stage + summary: Expand Interviewers, Organizer, Application, Job_interview_stage + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: job_id + schema: + type: string + description: If provided, wll only return interviews organized for this job. + examples: + JobId: + summary: job_id + - in: query + name: job_interview_stage_id + schema: + type: string + description: If provided, will only return interviews at this stage. + examples: + JobInterviewStageId: + summary: job_interview_stage_id + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: organizer_id + schema: + type: string + description: If provided, will only return interviews organized by this user. + examples: + OrganizerId: + summary: organizer_id + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - interviews + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedScheduledInterviewList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: interviews_create + description: Creates a `ScheduledInterview` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - interviews + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledInterviewEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ScheduledInterviewEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ScheduledInterviewEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledInterviewResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /ats/v1/interviews/{id}: + get: + operationId: interviews_retrieve + description: Returns a `ScheduledInterview` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - application + - interviewers + - job_interview_stage + - organizer + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandInterviewers,Organizer,Application,JobInterviewStage: + value: interviewers,organizer,application,job_interview_stage + summary: Expand Interviewers, Organizer, Application, Job_interview_stage + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - interviews + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledInterview' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/interviews/meta/post: + get: + operationId: interviews_meta_post_retrieve + description: Returns metadata for `ScheduledInterview` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - interviews + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/issues: + get: + operationId: issues_list + description: Gets all issues for Organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: account_token + schema: + type: string + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred before this time + - in: query + name: end_user_organization_name + schema: + type: string + - in: query + name: first_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was after this datetime. + - in: query + name: first_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was before this datetime. + - in: query + name: include_muted + schema: + type: string + description: If true, will include muted issues + - in: query + name: integration_name + schema: + type: string + - in: query + name: last_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was after this datetime. + - in: query + name: last_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was before this datetime. + - in: query + name: linked_account_id + schema: + type: string + description: If provided, will only include issues pertaining to the linked + account passed in. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred after this time + - in: query + name: status + schema: + type: string + enum: + - ONGOING + - RESOLVED + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedIssueList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/issues/{id}: + get: + operationId: issues_retrieve + description: Get a specific issue. + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Issue' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/job-interview-stages: + get: + operationId: job_interview_stages_list + description: Returns a list of `JobInterviewStage` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - job + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandJob: + value: job + summary: Expand Job + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: job_id + schema: + type: string + description: If provided, will only return interview stages for this job. + examples: + JobId: + summary: job_id + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - job-interview-stages + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedJobInterviewStageList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/job-interview-stages/{id}: + get: + operationId: job_interview_stages_retrieve + description: Returns a `JobInterviewStage` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - job + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandJob: + value: job + summary: Expand Job + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - job-interview-stages + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/JobInterviewStage' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/job-postings: + get: + operationId: job_postings_list + description: Returns a list of `JobPosting` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - job + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandJob: + value: job + summary: Expand Job + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: status + schema: + type: string + nullable: true + enum: + - CLOSED + - DRAFT + - INTERNAL + - PENDING + - PUBLISHED + description: |- + If provided, will only return Job Postings with this status. Options: ('PUBLISHED', 'CLOSED', 'DRAFT', 'INTERNAL', 'PENDING') + + * `PUBLISHED` - PUBLISHED + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `INTERNAL` - INTERNAL + * `PENDING` - PENDING + tags: + - job-postings + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedJobPostingList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /ats/v1/job-postings/{id}: + get: + operationId: job_postings_retrieve + description: Returns a `JobPosting` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - job + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandJob: + value: job + summary: Expand Job + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - job-postings + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/JobPosting' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /ats/v1/jobs: + get: + operationId: jobs_list + description: Returns a list of `Job` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: code + schema: + type: string + nullable: true + description: If provided, will only return jobs with this code. + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - departments + - hiring_managers + - job_postings + - offices + - recruiters + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandDepartments,Offices,HiringManagers,JobPostings,Recruiters: + value: departments,offices,hiring_managers,job_postings,recruiters + summary: Expand Departments, Offices, Hiring_managers, Job_postings, Recruiters + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: offices + schema: + type: string + description: If provided, will only return jobs for this office; multiple + offices can be separated by commas. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: status + schema: + type: string + nullable: true + enum: + - ARCHIVED + - CLOSED + - DRAFT + - OPEN + - PENDING + description: |- + If provided, will only return jobs with this status. Options: ('OPEN', 'CLOSED', 'DRAFT', 'ARCHIVED', 'PENDING') + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `ARCHIVED` - ARCHIVED + * `PENDING` - PENDING + tags: + - jobs + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedJobList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/jobs/{id}: + get: + operationId: jobs_retrieve + description: Returns a `Job` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - departments + - hiring_managers + - job_postings + - offices + - recruiters + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandDepartments,Offices,HiringManagers,JobPostings,Recruiters: + value: departments,offices,hiring_managers,job_postings,recruiters + summary: Expand Departments, Offices, Hiring_managers, Job_postings, Recruiters + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - jobs + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Job' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/jobs/{job_id}/screening-questions: + get: + operationId: jobs_screening_questions_list + description: Returns a list of `ScreeningQuestion` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - job + - options + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOptions,Job: + value: options,job + summary: Expand Options, Job + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: path + name: job_id + schema: + type: string + format: uuid + required: true + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - jobs + - screening-questions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedScreeningQuestionList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /ats/v1/link-token: + post: + operationId: link_token_create + description: Creates a link token to be used when linking a new end user. + tags: + - link-token + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LinkToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/linked-account-scopes: + get: + operationId: linked_account_scopes_retrieve + description: Get all available permissions for Merge Common Models and fields + for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: linked_account_scopes_create + description: Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the default + Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /ats/v1/linked-accounts: + get: + operationId: linked_accounts_list + description: List linked accounts for your organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: category + schema: + type: string + nullable: true + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + description: |- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `mktg`, `ticketing` + + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_user_email_address + schema: + type: string + description: If provided, will only return linked accounts associated with + the given email address. + - in: query + name: end_user_organization_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given organization name. + - in: query + name: end_user_origin_id + schema: + type: string + description: If provided, will only return linked accounts associated with + the given origin ID. + - in: query + name: end_user_origin_ids + schema: + type: string + description: Comma-separated list of EndUser origin IDs, making it possible + to specify multiple EndUsers at once. + - in: query + name: id + schema: + type: string + format: uuid + - in: query + name: ids + schema: + type: string + description: Comma-separated list of LinkedAccount IDs, making it possible + to specify multiple LinkedAccounts at once. + - in: query + name: include_duplicates + schema: + type: boolean + description: If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. `id` must + be for a complete production linked account. + - in: query + name: integration_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given integration name. + - in: query + name: is_test_account + schema: + type: string + description: If included, will only include test linked accounts. If not included, + will only include non-test linked accounts. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: status + schema: + type: string + description: 'Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED`' + tags: + - linked-accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAccountDetailsAndActionsList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/offers: + get: + operationId: offers_list + description: Returns a list of `Offer` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: application_id + schema: + type: string + description: If provided, will only return offers for this application. + examples: + ApplicationId: + summary: application_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: creator_id + schema: + type: string + description: If provided, will only return offers created by this user. + examples: + CreatorId: + summary: creator_id + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - application + - creator + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandApplication,Creator: + value: application,creator + summary: Expand Application, Creator + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - offers + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOfferList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/offers/{id}: + get: + operationId: offers_retrieve + description: Returns an `Offer` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - application + - creator + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandApplication,Creator: + value: application,creator + summary: Expand Application, Creator + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - offers + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Offer' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/offices: + get: + operationId: offices_list + description: Returns a list of `Office` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - offices + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOfficeList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/offices/{id}: + get: + operationId: offices_retrieve + description: Returns an `Office` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - offices + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Office' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/passthrough: + post: + operationId: passthrough_create + description: Pull data from an endpoint not currently supported by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/regenerate-key: + post: + operationId: regenerate_key_create + description: Exchange remote keys. + tags: + - regenerate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/reject-reasons: + get: + operationId: reject_reasons_list + description: Returns a list of `RejectReason` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - reject-reasons + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRejectReasonList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/reject-reasons/{id}: + get: + operationId: reject_reasons_retrieve + description: Returns a `RejectReason` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - reject-reasons + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RejectReason' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/remote-fields: + get: + operationId: remote_fields_retrieve + description: Get all remote fields for a Linked Account. Remote fields are third-party + fields that are accessible after initial sync if remote_data is enabled. You + can use remote fields to override existing Merge fields or map a new Merge + field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: common_models + schema: + type: string + description: A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + - in: query + name: include_example_values + schema: + type: string + description: If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active data from + your customers. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/scorecards: + get: + operationId: scorecards_list + description: Returns a list of `Scorecard` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: application_id + schema: + type: string + description: If provided, will only return scorecards for this application. + examples: + ApplicationId: + summary: application_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - application + - interview + - interviewer + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandApplication,Interview,Interviewer: + value: application,interview,interviewer + summary: Expand Application, Interview, Interviewer + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: interview_id + schema: + type: string + description: If provided, will only return scorecards for this interview. + examples: + InterviewId: + summary: interview_id + - in: query + name: interviewer_id + schema: + type: string + description: If provided, will only return scorecards for this interviewer. + examples: + InterviewerId: + summary: interviewer_id + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - overall_recommendation + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesOverallRecommendation: + value: overall_recommendation + summary: Original Enum Values Overall_recommendation + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - overall_recommendation + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesOverallRecommendation: + value: overall_recommendation + summary: Original Enum Values Overall_recommendation + tags: + - scorecards + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedScorecardList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/scorecards/{id}: + get: + operationId: scorecards_retrieve + description: Returns a `Scorecard` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - application + - interview + - interviewer + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandApplication,Interview,Interviewer: + value: application,interview,interviewer + summary: Expand Application, Interview, Interviewer + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - overall_recommendation + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesOverallRecommendation: + value: overall_recommendation + summary: Original Enum Values Overall_recommendation + - in: query + name: show_enum_origins + schema: + type: string + enum: + - overall_recommendation + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesOverallRecommendation: + value: overall_recommendation + summary: Original Enum Values Overall_recommendation + tags: + - scorecards + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Scorecard' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/sync-status: + get: + operationId: sync_status_list + description: Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` + represents the most recent time any sync completed. These timestamps may correspond + to different sync instances which may result in a sync start time being later + than a separate sync completed time. To ensure you are retrieving the latest + available data reference the `last_sync_finished` timestamp where `last_sync_result` + is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about + sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - sync-status + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSyncStatusList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/sync-status/resync: + post: + operationId: sync_status_resync_create + description: Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or Enterprise + plans. Doing so will consume a sync credit for the relevant linked account. + Force re-syncs can also be triggered manually in the Merge Dashboard and is + available for all customers. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - force-resync + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/tags: + get: + operationId: tags_list + description: Returns a list of `Tag` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - tags + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTagList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/target-fields: + get: + operationId: target_fields_retrieve + description: Get all organization-wide Target Fields, this will not include + any Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked Accounts + in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExternalTargetFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/users: + get: + operationId: users_list + description: Returns a list of `RemoteUser` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: email + schema: + type: string + format: email + nullable: true + description: If provided, will only return remote users with the given email + address + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - access_role + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesAccessRole: + value: access_role + summary: Original Enum Values Access_role + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - access_role + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesAccessRole: + value: access_role + summary: Original Enum Values Access_role + tags: + - users + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteUserList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/users/{id}: + get: + operationId: users_retrieve + description: Returns a `RemoteUser` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - access_role + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesAccessRole: + value: access_role + summary: Original Enum Values Access_role + - in: query + name: show_enum_origins + schema: + type: string + enum: + - access_role + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesAccessRole: + value: access_role + summary: Original Enum Values Access_role + tags: + - users + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteUser' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ats/v1/webhook-receivers: + get: + operationId: webhook_receivers_list + description: Returns a list of `WebhookReceiver` objects. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: webhook_receivers_create + description: Creates a `WebhookReceiver` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC +components: + schemas: + AccessRoleEnum: + enum: + - SUPER_ADMIN + - ADMIN + - TEAM_MEMBER + - LIMITED_TEAM_MEMBER + - INTERVIEWER + type: string + description: |- + * `SUPER_ADMIN` - SUPER_ADMIN + * `ADMIN` - ADMIN + * `TEAM_MEMBER` - TEAM_MEMBER + * `LIMITED_TEAM_MEMBER` - LIMITED_TEAM_MEMBER + * `INTERVIEWER` - INTERVIEWER + x-merge-category: ats + AccountDetails: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: + type: string + readOnly: true + example: BambooHR + integration_slug: + type: string + readOnly: true + example: bamboohr + category: + oneOf: + - $ref: '#/components/schemas/CategoryEnum' + - type: string + nullable: true + example: hris + end_user_origin_id: + type: string + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: + type: string + readOnly: true + example: Waystar Royco + end_user_email_address: + type: string + format: email + readOnly: true + example: kendall.roy@waystar-royco.com + status: + type: string + readOnly: true + example: COMPLETE + webhook_listener_url: + type: string + format: uri + readOnly: true + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + readOnly: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + account_type: + type: string + readOnly: true + example: PRODUCTION + completed_at: + type: string + format: date-time + nullable: true + description: The time at which account completes the linking flow. + example: '2024-08-26T20:11:19.277118Z' + x-merge-category: ats + AccountDetailsAndActions: + type: object + description: |- + # The LinkedAccount Object + ### Description + The `LinkedAccount` object is used to represent an end user's link with a specific integration. + + ### Usage Example + View a list of your organization's `LinkedAccount` objects. + properties: + id: + type: string + example: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: + oneOf: + - $ref: '#/components/schemas/CategoryEnum' + - type: string + example: hris + status: + oneOf: + - $ref: '#/components/schemas/AccountDetailsAndActionsStatusEnum' + - type: string + example: INCOMPLETE + status_detail: + type: string + example: Invalid login credentials + end_user_origin_id: + type: string + example: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: + type: string + example: Foo Bar, LLC + end_user_email_address: + type: string + example: hradmin@foobar.dev + subdomain: + type: string + description: The tenant or domain the customer has provided access to. + example: foobar + webhook_listener_url: + type: string + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + integration: + $ref: '#/components/schemas/AccountDetailsAndActionsIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: + type: string + example: PRODUCTION + completed_at: + type: string + format: date-time + example: '2024-08-26T20:11:19.277118Z' + required: + - account_type + - completed_at + - end_user_email_address + - end_user_organization_name + - id + - status + - webhook_listener_url + x-merge-sample-json: '{"id": "e59b1821-f85c-4e28-a6b3-1804156f3563", "category": + "hris", "status": "INCOMPLETE", "status_detail": "Invalid login credentials", + "end_user_origin_id": "3ac95cde-6c7f-4eef-afec-be710b42308d", "end_user_organization_name": + "Foo Bar, LLC", "end_user_email_address": "hradmin@foobar.dev", "webhook_listener_url": + "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + "is_duplicate": true, "integration": {"name": "SAP SuccessFactors", "categories": + ["hris", "ats"], "image": "https://cdn.merge.dev/SuccessFactors_Logo.png", + "square_image": "https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg", "color": + "#F6A704", "slug": "sap-successfactors", "passthrough_available": true, "available_model_operations": + [{"model_name": "Candidate", "available_operations": ["FETCH", "CREATE"], + "required_post_parameters": ["remote_user_id"], "supported_fields": ["first_name", + "last_name", "company", "title"]}]}}' + x-merge-category: ats + AccountDetailsAndActionsIntegration: + type: object + properties: + name: + type: string + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + image: + type: string + square_image: + type: string + color: + type: string + slug: + type: string + passthrough_available: + type: boolean + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + required: + - categories + - color + - name + - passthrough_available + - slug + x-merge-category: ats + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + type: string + description: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + x-merge-category: ats + AccountIntegration: + type: object + properties: + name: + type: string + description: Company name. + abbreviated_name: + type: string + nullable: true + description: "Optional. This shortened name appears in places with limited + space, usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce Now), + SuccessFactors (in lieu of SAP SuccessFactors)" + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + readOnly: true + image: + type: string + format: uri + nullable: true + description: Company logo in rectangular shape. + square_image: + type: string + format: uri + nullable: true + description: Company logo in square shape. + color: + type: string + description: The color of this integration used for buttons and text throughout + the app and landing pages. Choose a darker, saturated color. + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: string + readOnly: true + api_endpoints_to_documentation_urls: + type: object + additionalProperties: {} + description: "Mapping of API endpoints to documentation urls for support. + Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []}" + webhook_setup_guide_url: + type: string + nullable: true + description: Setup guide URL for third party webhook creation. Exposed in + Merge Docs. + category_beta_status: + type: object + description: Category or categories this integration is in beta status for. + readOnly: true + required: + - name + x-merge-category: ats + AccountToken: + type: object + properties: + account_token: + type: string + example: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + id: + type: string + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + required: + - account_token + - id + - integration + x-merge-category: ats + Activity: + type: object + description: |- + # The Activity Object + ### Description + The `Activity` object is used to represent an activity for a candidate performed by a user. + ### Usage Example + Fetch from the `LIST Activities` endpoint and filter by `ID` to show all activities. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '198123' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + user: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + description: The user that performed the action. + example: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + x-merge-expands-to: RemoteUser + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's activity was created. + example: '2021-10-15T00:00:00Z' + activity_type: + oneOf: + - $ref: '#/components/schemas/ActivityTypeEnum' + - type: string + nullable: true + description: |- + The activity's type. + + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + example: NOTE + subject: + type: string + nullable: true + description: The activity's subject. + example: Gil Feig's interview + body: + type: string + nullable: true + description: The activity's body. + example: Candidate loves integrations! + visibility: + oneOf: + - $ref: '#/components/schemas/VisibilityEnum' + - type: string + nullable: true + description: |- + The activity's visibility. + + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + example: PRIVATE + candidate: + type: string + format: uuid + nullable: true + example: 550e8400-e29b-41d4-a716-446655440000 + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-expands: '{"user": "RemoteUser"}' + x-merge-category: ats + ActivityEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/ActivityRequest' + remote_user_id: + type: string + required: + - model + - remote_user_id + x-merge-category: ats + ActivityRequest: + type: object + description: |- + # The Activity Object + ### Description + The `Activity` object is used to represent an activity for a candidate performed by a user. + ### Usage Example + Fetch from the `LIST Activities` endpoint and filter by `ID` to show all activities. + properties: + user: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + description: The user that performed the action. + example: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + x-merge-expands-to: RemoteUser + activity_type: + nullable: true + description: |- + The activity's type. + + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + example: NOTE + $ref: '#/components/schemas/ActivityTypeEnum' + subject: + type: string + nullable: true + description: The activity's subject. + example: Gil Feig's interview + body: + type: string + nullable: true + description: The activity's body. + example: Candidate loves integrations! + visibility: + oneOf: + - $ref: '#/components/schemas/VisibilityEnum' + - type: string + nullable: true + description: |- + The activity's visibility. + + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + example: PRIVATE + candidate: + type: string + format: uuid + nullable: true + example: 550e8400-e29b-41d4-a716-446655440000 + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"user": "RemoteUser"}' + x-merge-category: ats + ActivityResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Activity' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: ats + ActivityTypeEnum: + enum: + - NOTE + - EMAIL + - OTHER + type: string + description: |- + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + x-merge-category: ats + AdvancedMetadata: + type: object + properties: + id: + type: string + format: uuid + display_name: + type: string + description: + type: string + is_required: + type: boolean + is_custom: + type: boolean + field_choices: + type: array + items: {} + required: + - id + x-merge-category: ats + Application: + type: object + description: |- + # The Application Object + ### Description + The Application Object is used to represent a candidate's journey through a particular Job's recruiting process. If a Candidate applies for multiple Jobs, there will be a separate Application for each Job if the third-party integration allows it. + + ### Usage Example + Fetch from the `LIST Applications` endpoint and filter by `ID` to show all applications. + properties: + id: + type: string + format: uuid + readOnly: true + example: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '98796' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + candidate: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Candidate' + nullable: true + description: The candidate applying. + example: 2872ba14-4084-492b-be96-e5eee6fc33ef + x-merge-expands-to: Candidate + job: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Job' + nullable: true + description: The job being applied for. + example: 52bf9b5e-0beb-4f6f-8a72-cd4dca7ca633 + x-merge-expands-to: Job + applied_at: + type: string + format: date-time + nullable: true + description: When the application was submitted. + example: '2021-10-15T00:00:00Z' + rejected_at: + type: string + format: date-time + nullable: true + description: When the application was rejected. + example: '2021-11-15T00:00:00Z' + offers: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Offer' + nullable: true + example: + - e9b5c11d-c588-468e-8567-cd6992e42b62 + x-merge-expands-to: Offer + source: + type: string + nullable: true + description: The application's source. + example: Campus recruiting event + credited_to: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + description: The user credited for this application. + example: 58166795-8d68-4b30-9bfb-bfd402479484 + x-merge-expands-to: RemoteUser + screening_question_answers: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/ScreeningQuestionAnswer' + example: + - question: 0238cbc6-6040-430a-848e-aaiehfhdbadf4ae + answer: 5+ years experience + - question: 59982bf6-7c54-4ff8-ab60-ced0bb644b84 + answer: New york city + x-merge-expands-to: ScreeningQuestionAnswer + current_stage: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/JobInterviewStage' + nullable: true + description: The application's current stage. + example: d578dfdc-7b0a-4ab6-a2b0-4b40f20eb9ea + x-merge-expands-to: JobInterviewStage + reject_reason: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RejectReason' + nullable: true + description: The application's reason for rejection. + example: 59b25f2b-da02-40f5-9656-9fa0db555784 + x-merge-expands-to: RejectReason + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /candidacies + data: + - Varies by platform + x-merge-nested-write-allowed: true + x-merge-expands: '{"candidate": "Candidate", "credited_to": "RemoteUser", "current_stage": + "JobInterviewStage", "job": "Job", "offers": "Offer", "reject_reason": "RejectReason", + "screening_question_answers": "ScreeningQuestionAnswer", "screening_question_answers.question": + "ScreeningQuestion"}' + x-merge-category: ats + ApplicationEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/ApplicationRequest' + remote_user_id: + type: string + required: + - model + - remote_user_id + x-merge-category: ats + ApplicationRequest: + type: object + description: |- + # The Application Object + ### Description + The Application Object is used to represent a candidate's journey through a particular Job's recruiting process. If a Candidate applies for multiple Jobs, there will be a separate Application for each Job if the third-party integration allows it. + + ### Usage Example + Fetch from the `LIST Applications` endpoint and filter by `ID` to show all applications. + properties: + candidate: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Candidate' + nullable: true + description: The candidate applying. + example: 2872ba14-4084-492b-be96-e5eee6fc33ef + x-merge-expands-to: Candidate + job: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Job' + nullable: true + description: The job being applied for. + example: 52bf9b5e-0beb-4f6f-8a72-cd4dca7ca633 + x-merge-expands-to: Job + applied_at: + type: string + format: date-time + nullable: true + description: When the application was submitted. + example: '2021-10-15T00:00:00Z' + rejected_at: + type: string + format: date-time + nullable: true + description: When the application was rejected. + example: '2021-11-15T00:00:00Z' + offers: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Offer' + nullable: true + example: + - e9b5c11d-c588-468e-8567-cd6992e42b62 + x-merge-expands-to: Offer + source: + type: string + nullable: true + description: The application's source. + example: Campus recruiting event + credited_to: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + description: The user credited for this application. + example: 58166795-8d68-4b30-9bfb-bfd402479484 + x-merge-expands-to: RemoteUser + screening_question_answers: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/ScreeningQuestionAnswerRequest' + example: + - question: 0238cbc6-6040-430a-848e-aaiehfhdbadf4ae + answer: 5+ years experience + - question: 59982bf6-7c54-4ff8-ab60-ced0bb644b84 + answer: New york city + x-merge-expands-to: ScreeningQuestionAnswer + current_stage: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/JobInterviewStage' + nullable: true + description: The application's current stage. + example: d578dfdc-7b0a-4ab6-a2b0-4b40f20eb9ea + x-merge-expands-to: JobInterviewStage + reject_reason: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RejectReason' + nullable: true + description: The application's reason for rejection. + example: 59b25f2b-da02-40f5-9656-9fa0db555784 + x-merge-expands-to: RejectReason + remote_template_id: + type: string + writeOnly: true + nullable: true + minLength: 1 + example: '92830948203' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"candidate": "Candidate", "credited_to": "RemoteUser", "current_stage": + "JobInterviewStage", "job": "Job", "offers": "Offer", "reject_reason": "RejectReason", + "screening_question_answers": "ScreeningQuestionAnswer", "screening_question_answers.question": + "ScreeningQuestion"}' + x-merge-category: ats + ApplicationResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Application' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: ats + AsyncPassthroughReciept: + type: object + properties: + async_passthrough_receipt_id: + type: string + format: uuid + example: fd29020f-2695-445e-922e-dcd5e81903fd + required: + - async_passthrough_receipt_id + x-merge-category: ats + Attachment: + type: object + description: |- + # The Attachment Object + ### Description + The `Attachment` object is used to represent a file attached to a candidate. + ### Usage Example + Fetch from the `LIST Attachments` endpoint and view attachments accessible by a company. + properties: + id: + type: string + format: uuid + readOnly: true + example: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '11167' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + file_name: + type: string + nullable: true + description: The attachment's name. + example: Candidate Resume + file_url: + type: string + format: uri + nullable: true + maxLength: 2000 + example: http://alturl.com/p749b + description: The attachment's url. + candidate: + type: string + format: uuid + nullable: true + description: '' + example: 2872ba14-4084-492b-be96-e5eee6fc33ef + attachment_type: + oneOf: + - $ref: '#/components/schemas/AttachmentTypeEnum' + - type: string + nullable: true + description: |- + The attachment's type. + + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + example: RESUME + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /attachments + data: + - Varies by platform + x-merge-nested-write-allowed: true + x-merge-expands: '{"ticket": "Ticket"}' + x-merge-category: ats + AttachmentEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/AttachmentRequest' + remote_user_id: + type: string + required: + - model + - remote_user_id + x-merge-category: ats + AttachmentRequest: + type: object + description: |- + # The Attachment Object + ### Description + The `Attachment` object is used to represent a file attached to a candidate. + ### Usage Example + Fetch from the `LIST Attachments` endpoint and view attachments accessible by a company. + properties: + file_name: + type: string + nullable: true + description: The attachment's name. + example: Candidate Resume + file_url: + type: string + format: uri + nullable: true + maxLength: 2000 + example: http://alturl.com/p749b + description: The attachment's url. + candidate: + type: string + format: uuid + nullable: true + description: '' + example: 2872ba14-4084-492b-be96-e5eee6fc33ef + attachment_type: + oneOf: + - $ref: '#/components/schemas/AttachmentTypeEnum' + - type: string + nullable: true + description: |- + The attachment's type. + + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + example: RESUME + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"ticket": "Ticket"}' + x-merge-category: ats + AttachmentResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Attachment' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: ats + AttachmentTypeEnum: + enum: + - RESUME + - COVER_LETTER + - OFFER_LETTER + - OTHER + type: string + description: |- + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + x-merge-category: ats + AuditLogEvent: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: + type: string + nullable: true + description: The User's full name at the time of this Event occurring. + maxLength: 200 + example: Gil Feig + user_email: + type: string + format: email + nullable: true + description: The User's email at the time of this Event occurring. + maxLength: 254 + example: hello@merge.dev + role: + oneOf: + - $ref: '#/components/schemas/RoleEnum' + - type: string + description: |- + Designates the role of the user (or SYSTEM/API if action not taken by a user) at the time of this Event occurring. + + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + example: ADMIN + ip_address: + type: string + maxLength: 45 + example: 192.0.2.123 + event_type: + oneOf: + - $ref: '#/components/schemas/EventTypeEnum' + - type: string + description: |- + Designates the type of event that occurred. + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + example: CHANGED_SCOPES + event_description: + type: string + example: Organization-wide Scopes for model hris.Employee updated from Read + to Read+Write + created_at: + type: string + format: date-time + readOnly: true + required: + - event_description + - event_type + - ip_address + - role + x-merge-category: ats + AvailableActions: + type: object + description: |- + # The AvailableActions Object + ### Description + The `Activity` object is used to see all available model/operation combinations for an integration. + + ### Usage Example + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: Lever + categories: + - ats + image: https://merge-api-production.s3.amazonaws.com/media/Lever_Logo.png + square_image: https://merge-api-production.s3.amazonaws.com/media/Lever_Square_Logo.png + color: '#262A34' + is_in_beta: 'true' + api_endpoints_to_documentation_urls: "{'GET': [('/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve')], + 'POST': []}" + passthrough_available: + type: boolean + example: true + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + example: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + required: + - integration + - passthrough_available + x-merge-category: ats + Candidate: + type: object + description: |- + # The Candidate Object + ### Description + The `Candidate` object is used to represent profile information about a given Candidate. Because it is specific to a Candidate, this information stays constant across applications. + ### Usage Example + Fetch from the `LIST Candidates` endpoint and filter by `ID` to show all candidates. + properties: + id: + type: string + format: uuid + readOnly: true + example: 521b18c2-4d01-4297-b451-19858d07c133 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '21198' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + first_name: + type: string + nullable: true + description: The candidate's first name. + example: Gil + last_name: + type: string + nullable: true + description: The candidate's last name. + example: Feig + company: + type: string + nullable: true + description: The candidate's current company. + example: Columbia Dining App. + title: + type: string + nullable: true + description: The candidate's current title. + example: Software Engineer + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's candidate was created. + example: '2021-10-15T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's candidate was updated. + example: '2021-10-16T00:00:00Z' + last_interaction_at: + type: string + format: date-time + nullable: true + description: When the most recent interaction with the candidate occurred. + example: '2021-10-17T00:00:00Z' + is_private: + type: boolean + nullable: true + description: Whether or not the candidate is private. + example: true + can_email: + type: boolean + nullable: true + description: Whether or not the candidate can be emailed. + example: true + locations: + type: array + items: + type: string + nullable: true + description: The candidate's locations. + nullable: true + description: The candidate's locations. + example: + - San Francisco + - New York + - Miami + phone_numbers: + type: array + items: + $ref: '#/components/schemas/PhoneNumber' + example: + - value: '+1234567890' + phone_number_type: MOBILE + email_addresses: + type: array + items: + $ref: '#/components/schemas/EmailAddress' + example: + - value: hello@merge.dev + email_address_type: PERSONAL + urls: + type: array + items: + $ref: '#/components/schemas/Url' + example: + - value: http://alturl.com/p749b + url_type: BLOG + tags: + type: array + items: + type: string + nullable: true + description: The tag's name. + example: + - High-Priority + description: Array of `Tag` names as strings. + applications: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Application' + nullable: true + example: + - 29eb9867-ce2a-403f-b8ce-f2844b89f078 + - b4d08e5c-de00-4d64-a29f-66addac9af99 + - 4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56 + description: Array of `Application` object IDs. + x-merge-expands-to: Application + attachments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Attachment' + nullable: true + example: + - bea08964-32b4-4a20-8bb4-2612ba09de1d + description: Array of `Attachment` object IDs. + x-merge-expands-to: Attachment + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /candidates + data: + - Varies by platform + x-merge-nested-write-allowed: true + x-merge-expands: '{"applications": "Application", "attachments": "Attachment"}' + x-merge-category: ats + CandidateEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/CandidateRequest' + remote_user_id: + type: string + required: + - model + - remote_user_id + x-merge-category: ats + CandidateRequest: + type: object + description: |- + # The Candidate Object + ### Description + The `Candidate` object is used to represent profile information about a given Candidate. Because it is specific to a Candidate, this information stays constant across applications. + ### Usage Example + Fetch from the `LIST Candidates` endpoint and filter by `ID` to show all candidates. + properties: + first_name: + type: string + nullable: true + description: The candidate's first name. + example: Gil + last_name: + type: string + nullable: true + description: The candidate's last name. + example: Feig + company: + type: string + nullable: true + description: The candidate's current company. + example: Columbia Dining App. + title: + type: string + nullable: true + description: The candidate's current title. + example: Software Engineer + last_interaction_at: + type: string + format: date-time + nullable: true + description: When the most recent interaction with the candidate occurred. + example: '2021-10-17T00:00:00Z' + is_private: + type: boolean + nullable: true + description: Whether or not the candidate is private. + example: true + can_email: + type: boolean + nullable: true + description: Whether or not the candidate can be emailed. + example: true + locations: + type: array + items: + type: string + nullable: true + description: The candidate's locations. + nullable: true + description: The candidate's locations. + example: + - San Francisco + - New York + - Miami + phone_numbers: + type: array + items: + $ref: '#/components/schemas/PhoneNumberRequest' + example: + - value: '+1234567890' + phone_number_type: MOBILE + email_addresses: + type: array + items: + $ref: '#/components/schemas/EmailAddressRequest' + example: + - value: hello@merge.dev + email_address_type: PERSONAL + urls: + type: array + items: + $ref: '#/components/schemas/UrlRequest' + example: + - value: http://alturl.com/p749b + url_type: BLOG + tags: + type: array + items: + type: string + nullable: true + description: The tag's name. + example: + - High-Priority + description: Array of `Tag` names as strings. + applications: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Application' + nullable: true + example: + - 29eb9867-ce2a-403f-b8ce-f2844b89f078 + - b4d08e5c-de00-4d64-a29f-66addac9af99 + - 4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56 + description: Array of `Application` object IDs. + x-merge-expands-to: Application + attachments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Attachment' + nullable: true + example: + - bea08964-32b4-4a20-8bb4-2612ba09de1d + description: Array of `Attachment` object IDs. + x-merge-expands-to: Attachment + remote_template_id: + type: string + writeOnly: true + nullable: true + minLength: 1 + example: '92830948203' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"applications": "Application", "attachments": "Attachment"}' + x-merge-category: ats + CandidateResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Candidate' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: ats + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: ats + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: ats + CommonModelScopeAPI: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializer' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + required: + - common_models + x-merge-category: ats + CommonModelScopesBodyRequest: + type: object + properties: + model_id: + type: string + minLength: 1 + example: hris.Employee + enabled_actions: + type: array + items: + $ref: '#/components/schemas/EnabledActionsEnum' + example: + - READ + - WRITE + disabled_fields: + type: array + items: + type: string + minLength: 1 + example: + - first_name + required: + - disabled_fields + - enabled_actions + - model_id + x-merge-category: ats + CreateFieldMappingRequest: + type: object + properties: + target_field_name: + type: string + minLength: 1 + description: The name of the target field you want this remote field to + map to. + example: example_target_field_name + target_field_description: + type: string + minLength: 1 + description: The description of the target field you want this remote field + to map to. + example: this is a example description of the target field + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + common_model_name: + type: string + minLength: 1 + description: The name of the Common Model that the remote field corresponds + to in a given category. + example: ExampleCommonModel + required: + - common_model_name + - remote_field_traversal_path + - remote_method + - remote_url_path + - target_field_description + - target_field_name + x-merge-category: ats + DataPassthroughRequest: + type: object + description: |- + # The DataPassthrough Object + ### Description + The `DataPassthrough` object is used to send information to an otherwise-unsupported third-party endpoint. + + ### Usage Example + Create a `DataPassthrough` to get team hierarchies from your Rippling integration. + properties: + method: + allOf: + - $ref: '#/components/schemas/MethodEnum' + example: POST + path: + type: string + minLength: 1 + description: The path of the request in the third party's platform. + example: /scooters + base_url_override: + type: string + nullable: true + minLength: 1 + description: An optional override of the third party's base url for the + request. + example: https://api.example.com + data: + type: string + nullable: true + minLength: 1 + description: The data with the request. You must include a `request_format` + parameter matching the data's format + example: '{"company": "Lime", "model": "Gen 2.5"}' + multipart_form_data: + type: array + items: + $ref: '#/components/schemas/MultipartFormFieldRequest' + nullable: true + description: Pass an array of `MultipartFormField` objects in here instead + of using the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: object + additionalProperties: {} + nullable: true + description: The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for passthrough. + Choose content type corresponding to expected format of receiving server. + example: + EXTRA-HEADER: value + request_format: + allOf: + - $ref: '#/components/schemas/RequestFormatEnum' + nullable: true + example: JSON + normalize_response: + type: boolean + description: 'Optional. If true, the response will always be an object of + the form `{"type": T, "value": ...}` where `T` will be one of `string, + boolean, number, null, array, object`.' + required: + - method + - path + x-merge-category: ats + DebugModeLog: + type: object + properties: + log_id: + type: string + example: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: + type: string + example: https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + $ref: '#/components/schemas/DebugModelLogSummary' + example: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + required: + - dashboard_view + - log_id + - log_summary + x-merge-sample-json: '{"log_id": "99433219-8017-4acd-bb3c-ceb23d663832", "dashboard_view": + "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", "log_summary": + {"url": "www.exampleintegration.com/api/v1/exampleapi", "method": "POST", + "status_code": 200}}' + x-merge-category: ats + DebugModelLogSummary: + type: object + properties: + url: + type: string + example: www.exampleintegration.com/api/v1/exampleapi + method: + type: string + example: POST + status_code: + type: integer + example: 200 + required: + - method + - status_code + - url + x-merge-sample-json: '{"url": "www.exampleintegration.com/api/v1/exampleapi", + "method": "POST", "status_code": 200}' + x-merge-category: ats + Department: + type: object + description: |- + # The Department Object + ### Description + The `Department` object is used to represent a department within a company. + ### Usage Example + Fetch from the `LIST Departments` endpoint and view the departments within a company. + properties: + id: + type: string + format: uuid + readOnly: true + example: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '23456' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The department's name. + example: Engineering + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /departments + data: + - Varies by platform + x-merge-category: ats + DisabilityStatusEnum: + enum: + - YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + - NO_I_DONT_HAVE_A_DISABILITY + - I_DONT_WISH_TO_ANSWER + type: string + description: |- + * `YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY` - YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + * `NO_I_DONT_HAVE_A_DISABILITY` - NO_I_DONT_HAVE_A_DISABILITY + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + x-merge-category: ats + EEOC: + type: object + description: |- + # The EEOC Object + ### Description + The `EEOC` object is used to represent the Equal Employment Opportunity Commission information for a candidate (race, gender, veteran status, disability status). + ### Usage Example + Fetch from the `LIST EEOCs` endpoint and filter by `candidate` to show all EEOC information for a candidate. + properties: + id: + type: string + format: uuid + readOnly: true + example: f7dd7b4f-237e-4772-8bd4-3246384c6c58 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '76' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + candidate: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Candidate' + nullable: true + description: The candidate being represented. + example: f963f34d-3d2f-4f77-b557-cf36bc7e6498 + x-merge-expands-to: Candidate + submitted_at: + type: string + format: date-time + nullable: true + description: When the information was submitted. + example: '2021-10-15T00:00:00Z' + race: + oneOf: + - $ref: '#/components/schemas/RaceEnum' + - type: string + nullable: true + description: |- + The candidate's race. + + * `AMERICAN_INDIAN_OR_ALASKAN_NATIVE` - AMERICAN_INDIAN_OR_ALASKAN_NATIVE + * `ASIAN` - ASIAN + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + * `WHITE` - WHITE + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + example: HISPANIC_OR_LATINO + gender: + oneOf: + - $ref: '#/components/schemas/GenderEnum' + - type: string + nullable: true + description: |- + The candidate's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + example: FEMALE + veteran_status: + oneOf: + - $ref: '#/components/schemas/VeteranStatusEnum' + - type: string + nullable: true + description: |- + The candidate's veteran status. + + * `I_AM_NOT_A_PROTECTED_VETERAN` - I_AM_NOT_A_PROTECTED_VETERAN + * `I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN` - I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + example: I_AM_NOT_A_PROTECTED_VETERAN + disability_status: + oneOf: + - $ref: '#/components/schemas/DisabilityStatusEnum' + - type: string + nullable: true + description: |- + The candidate's disability status. + + * `YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY` - YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + * `NO_I_DONT_HAVE_A_DISABILITY` - NO_I_DONT_HAVE_A_DISABILITY + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + example: I_DONT_WISH_TO_ANSWER + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /eeoc + data: + - Varies by platform + x-merge-expands: '{"candidate": "Candidate"}' + x-merge-category: ats + EmailAddress: + type: object + description: |- + # The EmailAddress Object + ### Description + The `EmailAddress` object is used to represent a candidate's email address. + ### Usage Example + Fetch from the `GET Candidate` endpoint and view their email addresses. + properties: + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + value: + type: string + format: email + nullable: true + description: The email address. + maxLength: 254 + example: merge_is_hiring@merge.dev + email_address_type: + oneOf: + - $ref: '#/components/schemas/EmailAddressTypeEnum' + - type: string + nullable: true + description: |- + The type of email address. + + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + example: PERSONAL + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-category: ats + EmailAddressRequest: + type: object + description: |- + # The EmailAddress Object + ### Description + The `EmailAddress` object is used to represent a candidate's email address. + ### Usage Example + Fetch from the `GET Candidate` endpoint and view their email addresses. + properties: + value: + type: string + format: email + nullable: true + description: The email address. + maxLength: 254 + example: merge_is_hiring@merge.dev + email_address_type: + oneOf: + - $ref: '#/components/schemas/EmailAddressTypeEnum' + - type: string + nullable: true + description: |- + The type of email address. + + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + example: PERSONAL + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: ats + EmailAddressTypeEnum: + enum: + - PERSONAL + - WORK + - OTHER + type: string + description: |- + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + x-merge-category: ats + EnabledActionsEnum: + enum: + - READ + - WRITE + type: string + description: |- + * `READ` - READ + * `WRITE` - WRITE + x-merge-category: ats + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + type: string + description: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + x-merge-category: ats + EndUserDetailsRequest: + type: object + properties: + end_user_email_address: + type: string + minLength: 1 + description: Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be sent. + maxLength: 100 + example: example@gmail.com + end_user_organization_name: + type: string + minLength: 1 + description: Your end user's organization. + maxLength: 100 + example: Test Organization + end_user_origin_id: + type: string + minLength: 1 + description: This unique identifier typically represents the ID for your + end user in your product's database. This value must be distinct from + other Linked Accounts' unique identifiers. + maxLength: 100 + example: '12345' + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: The integration categories to show in Merge Link. + example: + - hris + - ats + integration: + type: string + nullable: true + minLength: 1 + description: The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see https://docs.merge.dev/guides/merge-link/single-integration/. + example: bamboohr + link_expiry_mins: + type: integer + maximum: 10080 + minimum: 30 + default: 30 + description: An integer number of minutes between [30, 720 or 10080 if for + a Magic Link URL] for how long this token is valid. Defaults to 30. + should_create_magic_link_url: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + hide_admin_magic_link: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information on Magic + Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + common_models: + type: array + items: + $ref: '#/components/schemas/CommonModelScopesBodyRequest' + nullable: true + description: An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses model_id, enabled_actions, + and disabled_fields to specify the model, method, and fields that are + scoped for a given Linked Account. + category_common_model_scopes: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + nullable: true + description: When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be linked. Any + model or field not specified in link token payload will default to existing + settings. + example: + hris: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - first_name + - last_name + - personal_email + disabled_fields: + - preferred_name + - model_name: Employment + model_permissions: + READ: + is_enabled: false + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - effective_date + ats: + - model_name: Job + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - name + disabled_fields: + - description + - model_name: Department + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + language: + oneOf: + - $ref: '#/components/schemas/LanguageEnum' + - type: string + nullable: true + description: |- + The following subset of IETF language tags can be used to configure localization. + + * `en` - en + * `de` - de + example: en + are_syncs_disabled: + type: boolean + nullable: true + default: false + description: The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + integration_specific_config: + type: object + additionalProperties: {} + nullable: true + description: A JSON object containing integration-specific configuration + options. + example: + rippling: + oauth_code: 3h1jj8ssdf31dfji3o1jjdfjasd + required: + - categories + - end_user_email_address + - end_user_organization_name + - end_user_origin_id + x-merge-category: ats + ErrorValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /model/custom_fields + title: + type: string + example: Missing Required Field + detail: + type: string + example: custom_fields is a required field on model. + problem_type: + type: string + example: MISSING_REQUIRED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: ats + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + type: string + description: |- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + x-merge-category: ats + ExternalTargetFieldAPI: + type: object + properties: + name: + type: string + nullable: true + readOnly: true + example: example_target_field_name + description: + type: string + nullable: true + readOnly: true + example: this is a example description of a target field + is_mapped: + type: string + nullable: true + readOnly: true + example: true + x-merge-category: ats + ExternalTargetFieldAPIResponse: + type: object + properties: + Activity: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Application: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Attachment: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Candidate: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Department: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + EEOC: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + ScheduledInterview: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Job: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + JobPosting: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + JobInterviewStage: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Offer: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Office: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + RejectReason: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Scorecard: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Tag: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + RemoteUser: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + x-merge-category: ats + FieldMappingApiInstance: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: + type: boolean + readOnly: true + target_field: + type: object + properties: + name: + type: string + description: + type: string + is_organization_wide: + type: boolean + required: + - description + - is_organization_wide + - name + nullable: true + readOnly: true + example: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + type: object + properties: + remote_key_name: + type: string + nullable: true + schema: + type: object + additionalProperties: {} + nullable: true + remote_endpoint_info: + type: object + properties: + method: + type: string + nullable: true + url_path: + type: string + nullable: true + field_traversal_path: + type: array + items: + type: string + nullable: true + required: + - field_traversal_path + - method + - url_path + required: + - remote_endpoint_info + - remote_key_name + - schema + nullable: true + readOnly: true + example: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + x-merge-category: ats + FieldMappingApiInstanceResponse: + type: object + properties: + Activity: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Application: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Attachment: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Candidate: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Department: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + EEOC: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + ScheduledInterview: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Job: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + JobPosting: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + JobInterviewStage: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Offer: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Office: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + RejectReason: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Scorecard: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Tag: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + RemoteUser: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + x-merge-category: ats + FieldMappingInstanceResponse: + type: object + properties: + model: + $ref: '#/components/schemas/FieldMappingApiInstance' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: ats + FieldPermissionDeserializer: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: ats + FieldPermissionDeserializerRequest: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: ats + GenderEnum: + enum: + - MALE + - FEMALE + - NON-BINARY + - OTHER + - DECLINE_TO_SELF_IDENTIFY + type: string + description: |- + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + x-merge-category: ats + GenerateRemoteKeyRequest: + type: object + description: |- + # The GenerateRemoteKey Object + ### Description + The `GenerateRemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to create a new remote key. + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: ats + IgnoreCommonModelRequest: + type: object + properties: + reason: + oneOf: + - $ref: '#/components/schemas/ReasonEnum' + - type: string + example: GENERAL_CUSTOMER_REQUEST + message: + type: string + minLength: 1 + maxLength: 256 + example: deletion request by user id 51903790-7dfe-4053-8d63-5a10cc4ffd39 + required: + - reason + x-merge-category: ats + IndividualCommonModelScopeDeserializer: + type: object + properties: + model_name: + type: string + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializer' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializer' + required: + - model_name + x-merge-category: ats + IndividualCommonModelScopeDeserializerRequest: + type: object + properties: + model_name: + type: string + minLength: 1 + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializerRequest' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializerRequest' + required: + - model_name + x-merge-category: ats + Issue: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: + oneOf: + - $ref: '#/components/schemas/IssueStatusEnum' + - type: string + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + example: ONGOING + error_description: + type: string + example: Missing Permissions + end_user: + type: object + additionalProperties: {} + readOnly: true + example: b82302de-852e-4e60-b050-edf9da3b7c02 + first_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + last_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + is_muted: + type: boolean + readOnly: true + example: true + error_details: + type: array + items: + type: string + readOnly: true + example: + - Missing employee permissions. + - Missing time off permissions. + required: + - error_description + x-merge-category: ats + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + type: string + description: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + x-merge-category: ats + Job: + type: object + description: |- + # The Job Object + ### Description + The `Job` object can be used to track any jobs that are currently or will be open/closed for applications. + ### Usage Example + Fetch from the `LIST Jobs` endpoint to show all job postings. + properties: + id: + type: string + format: uuid + readOnly: true + example: 022a2bef-57e5-4def-8ed2-7c41bd9a5ed8 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '8765432' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The job's name. + example: Software Engineer (Merge is actually hiring btw) + description: + type: string + nullable: true + description: The job's description. + example: If you're reading this documentation, you might be a good fit + for Merge! + code: + type: string + nullable: true + description: The job's code. Typically an additional identifier used to + reference the particular job that is displayed on the ATS. + example: C0025 + status: + oneOf: + - $ref: '#/components/schemas/JobStatusEnum' + - type: string + nullable: true + description: |- + The job's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `ARCHIVED` - ARCHIVED + * `PENDING` - PENDING + example: OPEN + type: + oneOf: + - $ref: '#/components/schemas/JobTypeEnum' + - type: string + nullable: true + description: |- + The job's type. + + * `POSTING` - POSTING + * `REQUISITION` - REQUISITION + * `PROFILE` - PROFILE + example: POSTING + job_postings: + type: array + items: + type: string + format: uuid + nullable: true + example: + - 2r3c1341-a20f-4e51-b72c-f3830a16c97b + - 543ed912-33ec-444e-a215-8d71cc42fc12 + description: IDs of `JobPosting` objects that serve as job postings for + this `Job`. + x-merge-expands-to: JobPosting + job_posting_urls: + type: array + items: + $ref: '#/components/schemas/Url' + example: + - value: https://merge.dev/careers + url_type: JOB_POSTING + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's job was created. + example: '2021-10-15T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's job was updated. + example: '2021-10-16T00:00:00Z' + confidential: + type: boolean + nullable: true + description: Whether the job is confidential. + example: true + departments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Department' + nullable: true + example: + - 5b3c1341-a20f-4e51-b72c-f3830a16c97b + - d6e687d6-0c36-48a1-8114-35324b5cb38f + description: IDs of `Department` objects for this `Job`. + x-merge-expands-to: Department + offices: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Office' + nullable: true + example: + - 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + description: IDs of `Office` objects for this `Job`. + x-merge-expands-to: Office + hiring_managers: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + example: + - 787ed912-33ec-444e-a215-8d71cc42fc12 + description: IDs of `RemoteUser` objects that serve as hiring managers for + this `Job`. + x-merge-expands-to: RemoteUser + recruiters: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + example: + - 787ed912-33ec-444e-a215-8d71cc42fc12 + description: IDs of `RemoteUser` objects that serve as recruiters for this + `Job`. + x-merge-expands-to: RemoteUser + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /positions + data: + - Varies by platform + x-merge-sample-json: "{\"id\": \"022a2bef-57e5-4def-8ed2-7c41bd9a5ed8\", \"\ + remote_id\": \"8765432\", \"name\": \"Software Engineer (Merge is actually + hiring btw)\", \"description\": \"If you're reading this documentation, + you might be a good fit for Merge!\", \"code\": \"C0025\", \"status\" + : \"OPEN\", \"job_posting_urls\": [{\"value\": \"https://merge.dev/careers\"\ + , \"url_type\": \"JOB_POSTING\"}], \"remote_created_at\": \"2021-10-15T00:00:00Z\"\ + , \"remote_updated_at\": \"2021-10-16T00:00:00Z\", \"confidential\": true, + \"departments\": [\"5b3c1341-a20f-4e51-b72c-f3830a16c97b\", \"d6e687d6-0c36-48a1-8114-35324b5cb38f\"\ + ], \"offices\": [\"9871b4a9-f5d2-4f3b-a66b-dfedbed42c46\"], \"hiring_managers\"\ + : [\"787ed912-33ec-444e-a215-8d71cc42fc12\"], \"remote_data\": [{\"path\" + : \"/positions\", \"data\": {\"example\": \"Varies by platform\"}}]}" + x-merge-expands: '{"departments": "Department", "hiring_managers": "RemoteUser", + "job_postings": "JobPosting", "offices": "Office", "recruiters": "RemoteUser"}' + x-merge-category: ats + JobInterviewStage: + type: object + description: |- + # The JobInterviewStage Object + ### Description + The `JobInterviewStage` object is used to represent a particular recruiting stage for an `Application`. A given `Application` typically has the `JobInterviewStage` object represented in the current_stage field. + ### Usage Example + Fetch from the `LIST JobInterviewStages` endpoint and view the job interview stages used by a company. + properties: + id: + type: string + format: uuid + readOnly: true + example: f9813dd5-e70b-484c-91d8-00acd6065b07 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '876556788' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: Standard stage names are offered by ATS systems but can be + modified by users. + example: Phone Screen + job: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Job' + nullable: true + description: This field is populated only if the stage is specific to a + particular job. If the stage is generic, this field will not be populated. + example: ba7d9648-5316-4a80-8d73-4e636cef5a90 + x-merge-expands-to: Job + stage_order: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + description: The stage’s order, with the lowest values ordered first. If + the third-party does not return details on the order of stages, this field + will not be populated. + example: 2 + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /interview-stages + data: + - Varies by platform + x-merge-expands: '{"job": "Job"}' + x-merge-category: ats + JobPosting: + type: object + description: |- + # The JobPosting Object + ### Description + The `JobPosting` object represents an external announcement on a job board created by an organization to attract qualified candidates to apply for a specific `Job` opening + ### Usage Example + Fetch from the `LIST JobPostings` endpoint to show all job postings. + properties: + id: + type: string + format: uuid + readOnly: true + example: 156a2bef-57e5-4def-8ed2-7c41bd9a554t + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '1341324' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + title: + type: string + nullable: true + description: The job posting’s title. + example: Platform - NYC + job_posting_urls: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Url' + example: + - value: https://merge.dev/careers + url_type: JOB_POSTING + description: The Url object is used to represent hyperlinks for a candidate + to apply to a given job. + job: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Job' + nullable: true + description: ID of `Job` object for this `JobPosting`. + example: 022a2bef-57e5-4def-8ed2-7c41bd9a5ed8 + x-merge-expands-to: Job + status: + oneOf: + - $ref: '#/components/schemas/JobPostingStatusEnum' + - type: string + nullable: true + description: |- + The job posting's status. + + * `PUBLISHED` - PUBLISHED + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `INTERNAL` - INTERNAL + * `PENDING` - PENDING + example: PUBLISHED + content: + type: string + nullable: true + description: The job posting’s content. + example: Apply at https://merge.dev/careers + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's job posting was created. + example: '2021-10-15T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's job posting was updated. + example: '2021-10-16T00:00:00Z' + is_internal: + type: boolean + nullable: true + description: Indicates whether the job posting is internal or external. + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /positions + data: + - Varies by platform + x-merge-expands: '{"job": "Job"}' + x-merge-category: ats + JobPostingStatusEnum: + enum: + - PUBLISHED + - CLOSED + - DRAFT + - INTERNAL + - PENDING + type: string + description: |- + * `PUBLISHED` - PUBLISHED + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `INTERNAL` - INTERNAL + * `PENDING` - PENDING + x-merge-category: ats + JobStatusEnum: + enum: + - OPEN + - CLOSED + - DRAFT + - ARCHIVED + - PENDING + type: string + description: |- + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `ARCHIVED` - ARCHIVED + * `PENDING` - PENDING + x-merge-category: ats + JobTypeEnum: + enum: + - POSTING + - REQUISITION + - PROFILE + type: string + description: |- + * `POSTING` - POSTING + * `REQUISITION` - REQUISITION + * `PROFILE` - PROFILE + x-merge-category: ats + LanguageEnum: + enum: + - en + - de + type: string + description: |- + * `en` - en + * `de` - de + x-merge-category: ats + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: ats + LinkToken: + type: object + properties: + link_token: + type: string + example: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: + type: string + example: Lever + magic_link_url: + type: string + example: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + required: + - link_token + x-merge-category: ats + LinkedAccountCommonModelScopeDeserializerRequest: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + required: + - common_models + x-merge-category: ats + LinkedAccountStatus: + type: object + properties: + linked_account_status: + type: string + can_make_request: + type: boolean + required: + - can_make_request + - linked_account_status + x-merge-category: ats + MetaResponse: + type: object + properties: + request_schema: + type: object + additionalProperties: {} + example: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + type: object + additionalProperties: {} + status: + $ref: '#/components/schemas/LinkedAccountStatus' + example: + linked_account_status: COMPLETE + can_make_request: true + has_conditional_params: + type: boolean + has_required_linked_account_params: + type: boolean + required: + - has_conditional_params + - has_required_linked_account_params + - request_schema + x-merge-category: ats + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + type: string + description: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + x-merge-category: ats + ModelOperation: + type: object + description: |- + # The ModelOperation Object + ### Description + The `ModelOperation` object is used to represent the operations that are currently supported for a given model. + + ### Usage Example + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: + type: string + example: Candidate + available_operations: + type: array + items: + type: string + example: + - FETCH + - CREATE + required_post_parameters: + type: array + items: + type: string + example: + - remote_user_id + supported_fields: + type: array + items: + type: string + example: + - first_name + - last_name + - company + - title + required: + - available_operations + - model_name + - required_post_parameters + - supported_fields + x-merge-category: ats + ModelPermissionDeserializer: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: ats + ModelPermissionDeserializerRequest: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: ats + MultipartFormFieldRequest: + type: object + description: |- + # The MultipartFormField Object + ### Description + The `MultipartFormField` object is used to represent fields in an HTTP request using `multipart/form-data`. + + ### Usage Example + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + minLength: 1 + description: The name of the form field + example: resume + data: + type: string + minLength: 1 + description: The data for the form field. + example: SW50ZWdyYXRlIGZhc3QKSW50ZWdyYXRlIG9uY2U= + encoding: + oneOf: + - $ref: '#/components/schemas/EncodingEnum' + - type: string + nullable: true + default: RAW + description: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + example: BASE64 + file_name: + type: string + nullable: true + minLength: 1 + description: The file name of the form field, if the field is for a file. + example: resume.pdf + content_type: + type: string + nullable: true + minLength: 1 + description: The MIME type of the file, if the field is for a file. + example: application/pdf + required: + - data + - name + x-merge-category: ats + Offer: + type: object + description: |- + # The Offer Object + ### Description + The `Offer` object is used to represent an offer for a candidate's application specific to a job. + ### Usage Example + Fetch from the `LIST Offers` endpoint and filter by `ID` to show all offers. + properties: + id: + type: string + format: uuid + readOnly: true + example: dd85625c-6a59-446f-a317-6de64d83bae7 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '9876' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + application: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Application' + nullable: true + description: The application who is receiving the offer. + example: 2872ba14-4084-492b-be96-e5eee6fc33ef + x-merge-expands-to: Application + creator: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + description: The user who created the offer. + example: 52bf9b5e-0beb-4f6f-8a72-cd4dca7ca633 + x-merge-expands-to: RemoteUser + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's offer was created. + example: '2021-10-15T00:00:00Z' + closed_at: + type: string + format: date-time + nullable: true + description: When the offer was closed. + example: '2021-10-16T00:00:00Z' + sent_at: + type: string + format: date-time + nullable: true + description: When the offer was sent. + example: '2021-10-15T00:00:00Z' + start_date: + type: string + format: date-time + nullable: true + description: The employment start date on the offer. + example: '2021-11-15T00:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/OfferStatusEnum' + - type: string + nullable: true + description: |- + The offer's status. + + * `DRAFT` - DRAFT + * `APPROVAL-SENT` - APPROVAL-SENT + * `APPROVED` - APPROVED + * `SENT` - SENT + * `SENT-MANUALLY` - SENT-MANUALLY + * `OPENED` - OPENED + * `DENIED` - DENIED + * `SIGNED` - SIGNED + * `DEPRECATED` - DEPRECATED + example: SENT + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /offers + data: + - Varies by platform + x-merge-expands: '{"application": "Application", "creator": "RemoteUser"}' + x-merge-category: ats + OfferStatusEnum: + enum: + - DRAFT + - APPROVAL-SENT + - APPROVED + - SENT + - SENT-MANUALLY + - OPENED + - DENIED + - SIGNED + - DEPRECATED + type: string + description: |- + * `DRAFT` - DRAFT + * `APPROVAL-SENT` - APPROVAL-SENT + * `APPROVED` - APPROVED + * `SENT` - SENT + * `SENT-MANUALLY` - SENT-MANUALLY + * `OPENED` - OPENED + * `DENIED` - DENIED + * `SIGNED` - SIGNED + * `DEPRECATED` - DEPRECATED + x-merge-category: ats + Office: + type: object + description: |- + # The Office Object + ### Description + The `Office` object is used to represent an office within a company. A given `Job` has the `Office` ID in its offices field. + ### Usage Example + Fetch from the `LIST Offices` endpoint and view the offices within a company. + properties: + id: + type: string + format: uuid + readOnly: true + example: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '876556788' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The office's name. + example: SF Office + location: + type: string + nullable: true + description: The office's location. + example: Embarcadero Center 2 + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /locations + data: + - Varies by platform + x-merge-sample-json: '{"id": "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", "remote_id": + "876556788", "name": "SF Office", "location": "Embarcadero Center 2", "remote_data": + [{"path": "/locations", "data": {"example": "Varies by platform"}}]}' + x-merge-category: ats + OverallRecommendationEnum: + enum: + - DEFINITELY_NO + - NO + - YES + - STRONG_YES + - NO_DECISION + type: string + description: |- + * `DEFINITELY_NO` - DEFINITELY_NO + * `NO` - NO + * `YES` - YES + * `STRONG_YES` - STRONG_YES + * `NO_DECISION` - NO_DECISION + x-merge-category: ats + PaginatedAccountDetailsAndActionsList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AccountDetailsAndActions' + x-merge-category: ats + PaginatedActivityList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Activity' + x-merge-category: ats + PaginatedApplicationList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Application' + x-merge-category: ats + PaginatedAttachmentList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Attachment' + x-merge-category: ats + PaginatedAuditLogEventList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AuditLogEvent' + x-merge-category: ats + PaginatedCandidateList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Candidate' + x-merge-category: ats + PaginatedDepartmentList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Department' + x-merge-category: ats + PaginatedEEOCList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/EEOC' + x-merge-category: ats + PaginatedIssueList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Issue' + x-merge-category: ats + PaginatedJobInterviewStageList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/JobInterviewStage' + x-merge-category: ats + PaginatedJobList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Job' + x-merge-category: ats + PaginatedJobPostingList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/JobPosting' + x-merge-category: ats + PaginatedOfferList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Offer' + x-merge-category: ats + PaginatedOfficeList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Office' + x-merge-category: ats + PaginatedRejectReasonList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/RejectReason' + x-merge-category: ats + PaginatedRemoteUserList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/RemoteUser' + x-merge-category: ats + PaginatedScheduledInterviewList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/ScheduledInterview' + x-merge-category: ats + PaginatedScorecardList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Scorecard' + x-merge-category: ats + PaginatedScreeningQuestionList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/ScreeningQuestion' + x-merge-category: ats + PaginatedSyncStatusList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + x-merge-category: ats + PaginatedTagList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Tag' + x-merge-category: ats + PatchedCandidateEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/PatchedCandidateRequest' + remote_user_id: + type: string + required: + - model + - remote_user_id + x-merge-category: ats + PatchedCandidateRequest: + type: object + description: |- + # The Candidate Object + ### Description + The `Candidate` object is used to represent profile information about a given Candidate. Because it is specific to a Candidate, this information stays constant across applications. + ### Usage Example + Fetch from the `LIST Candidates` endpoint and filter by `ID` to show all candidates. + properties: + first_name: + type: string + nullable: true + description: The candidate's first name. + example: Gil + last_name: + type: string + nullable: true + description: The candidate's last name. + example: Feig + company: + type: string + nullable: true + description: The candidate's current company. + example: Columbia Dining App. + title: + type: string + nullable: true + description: The candidate's current title. + example: Software Engineer + last_interaction_at: + type: string + format: date-time + nullable: true + description: When the most recent interaction with the candidate occurred. + example: '2021-10-17T00:00:00Z' + is_private: + type: boolean + nullable: true + description: Whether or not the candidate is private. + example: true + can_email: + type: boolean + nullable: true + description: Whether or not the candidate can be emailed. + example: true + locations: + type: array + items: + type: string + nullable: true + description: The candidate's locations. + nullable: true + description: The candidate's locations. + example: + - San Francisco + - New York + - Miami + phone_numbers: + type: array + items: + $ref: '#/components/schemas/PhoneNumberRequest' + example: + - value: '+1234567890' + phone_number_type: MOBILE + email_addresses: + type: array + items: + $ref: '#/components/schemas/EmailAddressRequest' + example: + - value: hello@merge.dev + email_address_type: PERSONAL + urls: + type: array + items: + $ref: '#/components/schemas/UrlRequest' + example: + - value: http://alturl.com/p749b + url_type: BLOG + tags: + type: array + items: + type: string + nullable: true + description: The tag's name. + example: + - High-Priority + description: Array of `Tag` names as strings. + applications: + type: array + items: + type: string + format: uuid + nullable: true + example: + - 29eb9867-ce2a-403f-b8ce-f2844b89f078 + - b4d08e5c-de00-4d64-a29f-66addac9af99 + - 4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56 + description: Array of `Application` object IDs. + attachments: + type: array + items: + type: string + format: uuid + nullable: true + example: + - bea08964-32b4-4a20-8bb4-2612ba09de1d + description: Array of `Attachment` object IDs. + remote_template_id: + type: string + writeOnly: true + nullable: true + minLength: 1 + example: '92830948203' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: ats + PatchedEditFieldMappingRequest: + type: object + properties: + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field_name + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + x-merge-category: ats + PhoneNumber: + type: object + description: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent a candidate's phone number. + ### Usage Example + Fetch from the `GET Candidate` endpoint and view their phone numbers. + properties: + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + value: + type: string + nullable: true + description: The phone number. + example: '+3198675309' + phone_number_type: + oneOf: + - $ref: '#/components/schemas/PhoneNumberTypeEnum' + - type: string + nullable: true + description: |- + The type of phone number. + + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + example: HOME + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-category: ats + PhoneNumberRequest: + type: object + description: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent a candidate's phone number. + ### Usage Example + Fetch from the `GET Candidate` endpoint and view their phone numbers. + properties: + value: + type: string + nullable: true + description: The phone number. + example: '+3198675309' + phone_number_type: + oneOf: + - $ref: '#/components/schemas/PhoneNumberTypeEnum' + - type: string + nullable: true + description: |- + The type of phone number. + + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + example: HOME + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: ats + PhoneNumberTypeEnum: + enum: + - HOME + - WORK + - MOBILE + - SKYPE + - OTHER + type: string + description: |- + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + x-merge-category: ats + RaceEnum: + enum: + - AMERICAN_INDIAN_OR_ALASKAN_NATIVE + - ASIAN + - BLACK_OR_AFRICAN_AMERICAN + - HISPANIC_OR_LATINO + - WHITE + - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + - TWO_OR_MORE_RACES + - DECLINE_TO_SELF_IDENTIFY + type: string + description: |- + * `AMERICAN_INDIAN_OR_ALASKAN_NATIVE` - AMERICAN_INDIAN_OR_ALASKAN_NATIVE + * `ASIAN` - ASIAN + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + * `WHITE` - WHITE + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + x-merge-category: ats + ReasonEnum: + enum: + - GENERAL_CUSTOMER_REQUEST + - GDPR + - OTHER + type: string + description: |- + * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST + * `GDPR` - GDPR + * `OTHER` - OTHER + x-merge-category: ats + RejectReason: + type: object + description: |- + # The RejectReason Object + ### Description + The `RejectReason` object is used to represent a reason for rejecting an application. These can typically be configured within an ATS system. + ### Usage Example + Fetch from the `LIST RejectReasons` endpoint and filter by `ID` to show all reasons. + properties: + id: + type: string + format: uuid + readOnly: true + example: 8be99a4a-f8d4-4339-bf1e-30eac970e217 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '876556788' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The rejection reason’s name. + example: Not passionate enough about APIs. + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /rejection-reasons + data: + - Varies by platform + x-merge-category: ats + RemoteData: + type: object + description: |- + # The RemoteData Object + ### Description + The `RemoteData` object is used to represent the full data pulled from the third-party API for an object. + + ### Usage Example + TODO + properties: + path: + type: string + description: The third-party API path that is being called. + example: /platform-endpoint + data: + readOnly: true + description: The data returned from the third-party for this object in its + original, unnormalized format. + example: + - Varies by platform + required: + - path + x-merge-category: ats + RemoteEndpointInfo: + type: object + properties: + method: + type: string + example: GET + url_path: + type: string + example: /example-url-path + field_traversal_path: + type: array + items: {} + example: + - example_key_name + required: + - field_traversal_path + - method + - url_path + x-merge-category: ats + RemoteFieldAPI: + type: object + properties: + schema: + type: object + additionalProperties: {} + example: + type: string + remote_key_name: + type: string + example: example_remote_key_name + remote_endpoint_info: + $ref: '#/components/schemas/RemoteEndpointInfo' + example: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + type: array + items: {} + nullable: true + example: + - example + advanced_metadata: + allOf: + - $ref: '#/components/schemas/AdvancedMetadata' + nullable: true + coverage: + oneOf: + - type: integer + - type: number + format: double + nullable: true + readOnly: true + example: 0.33 + required: + - advanced_metadata + - remote_endpoint_info + - remote_key_name + - schema + x-merge-category: ats + RemoteFieldAPIResponse: + type: object + properties: + Activity: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Application: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Attachment: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Candidate: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Department: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + EEOC: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + ScheduledInterview: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Job: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + JobPosting: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + JobInterviewStage: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Offer: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Office: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + RejectReason: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Scorecard: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Tag: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + RemoteUser: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + x-merge-category: ats + RemoteKey: + type: object + description: |- + # The RemoteKey Object + ### Description + The `RemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: + type: string + example: Remote Deployment Key 1 + key: + type: string + example: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + required: + - key + - name + x-merge-category: ats + RemoteKeyForRegenerationRequest: + type: object + description: |- + # The RemoteKeyForRegeneration Object + ### Description + The `RemoteKeyForRegeneration` object is used to exchange an old remote key for a new one + + ### Usage Example + Post a `RemoteKeyForRegeneration` to swap out an old remote key for a new one + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: ats + RemoteResponse: + type: object + description: |- + # The RemoteResponse Object + ### Description + The `RemoteResponse` object is used to represent information returned from a third-party endpoint. + + ### Usage Example + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: + type: string + example: GET + path: + type: string + example: /scooters + status: + type: integer + example: 200 + response: + example: + scooters: + - company: Lime + model: Gen 2.5 + - company: Bird + model: Bird Zero + response_headers: + type: object + additionalProperties: {} + example: + X-Page-Token: value + response_type: + oneOf: + - $ref: '#/components/schemas/ResponseTypeEnum' + - type: string + example: JSON + headers: + type: object + additionalProperties: {} + example: + EXTRA-HEADER: value + Authorization: + required: + - method + - path + - response + - status + x-merge-category: ats + RemoteUser: + type: object + description: |- + # The RemoteUser Object + ### Description + The `RemoteUser` object is used to represent a user with a login to the ATS system. + ### Usage Example + Fetch from the `LIST RemoteUsers` endpoint to show all users for a third party. + properties: + id: + type: string + format: uuid + readOnly: true + example: b82302de-852e-4e60-b050-edf9da3b7c02 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '344321' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + first_name: + type: string + nullable: true + description: The user's first name. + example: Shensi + last_name: + type: string + nullable: true + description: The user's last name. + example: Ding + email: + type: string + format: email + nullable: true + description: The user's email. + maxLength: 254 + example: hello@merge.dev + disabled: + type: boolean + nullable: true + description: Whether the user's account had been disabled. + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's user was created. + example: '2020-11-10T00:00:00Z' + access_role: + oneOf: + - $ref: '#/components/schemas/AccessRoleEnum' + - type: string + nullable: true + description: |- + The user's role. + + * `SUPER_ADMIN` - SUPER_ADMIN + * `ADMIN` - ADMIN + * `TEAM_MEMBER` - TEAM_MEMBER + * `LIMITED_TEAM_MEMBER` - LIMITED_TEAM_MEMBER + * `INTERVIEWER` - INTERVIEWER + example: SUPER_ADMIN + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /users + data: + - Varies by platform + x-merge-sample-json: '{"id": "b82302de-852e-4e60-b050-edf9da3b7c02", "remote_id": + "344321", "first_name": "Shensi", "last_name": "Ding", "email": "hello@merge.dev", + "disabled": false, "remote_created_at": "2020-11-10T00:00:00Z", "access_role": + "SUPER_ADMIN", "remote_data": [{"path": "/users", "data": {"example": "Varies + by platform"}}]}' + x-merge-category: ats + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + type: string + description: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + x-merge-category: ats + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + type: string + description: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + x-merge-category: ats + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + type: string + description: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + x-merge-category: ats + ScheduledInterview: + type: object + description: |- + # The ScheduledInterview Object + ### Description + The `ScheduledInterview` object is used to represent a scheduled interview for a given candidate’s application to a job. An `Application` can have multiple `ScheduledInterview`s depending on the particular hiring process. + ### Usage Example + Fetch from the `LIST ScheduledInterviews` endpoint and filter by `interviewers` to show all office locations. + properties: + id: + type: string + format: uuid + readOnly: true + example: b8faf072-98b9-4445-8a9a-6b4950efca19 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '3' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + application: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Application' + nullable: true + description: The application being interviewed. + example: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + x-merge-expands-to: Application + job_interview_stage: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/JobInterviewStage' + nullable: true + description: The stage of the interview. + example: 2f7adb59-3fe6-4b5b-aef6-563f72bd13dc + x-merge-expands-to: JobInterviewStage + organizer: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + description: The user organizing the interview. + example: 52bf9b5e-0beb-4f6f-8a72-cd4dca7ca633 + x-merge-expands-to: RemoteUser + interviewers: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + example: + - f9813dd5-e70b-484c-91d8-00acd6065b07 + - 89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c + description: Array of `RemoteUser` IDs. + x-merge-expands-to: RemoteUser + location: + type: string + nullable: true + description: The interview's location. + example: Embarcadero Center 2 + start_at: + type: string + format: date-time + nullable: true + description: When the interview was started. + example: '2021-10-15T00:00:00Z' + end_at: + type: string + format: date-time + nullable: true + description: When the interview was ended. + example: '2021-10-15T02:00:00Z' + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's interview was created. + example: '2021-10-15T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's interview was updated. + example: '2021-10-15T00:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/ScheduledInterviewStatusEnum' + - type: string + nullable: true + description: |- + The interview's status. + + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + example: SCHEDULED + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /interviews + data: + - Varies by platform + x-merge-expands: '{"application": "Application", "interviewers": "RemoteUser", + "job_interview_stage": "JobInterviewStage", "organizer": "RemoteUser"}' + x-merge-category: ats + ScheduledInterviewEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/ScheduledInterviewRequest' + remote_user_id: + type: string + required: + - model + - remote_user_id + x-merge-category: ats + ScheduledInterviewRequest: + type: object + description: |- + # The ScheduledInterview Object + ### Description + The `ScheduledInterview` object is used to represent a scheduled interview for a given candidate’s application to a job. An `Application` can have multiple `ScheduledInterview`s depending on the particular hiring process. + ### Usage Example + Fetch from the `LIST ScheduledInterviews` endpoint and filter by `interviewers` to show all office locations. + properties: + application: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Application' + nullable: true + description: The application being interviewed. + example: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + x-merge-expands-to: Application + job_interview_stage: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/JobInterviewStage' + nullable: true + description: The stage of the interview. + example: 2f7adb59-3fe6-4b5b-aef6-563f72bd13dc + x-merge-expands-to: JobInterviewStage + organizer: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + description: The user organizing the interview. + example: 52bf9b5e-0beb-4f6f-8a72-cd4dca7ca633 + x-merge-expands-to: RemoteUser + interviewers: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + example: + - f9813dd5-e70b-484c-91d8-00acd6065b07 + - 89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c + description: Array of `RemoteUser` IDs. + x-merge-expands-to: RemoteUser + location: + type: string + nullable: true + description: The interview's location. + example: Embarcadero Center 2 + start_at: + type: string + format: date-time + nullable: true + description: When the interview was started. + example: '2021-10-15T00:00:00Z' + end_at: + type: string + format: date-time + nullable: true + description: When the interview was ended. + example: '2021-10-15T02:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/ScheduledInterviewStatusEnum' + - type: string + nullable: true + description: |- + The interview's status. + + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + example: SCHEDULED + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"application": "Application", "interviewers": "RemoteUser", + "job_interview_stage": "JobInterviewStage", "organizer": "RemoteUser"}' + x-merge-category: ats + ScheduledInterviewResponse: + type: object + properties: + model: + $ref: '#/components/schemas/ScheduledInterview' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: ats + ScheduledInterviewStatusEnum: + enum: + - SCHEDULED + - AWAITING_FEEDBACK + - COMPLETE + type: string + description: |- + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + x-merge-category: ats + Scorecard: + type: object + description: |- + # The Scorecard Object + ### Description + The `Scorecard` object is used to represent an interviewer's candidate recommendation based on a particular interview. + ### Usage Example + Fetch from the `LIST Scorecards` endpoint and filter by `application` to show all scorecard for an applicant. + properties: + id: + type: string + format: uuid + readOnly: true + example: 3eab2f17-eeb1-450d-97f0-029d8be1e06f + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '22234' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + application: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Application' + nullable: true + description: The application being scored. + example: 2872ba14-4084-492b-be96-e5eee6fc33ef + x-merge-expands-to: Application + interview: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/ScheduledInterview' + nullable: true + description: The interview being scored. + example: 52bf9b5e-0beb-4f6f-8a72-cd4dca7ca633 + x-merge-expands-to: ScheduledInterview + interviewer: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteUser' + nullable: true + description: The interviewer doing the scoring. + example: bbb519a3-246e-4b95-b6b3-dba16107ba6b + x-merge-expands-to: RemoteUser + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's scorecard was created. + example: '2021-10-15T00:00:00Z' + submitted_at: + type: string + format: date-time + nullable: true + description: When the scorecard was submitted. + example: '2021-10-15T00:00:00Z' + overall_recommendation: + oneOf: + - $ref: '#/components/schemas/OverallRecommendationEnum' + - type: string + nullable: true + description: |- + The inteviewer's recommendation. + + * `DEFINITELY_NO` - DEFINITELY_NO + * `NO` - NO + * `YES` - YES + * `STRONG_YES` - STRONG_YES + * `NO_DECISION` - NO_DECISION + example: STRONG_YES + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /ratings + data: + - Varies by platform + x-merge-expands: '{"application": "Application", "interview": "ScheduledInterview", + "interviewer": "RemoteUser"}' + x-merge-category: ats + ScreeningQuestion: + type: object + description: |- + # The ScreeningQuestion Object + ### Description + The `ScreeningQuestion` object is used to represent questions asked to screen candidates for a job. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 0238cbc6-6040-430a-848e-aaiehfhdbadf4ae + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '23729392' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + job: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Job' + nullable: true + description: The job associated with the screening question. + example: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + x-merge-expands-to: Job + description: + type: string + nullable: true + description: The description of the screening question + maxLength: 500 + example: Are you currently authorized to work for any employer in the country + outlined for this role? + title: + type: string + nullable: true + description: The title of the screening question + maxLength: 2500 + example: Work Authorisation + type: + oneOf: + - $ref: '#/components/schemas/ScreeningQuestionTypeEnum' + - type: string + nullable: true + description: |- + The data type for the screening question. + + * `DATE` - DATE + * `FILE` - FILE + * `SINGLE_SELECT` - SINGLE_SELECT + * `MULTI_SELECT` - MULTI_SELECT + * `SINGLE_LINE_TEXT` - SINGLE_LINE_TEXT + * `MULTI_LINE_TEXT` - MULTI_LINE_TEXT + * `NUMERIC` - NUMERIC + * `BOOLEAN` - BOOLEAN + example: SINGLE_SELECT + required: + type: boolean + nullable: true + description: Whether or not the screening question is required. + example: true + options: + type: array + items: + oneof: + - type: string + format: uuid + - $ref: '#/components/schemas/ScreeningQuestionOption' + example: + - remote_id: '19281' + label: I am currently authorised + - remote_id: '38372' + label: I am currently not eligible + x-merge-expands-to: ScreeningQuestionOption + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-expands: '{"job": "Job", "options": "ScreeningQuestionOption"}' + x-merge-category: ats + ScreeningQuestionAnswer: + type: object + description: |- + # The ScreeningQuestionAnswer Object + ### Description + The `ScreeningQuestionAnswer` object is used to represent candidate responses to a screening question, for a specific application. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + question: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/ScreeningQuestion' + nullable: true + example: 0238cbc6-6040-430a-848e-aaiehfhdbadf4ae + description: The screening question associated with the candidate’s answer. + To determine the data type of the answer, you can expand on the screening + question by adding `screening_question_answers.question` to the `expand` + query parameter. + x-merge-expands-to: ScreeningQuestion + answer: + type: string + nullable: true + description: The candidate’s response to the screening question. + maxLength: 10000 + example: 5+ years experience + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-expands: '{"question": "ScreeningQuestion"}' + x-merge-category: ats + ScreeningQuestionAnswerRequest: + type: object + description: |- + # The ScreeningQuestionAnswer Object + ### Description + The `ScreeningQuestionAnswer` object is used to represent candidate responses to a screening question, for a specific application. + + ### Usage Example + TODO + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + question: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/ScreeningQuestion' + nullable: true + example: 0238cbc6-6040-430a-848e-aaiehfhdbadf4ae + description: The screening question associated with the candidate’s answer. + To determine the data type of the answer, you can expand on the screening + question by adding `screening_question_answers.question` to the `expand` + query parameter. + x-merge-expands-to: ScreeningQuestion + answer: + type: string + nullable: true + description: The candidate’s response to the screening question. + maxLength: 10000 + example: 5+ years experience + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"question": "ScreeningQuestion"}' + x-merge-category: ats + ScreeningQuestionOption: + type: object + description: |- + # The ScreeningQuestionOption Object + ### Description + The `ScreeningQuestionOption` object is used to represent options for a `ScreeningQuestion` object + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + label: + type: string + nullable: true + description: Available response options + maxLength: 300 + example: 5+ years experience + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-category: ats + ScreeningQuestionTypeEnum: + enum: + - DATE + - FILE + - SINGLE_SELECT + - MULTI_SELECT + - SINGLE_LINE_TEXT + - MULTI_LINE_TEXT + - NUMERIC + - BOOLEAN + type: string + description: |- + * `DATE` - DATE + * `FILE` - FILE + * `SINGLE_SELECT` - SINGLE_SELECT + * `MULTI_SELECT` - MULTI_SELECT + * `SINGLE_LINE_TEXT` - SINGLE_LINE_TEXT + * `MULTI_LINE_TEXT` - MULTI_LINE_TEXT + * `NUMERIC` - NUMERIC + * `BOOLEAN` - BOOLEAN + x-merge-category: ats + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + type: string + description: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + x-merge-category: ats + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: ats + SyncStatus: + type: object + description: |- + # The SyncStatus Object + ### Description + The `SyncStatus` object is used to represent the syncing state of an account + + ### Usage Example + View the `SyncStatus` for an account to see how recently its models were synced. + properties: + model_name: + type: string + example: Candidate + model_id: + type: string + example: ats.Candidate + last_sync_start: + type: string + format: date-time + example: '2021-03-30T19:44:18.695973Z' + next_sync_start: + type: string + format: date-time + example: '2021-03-30T20:44:18.662942Z' + last_sync_result: + oneOf: + - $ref: '#/components/schemas/LastSyncResultEnum' + - type: string + example: DONE + last_sync_finished: + type: string + format: date-time + example: '2021-03-30T19:55:18.695973Z' + status: + oneOf: + - $ref: '#/components/schemas/StatusFd5Enum' + - type: string + example: SYNCING + is_initial_sync: + type: boolean + example: true + selective_sync_configurations_usage: + $ref: '#/components/schemas/SelectiveSyncConfigurationsUsageEnum' + required: + - is_initial_sync + - model_id + - model_name + - status + x-merge-sample-json: '{"model_name": "Candidate", "model_id": "ats.Candidate", + "last_sync_start": "2021-03-30T19:44:18.695973Z", "next_sync_start": "2021-03-30T20:44:18.662942Z", + "status": "SYNCING", "is_initial_sync": true}' + x-merge-category: ats + Tag: + type: object + description: |- + # The Tag Object + ### Description + The `Tag` object is used to represent a tag for a candidate. + ### Usage Example + Fetch from the `LIST Tags` endpoint and view the tags used within a company. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '4567' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The tag's name. + example: High-Priority + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + type: object + additionalProperties: {} + nullable: true + description: The full data pulled from the third-party API for an object. + nullable: true + example: + - path: /tags + data: + - Varies by platform + x-merge-category: ats + UpdateApplicationStageRequest: + type: object + properties: + job_interview_stage: + type: string + format: uuid + nullable: true + description: The interview stage to move the application to. + remote_user_id: + type: string + minLength: 1 + x-merge-category: ats + Url: + type: object + description: |- + # The Url Object + ### Description + The `Url` object is used to represent hyperlinks associated with the parent model. + ### Usage Example + Fetch from the `GET Candidate` endpoint and view their website urls. + properties: + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + value: + type: string + format: uri + nullable: true + description: The site's url. + maxLength: 2000 + example: http://alturl.com/p749b + url_type: + oneOf: + - $ref: '#/components/schemas/UrlTypeEnum' + - type: string + nullable: true + description: |- + The type of site. + + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + example: PERSONAL + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + x-merge-nested-write-allowed: true + x-merge-category: ats + UrlRequest: + type: object + description: |- + # The Url Object + ### Description + The `Url` object is used to represent hyperlinks associated with the parent model. + ### Usage Example + Fetch from the `GET Candidate` endpoint and view their website urls. + properties: + value: + type: string + format: uri + nullable: true + description: The site's url. + maxLength: 2000 + example: http://alturl.com/p749b + url_type: + oneOf: + - $ref: '#/components/schemas/UrlTypeEnum' + - type: string + nullable: true + description: |- + The type of site. + + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + example: PERSONAL + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: ats + UrlTypeEnum: + enum: + - PERSONAL + - COMPANY + - PORTFOLIO + - BLOG + - SOCIAL_MEDIA + - OTHER + - JOB_POSTING + type: string + description: |- + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + x-merge-category: ats + ValidationProblemSource: + type: object + properties: + pointer: + type: string + required: + - pointer + x-merge-category: ats + VeteranStatusEnum: + enum: + - I_AM_NOT_A_PROTECTED_VETERAN + - I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN + - I_DONT_WISH_TO_ANSWER + type: string + description: |- + * `I_AM_NOT_A_PROTECTED_VETERAN` - I_AM_NOT_A_PROTECTED_VETERAN + * `I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN` - I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + x-merge-category: ats + VisibilityEnum: + enum: + - ADMIN_ONLY + - PUBLIC + - PRIVATE + type: string + description: |- + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + x-merge-category: ats + WarningValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /age + title: + type: string + example: Unrecognized Field + detail: + type: string + example: An unrecognized field, age, was passed in with request data. + problem_type: + type: string + example: UNRECOGNIZED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: ats + WebhookReceiver: + type: object + properties: + event: + type: string + is_active: + type: boolean + key: + type: string + required: + - event + - is_active + x-merge-category: ats + WebhookReceiverRequest: + type: object + properties: + event: + type: string + minLength: 1 + is_active: + type: boolean + key: + type: string + minLength: 1 + required: + - event + - is_active + x-merge-category: ats + securitySchemes: + tokenAuth: + type: http + scheme: bearer + description: Token-based authentication with required prefix "Bearer" + x-fern-token-variable-name: api_key +servers: +- url: https://api.merge.dev/api/ats/v1 + description: Production + x-fern-server-name: Production +- url: https://api-sandbox.merge.dev/api/ats/v1 + description: Sandbox + x-fern-server-name: Sandbox +- url: https://api-eu.merge.dev/api/ats/v1 + description: Production EU + x-fern-server-name: ProductionEU +- url: https://api-ap.merge.dev/api/ats/v1 + description: Production APSE1 + x-fern-server-name: ProductionAPSE1 diff --git a/.mock/crm_v3.yml b/.mock/crm_v3.yml new file mode 100644 index 00000000..4e754eb5 --- /dev/null +++ b/.mock/crm_v3.yml @@ -0,0 +1,12652 @@ +openapi: 3.0.3 +info: + title: Merge CRM API + version: '1.0' + description: The unified API for building rich integrations with multiple CRM platforms. + contact: + name: Merge Team + url: https://www.merge.dev/ + email: hello@merge.dev +paths: + /crm/v1/account-details: + get: + operationId: account_details_retrieve + description: Get details for a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - account-details + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountDetails' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/account-token/{public_token}: + get: + operationId: account_token_retrieve + description: Returns the account token for the end user with the provided public + token. + parameters: + - in: path + name: public_token + schema: + type: string + required: true + tags: + - account-token + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/accounts: + get: + operationId: accounts_list + description: Returns a list of `Account` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOwner: + value: owner + summary: Expand Owner + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: name + schema: + type: string + nullable: true + description: If provided, will only return accounts with this name. + - in: query + name: owner_id + schema: + type: string + description: If provided, will only return accounts with this owner. + examples: + OwnerId: + summary: owner_id + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAccountList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: accounts_create + description: Creates an `Account` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - accounts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CRMAccountEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CRMAccountEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CRMAccountEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CRMAccountResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/accounts/{id}: + get: + operationId: accounts_retrieve + description: Returns an `Account` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOwner: + value: owner + summary: Expand Owner + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Account' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + patch: + operationId: accounts_partial_update + description: Updates an `Account` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - accounts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCRMAccountEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCRMAccountEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCRMAccountEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CRMAccountResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/accounts/meta/patch/{id}: + get: + operationId: accounts_meta_patch_retrieve + description: Returns metadata for `CRMAccount` PATCHs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-patch: META_PATCH + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/accounts/meta/post: + get: + operationId: accounts_meta_post_retrieve + description: Returns metadata for `CRMAccount` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/accounts/remote-field-classes: + get: + operationId: accounts_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/async-passthrough: + post: + operationId: async_passthrough_create + description: Asynchronously pull data from an endpoint not currently supported + by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - async-passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncPassthroughReciept' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/async-passthrough/{async_passthrough_receipt_id}: + get: + operationId: async_passthrough_retrieve + description: Retrieves data from earlier async-passthrough POST request + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: async_passthrough_receipt_id + schema: + type: string + format: uuid + required: true + tags: + - async-passthrough + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/RemoteResponse' + - type: string + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/audit-trail: + get: + operationId: audit_trail_list + description: Gets a list of audit trail events. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include audit trail events that occurred + before this time + - in: query + name: event_type + schema: + type: string + description: 'If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, + `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, + `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, + `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, + `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, + `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, + `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED`' + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include audit trail events that occurred + after this time + - in: query + name: user_email + schema: + type: string + description: If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's email + at the time of the event, and may not be their current email. + tags: + - audit-trail + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAuditLogEventList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/available-actions: + get: + operationId: available_actions_retrieve + description: Returns a list of models and actions available for an account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - available-actions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AvailableActions' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/contacts: + get: + operationId: contacts_list + description: Returns a list of `Contact` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: account_id + schema: + type: string + description: If provided, will only return contacts with this account. + examples: + AccountId: + summary: account_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: email_addresses + schema: + type: string + description: If provided, will only return contacts matching the email addresses; + multiple email_addresses can be separated by commas. + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandAccount,Owner: + value: account,owner + summary: Expand Account, Owner + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: phone_numbers + schema: + type: string + description: If provided, will only return contacts matching the phone numbers; + multiple phone numbers can be separated by commas. + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedContactList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: contacts_create + description: Creates a `Contact` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - contacts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CRMContactEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CRMContactEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CRMContactEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CRMContactResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/contacts/{id}: + get: + operationId: contacts_retrieve + description: Returns a `Contact` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandAccount,Owner: + value: account,owner + summary: Expand Account, Owner + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + patch: + operationId: contacts_partial_update + description: Updates a `Contact` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - contacts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCRMContactEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCRMContactEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCRMContactEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CRMContactResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/contacts/ignore/{model_id}: + post: + operationId: contacts_ignore_create + description: Ignores a specific row based on the `model_id` in the url. These + records will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will be + stored for audit purposes. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: model_id + schema: + type: string + format: uuid + required: true + tags: + - contacts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + description: No response body + x-extra-tags: + - ignore-model + /crm/v1/contacts/meta/patch/{id}: + get: + operationId: contacts_meta_patch_retrieve + description: Returns metadata for `CRMContact` PATCHs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-patch: META_PATCH + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/contacts/meta/post: + get: + operationId: contacts_meta_post_retrieve + description: Returns metadata for `CRMContact` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/contacts/remote-field-classes: + get: + operationId: contacts_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/custom-object-classes: + get: + operationId: custom_object_classes_list + description: Returns a list of `CustomObjectClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - fields + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandFields: + value: fields + summary: Expand Fields + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - custom-object-classes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCustomObjectClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/custom-object-classes/{custom_object_class_id}/association-types: + get: + operationId: custom_object_classes_association_types_list + description: Returns a list of `AssociationType` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: path + name: custom_object_class_id + schema: + type: string + format: uuid + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - target_object_classes + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTargetObjectClasses: + value: target_object_classes + summary: Expand Target_object_classes + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - association-types + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAssociationTypeList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + post: + operationId: custom_object_classes_association_types_create + description: Creates an `AssociationType` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: custom_object_class_id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - association-types + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CRMAssociationTypeEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CRMAssociationTypeEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CRMAssociationTypeEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CRMAssociationTypeResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/custom-object-classes/{custom_object_class_id}/association-types/{id}: + get: + operationId: custom_object_classes_association_types_retrieve + description: Returns an `AssociationType` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: custom_object_class_id + schema: + type: string + format: uuid + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - target_object_classes + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTargetObjectClasses: + value: target_object_classes + summary: Expand Target_object_classes + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - association-types + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AssociationType' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/custom-object-classes/{custom_object_class_id}/association-types/meta/post: + get: + operationId: custom_object_classes_association_types_meta_post_retrieve + description: Returns metadata for `CRMAssociationType` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: custom_object_class_id + schema: + type: string + format: uuid + required: true + tags: + - association-types + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects: + get: + operationId: custom_object_classes_custom_objects_list + description: Returns a list of `CustomObject` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: path + name: custom_object_class_id + schema: + type: string + format: uuid + required: true + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - custom-objects + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCustomObjectList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + post: + operationId: custom_object_classes_custom_objects_create + description: Creates a `CustomObject` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: custom_object_class_id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - custom-objects + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CRMCustomObjectEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CRMCustomObjectEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CRMCustomObjectEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CRMCustomObjectResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects/{id}: + get: + operationId: custom_object_classes_custom_objects_retrieve + description: Returns a `CustomObject` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: custom_object_class_id + schema: + type: string + format: uuid + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - custom-objects + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomObject' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects/{object_id}/associations: + get: + operationId: custom_object_classes_custom_objects_associations_list + description: Returns a list of `Association` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: association_type_id + schema: + type: string + description: If provided, will only return opportunities with this association_type. + examples: + AssociationTypeId: + summary: association_type_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: path + name: custom_object_class_id + schema: + type: string + format: uuid + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - association_type + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandAssociationType: + value: association_type + summary: Expand Association_type + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: path + name: object_id + schema: + type: string + format: uuid + required: true + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - associations + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAssociationList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects/meta/post: + get: + operationId: custom_object_classes_custom_objects_meta_post_retrieve + description: Returns metadata for `CRMCustomObject` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: custom_object_class_id + schema: + type: string + format: uuid + required: true + tags: + - custom-objects + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/custom-object-classes/{id}: + get: + operationId: custom_object_classes_retrieve + description: Returns a `CustomObjectClass` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - fields + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandFields: + value: fields + summary: Expand Fields + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - custom-object-classes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomObjectClass' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + ? /crm/v1/custom-object-classes/{source_class_id}/custom-objects/{source_object_id}/associations/{target_class_id}/{target_object_id}/{association_type_id} + : put: + operationId: custom_object_classes_custom_objects_associations_update + description: Creates an Association between `source_object_id` and `target_object_id` + of type `association_type_id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: association_type_id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + - in: path + name: source_class_id + schema: + type: string + format: uuid + required: true + - in: path + name: source_object_id + schema: + type: string + format: uuid + required: true + - in: path + name: target_class_id + schema: + type: string + required: true + - in: path + name: target_object_id + schema: + type: string + format: uuid + required: true + tags: + - associations + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Association' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/custom-object-classes/custom-objects/remote-field-classes: + get: + operationId: custom_object_classes_custom_objects_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - custom-objects + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/default-scopes: + get: + operationId: default_scopes_retrieve + description: Get the default permissions for Merge Common Models and fields + across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/delete-account: + post: + operationId: delete_account_delete + description: Delete a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - delete-account + security: + - tokenAuth: [] + responses: + '200': + description: No response body + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/engagement-types: + get: + operationId: engagement_types_list + description: Returns a list of `EngagementType` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - engagement-types + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEngagementTypeList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/engagement-types/{id}: + get: + operationId: engagement_types_retrieve + description: Returns an `EngagementType` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - engagement-types + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/EngagementType' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/engagement-types/remote-field-classes: + get: + operationId: engagement_types_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - engagement-types + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/engagements: + get: + operationId: engagements_list + description: Returns a list of `Engagement` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - contacts + - engagement_type + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandContacts,Owner,Account,EngagementType: + value: contacts,owner,account,engagement_type + summary: Expand Contacts, Owner, Account, Engagement_type + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: started_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return engagements started after this + datetime. + - in: query + name: started_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return engagements started before this + datetime. + tags: + - engagements + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEngagementList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: engagements_create + description: Creates an `Engagement` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - engagements + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EngagementEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EngagementEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/EngagementEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/EngagementResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/engagements/{id}: + get: + operationId: engagements_retrieve + description: Returns an `Engagement` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - contacts + - engagement_type + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandContacts,Owner,Account,EngagementType: + value: contacts,owner,account,engagement_type + summary: Expand Contacts, Owner, Account, Engagement_type + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - engagements + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Engagement' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + patch: + operationId: engagements_partial_update + description: Updates an `Engagement` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - engagements + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedEngagementEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedEngagementEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedEngagementEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/EngagementResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/engagements/meta/patch/{id}: + get: + operationId: engagements_meta_patch_retrieve + description: Returns metadata for `Engagement` PATCHs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - engagements + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-patch: META_PATCH + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/engagements/meta/post: + get: + operationId: engagements_meta_post_retrieve + description: Returns metadata for `Engagement` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - engagements + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/engagements/remote-field-classes: + get: + operationId: engagements_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - engagements + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/field-mappings: + get: + operationId: field_mappings_retrieve + description: Get all Field Mappings for this Linked Account. Field Mappings + are mappings between third-party Remote Fields and user defined Merge fields. + [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingApiInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: field_mappings_create + description: Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to sync + **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/field-mappings/{field_mapping_id}: + patch: + operationId: field_mappings_partial_update + description: Create or update existing Field Mappings for a Linked Account. + Changes will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + delete: + operationId: field_mappings_destroy + description: Deletes Field Mappings for a Linked Account. All data related to + this Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked Account + to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '204': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/generate-key: + post: + operationId: generate_key_create + description: Create a remote key. + tags: + - generate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/issues: + get: + operationId: issues_list + description: Gets all issues for Organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: account_token + schema: + type: string + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred before this time + - in: query + name: end_user_organization_name + schema: + type: string + - in: query + name: first_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was after this datetime. + - in: query + name: first_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was before this datetime. + - in: query + name: include_muted + schema: + type: string + description: If true, will include muted issues + - in: query + name: integration_name + schema: + type: string + - in: query + name: last_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was after this datetime. + - in: query + name: last_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was before this datetime. + - in: query + name: linked_account_id + schema: + type: string + description: If provided, will only include issues pertaining to the linked + account passed in. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred after this time + - in: query + name: status + schema: + type: string + enum: + - ONGOING + - RESOLVED + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedIssueList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/issues/{id}: + get: + operationId: issues_retrieve + description: Get a specific issue. + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Issue' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/leads: + get: + operationId: leads_list + description: Returns a list of `Lead` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: converted_account_id + schema: + type: string + description: If provided, will only return leads with this account. + examples: + ConvertedAccountId: + summary: converted_account_id + - in: query + name: converted_contact_id + schema: + type: string + description: If provided, will only return leads with this contact. + examples: + ConvertedContactId: + summary: converted_contact_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: email_addresses + schema: + type: string + description: If provided, will only return contacts matching the email addresses; + multiple email_addresses can be separated by commas. + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - converted_account + - converted_contact + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOwner,ConvertedContact,ConvertedAccount: + value: owner,converted_contact,converted_account + summary: Expand Owner, Converted_contact, Converted_account + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: owner_id + schema: + type: string + description: If provided, will only return leads with this owner. + examples: + OwnerId: + summary: owner_id + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: phone_numbers + schema: + type: string + description: If provided, will only return contacts matching the phone numbers; + multiple phone numbers can be separated by commas. + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - leads + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLeadList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: leads_create + description: Creates a `Lead` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - leads + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LeadEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LeadEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LeadEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/LeadResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/leads/{id}: + get: + operationId: leads_retrieve + description: Returns a `Lead` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - converted_account + - converted_contact + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOwner,ConvertedContact,ConvertedAccount: + value: owner,converted_contact,converted_account + summary: Expand Owner, Converted_contact, Converted_account + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - leads + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Lead' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/leads/meta/post: + get: + operationId: leads_meta_post_retrieve + description: Returns metadata for `Lead` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - leads + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/leads/remote-field-classes: + get: + operationId: leads_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - leads + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/link-token: + post: + operationId: link_token_create + description: Creates a link token to be used when linking a new end user. + tags: + - link-token + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LinkToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/linked-account-scopes: + get: + operationId: linked_account_scopes_retrieve + description: Get all available permissions for Merge Common Models and fields + for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: linked_account_scopes_create + description: Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the default + Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/linked-accounts: + get: + operationId: linked_accounts_list + description: List linked accounts for your organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: category + schema: + type: string + nullable: true + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + description: |- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `mktg`, `ticketing` + + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_user_email_address + schema: + type: string + description: If provided, will only return linked accounts associated with + the given email address. + - in: query + name: end_user_organization_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given organization name. + - in: query + name: end_user_origin_id + schema: + type: string + description: If provided, will only return linked accounts associated with + the given origin ID. + - in: query + name: end_user_origin_ids + schema: + type: string + description: Comma-separated list of EndUser origin IDs, making it possible + to specify multiple EndUsers at once. + - in: query + name: id + schema: + type: string + format: uuid + - in: query + name: ids + schema: + type: string + description: Comma-separated list of LinkedAccount IDs, making it possible + to specify multiple LinkedAccounts at once. + - in: query + name: include_duplicates + schema: + type: boolean + description: If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. `id` must + be for a complete production linked account. + - in: query + name: integration_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given integration name. + - in: query + name: is_test_account + schema: + type: string + description: If included, will only include test linked accounts. If not included, + will only include non-test linked accounts. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: status + schema: + type: string + description: 'Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED`' + tags: + - linked-accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAccountDetailsAndActionsList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/notes: + get: + operationId: notes_list + description: Returns a list of `Note` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: account_id + schema: + type: string + description: If provided, will only return notes with this account. + examples: + AccountId: + summary: account_id + - in: query + name: contact_id + schema: + type: string + description: If provided, will only return notes with this contact. + examples: + ContactId: + summary: contact_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - contact + - opportunity + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOwner,Contact,Account,Opportunity: + value: owner,contact,account,opportunity + summary: Expand Owner, Contact, Account, Opportunity + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: opportunity_id + schema: + type: string + description: If provided, will only return notes with this opportunity. + examples: + OpportunityId: + summary: opportunity_id + - in: query + name: owner_id + schema: + type: string + description: If provided, will only return notes with this owner. + examples: + OwnerId: + summary: owner_id + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - notes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedNoteList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: notes_create + description: Creates a `Note` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - notes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NoteEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NoteEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/NoteEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/NoteResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/notes/{id}: + get: + operationId: notes_retrieve + description: Returns a `Note` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - contact + - opportunity + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOwner,Contact,Account,Opportunity: + value: owner,contact,account,opportunity + summary: Expand Owner, Contact, Account, Opportunity + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - notes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Note' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/notes/meta/post: + get: + operationId: notes_meta_post_retrieve + description: Returns metadata for `Note` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - notes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/notes/remote-field-classes: + get: + operationId: notes_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - notes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/opportunities: + get: + operationId: opportunities_list + description: Returns a list of `Opportunity` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: account_id + schema: + type: string + description: If provided, will only return opportunities with this account. + examples: + AccountId: + summary: account_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - owner + - stage + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOwner,Stage,Account: + value: owner,stage,account + summary: Expand Owner, Stage, Account + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: owner_id + schema: + type: string + description: If provided, will only return opportunities with this owner. + examples: + OwnerId: + summary: owner_id + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_created_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return opportunities created in the third + party platform after this datetime. + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: stage_id + schema: + type: string + description: If provided, will only return opportunities with this stage. + examples: + StageId: + summary: stage_id + - in: query + name: status + schema: + type: string + nullable: true + enum: + - LOST + - OPEN + - WON + description: |- + If provided, will only return opportunities with this status. Options: ('OPEN', 'WON', 'LOST') + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + tags: + - opportunities + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOpportunityList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: opportunities_create + description: Creates an `Opportunity` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - opportunities + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OpportunityEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/OpportunityEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/OpportunityEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/OpportunityResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/opportunities/{id}: + get: + operationId: opportunities_retrieve + description: Returns an `Opportunity` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - owner + - stage + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOwner,Stage,Account: + value: owner,stage,account + summary: Expand Owner, Stage, Account + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + - in: query + name: show_enum_origins + schema: + type: string + enum: + - status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesStatus: + value: status + summary: Original Enum Values Status + tags: + - opportunities + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Opportunity' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + patch: + operationId: opportunities_partial_update + description: Updates an `Opportunity` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - opportunities + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedOpportunityEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedOpportunityEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedOpportunityEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OpportunityResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/opportunities/meta/patch/{id}: + get: + operationId: opportunities_meta_patch_retrieve + description: Returns metadata for `Opportunity` PATCHs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - opportunities + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-patch: META_PATCH + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/opportunities/meta/post: + get: + operationId: opportunities_meta_post_retrieve + description: Returns metadata for `Opportunity` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - opportunities + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/opportunities/remote-field-classes: + get: + operationId: opportunities_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - opportunities + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/passthrough: + post: + operationId: passthrough_create + description: Pull data from an endpoint not currently supported by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/regenerate-key: + post: + operationId: regenerate_key_create + description: Exchange remote keys. + tags: + - regenerate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/remote-fields: + get: + operationId: remote_fields_retrieve + description: Get all remote fields for a Linked Account. Remote fields are third-party + fields that are accessible after initial sync if remote_data is enabled. You + can use remote fields to override existing Merge fields or map a new Merge + field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: common_models + schema: + type: string + description: A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + - in: query + name: include_example_values + schema: + type: string + description: If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active data from + your customers. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/stages: + get: + operationId: stages_list + description: Returns a list of `Stage` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - stages + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedStageList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/stages/{id}: + get: + operationId: stages_retrieve + description: Returns a `Stage` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - stages + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Stage' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/stages/remote-field-classes: + get: + operationId: stages_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - stages + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/sync-status: + get: + operationId: sync_status_list + description: Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` + represents the most recent time any sync completed. These timestamps may correspond + to different sync instances which may result in a sync start time being later + than a separate sync completed time. To ensure you are retrieving the latest + available data reference the `last_sync_finished` timestamp where `last_sync_result` + is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about + sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - sync-status + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSyncStatusList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/sync-status/resync: + post: + operationId: sync_status_resync_create + description: Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or Enterprise + plans. Doing so will consume a sync credit for the relevant linked account. + Force re-syncs can also be triggered manually in the Merge Dashboard and is + available for all customers. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - force-resync + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/target-fields: + get: + operationId: target_fields_retrieve + description: Get all organization-wide Target Fields, this will not include + any Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked Accounts + in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExternalTargetFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/tasks: + get: + operationId: tasks_list + description: Returns a list of `Task` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - opportunity + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOwner,Account,Opportunity: + value: owner,account,opportunity + summary: Expand Owner, Account, Opportunity + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - tasks + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTaskList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: tasks_create + description: Creates a `Task` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - tasks + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TaskEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TaskEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TaskEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/tasks/{id}: + get: + operationId: tasks_retrieve + description: Returns a `Task` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - opportunity + - owner + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandOwner,Account,Opportunity: + value: owner,account,opportunity + summary: Expand Owner, Account, Opportunity + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - tasks + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Task' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + patch: + operationId: tasks_partial_update + description: Updates a `Task` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - tasks + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedTaskEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedTaskEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedTaskEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TaskResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/tasks/meta/patch/{id}: + get: + operationId: tasks_meta_patch_retrieve + description: Returns metadata for `Task` PATCHs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - tasks + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-patch: META_PATCH + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/tasks/meta/post: + get: + operationId: tasks_meta_post_retrieve + description: Returns metadata for `Task` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - tasks + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/tasks/remote-field-classes: + get: + operationId: tasks_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - tasks + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/users: + get: + operationId: users_list + description: Returns a list of `User` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: email + schema: + type: string + nullable: true + description: If provided, will only return users with this email. + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - users + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/users/{id}: + get: + operationId: users_retrieve + description: Returns a `User` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - users + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/User' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /crm/v1/users/ignore/{model_id}: + post: + operationId: users_ignore_create + description: Ignores a specific row based on the `model_id` in the url. These + records will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will be + stored for audit purposes. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: model_id + schema: + type: string + format: uuid + required: true + tags: + - users + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + description: No response body + x-extra-tags: + - ignore-model + /crm/v1/users/remote-field-classes: + get: + operationId: users_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - users + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /crm/v1/webhook-receivers: + get: + operationId: webhook_receivers_list + description: Returns a list of `WebhookReceiver` objects. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: webhook_receivers_create + description: Creates a `WebhookReceiver` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC +components: + schemas: + Account: + type: object + description: |- + # The Account Object + ### Description + The `Account` object is used to represent a company in a CRM system. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The account's owner. + example: 0258cbc6-6020-430a-848e-aafacbadf4ae + x-merge-expands-to: User + name: + type: string + nullable: true + description: The account's name. + example: Merge API + description: + type: string + nullable: true + description: The account's description. + example: One API for all integrations + industry: + type: string + nullable: true + description: The account's industry. + example: API's + website: + type: string + format: uri + nullable: true + description: The account's website. + maxLength: 2000 + example: https://merge.dev/ + number_of_employees: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + description: The account's number of employees. + example: 276000 + addresses: + type: array + items: + $ref: '#/components/schemas/Address' + example: + - street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_numbers: + type: array + items: + $ref: '#/components/schemas/PhoneNumber' + readOnly: true + example: + - phone_number: '+16788879833' + phone_number_type: Mobile + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + last_activity_at: + type: string + format: date-time + nullable: true + description: The last date (either most recent or furthest in the future) + of when an activity occurs in an account. + example: '2022-02-10T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the CRM system account data was last modified by a user + with a login. + example: '2022-01-09T00:00:00Z' + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's account was created. + example: '2021-11-10T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /accounts + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"owner": "User"}' + x-merge-category: crm + AccountDetails: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: + type: string + readOnly: true + example: BambooHR + integration_slug: + type: string + readOnly: true + example: bamboohr + category: + oneOf: + - $ref: '#/components/schemas/CategoryEnum' + - type: string + nullable: true + example: hris + end_user_origin_id: + type: string + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: + type: string + readOnly: true + example: Waystar Royco + end_user_email_address: + type: string + format: email + readOnly: true + example: kendall.roy@waystar-royco.com + status: + type: string + readOnly: true + example: COMPLETE + webhook_listener_url: + type: string + format: uri + readOnly: true + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + readOnly: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + account_type: + type: string + readOnly: true + example: PRODUCTION + completed_at: + type: string + format: date-time + nullable: true + description: The time at which account completes the linking flow. + example: '2024-08-26T20:11:19.277118Z' + x-merge-category: crm + AccountDetailsAndActions: + type: object + description: |- + # The LinkedAccount Object + ### Description + The `LinkedAccount` object is used to represent an end user's link with a specific integration. + + ### Usage Example + View a list of your organization's `LinkedAccount` objects. + properties: + id: + type: string + example: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: + oneOf: + - $ref: '#/components/schemas/CategoryEnum' + - type: string + example: hris + status: + oneOf: + - $ref: '#/components/schemas/AccountDetailsAndActionsStatusEnum' + - type: string + example: INCOMPLETE + status_detail: + type: string + example: Invalid login credentials + end_user_origin_id: + type: string + example: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: + type: string + example: Foo Bar, LLC + end_user_email_address: + type: string + example: hradmin@foobar.dev + subdomain: + type: string + description: The tenant or domain the customer has provided access to. + example: foobar + webhook_listener_url: + type: string + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + integration: + $ref: '#/components/schemas/AccountDetailsAndActionsIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: + type: string + example: PRODUCTION + completed_at: + type: string + format: date-time + example: '2024-08-26T20:11:19.277118Z' + required: + - account_type + - completed_at + - end_user_email_address + - end_user_organization_name + - id + - status + - webhook_listener_url + x-merge-sample-json: '{"id": "e59b1821-f85c-4e28-a6b3-1804156f3563", "category": + "hris", "status": "INCOMPLETE", "status_detail": "Invalid login credentials", + "end_user_origin_id": "3ac95cde-6c7f-4eef-afec-be710b42308d", "end_user_organization_name": + "Foo Bar, LLC", "end_user_email_address": "hradmin@foobar.dev", "webhook_listener_url": + "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + "is_duplicate": true, "integration": {"name": "SAP SuccessFactors", "categories": + ["hris", "ats"], "image": "https://cdn.merge.dev/SuccessFactors_Logo.png", + "square_image": "https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg", "color": + "#F6A704", "slug": "sap-successfactors", "passthrough_available": true, "available_model_operations": + [{"model_name": "Candidate", "available_operations": ["FETCH", "CREATE"], + "required_post_parameters": ["remote_user_id"], "supported_fields": ["first_name", + "last_name", "company", "title"]}]}}' + x-merge-category: crm + AccountDetailsAndActionsIntegration: + type: object + properties: + name: + type: string + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + image: + type: string + square_image: + type: string + color: + type: string + slug: + type: string + passthrough_available: + type: boolean + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + required: + - categories + - color + - name + - passthrough_available + - slug + x-merge-category: crm + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + type: string + description: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + x-merge-category: crm + AccountIntegration: + type: object + properties: + name: + type: string + description: Company name. + abbreviated_name: + type: string + nullable: true + description: "Optional. This shortened name appears in places with limited + space, usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce Now), + SuccessFactors (in lieu of SAP SuccessFactors)" + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + readOnly: true + image: + type: string + format: uri + nullable: true + description: Company logo in rectangular shape. + square_image: + type: string + format: uri + nullable: true + description: Company logo in square shape. + color: + type: string + description: The color of this integration used for buttons and text throughout + the app and landing pages. Choose a darker, saturated color. + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: string + readOnly: true + api_endpoints_to_documentation_urls: + type: object + additionalProperties: {} + description: "Mapping of API endpoints to documentation urls for support. + Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []}" + webhook_setup_guide_url: + type: string + nullable: true + description: Setup guide URL for third party webhook creation. Exposed in + Merge Docs. + category_beta_status: + type: object + description: Category or categories this integration is in beta status for. + readOnly: true + required: + - name + x-merge-category: crm + AccountRequest: + type: object + description: |- + # The Account Object + ### Description + The `Account` object is used to represent a company in a CRM system. + ### Usage Example + TODO + properties: + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The account's owner. + example: 0258cbc6-6020-430a-848e-aafacbadf4ae + x-merge-expands-to: User + name: + type: string + nullable: true + description: The account's name. + example: Merge API + description: + type: string + nullable: true + description: The account's description. + example: One API for all integrations + industry: + type: string + nullable: true + description: The account's industry. + example: API's + website: + type: string + format: uri + nullable: true + description: The account's website. + maxLength: 2000 + example: https://merge.dev/ + number_of_employees: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + description: The account's number of employees. + example: 276000 + addresses: + type: array + items: + $ref: '#/components/schemas/AddressRequest' + example: + - street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + last_activity_at: + type: string + format: date-time + nullable: true + description: The last date (either most recent or furthest in the future) + of when an activity occurs in an account. + example: '2022-02-10T00:00:00Z' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"owner": "User"}' + x-merge-category: crm + AccountToken: + type: object + properties: + account_token: + type: string + example: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + id: + type: string + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + required: + - account_token + - id + - integration + x-merge-category: crm + ActivityTypeEnum: + enum: + - CALL + - MEETING + - EMAIL + type: string + description: |- + * `CALL` - CALL + * `MEETING` - MEETING + * `EMAIL` - EMAIL + x-merge-category: crm + Address: + type: object + description: |- + # The Address Object + ### Description + The `Address` object is used to represent an entity's address. + ### Usage Example + TODO + properties: + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + street_1: + type: string + nullable: true + description: Line 1 of the address's street. + example: 50 Bowling Green Dr + street_2: + type: string + nullable: true + description: Line 2 of the address's street. + example: Golden Gate Park + city: + type: string + nullable: true + description: The address's city. + example: San Francisco + state: + type: string + nullable: true + description: The address's state. + example: CA + postal_code: + type: string + nullable: true + description: The address's postal code. + example: '94122' + country: + oneOf: + - $ref: '#/components/schemas/CountryEnum' + - type: string + nullable: true + description: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + example: US + address_type: + oneOf: + - $ref: '#/components/schemas/AddressTypeEnum' + - type: string + nullable: true + description: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + example: Shipping + x-merge-nested-write-allowed: true + x-merge-category: crm + AddressRequest: + type: object + description: |- + # The Address Object + ### Description + The `Address` object is used to represent an entity's address. + ### Usage Example + TODO + properties: + street_1: + type: string + nullable: true + description: Line 1 of the address's street. + example: 50 Bowling Green Dr + street_2: + type: string + nullable: true + description: Line 2 of the address's street. + example: Golden Gate Park + city: + type: string + nullable: true + description: The address's city. + example: San Francisco + state: + type: string + nullable: true + description: The address's state. + example: CA + postal_code: + type: string + nullable: true + description: The address's postal code. + example: '94122' + country: + oneOf: + - $ref: '#/components/schemas/CountryEnum' + - type: string + nullable: true + description: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + example: US + address_type: + oneOf: + - $ref: '#/components/schemas/AddressTypeEnum' + - type: string + nullable: true + description: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + example: Shipping + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: crm + AddressTypeEnum: + enum: + - BILLING + - SHIPPING + type: string + description: |- + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + x-merge-category: crm + AdvancedMetadata: + type: object + properties: + id: + type: string + format: uuid + display_name: + type: string + description: + type: string + is_required: + type: boolean + is_custom: + type: boolean + field_choices: + type: array + items: {} + required: + - id + x-merge-category: crm + Association: + type: object + description: |- + # The Association Object + ### Description + The `Association` record refers to an instance of an Association Type. + ### Usage Example + TODO + properties: + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + source_object: + type: string + format: uuid + readOnly: true + example: a8f5d29f-4e50-473f-8f12-27128ffcd37a + target_object: + type: string + format: uuid + readOnly: true + example: da0b1963-be70-469c-9f8c-06a81d0fe759 + association_type: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/AssociationType' + nullable: true + description: The association type the association belongs to. + example: 88a71b5c-a3cc-4bce-84ff-d18b049a4081 + x-merge-expands-to: AssociationType + x-merge-expands: '{"association_type": "AssociationType"}' + x-merge-category: crm + AssociationSubType: + type: object + properties: + id: + type: string + nullable: true + readOnly: true + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + origin_type: + type: string + nullable: true + readOnly: true + x-merge-category: crm + AssociationType: + type: object + description: |- + # The AssociationType Object + ### Description + The `Association Type` object represents the relationship between two objects. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 5bb73c32-3c6c-4757-ab7d-7d3540a1be31 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '93' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + source_object_class: + type: object + additionalProperties: {} + readOnly: true + description: The class of the source object (Custom Object or Common Model) + for the association type. + example: + id: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + origin_type: CUSTOM_OBJECT + target_object_classes: + type: array + items: + $ref: '#/components/schemas/AssociationSubType' + readOnly: true + example: + - id: Opportunity + origin_type: COMMON_MODEL + x-merge-expands-to: AssociationSubType + remote_key_name: + type: string + nullable: true + example: order_to_opportunity + display_name: + type: string + nullable: true + example: Order to Opportunity + cardinality: + oneOf: + - $ref: '#/components/schemas/CardinalityEnum' + - type: string + nullable: true + example: ONE_TO_MANY + is_required: + type: boolean + x-merge-expands: '{"target_object_classes": "AssociationSubType"}' + x-merge-category: crm + AssociationTypeRequestRequest: + type: object + properties: + source_object_class: + $ref: '#/components/schemas/ObjectClassDescriptionRequest' + target_object_classes: + type: array + items: + $ref: '#/components/schemas/ObjectClassDescriptionRequest' + x-merge-expands-to: AssociationSubType + remote_key_name: + type: string + minLength: 1 + display_name: + type: string + minLength: 1 + cardinality: + $ref: '#/components/schemas/CardinalityEnum' + is_required: + type: boolean + default: false + required: + - remote_key_name + - source_object_class + - target_object_classes + x-merge-expands: '{"target_object_classes": "AssociationSubType"}' + x-merge-category: crm + AsyncPassthroughReciept: + type: object + properties: + async_passthrough_receipt_id: + type: string + format: uuid + example: fd29020f-2695-445e-922e-dcd5e81903fd + required: + - async_passthrough_receipt_id + x-merge-category: crm + AuditLogEvent: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: + type: string + nullable: true + description: The User's full name at the time of this Event occurring. + maxLength: 200 + example: Gil Feig + user_email: + type: string + format: email + nullable: true + description: The User's email at the time of this Event occurring. + maxLength: 254 + example: hello@merge.dev + role: + oneOf: + - $ref: '#/components/schemas/RoleEnum' + - type: string + description: |- + Designates the role of the user (or SYSTEM/API if action not taken by a user) at the time of this Event occurring. + + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + example: ADMIN + ip_address: + type: string + maxLength: 45 + example: 192.0.2.123 + event_type: + oneOf: + - $ref: '#/components/schemas/EventTypeEnum' + - type: string + description: |- + Designates the type of event that occurred. + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + example: CHANGED_SCOPES + event_description: + type: string + example: Organization-wide Scopes for model hris.Employee updated from Read + to Read+Write + created_at: + type: string + format: date-time + readOnly: true + required: + - event_description + - event_type + - ip_address + - role + x-merge-category: crm + AvailableActions: + type: object + description: |- + # The AvailableActions Object + ### Description + The `Activity` object is used to see all available model/operation combinations for an integration. + + ### Usage Example + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: Lever + categories: + - ats + image: https://merge-api-production.s3.amazonaws.com/media/Lever_Logo.png + square_image: https://merge-api-production.s3.amazonaws.com/media/Lever_Square_Logo.png + color: '#262A34' + is_in_beta: 'true' + api_endpoints_to_documentation_urls: "{'GET': [('/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve')], + 'POST': []}" + passthrough_available: + type: boolean + example: true + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + example: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + required: + - integration + - passthrough_available + x-merge-category: crm + CRMAccountEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/AccountRequest' + required: + - model + x-merge-category: crm + CRMAccountResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Account' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: crm + CRMAssociationTypeEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/AssociationTypeRequestRequest' + required: + - model + x-merge-category: crm + CRMAssociationTypeResponse: + type: object + properties: + model: + $ref: '#/components/schemas/AssociationType' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: crm + CRMContactEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/ContactRequest' + required: + - model + x-merge-category: crm + CRMContactResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Contact' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: crm + CRMCustomObjectEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/CustomObjectRequest' + required: + - model + x-merge-category: crm + CRMCustomObjectResponse: + type: object + properties: + model: + $ref: '#/components/schemas/CustomObject' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: crm + CardinalityEnum: + enum: + - ONE_TO_ONE + - MANY_TO_ONE + - MANY_TO_MANY + - ONE_TO_MANY + type: string + description: |- + * `ONE_TO_ONE` - ONE_TO_ONE + * `MANY_TO_ONE` - MANY_TO_ONE + * `MANY_TO_MANY` - MANY_TO_MANY + * `ONE_TO_MANY` - ONE_TO_MANY + x-merge-category: crm + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: crm + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: crm + CommonModelScopeAPI: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializer' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + required: + - common_models + x-merge-category: crm + CommonModelScopesBodyRequest: + type: object + properties: + model_id: + type: string + minLength: 1 + example: hris.Employee + enabled_actions: + type: array + items: + $ref: '#/components/schemas/EnabledActionsEnum' + example: + - READ + - WRITE + disabled_fields: + type: array + items: + type: string + minLength: 1 + example: + - first_name + required: + - disabled_fields + - enabled_actions + - model_id + x-merge-category: crm + Contact: + type: object + description: |- + # The Contact Object + ### Description + The `Contact` object is used to represent an existing point of contact at a company in a CRM system. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 550e8400-e29b-41d4-a716-446655440000 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + first_name: + type: string + nullable: true + description: The contact's first name. + example: Gil + last_name: + type: string + nullable: true + description: The contact's last name. + example: Feig + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The contact's account. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Account + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The contact's owner. + example: b8fbfc30-0982-420e-8c20-dab07b70b9d6 + addresses: + type: array + items: + $ref: '#/components/schemas/Address' + example: + - street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_addresses: + type: array + items: + $ref: '#/components/schemas/EmailAddress' + example: + - email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + type: array + items: + $ref: '#/components/schemas/PhoneNumber' + example: + - phone_number: '+13785579223' + phone_number_type: Mobile + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + last_activity_at: + type: string + format: date-time + nullable: true + description: When the contact's last activity occurred. + example: '2022-02-10T00:00:00Z' + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's contact was created. + example: '2021-11-10T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /contacts + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"account": "Account"}' + x-merge-category: crm + ContactRequest: + type: object + description: |- + # The Contact Object + ### Description + The `Contact` object is used to represent an existing point of contact at a company in a CRM system. + ### Usage Example + TODO + properties: + first_name: + type: string + nullable: true + description: The contact's first name. + example: Gil + last_name: + type: string + nullable: true + description: The contact's last name. + example: Feig + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The contact's account. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Account + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The contact's owner. + example: b8fbfc30-0982-420e-8c20-dab07b70b9d6 + addresses: + type: array + items: + $ref: '#/components/schemas/AddressRequest' + example: + - street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_addresses: + type: array + items: + $ref: '#/components/schemas/EmailAddressRequest' + example: + - email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + type: array + items: + $ref: '#/components/schemas/PhoneNumberRequest' + example: + - phone_number: '+13785579223' + phone_number_type: Mobile + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + last_activity_at: + type: string + format: date-time + nullable: true + description: When the contact's last activity occurred. + example: '2022-02-10T00:00:00Z' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account"}' + x-merge-category: crm + CountryEnum: + enum: + - AF + - AX + - AL + - DZ + - AS + - AD + - AO + - AI + - AQ + - AG + - AR + - AM + - AW + - AU + - AT + - AZ + - BS + - BH + - BD + - BB + - BY + - BE + - BZ + - BJ + - BM + - BT + - BO + - BQ + - BA + - BW + - BV + - BR + - IO + - BN + - BG + - BF + - BI + - CV + - KH + - CM + - CA + - KY + - CF + - TD + - CL + - CN + - CX + - CC + - CO + - KM + - CG + - CD + - CK + - CR + - CI + - HR + - CU + - CW + - CY + - CZ + - DK + - DJ + - DM + - DO + - EC + - EG + - SV + - GQ + - ER + - EE + - SZ + - ET + - FK + - FO + - FJ + - FI + - FR + - GF + - PF + - TF + - GA + - GM + - GE + - DE + - GH + - GI + - GR + - GL + - GD + - GP + - GU + - GT + - GG + - GN + - GW + - GY + - HT + - HM + - VA + - HN + - HK + - HU + - IS + - IN + - ID + - IR + - IQ + - IE + - IM + - IL + - IT + - JM + - JP + - JE + - JO + - KZ + - KE + - KI + - KW + - KG + - LA + - LV + - LB + - LS + - LR + - LY + - LI + - LT + - LU + - MO + - MG + - MW + - MY + - MV + - ML + - MT + - MH + - MQ + - MR + - MU + - YT + - MX + - FM + - MD + - MC + - MN + - ME + - MS + - MA + - MZ + - MM + - NA + - NR + - NP + - NL + - NC + - NZ + - NI + - NE + - NG + - NU + - NF + - KP + - MK + - MP + - NO + - OM + - PK + - PW + - PS + - PA + - PG + - PY + - PE + - PH + - PN + - PL + - PT + - PR + - QA + - RE + - RO + - RU + - RW + - BL + - SH + - KN + - LC + - MF + - PM + - VC + - WS + - SM + - ST + - SA + - SN + - RS + - SC + - SL + - SG + - SX + - SK + - SI + - SB + - SO + - ZA + - GS + - KR + - SS + - ES + - LK + - SD + - SR + - SJ + - SE + - CH + - SY + - TW + - TJ + - TZ + - TH + - TL + - TG + - TK + - TO + - TT + - TN + - TR + - TM + - TC + - TV + - UG + - UA + - AE + - GB + - UM + - US + - UY + - UZ + - VU + - VE + - VN + - VG + - VI + - WF + - EH + - YE + - ZM + - ZW + type: string + description: |- + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + x-merge-category: crm + CreateFieldMappingRequest: + type: object + properties: + target_field_name: + type: string + minLength: 1 + description: The name of the target field you want this remote field to + map to. + example: example_target_field_name + target_field_description: + type: string + minLength: 1 + description: The description of the target field you want this remote field + to map to. + example: this is a example description of the target field + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + common_model_name: + type: string + minLength: 1 + description: The name of the Common Model that the remote field corresponds + to in a given category. + example: ExampleCommonModel + required: + - common_model_name + - remote_field_traversal_path + - remote_method + - remote_url_path + - target_field_description + - target_field_name + x-merge-category: crm + CustomObject: + type: object + description: |- + # The CustomObject Object + ### Description + The `Custom Object` record refers to an instance of a Custom Object Class. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: da0b1963-be70-469c-9f8c-06a81d0fe759 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '4183634295' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + object_class: + type: string + format: uuid + nullable: true + description: The custom object class the custom object record belongs to. + example: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + fields: + type: object + additionalProperties: {} + readOnly: true + description: The fields and values contained within the custom object record. + example: + order_id: '4183634295' + order_quantity: 50 + customer_type: Returning + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-category: crm + CustomObjectClass: + type: object + description: |- + # The Custom Object Class Object + ### Description + The `Custom Object Class` object is used to represent a Custom Object Schema in the remote system. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '9579977' + created_at: + type: string + format: date-time + readOnly: true + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The custom object class's name. + example: order + description: + type: string + nullable: true + description: The custom object class's description. + example: Order object + labels: + type: object + additionalProperties: + type: string + nullable: true + readOnly: true + description: The custom object class's singular and plural labels. + example: + singular: Order + plural: Orders + fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldClassForCustomObjectClass' + readOnly: true + example: + - display_name: Order ID + remote_key_name: order_id + description: The unique ID for the order. + is_required: true + is_nested_list: false + field_type: string + field_format: string + field_choices: [] + item_schema: string + - display_name: Order Quantity + remote_key_name: order_quantity + description: The number of items ordered. + is_required: true + is_nested_list: false + field_type: number + field_format: number + field_choices: [] + item_schema: string + - display_name: Customer Type + remote_key_name: customer_type + description: The type of customer. + is_required: true + is_nested_list: false + field_type: string + field_format: enumeration + field_choices: + - New + - Returning + item_schema: + x-merge-expands-to: RemoteFieldClassForCustomObjectClass + association_types: + type: array + items: + type: object + additionalProperties: {} + nullable: true + readOnly: true + description: The types of associations with other models that the custom + object class can have. + x-merge-expands: '{"fields": "RemoteFieldClassForCustomObjectClass"}' + x-merge-category: crm + CustomObjectRequest: + type: object + properties: + fields: + type: object + additionalProperties: {} + example: + test_field: hello + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + required: + - fields + x-merge-category: crm + DataPassthroughRequest: + type: object + description: |- + # The DataPassthrough Object + ### Description + The `DataPassthrough` object is used to send information to an otherwise-unsupported third-party endpoint. + + ### Usage Example + Create a `DataPassthrough` to get team hierarchies from your Rippling integration. + properties: + method: + allOf: + - $ref: '#/components/schemas/MethodEnum' + example: POST + path: + type: string + minLength: 1 + description: The path of the request in the third party's platform. + example: /scooters + base_url_override: + type: string + nullable: true + minLength: 1 + description: An optional override of the third party's base url for the + request. + example: https://api.example.com + data: + type: string + nullable: true + minLength: 1 + description: The data with the request. You must include a `request_format` + parameter matching the data's format + example: '{"company": "Lime", "model": "Gen 2.5"}' + multipart_form_data: + type: array + items: + $ref: '#/components/schemas/MultipartFormFieldRequest' + nullable: true + description: Pass an array of `MultipartFormField` objects in here instead + of using the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: object + additionalProperties: {} + nullable: true + description: The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for passthrough. + Choose content type corresponding to expected format of receiving server. + example: + EXTRA-HEADER: value + request_format: + allOf: + - $ref: '#/components/schemas/RequestFormatEnum' + nullable: true + example: JSON + normalize_response: + type: boolean + description: 'Optional. If true, the response will always be an object of + the form `{"type": T, "value": ...}` where `T` will be one of `string, + boolean, number, null, array, object`.' + required: + - method + - path + x-merge-category: crm + DebugModeLog: + type: object + properties: + log_id: + type: string + example: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: + type: string + example: https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + $ref: '#/components/schemas/DebugModelLogSummary' + example: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + required: + - dashboard_view + - log_id + - log_summary + x-merge-sample-json: '{"log_id": "99433219-8017-4acd-bb3c-ceb23d663832", "dashboard_view": + "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", "log_summary": + {"url": "www.exampleintegration.com/api/v1/exampleapi", "method": "POST", + "status_code": 200}}' + x-merge-category: crm + DebugModelLogSummary: + type: object + properties: + url: + type: string + example: www.exampleintegration.com/api/v1/exampleapi + method: + type: string + example: POST + status_code: + type: integer + example: 200 + required: + - method + - status_code + - url + x-merge-sample-json: '{"url": "www.exampleintegration.com/api/v1/exampleapi", + "method": "POST", "status_code": 200}' + x-merge-category: crm + DirectionEnum: + enum: + - INBOUND + - OUTBOUND + type: string + description: |- + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + x-merge-category: crm + EmailAddress: + type: object + description: |- + # The EmailAddress Object + ### Description + The `EmailAddress` object is used to represent an entity's email address. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their email addresses. + properties: + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + email_address: + type: string + nullable: true + description: The email address. + example: merge_is_hiring@merge.dev + email_address_type: + type: string + nullable: true + description: The email address's type. + example: Work + x-merge-nested-write-allowed: true + x-merge-category: crm + EmailAddressRequest: + type: object + description: |- + # The EmailAddress Object + ### Description + The `EmailAddress` object is used to represent an entity's email address. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their email addresses. + properties: + email_address: + type: string + nullable: true + description: The email address. + example: merge_is_hiring@merge.dev + email_address_type: + type: string + nullable: true + description: The email address's type. + example: Work + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: crm + EnabledActionsEnum: + enum: + - READ + - WRITE + type: string + description: |- + * `READ` - READ + * `WRITE` - WRITE + x-merge-category: crm + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + type: string + description: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + x-merge-category: crm + EndUserDetailsRequest: + type: object + properties: + end_user_email_address: + type: string + minLength: 1 + description: Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be sent. + maxLength: 100 + example: example@gmail.com + end_user_organization_name: + type: string + minLength: 1 + description: Your end user's organization. + maxLength: 100 + example: Test Organization + end_user_origin_id: + type: string + minLength: 1 + description: This unique identifier typically represents the ID for your + end user in your product's database. This value must be distinct from + other Linked Accounts' unique identifiers. + maxLength: 100 + example: '12345' + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: The integration categories to show in Merge Link. + example: + - hris + - ats + integration: + type: string + nullable: true + minLength: 1 + description: The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see https://docs.merge.dev/guides/merge-link/single-integration/. + example: bamboohr + link_expiry_mins: + type: integer + maximum: 10080 + minimum: 30 + default: 30 + description: An integer number of minutes between [30, 720 or 10080 if for + a Magic Link URL] for how long this token is valid. Defaults to 30. + should_create_magic_link_url: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + hide_admin_magic_link: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information on Magic + Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + common_models: + type: array + items: + $ref: '#/components/schemas/CommonModelScopesBodyRequest' + nullable: true + description: An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses model_id, enabled_actions, + and disabled_fields to specify the model, method, and fields that are + scoped for a given Linked Account. + category_common_model_scopes: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + nullable: true + description: When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be linked. Any + model or field not specified in link token payload will default to existing + settings. + example: + hris: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - first_name + - last_name + - personal_email + disabled_fields: + - preferred_name + - model_name: Employment + model_permissions: + READ: + is_enabled: false + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - effective_date + ats: + - model_name: Job + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - name + disabled_fields: + - description + - model_name: Department + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + language: + oneOf: + - $ref: '#/components/schemas/LanguageEnum' + - type: string + nullable: true + description: |- + The following subset of IETF language tags can be used to configure localization. + + * `en` - en + * `de` - de + example: en + are_syncs_disabled: + type: boolean + nullable: true + default: false + description: The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + integration_specific_config: + type: object + additionalProperties: {} + nullable: true + description: A JSON object containing integration-specific configuration + options. + example: + rippling: + oauth_code: 3h1jj8ssdf31dfji3o1jjdfjasd + required: + - categories + - end_user_email_address + - end_user_organization_name + - end_user_origin_id + x-merge-category: crm + Engagement: + type: object + description: |- + # The Engagement Object + ### Description + The `Engagement` object is used to represent an interaction noted in a CRM system. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 550e8400-e29b-41d4-a716-446655440000 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The engagement's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: User + content: + type: string + nullable: true + description: The engagement's content. + example: Call for negotiation + subject: + type: string + nullable: true + description: The engagement's subject. + example: Call from customer + direction: + oneOf: + - $ref: '#/components/schemas/DirectionEnum' + - type: string + nullable: true + description: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + example: INBOUND + engagement_type: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/EngagementType' + nullable: true + description: The engagement type of the engagement. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: EngagementType + start_time: + type: string + format: date-time + nullable: true + description: The time at which the engagement started. + example: '2022-02-10T00:00:00Z' + end_time: + type: string + format: date-time + nullable: true + description: The time at which the engagement ended. + example: '2022-02-10T00:05:00Z' + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The account of the engagement. + example: 025fjlc6-6000-430a-848e-aafacbadf4fe + x-merge-expands-to: Account + contacts: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + example: + - a7c55bc6-2940-c80a-848e-bbfacbfdf4fg + x-merge-expands-to: Contact + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /engagements + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"account": "Account", "contacts": "Contact", "engagement_type": + "EngagementType", "owner": "User"}' + x-merge-category: crm + EngagementEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/EngagementRequest' + required: + - model + x-merge-category: crm + EngagementRequest: + type: object + description: |- + # The Engagement Object + ### Description + The `Engagement` object is used to represent an interaction noted in a CRM system. + ### Usage Example + TODO + properties: + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The engagement's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: User + content: + type: string + nullable: true + description: The engagement's content. + example: Call for negotiation + subject: + type: string + nullable: true + description: The engagement's subject. + example: Call from customer + direction: + oneOf: + - $ref: '#/components/schemas/DirectionEnum' + - type: string + nullable: true + description: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + example: INBOUND + engagement_type: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/EngagementType' + nullable: true + description: The engagement type of the engagement. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: EngagementType + start_time: + type: string + format: date-time + nullable: true + description: The time at which the engagement started. + example: '2022-02-10T00:00:00Z' + end_time: + type: string + format: date-time + nullable: true + description: The time at which the engagement ended. + example: '2022-02-10T00:05:00Z' + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The account of the engagement. + example: 025fjlc6-6000-430a-848e-aafacbadf4fe + x-merge-expands-to: Account + contacts: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + example: + - a7c55bc6-2940-c80a-848e-bbfacbfdf4fg + x-merge-expands-to: Contact + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account", "contacts": "Contact", "engagement_type": + "EngagementType", "owner": "User"}' + x-merge-category: crm + EngagementResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Engagement' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: crm + EngagementType: + type: object + description: |- + # The Engagement Type Object + ### Description + The `Engagement Type` object is used to represent an interaction activity. A given `Engagement` typically has an `Engagement Type` object represented in the engagement_type field. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 550e8400-e29b-41d4-a716-446655440000 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + activity_type: + oneOf: + - $ref: '#/components/schemas/ActivityTypeEnum' + - type: string + nullable: true + description: |- + The engagement type's activity type. + + * `CALL` - CALL + * `MEETING` - MEETING + * `EMAIL` - EMAIL + example: CALL + name: + type: string + nullable: true + description: The engagement type's name. + example: First Call + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-category: crm + ErrorValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /model/custom_fields + title: + type: string + example: Missing Required Field + detail: + type: string + example: custom_fields is a required field on model. + problem_type: + type: string + example: MISSING_REQUIRED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: crm + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + type: string + description: |- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + x-merge-category: crm + ExternalTargetFieldAPI: + type: object + properties: + name: + type: string + nullable: true + readOnly: true + example: example_target_field_name + description: + type: string + nullable: true + readOnly: true + example: this is a example description of a target field + is_mapped: + type: string + nullable: true + readOnly: true + example: true + x-merge-category: crm + ExternalTargetFieldAPIResponse: + type: object + properties: + Account: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Contact: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Lead: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Note: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Opportunity: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Stage: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + User: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Task: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Engagement: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + x-merge-category: crm + FieldFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + x-merge-category: crm + FieldMappingApiInstance: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: + type: boolean + readOnly: true + target_field: + type: object + properties: + name: + type: string + description: + type: string + is_organization_wide: + type: boolean + required: + - description + - is_organization_wide + - name + nullable: true + readOnly: true + example: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + type: object + properties: + remote_key_name: + type: string + nullable: true + schema: + type: object + additionalProperties: {} + nullable: true + remote_endpoint_info: + type: object + properties: + method: + type: string + nullable: true + url_path: + type: string + nullable: true + field_traversal_path: + type: array + items: + type: string + nullable: true + required: + - field_traversal_path + - method + - url_path + required: + - remote_endpoint_info + - remote_key_name + - schema + nullable: true + readOnly: true + example: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + x-merge-category: crm + FieldMappingApiInstanceResponse: + type: object + properties: + Account: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Contact: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Lead: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Note: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Opportunity: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Stage: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + User: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Task: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Engagement: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + x-merge-category: crm + FieldMappingInstanceResponse: + type: object + properties: + model: + $ref: '#/components/schemas/FieldMappingApiInstance' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: crm + FieldPermissionDeserializer: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: crm + FieldPermissionDeserializerRequest: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: crm + FieldTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + x-merge-category: crm + GenerateRemoteKeyRequest: + type: object + description: |- + # The GenerateRemoteKey Object + ### Description + The `GenerateRemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to create a new remote key. + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: crm + IgnoreCommonModelRequest: + type: object + properties: + reason: + oneOf: + - $ref: '#/components/schemas/ReasonEnum' + - type: string + example: GENERAL_CUSTOMER_REQUEST + message: + type: string + minLength: 1 + maxLength: 256 + example: deletion request by user id 51903790-7dfe-4053-8d63-5a10cc4ffd39 + required: + - reason + x-merge-category: crm + IndividualCommonModelScopeDeserializer: + type: object + properties: + model_name: + type: string + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializer' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializer' + required: + - model_name + x-merge-category: crm + IndividualCommonModelScopeDeserializerRequest: + type: object + properties: + model_name: + type: string + minLength: 1 + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializerRequest' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializerRequest' + required: + - model_name + x-merge-category: crm + Issue: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: + oneOf: + - $ref: '#/components/schemas/IssueStatusEnum' + - type: string + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + example: ONGOING + error_description: + type: string + example: Missing Permissions + end_user: + type: object + additionalProperties: {} + readOnly: true + example: b82302de-852e-4e60-b050-edf9da3b7c02 + first_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + last_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + is_muted: + type: boolean + readOnly: true + example: true + error_details: + type: array + items: + type: string + readOnly: true + example: + - Missing employee permissions. + - Missing time off permissions. + required: + - error_description + x-merge-category: crm + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + type: string + description: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + x-merge-category: crm + ItemFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - uuid + * `number` - url + * `date` - email + * `datetime` - phone + * `bool` - currency + * `list` - decimal + x-merge-category: crm + ItemSchema: + type: object + properties: + item_type: + $ref: '#/components/schemas/ItemTypeEnum' + item_format: + $ref: '#/components/schemas/ItemFormatEnum' + item_choices: + type: array + items: + type: string + x-merge-category: crm + ItemTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + x-merge-category: crm + LanguageEnum: + enum: + - en + - de + type: string + description: |- + * `en` - en + * `de` - de + x-merge-category: crm + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: crm + Lead: + type: object + description: |- + # The Lead Object + ### Description + The `Lead` object is used to represent an individual who is a potential customer. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 550e8400-e29b-41d4-a716-446655440000 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The lead's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: User + lead_source: + type: string + nullable: true + description: The lead's source. + example: API Blogger + title: + type: string + nullable: true + description: The lead's title. + example: Co-Founder + company: + type: string + nullable: true + description: The lead's company. + example: Merge API + first_name: + type: string + nullable: true + description: The lead's first name. + example: Gil + last_name: + type: string + nullable: true + description: The lead's last name. + example: Feig + addresses: + type: array + items: + $ref: '#/components/schemas/Address' + readOnly: true + example: + - street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_addresses: + type: array + items: + $ref: '#/components/schemas/EmailAddress' + readOnly: true + example: + - email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + type: array + items: + $ref: '#/components/schemas/PhoneNumber' + readOnly: true + example: + - phone_number: '+16789932455' + phone_number_type: Mobile + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's lead was updated. + example: '2022-02-10T00:00:00Z' + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's lead was created. + example: '2021-11-10T00:00:00Z' + converted_date: + type: string + format: date-time + nullable: true + description: When the lead was converted. + example: '2022-03-10T00:00:00Z' + converted_contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The contact of the converted lead. + example: 025fjlc6-6000-430a-848e-aafacbadf4fe + x-merge-expands-to: Contact + converted_account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The account of the converted lead. + example: 9c9de072-29cf-48e3-9578-1ca5b145b40e + x-merge-expands-to: Account + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /leads + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"converted_account": "Account", "converted_contact": "Contact", + "owner": "User"}' + x-merge-category: crm + LeadEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/LeadRequest' + required: + - model + x-merge-category: crm + LeadRequest: + type: object + description: |- + # The Lead Object + ### Description + The `Lead` object is used to represent an individual who is a potential customer. + ### Usage Example + TODO + properties: + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The lead's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: User + lead_source: + type: string + nullable: true + description: The lead's source. + example: API Blogger + title: + type: string + nullable: true + description: The lead's title. + example: Co-Founder + company: + type: string + nullable: true + description: The lead's company. + example: Merge API + first_name: + type: string + nullable: true + description: The lead's first name. + example: Gil + last_name: + type: string + nullable: true + description: The lead's last name. + example: Feig + addresses: + type: array + items: + $ref: '#/components/schemas/AddressRequest' + example: + - street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_addresses: + type: array + items: + $ref: '#/components/schemas/EmailAddressRequest' + example: + - email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + type: array + items: + $ref: '#/components/schemas/PhoneNumberRequest' + example: + - phone_number: '+16789932455' + phone_number_type: Mobile + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + converted_date: + type: string + format: date-time + nullable: true + description: When the lead was converted. + example: '2022-03-10T00:00:00Z' + converted_contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The contact of the converted lead. + example: 025fjlc6-6000-430a-848e-aafacbadf4fe + x-merge-expands-to: Contact + converted_account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The account of the converted lead. + example: 9c9de072-29cf-48e3-9578-1ca5b145b40e + x-merge-expands-to: Account + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"converted_account": "Account", "converted_contact": "Contact", + "owner": "User"}' + x-merge-category: crm + LeadResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Lead' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: crm + LinkToken: + type: object + properties: + link_token: + type: string + example: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: + type: string + example: Lever + magic_link_url: + type: string + example: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + required: + - link_token + x-merge-category: crm + LinkedAccountCommonModelScopeDeserializerRequest: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + required: + - common_models + x-merge-category: crm + LinkedAccountStatus: + type: object + properties: + linked_account_status: + type: string + can_make_request: + type: boolean + required: + - can_make_request + - linked_account_status + x-merge-category: crm + MetaResponse: + type: object + properties: + request_schema: + type: object + additionalProperties: {} + example: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + type: object + additionalProperties: {} + status: + $ref: '#/components/schemas/LinkedAccountStatus' + example: + linked_account_status: COMPLETE + can_make_request: true + has_conditional_params: + type: boolean + has_required_linked_account_params: + type: boolean + required: + - has_conditional_params + - has_required_linked_account_params + - request_schema + x-merge-category: crm + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + type: string + description: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + x-merge-category: crm + ModelOperation: + type: object + description: |- + # The ModelOperation Object + ### Description + The `ModelOperation` object is used to represent the operations that are currently supported for a given model. + + ### Usage Example + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: + type: string + example: Candidate + available_operations: + type: array + items: + type: string + example: + - FETCH + - CREATE + required_post_parameters: + type: array + items: + type: string + example: + - remote_user_id + supported_fields: + type: array + items: + type: string + example: + - first_name + - last_name + - company + - title + required: + - available_operations + - model_name + - required_post_parameters + - supported_fields + x-merge-category: crm + ModelPermissionDeserializer: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: crm + ModelPermissionDeserializerRequest: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: crm + MultipartFormFieldRequest: + type: object + description: |- + # The MultipartFormField Object + ### Description + The `MultipartFormField` object is used to represent fields in an HTTP request using `multipart/form-data`. + + ### Usage Example + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + minLength: 1 + description: The name of the form field + example: resume + data: + type: string + minLength: 1 + description: The data for the form field. + example: SW50ZWdyYXRlIGZhc3QKSW50ZWdyYXRlIG9uY2U= + encoding: + oneOf: + - $ref: '#/components/schemas/EncodingEnum' + - type: string + nullable: true + default: RAW + description: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + example: BASE64 + file_name: + type: string + nullable: true + minLength: 1 + description: The file name of the form field, if the field is for a file. + example: resume.pdf + content_type: + type: string + nullable: true + minLength: 1 + description: The MIME type of the file, if the field is for a file. + example: application/pdf + required: + - data + - name + x-merge-category: crm + Note: + type: object + description: |- + # The Note Object + ### Description + The `Note` object is used to represent a note on another object. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 550e8400-e29b-41d4-a716-446655440000 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The note's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: User + content: + type: string + nullable: true + description: The note's content. + example: Merge is hiring! + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The note's contact. + example: 025fjlc6-6000-430a-848e-aafacbadf4fe + x-merge-expands-to: Contact + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The note's account. + example: fba1fbc6-67c0-4cb2-a176-7896acd2ffd5 + x-merge-expands-to: Account + opportunity: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Opportunity' + nullable: true + description: The note's opportunity. + example: 754a244e-dd67-4731-a8d3-9bff9dc10465 + x-merge-expands-to: Opportunity + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's lead was updated. + example: '2022-02-10T00:00:00Z' + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's lead was created. + example: '2021-11-10T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /notes + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"account": "Account", "contact": "Contact", "opportunity": + "Opportunity", "owner": "User"}' + x-merge-category: crm + NoteEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/NoteRequest' + required: + - model + x-merge-category: crm + NoteRequest: + type: object + description: |- + # The Note Object + ### Description + The `Note` object is used to represent a note on another object. + ### Usage Example + TODO + properties: + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The note's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: User + content: + type: string + nullable: true + description: The note's content. + example: Merge is hiring! + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The note's contact. + example: 025fjlc6-6000-430a-848e-aafacbadf4fe + x-merge-expands-to: Contact + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The note's account. + example: fba1fbc6-67c0-4cb2-a176-7896acd2ffd5 + x-merge-expands-to: Account + opportunity: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Opportunity' + nullable: true + description: The note's opportunity. + example: 754a244e-dd67-4731-a8d3-9bff9dc10465 + x-merge-expands-to: Opportunity + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account", "contact": "Contact", "opportunity": + "Opportunity", "owner": "User"}' + x-merge-category: crm + NoteResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Note' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: crm + ObjectClassDescriptionRequest: + type: object + properties: + id: + type: string + minLength: 1 + origin_type: + $ref: '#/components/schemas/OriginTypeEnum' + required: + - id + - origin_type + x-merge-category: crm + Opportunity: + type: object + description: |- + # The Opportunity Object + ### Description + The `Opportunity` object is used to represent a deal opportunity in a CRM system. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 550e8400-e29b-41d4-a716-446655440000 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The opportunity's name. + example: Needs Integrations + description: + type: string + nullable: true + description: The opportunity's description. + example: Needs a Unified API for Integrations! + amount: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + description: The opportunity's amount. + example: 100000 + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The opportunity's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: User + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The account of the opportunity. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Account + stage: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Stage' + nullable: true + description: The stage of the opportunity. + example: 1968cbc6-6040-430a-848e-aafacbadf4ad + x-merge-expands-to: Stage + status: + oneOf: + - $ref: '#/components/schemas/OpportunityStatusEnum' + - type: string + nullable: true + description: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + example: WON + last_activity_at: + type: string + format: date-time + nullable: true + description: When the opportunity's last activity occurred. + example: '2022-02-10T00:00:00Z' + close_date: + type: string + format: date-time + nullable: true + description: When the opportunity was closed. + example: '2022-02-10T00:00:00Z' + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's opportunity was created. + example: '2021-11-10T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /opportunities + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"account": "Account", "owner": "User", "stage": "Stage"}' + x-merge-category: crm + OpportunityEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/OpportunityRequest' + required: + - model + x-merge-category: crm + OpportunityRequest: + type: object + description: |- + # The Opportunity Object + ### Description + The `Opportunity` object is used to represent a deal opportunity in a CRM system. + ### Usage Example + TODO + properties: + name: + type: string + nullable: true + description: The opportunity's name. + example: Needs Integrations + description: + type: string + nullable: true + description: The opportunity's description. + example: Needs a Unified API for Integrations! + amount: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + description: The opportunity's amount. + example: 100000 + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The opportunity's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: User + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The account of the opportunity. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Account + stage: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Stage' + nullable: true + description: The stage of the opportunity. + example: 1968cbc6-6040-430a-848e-aafacbadf4ad + x-merge-expands-to: Stage + status: + oneOf: + - $ref: '#/components/schemas/OpportunityStatusEnum' + - type: string + nullable: true + description: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + example: WON + last_activity_at: + type: string + format: date-time + nullable: true + description: When the opportunity's last activity occurred. + example: '2022-02-10T00:00:00Z' + close_date: + type: string + format: date-time + nullable: true + description: When the opportunity was closed. + example: '2022-02-10T00:00:00Z' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account", "owner": "User", "stage": "Stage"}' + x-merge-category: crm + OpportunityResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Opportunity' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: crm + OpportunityStatusEnum: + enum: + - OPEN + - WON + - LOST + type: string + description: |- + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + x-merge-category: crm + OriginTypeEnum: + enum: + - CUSTOM_OBJECT + - COMMON_MODEL + - REMOTE_ONLY_MODEL + type: string + description: |- + * `CUSTOM_OBJECT` - CUSTOM_OBJECT + * `COMMON_MODEL` - COMMON_MODEL + * `REMOTE_ONLY_MODEL` - REMOTE_ONLY_MODEL + x-merge-category: crm + PaginatedAccountDetailsAndActionsList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AccountDetailsAndActions' + x-merge-category: crm + PaginatedAccountList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Account' + x-merge-category: crm + PaginatedAssociationList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Association' + x-merge-category: crm + PaginatedAssociationTypeList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AssociationType' + x-merge-category: crm + PaginatedAuditLogEventList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AuditLogEvent' + x-merge-category: crm + PaginatedContactList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Contact' + x-merge-category: crm + PaginatedCustomObjectClassList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/CustomObjectClass' + x-merge-category: crm + PaginatedCustomObjectList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/CustomObject' + x-merge-category: crm + PaginatedEngagementList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Engagement' + x-merge-category: crm + PaginatedEngagementTypeList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/EngagementType' + x-merge-category: crm + PaginatedIssueList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Issue' + x-merge-category: crm + PaginatedLeadList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Lead' + x-merge-category: crm + PaginatedNoteList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Note' + x-merge-category: crm + PaginatedOpportunityList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Opportunity' + x-merge-category: crm + PaginatedRemoteFieldClassList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/RemoteFieldClass' + x-merge-category: crm + PaginatedStageList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Stage' + x-merge-category: crm + PaginatedSyncStatusList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + x-merge-category: crm + PaginatedTaskList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Task' + x-merge-category: crm + PaginatedUserList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/User' + x-merge-category: crm + PatchedAccountRequest: + type: object + description: |- + # The Account Object + ### Description + The `Account` object is used to represent a company in a CRM system. + ### Usage Example + TODO + properties: + owner: + type: string + format: uuid + nullable: true + description: The account's owner. + example: 0258cbc6-6020-430a-848e-aafacbadf4ae + name: + type: string + nullable: true + description: The account's name. + example: Merge API + description: + type: string + nullable: true + description: The account's description. + example: One API for all integrations + industry: + type: string + nullable: true + description: The account's industry. + example: API's + website: + type: string + format: uri + nullable: true + description: The account's website. + maxLength: 2000 + example: https://merge.dev/ + number_of_employees: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + description: The account's number of employees. + example: 276000 + addresses: + type: array + items: + $ref: '#/components/schemas/AddressRequest' + example: + - street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + last_activity_at: + type: string + format: date-time + nullable: true + description: The last date (either most recent or furthest in the future) + of when an activity occurs in an account. + example: '2022-02-10T00:00:00Z' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-category: crm + PatchedCRMAccountEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/PatchedAccountRequest' + required: + - model + x-merge-category: crm + PatchedCRMContactEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/PatchedContactRequest' + required: + - model + x-merge-category: crm + PatchedContactRequest: + type: object + description: |- + # The Contact Object + ### Description + The `Contact` object is used to represent an existing point of contact at a company in a CRM system. + ### Usage Example + TODO + properties: + first_name: + type: string + nullable: true + description: The contact's first name. + example: Gil + last_name: + type: string + nullable: true + description: The contact's last name. + example: Feig + account: + type: string + format: uuid + nullable: true + description: The contact's account. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The contact's owner. + example: b8fbfc30-0982-420e-8c20-dab07b70b9d6 + addresses: + type: array + items: + $ref: '#/components/schemas/AddressRequest' + example: + - street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_addresses: + type: array + items: + $ref: '#/components/schemas/EmailAddressRequest' + example: + - email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + type: array + items: + $ref: '#/components/schemas/PhoneNumberRequest' + example: + - phone_number: '+13785579223' + phone_number_type: Mobile + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + last_activity_at: + type: string + format: date-time + nullable: true + description: When the contact's last activity occurred. + example: '2022-02-10T00:00:00Z' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-category: crm + PatchedEditFieldMappingRequest: + type: object + properties: + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field_name + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + x-merge-category: crm + PatchedEngagementEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/PatchedEngagementRequest' + required: + - model + x-merge-category: crm + PatchedEngagementRequest: + type: object + description: |- + # The Engagement Object + ### Description + The `Engagement` object is used to represent an interaction noted in a CRM system. + ### Usage Example + TODO + properties: + owner: + type: string + format: uuid + nullable: true + description: The engagement's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + content: + type: string + nullable: true + description: The engagement's content. + example: Call for negotiation + subject: + type: string + nullable: true + description: The engagement's subject. + example: Call from customer + direction: + oneOf: + - $ref: '#/components/schemas/DirectionEnum' + - type: string + nullable: true + description: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + example: INBOUND + engagement_type: + type: string + format: uuid + nullable: true + description: The engagement type of the engagement. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + start_time: + type: string + format: date-time + nullable: true + description: The time at which the engagement started. + example: '2022-02-10T00:00:00Z' + end_time: + type: string + format: date-time + nullable: true + description: The time at which the engagement ended. + example: '2022-02-10T00:05:00Z' + account: + type: string + format: uuid + nullable: true + description: The account of the engagement. + example: 025fjlc6-6000-430a-848e-aafacbadf4fe + contacts: + type: array + items: + type: string + format: uuid + nullable: true + example: + - a7c55bc6-2940-c80a-848e-bbfacbfdf4fg + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-category: crm + PatchedOpportunityEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/PatchedOpportunityRequest' + required: + - model + x-merge-category: crm + PatchedOpportunityRequest: + type: object + description: |- + # The Opportunity Object + ### Description + The `Opportunity` object is used to represent a deal opportunity in a CRM system. + ### Usage Example + TODO + properties: + name: + type: string + nullable: true + description: The opportunity's name. + example: Needs Integrations + description: + type: string + nullable: true + description: The opportunity's description. + example: Needs a Unified API for Integrations! + amount: + type: integer + maximum: 2147483647 + minimum: -2147483648 + nullable: true + description: The opportunity's amount. + example: 100000 + owner: + type: string + format: uuid + nullable: true + description: The opportunity's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + account: + type: string + format: uuid + nullable: true + description: The account of the opportunity. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + stage: + type: string + format: uuid + nullable: true + description: The stage of the opportunity. + example: 1968cbc6-6040-430a-848e-aafacbadf4ad + status: + oneOf: + - $ref: '#/components/schemas/OpportunityStatusEnum' + - type: string + nullable: true + description: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + example: WON + last_activity_at: + type: string + format: date-time + nullable: true + description: When the opportunity's last activity occurred. + example: '2022-02-10T00:00:00Z' + close_date: + type: string + format: date-time + nullable: true + description: When the opportunity was closed. + example: '2022-02-10T00:00:00Z' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-category: crm + PatchedTaskEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/PatchedTaskRequest' + required: + - model + x-merge-category: crm + PatchedTaskRequest: + type: object + description: |- + # The Task Object + ### Description + The `Task` object is used to represent a task, such as a to-do item. + ### Usage Example + TODO + properties: + subject: + type: string + nullable: true + description: The task's subject. + example: Contact about Integration Strategy + content: + type: string + nullable: true + description: The task's content. + example: Follow up to see whether they need integrations + owner: + type: string + format: uuid + nullable: true + description: The task's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + account: + type: string + format: uuid + nullable: true + description: The task's account. + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + opportunity: + type: string + format: uuid + nullable: true + description: The task's opportunity. + example: 550e8400-e29b-41d4-a716-446655440000 + completed_date: + type: string + format: date-time + nullable: true + description: When the task is completed. + example: '2022-02-11T00:00:00Z' + due_date: + type: string + format: date-time + nullable: true + description: When the task is due. + example: '2022-02-10T00:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/TaskStatusEnum' + - type: string + nullable: true + description: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + example: OPEN + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-category: crm + PhoneNumber: + type: object + description: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent an entity's phone number. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their phone numbers. + properties: + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + phone_number: + type: string + nullable: true + description: The phone number. + example: '+3198675309' + phone_number_type: + type: string + nullable: true + description: The phone number's type. + example: Mobile + x-merge-nested-write-allowed: true + x-merge-category: crm + PhoneNumberRequest: + type: object + description: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent an entity's phone number. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their phone numbers. + properties: + phone_number: + type: string + nullable: true + description: The phone number. + example: '+3198675309' + phone_number_type: + type: string + nullable: true + description: The phone number's type. + example: Mobile + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-category: crm + ReasonEnum: + enum: + - GENERAL_CUSTOMER_REQUEST + - GDPR + - OTHER + type: string + description: |- + * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST + * `GDPR` - GDPR + * `OTHER` - OTHER + x-merge-category: crm + RemoteData: + type: object + description: |- + # The RemoteData Object + ### Description + The `RemoteData` object is used to represent the full data pulled from the third-party API for an object. + + ### Usage Example + TODO + properties: + path: + type: string + description: The third-party API path that is being called. + example: /platform-endpoint + data: + readOnly: true + description: The data returned from the third-party for this object in its + original, unnormalized format. + example: + - Varies by platform + required: + - path + x-merge-category: crm + RemoteEndpointInfo: + type: object + properties: + method: + type: string + example: GET + url_path: + type: string + example: /example-url-path + field_traversal_path: + type: array + items: {} + example: + - example_key_name + required: + - field_traversal_path + - method + - url_path + x-merge-category: crm + RemoteField: + type: object + properties: + remote_field_class: + oneOf: + - type: string + - $ref: '#/components/schemas/RemoteFieldClass' + x-merge-expands-to: RemoteFieldClass + value: + nullable: true + example: string + required: + - remote_field_class + x-merge-expands: '{"remote_field_class": "RemoteFieldClass"}' + x-merge-category: crm + RemoteFieldAPI: + type: object + properties: + schema: + type: object + additionalProperties: {} + example: + type: string + remote_key_name: + type: string + example: example_remote_key_name + remote_endpoint_info: + $ref: '#/components/schemas/RemoteEndpointInfo' + example: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + type: array + items: {} + nullable: true + example: + - example + advanced_metadata: + allOf: + - $ref: '#/components/schemas/AdvancedMetadata' + nullable: true + coverage: + oneOf: + - type: integer + - type: number + format: double + nullable: true + readOnly: true + example: 0.33 + required: + - advanced_metadata + - remote_endpoint_info + - remote_key_name + - schema + x-merge-category: crm + RemoteFieldAPIResponse: + type: object + properties: + Account: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Contact: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Lead: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Note: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Opportunity: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Stage: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + User: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Task: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Engagement: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + x-merge-category: crm + RemoteFieldClass: + type: object + properties: + id: + type: string + display_name: + type: string + remote_key_name: + type: string + description: + type: string + is_custom: + type: boolean + is_required: + type: boolean + field_type: + $ref: '#/components/schemas/FieldTypeEnum' + field_format: + $ref: '#/components/schemas/FieldFormatEnum' + field_choices: + type: array + items: + type: object + properties: + value: + nullable: true + display_name: + type: string + nullable: true + nullable: true + item_schema: + $ref: '#/components/schemas/ItemSchema' + x-merge-category: crm + RemoteFieldClassForCustomObjectClass: + type: object + properties: + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + display_name: + type: string + nullable: true + remote_key_name: + type: string + nullable: true + description: + type: string + nullable: true + is_required: + type: boolean + field_type: + oneOf: + - $ref: '#/components/schemas/FieldTypeEnum' + - type: string + readOnly: true + field_format: + oneOf: + - $ref: '#/components/schemas/FieldFormatEnum' + - type: string + readOnly: true + field_choices: + type: array + items: + type: object + properties: + value: + nullable: true + display_name: + type: string + nullable: true + nullable: true + readOnly: true + item_schema: + type: object + properties: + item_type: + type: string + nullable: true + item_format: + type: string + nullable: true + item_choices: + type: array + items: + type: string + nullable: true + nullable: true + required: + - item_choices + - item_format + - item_type + nullable: true + readOnly: true + x-merge-category: crm + RemoteFieldRequest: + type: object + properties: + remote_field_class: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteFieldClass' + example: b057d1d2-c204-4da8-a74c-c91d1a260614 + x-merge-expands-to: RemoteFieldClass + value: + nullable: true + example: string + required: + - remote_field_class + x-merge-expands: '{"remote_field_class": "RemoteFieldClass"}' + x-merge-category: crm + RemoteKey: + type: object + description: |- + # The RemoteKey Object + ### Description + The `RemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: + type: string + example: Remote Deployment Key 1 + key: + type: string + example: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + required: + - key + - name + x-merge-category: crm + RemoteKeyForRegenerationRequest: + type: object + description: |- + # The RemoteKeyForRegeneration Object + ### Description + The `RemoteKeyForRegeneration` object is used to exchange an old remote key for a new one + + ### Usage Example + Post a `RemoteKeyForRegeneration` to swap out an old remote key for a new one + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: crm + RemoteResponse: + type: object + description: |- + # The RemoteResponse Object + ### Description + The `RemoteResponse` object is used to represent information returned from a third-party endpoint. + + ### Usage Example + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: + type: string + example: GET + path: + type: string + example: /scooters + status: + type: integer + example: 200 + response: + example: + scooters: + - company: Lime + model: Gen 2.5 + - company: Bird + model: Bird Zero + response_headers: + type: object + additionalProperties: {} + example: + X-Page-Token: value + response_type: + oneOf: + - $ref: '#/components/schemas/ResponseTypeEnum' + - type: string + example: JSON + headers: + type: object + additionalProperties: {} + example: + EXTRA-HEADER: value + Authorization: + required: + - method + - path + - response + - status + x-merge-category: crm + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + type: string + description: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + x-merge-category: crm + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + type: string + description: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + x-merge-category: crm + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + type: string + description: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + x-merge-category: crm + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + type: string + description: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + x-merge-category: crm + Stage: + type: object + description: |- + # The Stage Object + ### Description + The `Stage` object is used to represent the stage of an opportunity. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The stage's name. + example: Closed Won + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /stages + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-category: crm + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: crm + SyncStatus: + type: object + description: |- + # The SyncStatus Object + ### Description + The `SyncStatus` object is used to represent the syncing state of an account + + ### Usage Example + View the `SyncStatus` for an account to see how recently its models were synced. + properties: + model_name: + type: string + example: Account + model_id: + type: string + example: crm.Account + last_sync_start: + type: string + format: date-time + example: '2021-03-30T19:44:18.695973Z' + next_sync_start: + type: string + format: date-time + example: '2021-03-30T20:44:18.662942Z' + last_sync_result: + oneOf: + - $ref: '#/components/schemas/LastSyncResultEnum' + - type: string + example: DONE + last_sync_finished: + type: string + format: date-time + example: '2021-03-30T19:55:18.695973Z' + status: + oneOf: + - $ref: '#/components/schemas/StatusFd5Enum' + - type: string + example: SYNCING + is_initial_sync: + type: boolean + example: true + selective_sync_configurations_usage: + $ref: '#/components/schemas/SelectiveSyncConfigurationsUsageEnum' + required: + - is_initial_sync + - model_id + - model_name + - status + x-merge-sample-json: '{"model_name": "Candidate", "model_id": "ats.Candidate", + "last_sync_start": "2021-03-30T19:44:18.695973Z", "next_sync_start": "2021-03-30T20:44:18.662942Z", + "status": "SYNCING", "is_initial_sync": true}' + x-merge-category: crm + Task: + type: object + description: |- + # The Task Object + ### Description + The `Task` object is used to represent a task, such as a to-do item. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 550e8400-e29b-41d4-a716-446655440000 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + subject: + type: string + nullable: true + description: The task's subject. + example: Contact about Integration Strategy + content: + type: string + nullable: true + description: The task's content. + example: Follow up to see whether they need integrations + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The task's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: User + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The task's account. + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + x-merge-expands-to: Account + opportunity: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Opportunity' + nullable: true + description: The task's opportunity. + example: 550e8400-e29b-41d4-a716-446655440000 + x-merge-expands-to: Opportunity + completed_date: + type: string + format: date-time + nullable: true + description: When the task is completed. + example: '2022-02-11T00:00:00Z' + due_date: + type: string + format: date-time + nullable: true + description: When the task is due. + example: '2022-02-10T00:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/TaskStatusEnum' + - type: string + nullable: true + description: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + example: OPEN + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /tasks + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"account": "Account", "opportunity": "Opportunity", "owner": + "User"}' + x-merge-category: crm + TaskEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/TaskRequest' + required: + - model + x-merge-category: crm + TaskRequest: + type: object + description: |- + # The Task Object + ### Description + The `Task` object is used to represent a task, such as a to-do item. + ### Usage Example + TODO + properties: + subject: + type: string + nullable: true + description: The task's subject. + example: Contact about Integration Strategy + content: + type: string + nullable: true + description: The task's content. + example: Follow up to see whether they need integrations + owner: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The task's owner. + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + x-merge-expands-to: User + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The task's account. + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + x-merge-expands-to: Account + opportunity: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Opportunity' + nullable: true + description: The task's opportunity. + example: 550e8400-e29b-41d4-a716-446655440000 + x-merge-expands-to: Opportunity + completed_date: + type: string + format: date-time + nullable: true + description: When the task is completed. + example: '2022-02-11T00:00:00Z' + due_date: + type: string + format: date-time + nullable: true + description: When the task is due. + example: '2022-02-10T00:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/TaskStatusEnum' + - type: string + nullable: true + description: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + example: OPEN + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account", "opportunity": "Opportunity", "owner": + "User"}' + x-merge-category: crm + TaskResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Task' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: crm + TaskStatusEnum: + enum: + - OPEN + - CLOSED + type: string + description: |- + * `OPEN` - OPEN + * `CLOSED` - CLOSED + x-merge-category: crm + User: + type: object + description: |- + # The User Object + ### Description + The `User` object is used to represent a user with a login to the CRM system. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 0358cbc6-2040-430a-848e-aafacbadf3aa + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The user's name. + example: Gil Feig + email: + type: string + nullable: true + description: The user's email address. + example: merge_is_hiring@merge.dev + is_active: + type: boolean + nullable: true + description: Whether or not the user is active. + example: true + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /users + data: + - Varies by platform + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"roles": "Role", "teams": "Team"}' + x-merge-category: crm + ValidationProblemSource: + type: object + properties: + pointer: + type: string + required: + - pointer + x-merge-category: crm + WarningValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /age + title: + type: string + example: Unrecognized Field + detail: + type: string + example: An unrecognized field, age, was passed in with request data. + problem_type: + type: string + example: UNRECOGNIZED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: crm + WebhookReceiver: + type: object + properties: + event: + type: string + is_active: + type: boolean + key: + type: string + required: + - event + - is_active + x-merge-category: crm + WebhookReceiverRequest: + type: object + properties: + event: + type: string + minLength: 1 + is_active: + type: boolean + key: + type: string + minLength: 1 + required: + - event + - is_active + x-merge-category: crm + securitySchemes: + tokenAuth: + type: http + scheme: bearer + description: Token-based authentication with required prefix "Bearer" + x-fern-token-variable-name: api_key +servers: +- url: https://api.merge.dev/api/crm/v1 + description: Production + x-fern-server-name: Production +- url: https://api-sandbox.merge.dev/api/crm/v1 + description: Sandbox + x-fern-server-name: Sandbox +- url: https://api-eu.merge.dev/api/crm/v1 + description: Production EU + x-fern-server-name: ProductionEU +- url: https://api-ap.merge.dev/api/crm/v1 + description: Production APSE1 + x-fern-server-name: ProductionAPSE1 diff --git a/.mock/definition/ATS/__package__.yml b/.mock/definition/ATS/__package__.yml new file mode 100644 index 00000000..791d099f --- /dev/null +++ b/.mock/definition/ATS/__package__.yml @@ -0,0 +1,4734 @@ +types: + AccessRoleEnum: + enum: + - SUPER_ADMIN + - ADMIN + - TEAM_MEMBER + - LIMITED_TEAM_MEMBER + - INTERVIEWER + docs: |- + * `SUPER_ADMIN` - SUPER_ADMIN + * `ADMIN` - ADMIN + * `TEAM_MEMBER` - TEAM_MEMBER + * `LIMITED_TEAM_MEMBER` - LIMITED_TEAM_MEMBER + * `INTERVIEWER` - INTERVIEWER + source: + openapi: ats_v3.yml + AccountDetailsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: ats_v3.yml + inline: true + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: ats_v3.yml + AccountDetailsAndActionsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: ats_v3.yml + inline: true + AccountDetailsAndActionsStatus: + discriminated: false + union: + - AccountDetailsAndActionsStatusEnum + - string + source: + openapi: ats_v3.yml + inline: true + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatus + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + source: + openapi: ats_v3.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: ats_v3.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: ats_v3.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: ats_v3.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: ats_v3.yml + ActivityUser: + discriminated: false + docs: The user that performed the action. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + ActivityActivityType: + discriminated: false + docs: |- + The activity's type. + + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + union: + - ActivityTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + ActivityVisibility: + discriminated: false + docs: |- + The activity's visibility. + + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + union: + - VisibilityEnum + - string + source: + openapi: ats_v3.yml + inline: true + Activity: + docs: >- + # The Activity Object + + ### Description + + The `Activity` object is used to represent an activity for a candidate + performed by a user. + + ### Usage Example + + Fetch from the `LIST Activities` endpoint and filter by `ID` to show all + activities. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + user: + type: optional + docs: The user that performed the action. + remote_created_at: + type: optional + docs: When the third party's activity was created. + activity_type: + type: optional + docs: |- + The activity's type. + + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + subject: + type: optional + docs: The activity's subject. + body: + type: optional + docs: The activity's body. + visibility: + type: optional + docs: |- + The activity's visibility. + + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + candidate: + type: optional + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + ActivityRequestUser: + discriminated: false + docs: The user that performed the action. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + ActivityRequestVisibility: + discriminated: false + docs: |- + The activity's visibility. + + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + union: + - VisibilityEnum + - string + source: + openapi: ats_v3.yml + inline: true + ActivityRequest: + docs: >- + # The Activity Object + + ### Description + + The `Activity` object is used to represent an activity for a candidate + performed by a user. + + ### Usage Example + + Fetch from the `LIST Activities` endpoint and filter by `ID` to show all + activities. + properties: + user: + type: optional + docs: The user that performed the action. + activity_type: + type: optional + docs: |- + The activity's type. + + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + subject: + type: optional + docs: The activity's subject. + body: + type: optional + docs: The activity's body. + visibility: + type: optional + docs: |- + The activity's visibility. + + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + candidate: + type: optional + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ats_v3.yml + ActivityResponse: + properties: + model: Activity + warnings: list + errors: list + logs: optional> + source: + openapi: ats_v3.yml + ActivityTypeEnum: + enum: + - NOTE + - EMAIL + - OTHER + docs: |- + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + source: + openapi: ats_v3.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: ats_v3.yml + ApplicationCandidate: + discriminated: false + docs: The candidate applying. + union: + - type: string + validation: + format: uuid + - Candidate + source: + openapi: ats_v3.yml + inline: true + ApplicationJob: + discriminated: false + docs: The job being applied for. + union: + - type: string + validation: + format: uuid + - Job + source: + openapi: ats_v3.yml + inline: true + ApplicationOffersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Offer + source: + openapi: ats_v3.yml + inline: true + ApplicationCreditedTo: + discriminated: false + docs: The user credited for this application. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + ApplicationScreeningQuestionAnswersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - ScreeningQuestionAnswer + source: + openapi: ats_v3.yml + inline: true + ApplicationCurrentStage: + discriminated: false + docs: The application's current stage. + union: + - type: string + validation: + format: uuid + - JobInterviewStage + source: + openapi: ats_v3.yml + inline: true + ApplicationRejectReason: + discriminated: false + docs: The application's reason for rejection. + union: + - type: string + validation: + format: uuid + - RejectReason + source: + openapi: ats_v3.yml + inline: true + Application: + docs: >- + # The Application Object + + ### Description + + The Application Object is used to represent a candidate's journey through + a particular Job's recruiting process. If a Candidate applies for multiple + Jobs, there will be a separate Application for each Job if the third-party + integration allows it. + + + ### Usage Example + + Fetch from the `LIST Applications` endpoint and filter by `ID` to show all + applications. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + candidate: + type: optional + docs: The candidate applying. + job: + type: optional + docs: The job being applied for. + applied_at: + type: optional + docs: When the application was submitted. + rejected_at: + type: optional + docs: When the application was rejected. + offers: optional>> + source: + type: optional + docs: The application's source. + credited_to: + type: optional + docs: The user credited for this application. + screening_question_answers: optional> + current_stage: + type: optional + docs: The application's current stage. + reject_reason: + type: optional + docs: The application's reason for rejection. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + ApplicationRequestCandidate: + discriminated: false + docs: The candidate applying. + union: + - type: string + validation: + format: uuid + - Candidate + source: + openapi: ats_v3.yml + inline: true + ApplicationRequestJob: + discriminated: false + docs: The job being applied for. + union: + - type: string + validation: + format: uuid + - Job + source: + openapi: ats_v3.yml + inline: true + ApplicationRequestOffersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Offer + source: + openapi: ats_v3.yml + inline: true + ApplicationRequestCreditedTo: + discriminated: false + docs: The user credited for this application. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + ApplicationRequestScreeningQuestionAnswersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - ScreeningQuestionAnswerRequest + source: + openapi: ats_v3.yml + inline: true + ApplicationRequestCurrentStage: + discriminated: false + docs: The application's current stage. + union: + - type: string + validation: + format: uuid + - JobInterviewStage + source: + openapi: ats_v3.yml + inline: true + ApplicationRequestRejectReason: + discriminated: false + docs: The application's reason for rejection. + union: + - type: string + validation: + format: uuid + - RejectReason + source: + openapi: ats_v3.yml + inline: true + ApplicationRequest: + docs: >- + # The Application Object + + ### Description + + The Application Object is used to represent a candidate's journey through + a particular Job's recruiting process. If a Candidate applies for multiple + Jobs, there will be a separate Application for each Job if the third-party + integration allows it. + + + ### Usage Example + + Fetch from the `LIST Applications` endpoint and filter by `ID` to show all + applications. + properties: + candidate: + type: optional + docs: The candidate applying. + job: + type: optional + docs: The job being applied for. + applied_at: + type: optional + docs: When the application was submitted. + rejected_at: + type: optional + docs: When the application was rejected. + offers: optional>> + source: + type: optional + docs: The application's source. + credited_to: + type: optional + docs: The user credited for this application. + screening_question_answers: optional> + current_stage: + type: optional + docs: The application's current stage. + reject_reason: + type: optional + docs: The application's reason for rejection. + remote_template_id: + type: optional + validation: + minLength: 1 + access: write-only + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ats_v3.yml + ApplicationResponse: + properties: + model: Application + warnings: list + errors: list + logs: optional> + source: + openapi: ats_v3.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: ats_v3.yml + AttachmentAttachmentType: + discriminated: false + docs: |- + The attachment's type. + + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + union: + - AttachmentTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + Attachment: + docs: >- + # The Attachment Object + + ### Description + + The `Attachment` object is used to represent a file attached to a + candidate. + + ### Usage Example + + Fetch from the `LIST Attachments` endpoint and view attachments accessible + by a company. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + file_name: + type: optional + docs: The attachment's name. + file_url: + type: optional + docs: The attachment's url. + validation: + format: uri + maxLength: 2000 + candidate: + type: optional + docs: '' + validation: + format: uuid + attachment_type: + type: optional + docs: |- + The attachment's type. + + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + AttachmentRequestAttachmentType: + discriminated: false + docs: |- + The attachment's type. + + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + union: + - AttachmentTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + AttachmentRequest: + docs: >- + # The Attachment Object + + ### Description + + The `Attachment` object is used to represent a file attached to a + candidate. + + ### Usage Example + + Fetch from the `LIST Attachments` endpoint and view attachments accessible + by a company. + properties: + file_name: + type: optional + docs: The attachment's name. + file_url: + type: optional + docs: The attachment's url. + validation: + format: uri + maxLength: 2000 + candidate: + type: optional + docs: '' + validation: + format: uuid + attachment_type: + type: optional + docs: |- + The attachment's type. + + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ats_v3.yml + AttachmentResponse: + properties: + model: Attachment + warnings: list + errors: list + logs: optional> + source: + openapi: ats_v3.yml + AttachmentTypeEnum: + enum: + - RESUME + - COVER_LETTER + - OFFER_LETTER + - OTHER + docs: |- + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + source: + openapi: ats_v3.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: ats_v3.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: ats_v3.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: ats_v3.yml + CandidateApplicationsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: ats_v3.yml + inline: true + CandidateAttachmentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Attachment + source: + openapi: ats_v3.yml + inline: true + Candidate: + docs: >- + # The Candidate Object + + ### Description + + The `Candidate` object is used to represent profile information about a + given Candidate. Because it is specific to a Candidate, this information + stays constant across applications. + + ### Usage Example + + Fetch from the `LIST Candidates` endpoint and filter by `ID` to show all + candidates. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + first_name: + type: optional + docs: The candidate's first name. + last_name: + type: optional + docs: The candidate's last name. + company: + type: optional + docs: The candidate's current company. + title: + type: optional + docs: The candidate's current title. + remote_created_at: + type: optional + docs: When the third party's candidate was created. + remote_updated_at: + type: optional + docs: When the third party's candidate was updated. + last_interaction_at: + type: optional + docs: When the most recent interaction with the candidate occurred. + is_private: + type: optional + docs: Whether or not the candidate is private. + can_email: + type: optional + docs: Whether or not the candidate can be emailed. + locations: + type: optional>> + docs: The candidate's locations. + phone_numbers: optional> + email_addresses: optional> + urls: optional> + tags: + type: optional>> + docs: Array of `Tag` names as strings. + applications: + type: optional>> + docs: Array of `Application` object IDs. + attachments: + type: optional>> + docs: Array of `Attachment` object IDs. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + CandidateRequestApplicationsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: ats_v3.yml + inline: true + CandidateRequestAttachmentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Attachment + source: + openapi: ats_v3.yml + inline: true + CandidateRequest: + docs: >- + # The Candidate Object + + ### Description + + The `Candidate` object is used to represent profile information about a + given Candidate. Because it is specific to a Candidate, this information + stays constant across applications. + + ### Usage Example + + Fetch from the `LIST Candidates` endpoint and filter by `ID` to show all + candidates. + properties: + first_name: + type: optional + docs: The candidate's first name. + last_name: + type: optional + docs: The candidate's last name. + company: + type: optional + docs: The candidate's current company. + title: + type: optional + docs: The candidate's current title. + last_interaction_at: + type: optional + docs: When the most recent interaction with the candidate occurred. + is_private: + type: optional + docs: Whether or not the candidate is private. + can_email: + type: optional + docs: Whether or not the candidate can be emailed. + locations: + type: optional>> + docs: The candidate's locations. + phone_numbers: optional> + email_addresses: optional> + urls: optional> + tags: + type: optional>> + docs: Array of `Tag` names as strings. + applications: + type: optional>> + docs: Array of `Application` object IDs. + attachments: + type: optional>> + docs: Array of `Attachment` object IDs. + remote_template_id: + type: optional + validation: + minLength: 1 + access: write-only + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ats_v3.yml + CandidateResponse: + properties: + model: Candidate + warnings: list + errors: list + logs: optional> + source: + openapi: ats_v3.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: ats_v3.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: ats_v3.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: ats_v3.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: ats_v3.yml + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: MethodEnum + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: ats_v3.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: ats_v3.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: ats_v3.yml + Department: + docs: >- + # The Department Object + + ### Description + + The `Department` object is used to represent a department within a + company. + + ### Usage Example + + Fetch from the `LIST Departments` endpoint and view the departments within + a company. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The department's name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + DisabilityStatusEnum: + enum: + - YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + - NO_I_DONT_HAVE_A_DISABILITY + - I_DONT_WISH_TO_ANSWER + docs: >- + * `YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY` - + YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + + * `NO_I_DONT_HAVE_A_DISABILITY` - NO_I_DONT_HAVE_A_DISABILITY + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + source: + openapi: ats_v3.yml + EeocCandidate: + discriminated: false + docs: The candidate being represented. + union: + - type: string + validation: + format: uuid + - Candidate + source: + openapi: ats_v3.yml + inline: true + EeocRace: + discriminated: false + docs: >- + The candidate's race. + + + * `AMERICAN_INDIAN_OR_ALASKAN_NATIVE` - AMERICAN_INDIAN_OR_ALASKAN_NATIVE + + * `ASIAN` - ASIAN + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `WHITE` - WHITE + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + union: + - RaceEnum + - string + source: + openapi: ats_v3.yml + inline: true + EeocGender: + discriminated: false + docs: |- + The candidate's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + union: + - GenderEnum + - string + source: + openapi: ats_v3.yml + inline: true + EeocVeteranStatus: + discriminated: false + docs: >- + The candidate's veteran status. + + + * `I_AM_NOT_A_PROTECTED_VETERAN` - I_AM_NOT_A_PROTECTED_VETERAN + + * + `I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN` + - I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + union: + - VeteranStatusEnum + - string + source: + openapi: ats_v3.yml + inline: true + EeocDisabilityStatus: + discriminated: false + docs: >- + The candidate's disability status. + + + * `YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY` - + YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + + * `NO_I_DONT_HAVE_A_DISABILITY` - NO_I_DONT_HAVE_A_DISABILITY + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + union: + - DisabilityStatusEnum + - string + source: + openapi: ats_v3.yml + inline: true + Eeoc: + docs: >- + # The EEOC Object + + ### Description + + The `EEOC` object is used to represent the Equal Employment Opportunity + Commission information for a candidate (race, gender, veteran status, + disability status). + + ### Usage Example + + Fetch from the `LIST EEOCs` endpoint and filter by `candidate` to show all + EEOC information for a candidate. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + candidate: + type: optional + docs: The candidate being represented. + submitted_at: + type: optional + docs: When the information was submitted. + race: + type: optional + docs: >- + The candidate's race. + + + * `AMERICAN_INDIAN_OR_ALASKAN_NATIVE` - + AMERICAN_INDIAN_OR_ALASKAN_NATIVE + + * `ASIAN` - ASIAN + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `WHITE` - WHITE + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + gender: + type: optional + docs: |- + The candidate's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + veteran_status: + type: optional + docs: >- + The candidate's veteran status. + + + * `I_AM_NOT_A_PROTECTED_VETERAN` - I_AM_NOT_A_PROTECTED_VETERAN + + * + `I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN` + - + I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + disability_status: + type: optional + docs: >- + The candidate's disability status. + + + * `YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY` - + YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + + * `NO_I_DONT_HAVE_A_DISABILITY` - NO_I_DONT_HAVE_A_DISABILITY + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + EmailAddressEmailAddressType: + discriminated: false + docs: |- + The type of email address. + + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + union: + - EmailAddressTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + EmailAddress: + docs: >- + # The EmailAddress Object + + ### Description + + The `EmailAddress` object is used to represent a candidate's email + address. + + ### Usage Example + + Fetch from the `GET Candidate` endpoint and view their email addresses. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + value: + type: optional + docs: The email address. + validation: + format: email + maxLength: 254 + email_address_type: + type: optional + docs: |- + The type of email address. + + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: ats_v3.yml + EmailAddressRequestEmailAddressType: + discriminated: false + docs: |- + The type of email address. + + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + union: + - EmailAddressTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + EmailAddressRequest: + docs: >- + # The EmailAddress Object + + ### Description + + The `EmailAddress` object is used to represent a candidate's email + address. + + ### Usage Example + + Fetch from the `GET Candidate` endpoint and view their email addresses. + properties: + value: + type: optional + docs: The email address. + validation: + format: email + maxLength: 254 + email_address_type: + type: optional + docs: |- + The type of email address. + + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ats_v3.yml + EmailAddressTypeEnum: + enum: + - PERSONAL + - WORK + - OTHER + docs: |- + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + source: + openapi: ats_v3.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: ats_v3.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: ats_v3.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: ats_v3.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: ats_v3.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: ats_v3.yml + ExternalTargetFieldApiResponse: + properties: + Activity: optional> + Application: optional> + Attachment: optional> + Candidate: optional> + Department: optional> + EEOC: optional> + ScheduledInterview: optional> + Job: optional> + JobPosting: optional> + JobInterviewStage: optional> + Offer: optional> + Office: optional> + RejectReason: optional> + Scorecard: optional> + Tag: optional> + RemoteUser: optional> + source: + openapi: ats_v3.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: ats_v3.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: ats_v3.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: ats_v3.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: ats_v3.yml + FieldMappingApiInstanceResponse: + properties: + Activity: optional> + Application: optional> + Attachment: optional> + Candidate: optional> + Department: optional> + EEOC: optional> + ScheduledInterview: optional> + Job: optional> + JobPosting: optional> + JobInterviewStage: optional> + Offer: optional> + Office: optional> + RejectReason: optional> + Scorecard: optional> + Tag: optional> + RemoteUser: optional> + source: + openapi: ats_v3.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: ats_v3.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: ats_v3.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: ats_v3.yml + GenderEnum: + enum: + - MALE + - FEMALE + - value: NON-BINARY + name: NonBinary + - OTHER + - DECLINE_TO_SELF_IDENTIFY + docs: |- + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + source: + openapi: ats_v3.yml + IgnoreCommonModelRequestReason: + discriminated: false + union: + - ReasonEnum + - string + source: + openapi: ats_v3.yml + inline: true + IgnoreCommonModelRequest: + properties: + reason: IgnoreCommonModelRequestReason + message: + type: optional + validation: + minLength: 1 + maxLength: 256 + source: + openapi: ats_v3.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: ats_v3.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: ats_v3.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: ats_v3.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: ats_v3.yml + JobStatus: + discriminated: false + docs: |- + The job's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `ARCHIVED` - ARCHIVED + * `PENDING` - PENDING + union: + - JobStatusEnum + - string + source: + openapi: ats_v3.yml + inline: true + JobType: + discriminated: false + docs: |- + The job's type. + + * `POSTING` - POSTING + * `REQUISITION` - REQUISITION + * `PROFILE` - PROFILE + union: + - JobTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + JobDepartmentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Department + source: + openapi: ats_v3.yml + inline: true + JobOfficesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Office + source: + openapi: ats_v3.yml + inline: true + JobHiringManagersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + JobRecruitersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + Job: + docs: >- + # The Job Object + + ### Description + + The `Job` object can be used to track any jobs that are currently or will + be open/closed for applications. + + ### Usage Example + + Fetch from the `LIST Jobs` endpoint to show all job postings. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The job's name. + description: + type: optional + docs: The job's description. + code: + type: optional + docs: >- + The job's code. Typically an additional identifier used to reference + the particular job that is displayed on the ATS. + status: + type: optional + docs: |- + The job's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `ARCHIVED` - ARCHIVED + * `PENDING` - PENDING + type: + type: optional + docs: |- + The job's type. + + * `POSTING` - POSTING + * `REQUISITION` - REQUISITION + * `PROFILE` - PROFILE + job_postings: + type: optional>> + docs: IDs of `JobPosting` objects that serve as job postings for this `Job`. + job_posting_urls: optional> + remote_created_at: + type: optional + docs: When the third party's job was created. + remote_updated_at: + type: optional + docs: When the third party's job was updated. + confidential: + type: optional + docs: Whether the job is confidential. + departments: + type: optional>> + docs: IDs of `Department` objects for this `Job`. + offices: + type: optional>> + docs: IDs of `Office` objects for this `Job`. + hiring_managers: + type: optional>> + docs: >- + IDs of `RemoteUser` objects that serve as hiring managers for this + `Job`. + recruiters: + type: optional>> + docs: IDs of `RemoteUser` objects that serve as recruiters for this `Job`. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + JobInterviewStageJob: + discriminated: false + docs: >- + This field is populated only if the stage is specific to a particular job. + If the stage is generic, this field will not be populated. + union: + - type: string + validation: + format: uuid + - Job + source: + openapi: ats_v3.yml + inline: true + JobInterviewStage: + docs: >- + # The JobInterviewStage Object + + ### Description + + The `JobInterviewStage` object is used to represent a particular + recruiting stage for an `Application`. A given `Application` typically has + the `JobInterviewStage` object represented in the current_stage field. + + ### Usage Example + + Fetch from the `LIST JobInterviewStages` endpoint and view the job + interview stages used by a company. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: >- + Standard stage names are offered by ATS systems but can be modified by + users. + job: + type: optional + docs: >- + This field is populated only if the stage is specific to a particular + job. If the stage is generic, this field will not be populated. + stage_order: + type: optional + docs: >- + The stage’s order, with the lowest values ordered first. If the + third-party does not return details on the order of stages, this field + will not be populated. + validation: + min: -2147483648 + max: 2147483647 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + JobPostingJobPostingUrlsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Url + source: + openapi: ats_v3.yml + inline: true + JobPostingJob: + discriminated: false + docs: ID of `Job` object for this `JobPosting`. + union: + - type: string + validation: + format: uuid + - Job + source: + openapi: ats_v3.yml + inline: true + JobPostingStatus: + discriminated: false + docs: |- + The job posting's status. + + * `PUBLISHED` - PUBLISHED + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `INTERNAL` - INTERNAL + * `PENDING` - PENDING + union: + - JobPostingStatusEnum + - string + source: + openapi: ats_v3.yml + inline: true + JobPosting: + docs: >- + # The JobPosting Object + + ### Description + + The `JobPosting` object represents an external announcement on a job board + created by an organization to attract qualified candidates to apply for a + specific `Job` opening + + ### Usage Example + + Fetch from the `LIST JobPostings` endpoint to show all job postings. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + title: + type: optional + docs: The job posting’s title. + job_posting_urls: + type: optional> + docs: >- + The Url object is used to represent hyperlinks for a candidate to + apply to a given job. + job: + type: optional + docs: ID of `Job` object for this `JobPosting`. + status: + type: optional + docs: |- + The job posting's status. + + * `PUBLISHED` - PUBLISHED + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `INTERNAL` - INTERNAL + * `PENDING` - PENDING + content: + type: optional + docs: The job posting’s content. + remote_created_at: + type: optional + docs: When the third party's job posting was created. + remote_updated_at: + type: optional + docs: When the third party's job posting was updated. + is_internal: + type: optional + docs: Indicates whether the job posting is internal or external. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + JobPostingStatusEnum: + enum: + - PUBLISHED + - CLOSED + - DRAFT + - INTERNAL + - PENDING + docs: |- + * `PUBLISHED` - PUBLISHED + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `INTERNAL` - INTERNAL + * `PENDING` - PENDING + source: + openapi: ats_v3.yml + JobStatusEnum: + enum: + - OPEN + - CLOSED + - DRAFT + - ARCHIVED + - PENDING + docs: |- + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `ARCHIVED` - ARCHIVED + * `PENDING` - PENDING + source: + openapi: ats_v3.yml + JobTypeEnum: + enum: + - POSTING + - REQUISITION + - PROFILE + docs: |- + * `POSTING` - POSTING + * `REQUISITION` - REQUISITION + * `PROFILE` - PROFILE + source: + openapi: ats_v3.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: ats_v3.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: ats_v3.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: ats_v3.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: ats_v3.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: ats_v3.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: ats_v3.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: ats_v3.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: ats_v3.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: ats_v3.yml + MultipartFormFieldRequestEncoding: + discriminated: false + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + union: + - EncodingEnum + - string + source: + openapi: ats_v3.yml + inline: true + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: ats_v3.yml + OfferApplication: + discriminated: false + docs: The application who is receiving the offer. + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: ats_v3.yml + inline: true + OfferCreator: + discriminated: false + docs: The user who created the offer. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + OfferStatus: + discriminated: false + docs: |- + The offer's status. + + * `DRAFT` - DRAFT + * `APPROVAL-SENT` - APPROVAL-SENT + * `APPROVED` - APPROVED + * `SENT` - SENT + * `SENT-MANUALLY` - SENT-MANUALLY + * `OPENED` - OPENED + * `DENIED` - DENIED + * `SIGNED` - SIGNED + * `DEPRECATED` - DEPRECATED + union: + - OfferStatusEnum + - string + source: + openapi: ats_v3.yml + inline: true + Offer: + docs: >- + # The Offer Object + + ### Description + + The `Offer` object is used to represent an offer for a candidate's + application specific to a job. + + ### Usage Example + + Fetch from the `LIST Offers` endpoint and filter by `ID` to show all + offers. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + application: + type: optional + docs: The application who is receiving the offer. + creator: + type: optional + docs: The user who created the offer. + remote_created_at: + type: optional + docs: When the third party's offer was created. + closed_at: + type: optional + docs: When the offer was closed. + sent_at: + type: optional + docs: When the offer was sent. + start_date: + type: optional + docs: The employment start date on the offer. + status: + type: optional + docs: |- + The offer's status. + + * `DRAFT` - DRAFT + * `APPROVAL-SENT` - APPROVAL-SENT + * `APPROVED` - APPROVED + * `SENT` - SENT + * `SENT-MANUALLY` - SENT-MANUALLY + * `OPENED` - OPENED + * `DENIED` - DENIED + * `SIGNED` - SIGNED + * `DEPRECATED` - DEPRECATED + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + OfferStatusEnum: + enum: + - DRAFT + - value: APPROVAL-SENT + name: ApprovalSent + - APPROVED + - SENT + - value: SENT-MANUALLY + name: SentManually + - OPENED + - DENIED + - SIGNED + - DEPRECATED + docs: |- + * `DRAFT` - DRAFT + * `APPROVAL-SENT` - APPROVAL-SENT + * `APPROVED` - APPROVED + * `SENT` - SENT + * `SENT-MANUALLY` - SENT-MANUALLY + * `OPENED` - OPENED + * `DENIED` - DENIED + * `SIGNED` - SIGNED + * `DEPRECATED` - DEPRECATED + source: + openapi: ats_v3.yml + Office: + docs: >- + # The Office Object + + ### Description + + The `Office` object is used to represent an office within a company. A + given `Job` has the `Office` ID in its offices field. + + ### Usage Example + + Fetch from the `LIST Offices` endpoint and view the offices within a + company. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The office's name. + location: + type: optional + docs: The office's location. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + OverallRecommendationEnum: + enum: + - DEFINITELY_NO + - 'NO' + - 'YES' + - STRONG_YES + - NO_DECISION + docs: |- + * `DEFINITELY_NO` - DEFINITELY_NO + * `NO` - NO + * `YES` - YES + * `STRONG_YES` - STRONG_YES + * `NO_DECISION` - NO_DECISION + source: + openapi: ats_v3.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedActivityList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedApplicationList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedAttachmentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedCandidateList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedDepartmentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedEeocList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedJobInterviewStageList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedJobList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedJobPostingList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedOfferList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedOfficeList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedRejectReasonList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedRemoteUserList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedScheduledInterviewList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedScorecardList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedScreeningQuestionList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PaginatedTagList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ats_v3.yml + PatchedCandidateRequest: + docs: >- + # The Candidate Object + + ### Description + + The `Candidate` object is used to represent profile information about a + given Candidate. Because it is specific to a Candidate, this information + stays constant across applications. + + ### Usage Example + + Fetch from the `LIST Candidates` endpoint and filter by `ID` to show all + candidates. + properties: + first_name: + type: optional + docs: The candidate's first name. + last_name: + type: optional + docs: The candidate's last name. + company: + type: optional + docs: The candidate's current company. + title: + type: optional + docs: The candidate's current title. + last_interaction_at: + type: optional + docs: When the most recent interaction with the candidate occurred. + is_private: + type: optional + docs: Whether or not the candidate is private. + can_email: + type: optional + docs: Whether or not the candidate can be emailed. + locations: + type: optional>> + docs: The candidate's locations. + phone_numbers: optional> + email_addresses: optional> + urls: optional> + tags: + type: optional>> + docs: Array of `Tag` names as strings. + applications: + type: optional>> + docs: Array of `Application` object IDs. + attachments: + type: optional>> + docs: Array of `Attachment` object IDs. + remote_template_id: + type: optional + validation: + minLength: 1 + access: write-only + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ats_v3.yml + PhoneNumberPhoneNumberType: + discriminated: false + docs: |- + The type of phone number. + + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + union: + - PhoneNumberTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + PhoneNumber: + docs: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent a candidate's phone number. + ### Usage Example + Fetch from the `GET Candidate` endpoint and view their phone numbers. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + value: + type: optional + docs: The phone number. + phone_number_type: + type: optional + docs: |- + The type of phone number. + + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: ats_v3.yml + PhoneNumberRequestPhoneNumberType: + discriminated: false + docs: |- + The type of phone number. + + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + union: + - PhoneNumberTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + PhoneNumberRequest: + docs: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent a candidate's phone number. + ### Usage Example + Fetch from the `GET Candidate` endpoint and view their phone numbers. + properties: + value: + type: optional + docs: The phone number. + phone_number_type: + type: optional + docs: |- + The type of phone number. + + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ats_v3.yml + PhoneNumberTypeEnum: + enum: + - HOME + - WORK + - MOBILE + - SKYPE + - OTHER + docs: |- + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + source: + openapi: ats_v3.yml + RaceEnum: + enum: + - AMERICAN_INDIAN_OR_ALASKAN_NATIVE + - ASIAN + - BLACK_OR_AFRICAN_AMERICAN + - HISPANIC_OR_LATINO + - WHITE + - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + - TWO_OR_MORE_RACES + - DECLINE_TO_SELF_IDENTIFY + docs: >- + * `AMERICAN_INDIAN_OR_ALASKAN_NATIVE` - AMERICAN_INDIAN_OR_ALASKAN_NATIVE + + * `ASIAN` - ASIAN + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `WHITE` - WHITE + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + source: + openapi: ats_v3.yml + ReasonEnum: + enum: + - GENERAL_CUSTOMER_REQUEST + - GDPR + - OTHER + docs: |- + * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST + * `GDPR` - GDPR + * `OTHER` - OTHER + source: + openapi: ats_v3.yml + RejectReason: + docs: >- + # The RejectReason Object + + ### Description + + The `RejectReason` object is used to represent a reason for rejecting an + application. These can typically be configured within an ATS system. + + ### Usage Example + + Fetch from the `LIST RejectReasons` endpoint and filter by `ID` to show + all reasons. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The rejection reason’s name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: ats_v3.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: ats_v3.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: ats_v3.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: ats_v3.yml + RemoteFieldApiResponse: + properties: + Activity: optional> + Application: optional> + Attachment: optional> + Candidate: optional> + Department: optional> + EEOC: optional> + ScheduledInterview: optional> + Job: optional> + JobPosting: optional> + JobInterviewStage: optional> + Offer: optional> + Office: optional> + RejectReason: optional> + Scorecard: optional> + Tag: optional> + RemoteUser: optional> + source: + openapi: ats_v3.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: ats_v3.yml + RemoteResponseResponseType: + discriminated: false + union: + - ResponseTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: ats_v3.yml + RemoteUserAccessRole: + discriminated: false + docs: |- + The user's role. + + * `SUPER_ADMIN` - SUPER_ADMIN + * `ADMIN` - ADMIN + * `TEAM_MEMBER` - TEAM_MEMBER + * `LIMITED_TEAM_MEMBER` - LIMITED_TEAM_MEMBER + * `INTERVIEWER` - INTERVIEWER + union: + - AccessRoleEnum + - string + source: + openapi: ats_v3.yml + inline: true + RemoteUser: + docs: >- + # The RemoteUser Object + + ### Description + + The `RemoteUser` object is used to represent a user with a login to the + ATS system. + + ### Usage Example + + Fetch from the `LIST RemoteUsers` endpoint to show all users for a third + party. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + first_name: + type: optional + docs: The user's first name. + last_name: + type: optional + docs: The user's last name. + email: + type: optional + docs: The user's email. + validation: + format: email + maxLength: 254 + disabled: + type: optional + docs: Whether the user's account had been disabled. + remote_created_at: + type: optional + docs: When the third party's user was created. + access_role: + type: optional + docs: |- + The user's role. + + * `SUPER_ADMIN` - SUPER_ADMIN + * `ADMIN` - ADMIN + * `TEAM_MEMBER` - TEAM_MEMBER + * `LIMITED_TEAM_MEMBER` - LIMITED_TEAM_MEMBER + * `INTERVIEWER` - INTERVIEWER + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: ats_v3.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: ats_v3.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: ats_v3.yml + ScheduledInterviewApplication: + discriminated: false + docs: The application being interviewed. + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: ats_v3.yml + inline: true + ScheduledInterviewJobInterviewStage: + discriminated: false + docs: The stage of the interview. + union: + - type: string + validation: + format: uuid + - JobInterviewStage + source: + openapi: ats_v3.yml + inline: true + ScheduledInterviewOrganizer: + discriminated: false + docs: The user organizing the interview. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + ScheduledInterviewInterviewersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + ScheduledInterviewStatus: + discriminated: false + docs: |- + The interview's status. + + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + union: + - ScheduledInterviewStatusEnum + - string + source: + openapi: ats_v3.yml + inline: true + ScheduledInterview: + docs: >- + # The ScheduledInterview Object + + ### Description + + The `ScheduledInterview` object is used to represent a scheduled interview + for a given candidate’s application to a job. An `Application` can have + multiple `ScheduledInterview`s depending on the particular hiring process. + + ### Usage Example + + Fetch from the `LIST ScheduledInterviews` endpoint and filter by + `interviewers` to show all office locations. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + application: + type: optional + docs: The application being interviewed. + job_interview_stage: + type: optional + docs: The stage of the interview. + organizer: + type: optional + docs: The user organizing the interview. + interviewers: + type: optional>> + docs: Array of `RemoteUser` IDs. + location: + type: optional + docs: The interview's location. + start_at: + type: optional + docs: When the interview was started. + end_at: + type: optional + docs: When the interview was ended. + remote_created_at: + type: optional + docs: When the third party's interview was created. + remote_updated_at: + type: optional + docs: When the third party's interview was updated. + status: + type: optional + docs: |- + The interview's status. + + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + ScheduledInterviewRequestApplication: + discriminated: false + docs: The application being interviewed. + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: ats_v3.yml + inline: true + ScheduledInterviewRequestJobInterviewStage: + discriminated: false + docs: The stage of the interview. + union: + - type: string + validation: + format: uuid + - JobInterviewStage + source: + openapi: ats_v3.yml + inline: true + ScheduledInterviewRequestOrganizer: + discriminated: false + docs: The user organizing the interview. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + ScheduledInterviewRequestInterviewersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + ScheduledInterviewRequestStatus: + discriminated: false + docs: |- + The interview's status. + + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + union: + - ScheduledInterviewStatusEnum + - string + source: + openapi: ats_v3.yml + inline: true + ScheduledInterviewRequest: + docs: >- + # The ScheduledInterview Object + + ### Description + + The `ScheduledInterview` object is used to represent a scheduled interview + for a given candidate’s application to a job. An `Application` can have + multiple `ScheduledInterview`s depending on the particular hiring process. + + ### Usage Example + + Fetch from the `LIST ScheduledInterviews` endpoint and filter by + `interviewers` to show all office locations. + properties: + application: + type: optional + docs: The application being interviewed. + job_interview_stage: + type: optional + docs: The stage of the interview. + organizer: + type: optional + docs: The user organizing the interview. + interviewers: + type: optional>> + docs: Array of `RemoteUser` IDs. + location: + type: optional + docs: The interview's location. + start_at: + type: optional + docs: When the interview was started. + end_at: + type: optional + docs: When the interview was ended. + status: + type: optional + docs: |- + The interview's status. + + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ats_v3.yml + ScheduledInterviewResponse: + properties: + model: ScheduledInterview + warnings: list + errors: list + logs: optional> + source: + openapi: ats_v3.yml + ScheduledInterviewStatusEnum: + enum: + - SCHEDULED + - AWAITING_FEEDBACK + - COMPLETE + docs: |- + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + source: + openapi: ats_v3.yml + ScorecardApplication: + discriminated: false + docs: The application being scored. + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: ats_v3.yml + inline: true + ScorecardInterview: + discriminated: false + docs: The interview being scored. + union: + - type: string + validation: + format: uuid + - ScheduledInterview + source: + openapi: ats_v3.yml + inline: true + ScorecardInterviewer: + discriminated: false + docs: The interviewer doing the scoring. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: ats_v3.yml + inline: true + ScorecardOverallRecommendation: + discriminated: false + docs: |- + The inteviewer's recommendation. + + * `DEFINITELY_NO` - DEFINITELY_NO + * `NO` - NO + * `YES` - YES + * `STRONG_YES` - STRONG_YES + * `NO_DECISION` - NO_DECISION + union: + - OverallRecommendationEnum + - string + source: + openapi: ats_v3.yml + inline: true + Scorecard: + docs: >- + # The Scorecard Object + + ### Description + + The `Scorecard` object is used to represent an interviewer's candidate + recommendation based on a particular interview. + + ### Usage Example + + Fetch from the `LIST Scorecards` endpoint and filter by `application` to + show all scorecard for an applicant. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + application: + type: optional + docs: The application being scored. + interview: + type: optional + docs: The interview being scored. + interviewer: + type: optional + docs: The interviewer doing the scoring. + remote_created_at: + type: optional + docs: When the third party's scorecard was created. + submitted_at: + type: optional + docs: When the scorecard was submitted. + overall_recommendation: + type: optional + docs: |- + The inteviewer's recommendation. + + * `DEFINITELY_NO` - DEFINITELY_NO + * `NO` - NO + * `YES` - YES + * `STRONG_YES` - STRONG_YES + * `NO_DECISION` - NO_DECISION + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ats_v3.yml + ScreeningQuestionJob: + discriminated: false + docs: The job associated with the screening question. + union: + - type: string + validation: + format: uuid + - Job + source: + openapi: ats_v3.yml + inline: true + ScreeningQuestionType: + discriminated: false + docs: |- + The data type for the screening question. + + * `DATE` - DATE + * `FILE` - FILE + * `SINGLE_SELECT` - SINGLE_SELECT + * `MULTI_SELECT` - MULTI_SELECT + * `SINGLE_LINE_TEXT` - SINGLE_LINE_TEXT + * `MULTI_LINE_TEXT` - MULTI_LINE_TEXT + * `NUMERIC` - NUMERIC + * `BOOLEAN` - BOOLEAN + union: + - ScreeningQuestionTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + ScreeningQuestion: + docs: >- + # The ScreeningQuestion Object + + ### Description + + The `ScreeningQuestion` object is used to represent questions asked to + screen candidates for a job. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + job: + type: optional + docs: The job associated with the screening question. + description: + type: optional + docs: The description of the screening question + validation: + maxLength: 500 + title: + type: optional + docs: The title of the screening question + validation: + maxLength: 2500 + type: + type: optional + docs: |- + The data type for the screening question. + + * `DATE` - DATE + * `FILE` - FILE + * `SINGLE_SELECT` - SINGLE_SELECT + * `MULTI_SELECT` - MULTI_SELECT + * `SINGLE_LINE_TEXT` - SINGLE_LINE_TEXT + * `MULTI_LINE_TEXT` - MULTI_LINE_TEXT + * `NUMERIC` - NUMERIC + * `BOOLEAN` - BOOLEAN + required: + type: optional + docs: Whether or not the screening question is required. + options: optional> + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + source: + openapi: ats_v3.yml + ScreeningQuestionAnswerQuestion: + discriminated: false + docs: >- + The screening question associated with the candidate’s answer. To + determine the data type of the answer, you can expand on the screening + question by adding `screening_question_answers.question` to the `expand` + query parameter. + union: + - type: string + validation: + format: uuid + - ScreeningQuestion + source: + openapi: ats_v3.yml + inline: true + ScreeningQuestionAnswer: + docs: >- + # The ScreeningQuestionAnswer Object + + ### Description + + The `ScreeningQuestionAnswer` object is used to represent candidate + responses to a screening question, for a specific application. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + question: + type: optional + docs: >- + The screening question associated with the candidate’s answer. To + determine the data type of the answer, you can expand on the screening + question by adding `screening_question_answers.question` to the + `expand` query parameter. + answer: + type: optional + docs: The candidate’s response to the screening question. + validation: + maxLength: 10000 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: ats_v3.yml + ScreeningQuestionAnswerRequestQuestion: + discriminated: false + docs: >- + The screening question associated with the candidate’s answer. To + determine the data type of the answer, you can expand on the screening + question by adding `screening_question_answers.question` to the `expand` + query parameter. + union: + - type: string + validation: + format: uuid + - ScreeningQuestion + source: + openapi: ats_v3.yml + inline: true + ScreeningQuestionAnswerRequest: + docs: >- + # The ScreeningQuestionAnswer Object + + ### Description + + The `ScreeningQuestionAnswer` object is used to represent candidate + responses to a screening question, for a specific application. + + + ### Usage Example + + TODO + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + question: + type: optional + docs: >- + The screening question associated with the candidate’s answer. To + determine the data type of the answer, you can expand on the screening + question by adding `screening_question_answers.question` to the + `expand` query parameter. + answer: + type: optional + docs: The candidate’s response to the screening question. + validation: + maxLength: 10000 + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ats_v3.yml + ScreeningQuestionOption: + docs: >- + # The ScreeningQuestionOption Object + + ### Description + + The `ScreeningQuestionOption` object is used to represent options for a + `ScreeningQuestion` object + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + label: + type: optional + docs: Available response options + validation: + maxLength: 300 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + source: + openapi: ats_v3.yml + ScreeningQuestionTypeEnum: + enum: + - DATE + - FILE + - SINGLE_SELECT + - MULTI_SELECT + - SINGLE_LINE_TEXT + - MULTI_LINE_TEXT + - NUMERIC + - BOOLEAN + docs: |- + * `DATE` - DATE + * `FILE` - FILE + * `SINGLE_SELECT` - SINGLE_SELECT + * `MULTI_SELECT` - MULTI_SELECT + * `SINGLE_LINE_TEXT` - SINGLE_LINE_TEXT + * `MULTI_LINE_TEXT` - MULTI_LINE_TEXT + * `NUMERIC` - NUMERIC + * `BOOLEAN` - BOOLEAN + source: + openapi: ats_v3.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: ats_v3.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: ats_v3.yml + SyncStatusLastSyncResult: + discriminated: false + union: + - LastSyncResultEnum + - string + source: + openapi: ats_v3.yml + inline: true + SyncStatusStatus: + discriminated: false + union: + - StatusFd5Enum + - string + source: + openapi: ats_v3.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: SyncStatusStatus + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: ats_v3.yml + Tag: + docs: >- + # The Tag Object + + ### Description + + The `Tag` object is used to represent a tag for a candidate. + + ### Usage Example + + Fetch from the `LIST Tags` endpoint and view the tags used within a + company. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The tag's name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: optional>>> + source: + openapi: ats_v3.yml + UrlUrlType: + discriminated: false + docs: |- + The type of site. + + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + union: + - UrlTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + Url: + docs: >- + # The Url Object + + ### Description + + The `Url` object is used to represent hyperlinks associated with the + parent model. + + ### Usage Example + + Fetch from the `GET Candidate` endpoint and view their website urls. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + value: + type: optional + docs: The site's url. + validation: + format: uri + maxLength: 2000 + url_type: + type: optional + docs: |- + The type of site. + + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: ats_v3.yml + UrlRequestUrlType: + discriminated: false + docs: |- + The type of site. + + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + union: + - UrlTypeEnum + - string + source: + openapi: ats_v3.yml + inline: true + UrlRequest: + docs: >- + # The Url Object + + ### Description + + The `Url` object is used to represent hyperlinks associated with the + parent model. + + ### Usage Example + + Fetch from the `GET Candidate` endpoint and view their website urls. + properties: + value: + type: optional + docs: The site's url. + validation: + format: uri + maxLength: 2000 + url_type: + type: optional + docs: |- + The type of site. + + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ats_v3.yml + UrlTypeEnum: + enum: + - PERSONAL + - COMPANY + - PORTFOLIO + - BLOG + - SOCIAL_MEDIA + - OTHER + - JOB_POSTING + docs: |- + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + source: + openapi: ats_v3.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: ats_v3.yml + VeteranStatusEnum: + enum: + - I_AM_NOT_A_PROTECTED_VETERAN + - I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN + - I_DONT_WISH_TO_ANSWER + docs: >- + * `I_AM_NOT_A_PROTECTED_VETERAN` - I_AM_NOT_A_PROTECTED_VETERAN + + * + `I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN` + - I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + source: + openapi: ats_v3.yml + VisibilityEnum: + enum: + - ADMIN_ONLY + - PUBLIC + - PRIVATE + docs: |- + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + source: + openapi: ats_v3.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: ats_v3.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/accountDetails.yml b/.mock/definition/ATS/accountDetails.yml new file mode 100644 index 00000000..812b1643 --- /dev/null +++ b/.mock/definition/ATS/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ats/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: ats_v3.yml + response: + docs: '' + type: atsRoot.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/accountToken.yml b/.mock/definition/ATS/accountToken.yml new file mode 100644 index 00000000..5155cd0e --- /dev/null +++ b/.mock/definition/ATS/accountToken.yml @@ -0,0 +1,44 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ats/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: ats_v3.yml + path-parameters: + public_token: string + response: + docs: '' + type: atsRoot.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/activities.yml b/.mock/definition/ATS/activities.yml new file mode 100644 index 00000000..69030cc8 --- /dev/null +++ b/.mock/definition/ATS/activities.yml @@ -0,0 +1,480 @@ +types: + ActivitiesListRequestRemoteFields: + enum: + - activity_type + - value: activity_type,visibility + name: ActivityTypeVisibility + - visibility + source: + openapi: ats_v3.yml + ActivitiesListRequestShowEnumOrigins: + enum: + - activity_type + - value: activity_type,visibility + name: ActivityTypeVisibility + - visibility + source: + openapi: ats_v3.yml + ActivitiesRetrieveRequestRemoteFields: + enum: + - activity_type + - value: activity_type,visibility + name: ActivityTypeVisibility + - visibility + source: + openapi: ats_v3.yml + ActivitiesRetrieveRequestShowEnumOrigins: + enum: + - activity_type + - value: activity_type,visibility + name: ActivityTypeVisibility + - visibility + source: + openapi: ats_v3.yml +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/activities + method: GET + auth: true + docs: Returns a list of `Activity` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: ActivitiesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + user_id: + type: optional + docs: If provided, will only return activities done by this user. + response: + docs: '' + type: atsRoot.PaginatedActivityList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '198123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + remote_created_at: '2021-10-15T00:00:00Z' + activity_type: NOTE + subject: Gil Feig's interview + body: Candidate loves integrations! + visibility: ADMIN_ONLY + candidate: 550e8400-e29b-41d4-a716-446655440000 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /ats/v1/activities + method: POST + auth: true + docs: Creates an `Activity` object with the given values. + source: + openapi: ats_v3.yml + request: + name: ActivityEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: atsRoot.ActivityRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: atsRoot.ActivityResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '198123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + remote_created_at: '2021-10-15T00:00:00Z' + activity_type: NOTE + subject: Gil Feig's interview + body: Candidate loves integrations! + visibility: ADMIN_ONLY + candidate: 550e8400-e29b-41d4-a716-446655440000 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ats/v1/activities/{id} + method: GET + auth: true + docs: Returns an `Activity` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: ActivitiesRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.Activity + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '198123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + remote_created_at: '2021-10-15T00:00:00Z' + activity_type: NOTE + subject: Gil Feig's interview + body: Candidate loves integrations! + visibility: ADMIN_ONLY + candidate: 550e8400-e29b-41d4-a716-446655440000 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + metaPostRetrieve: + path: /ats/v1/activities/meta/post + method: GET + auth: true + docs: Returns metadata for `Activity` POSTs. + source: + openapi: ats_v3.yml + response: + docs: '' + type: atsRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/applications.yml b/.mock/definition/ATS/applications.yml new file mode 100644 index 00000000..9e9930a1 --- /dev/null +++ b/.mock/definition/ATS/applications.yml @@ -0,0 +1,601 @@ +types: + ApplicationsListRequestExpandItem: + enum: + - candidate + - credited_to + - current_stage + - job + - offers + - reject_reason + - screening_question_answers + - value: screening_question_answers.question + name: ScreeningQuestionAnswersQuestion + source: + openapi: ats_v3.yml + ApplicationsRetrieveRequestExpandItem: + enum: + - candidate + - credited_to + - current_stage + - job + - offers + - reject_reason + - screening_question_answers + - value: screening_question_answers.question + name: ScreeningQuestionAnswersQuestion + source: + openapi: ats_v3.yml +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/applications + method: GET + auth: true + docs: Returns a list of `Application` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: ApplicationsListRequest + query-parameters: + candidate_id: + type: optional + docs: If provided, will only return applications for this candidate. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + credited_to_id: + type: optional + docs: If provided, will only return applications credited to this user. + current_stage_id: + type: optional + docs: >- + If provided, will only return applications at this interview + stage. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + job_id: + type: optional + docs: If provided, will only return applications for this job. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + reject_reason_id: + type: optional + docs: >- + If provided, will only return applications with this reject + reason. + remote_id: + type: optional + docs: The API provider's ID for the given object. + source: + type: optional + docs: If provided, will only return applications with this source. + response: + docs: '' + type: atsRoot.PaginatedApplicationList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + remote_id: '98796' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + job: job + applied_at: '2021-10-15T00:00:00Z' + rejected_at: '2021-11-15T00:00:00Z' + offers: + - e9b5c11d-c588-468e-8567-cd6992e42b62 + source: Campus recruiting event + credited_to: credited_to + screening_question_answers: + - screening_question_answers + - screening_question_answers + current_stage: current_stage + reject_reason: reject_reason + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidacies + data: + - Varies by platform + create: + path: /ats/v1/applications + method: POST + auth: true + docs: > + Creates an `Application` object with the given values. + + For certain integrations, but not all, our API detects duplicate + candidates and will associate applications with existing records in the + third-party. New candidates are created and automatically linked to the + application. + + + See our [Help Center + article](https://help.merge.dev/en/articles/10012366-updates-to-post-applications-oct-2024) + for detailed support per integration. + source: + openapi: ats_v3.yml + request: + name: ApplicationEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: atsRoot.ApplicationRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: atsRoot.ApplicationResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + remote_id: '98796' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + job: job + applied_at: '2021-10-15T00:00:00Z' + rejected_at: '2021-11-15T00:00:00Z' + offers: + - e9b5c11d-c588-468e-8567-cd6992e42b62 + source: Campus recruiting event + credited_to: credited_to + screening_question_answers: + - screening_question_answers + - screening_question_answers + current_stage: current_stage + reject_reason: reject_reason + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidacies + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ats/v1/applications/{id} + method: GET + auth: true + docs: Returns an `Application` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: ApplicationsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: atsRoot.Application + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + remote_id: '98796' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + job: job + applied_at: '2021-10-15T00:00:00Z' + rejected_at: '2021-11-15T00:00:00Z' + offers: + - e9b5c11d-c588-468e-8567-cd6992e42b62 + source: Campus recruiting event + credited_to: credited_to + screening_question_answers: + - screening_question_answers + - screening_question_answers + current_stage: current_stage + reject_reason: reject_reason + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidacies + data: + - Varies by platform + changeStageCreate: + path: /ats/v1/applications/{id}/change-stage + method: POST + auth: true + docs: Updates the `current_stage` field of an `Application` object + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: UpdateApplicationStageRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + job_interview_stage: + type: optional + docs: The interview stage to move the application to. + validation: + format: uuid + remote_user_id: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: atsRoot.ApplicationResponse + status-code: 201 + examples: + - path-parameters: + id: id + headers: {} + request: {} + response: + body: + model: + id: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + remote_id: '98796' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + job: job + applied_at: '2021-10-15T00:00:00Z' + rejected_at: '2021-11-15T00:00:00Z' + offers: + - e9b5c11d-c588-468e-8567-cd6992e42b62 + source: Campus recruiting event + credited_to: credited_to + screening_question_answers: + - screening_question_answers + - screening_question_answers + current_stage: current_stage + reject_reason: reject_reason + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidacies + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPostRetrieve: + path: /ats/v1/applications/meta/post + method: GET + auth: true + docs: Returns metadata for `Application` POSTs. + source: + openapi: ats_v3.yml + request: + name: ApplicationsMetaPostRetrieveRequest + query-parameters: + application_remote_template_id: + type: optional + docs: >- + The template ID associated with the nested application in the + request. + response: + docs: '' + type: atsRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/asyncPassthrough.yml b/.mock/definition/ATS/asyncPassthrough.yml new file mode 100644 index 00000000..26c27054 --- /dev/null +++ b/.mock/definition/ATS/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ats/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: ats_v3.yml + request: + body: atsRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: atsRoot.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /ats/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: ats_v3.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: ats_v3.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - atsRoot.RemoteResponse + - string + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/attachments.yml b/.mock/definition/ATS/attachments.yml new file mode 100644 index 00000000..20de5912 --- /dev/null +++ b/.mock/definition/ATS/attachments.yml @@ -0,0 +1,438 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/attachments + method: GET + auth: true + docs: Returns a list of `Attachment` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: AttachmentsListRequest + query-parameters: + candidate_id: + type: optional + docs: If provided, will only return attachments for this candidate. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.PaginatedAttachmentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Candidate Resume + file_url: http://alturl.com/p749b + candidate: 2872ba14-4084-492b-be96-e5eee6fc33ef + attachment_type: RESUME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /attachments + data: + - Varies by platform + create: + path: /ats/v1/attachments + method: POST + auth: true + docs: Creates an `Attachment` object with the given values. + source: + openapi: ats_v3.yml + request: + name: AttachmentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: atsRoot.AttachmentRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: atsRoot.AttachmentResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Candidate Resume + file_url: http://alturl.com/p749b + candidate: 2872ba14-4084-492b-be96-e5eee6fc33ef + attachment_type: RESUME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /attachments + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ats/v1/attachments/{id} + method: GET + auth: true + docs: Returns an `Attachment` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: AttachmentsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.Attachment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Candidate Resume + file_url: http://alturl.com/p749b + candidate: 2872ba14-4084-492b-be96-e5eee6fc33ef + attachment_type: RESUME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /attachments + data: + - Varies by platform + metaPostRetrieve: + path: /ats/v1/attachments/meta/post + method: GET + auth: true + docs: Returns metadata for `Attachment` POSTs. + source: + openapi: ats_v3.yml + response: + docs: '' + type: atsRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/auditTrail.yml b/.mock/definition/ATS/auditTrail.yml new file mode 100644 index 00000000..f63c23ff --- /dev/null +++ b/.mock/definition/ATS/auditTrail.yml @@ -0,0 +1,98 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, + `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, + `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: atsRoot.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/availableActions.yml b/.mock/definition/ATS/availableActions.yml new file mode 100644 index 00000000..11d2ac1c --- /dev/null +++ b/.mock/definition/ATS/availableActions.yml @@ -0,0 +1,50 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ats/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: ats_v3.yml + response: + docs: '' + type: atsRoot.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/candidates.yml b/.mock/definition/ATS/candidates.yml new file mode 100644 index 00000000..504a363e --- /dev/null +++ b/.mock/definition/ATS/candidates.yml @@ -0,0 +1,862 @@ +types: + CandidatesListRequestExpandItem: + enum: + - applications + - attachments + source: + openapi: ats_v3.yml + CandidatesRetrieveRequestExpandItem: + enum: + - applications + - attachments + source: + openapi: ats_v3.yml +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/candidates + method: GET + auth: true + docs: Returns a list of `Candidate` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: CandidatesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email_addresses: + type: optional + docs: >- + If provided, will only return candidates with these email + addresses; multiple addresses can be separated by commas. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + first_name: + type: optional + docs: If provided, will only return candidates with this first name. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + last_name: + type: optional + docs: If provided, will only return candidates with this last name. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + tags: + type: optional + docs: >- + If provided, will only return candidates with these tags; multiple + tags can be separated by commas. + response: + docs: '' + type: atsRoot.PaginatedCandidateList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 521b18c2-4d01-4297-b451-19858d07c133 + remote_id: '21198' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + company: Columbia Dining App. + title: Software Engineer + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + last_interaction_at: '2021-10-17T00:00:00Z' + is_private: true + can_email: true + locations: + - San Francisco + - New York + - Miami + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: '+1234567890' + phone_number_type: MOBILE + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: hello@merge.dev + email_address_type: PERSONAL + urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: http://alturl.com/p749b + url_type: BLOG + tags: + - High-Priority + applications: + - 29eb9867-ce2a-403f-b8ce-f2844b89f078 + - b4d08e5c-de00-4d64-a29f-66addac9af99 + - 4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56 + attachments: + - bea08964-32b4-4a20-8bb4-2612ba09de1d + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidates + data: + - Varies by platform + create: + path: /ats/v1/candidates + method: POST + auth: true + docs: Creates a `Candidate` object with the given values. + source: + openapi: ats_v3.yml + request: + name: CandidateEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: atsRoot.CandidateRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: atsRoot.CandidateResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: 521b18c2-4d01-4297-b451-19858d07c133 + remote_id: '21198' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + company: Columbia Dining App. + title: Software Engineer + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + last_interaction_at: '2021-10-17T00:00:00Z' + is_private: true + can_email: true + locations: + - San Francisco + - New York + - Miami + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: '+1234567890' + phone_number_type: MOBILE + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: hello@merge.dev + email_address_type: PERSONAL + urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: http://alturl.com/p749b + url_type: BLOG + tags: + - High-Priority + applications: + - 29eb9867-ce2a-403f-b8ce-f2844b89f078 + - b4d08e5c-de00-4d64-a29f-66addac9af99 + - 4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56 + attachments: + - bea08964-32b4-4a20-8bb4-2612ba09de1d + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidates + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ats/v1/candidates/{id} + method: GET + auth: true + docs: Returns a `Candidate` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: CandidatesRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: atsRoot.Candidate + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 521b18c2-4d01-4297-b451-19858d07c133 + remote_id: '21198' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + company: Columbia Dining App. + title: Software Engineer + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + last_interaction_at: '2021-10-17T00:00:00Z' + is_private: true + can_email: true + locations: + - San Francisco + - New York + - Miami + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: '+1234567890' + phone_number_type: MOBILE + remote_was_deleted: true + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: hello@merge.dev + email_address_type: PERSONAL + remote_was_deleted: true + urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: http://alturl.com/p749b + url_type: BLOG + remote_was_deleted: true + tags: + - High-Priority + applications: + - 29eb9867-ce2a-403f-b8ce-f2844b89f078 + - b4d08e5c-de00-4d64-a29f-66addac9af99 + - 4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56 + attachments: + - bea08964-32b4-4a20-8bb4-2612ba09de1d + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidates + data: + - Varies by platform + partialUpdate: + path: /ats/v1/candidates/{id} + method: PATCH + auth: true + docs: Updates a `Candidate` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: PatchedCandidateEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: atsRoot.PatchedCandidateRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: atsRoot.CandidateResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: 521b18c2-4d01-4297-b451-19858d07c133 + remote_id: '21198' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + company: Columbia Dining App. + title: Software Engineer + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + last_interaction_at: '2021-10-17T00:00:00Z' + is_private: true + can_email: true + locations: + - San Francisco + - New York + - Miami + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: '+1234567890' + phone_number_type: MOBILE + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: hello@merge.dev + email_address_type: PERSONAL + urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: http://alturl.com/p749b + url_type: BLOG + tags: + - High-Priority + applications: + - 29eb9867-ce2a-403f-b8ce-f2844b89f078 + - b4d08e5c-de00-4d64-a29f-66addac9af99 + - 4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56 + attachments: + - bea08964-32b4-4a20-8bb4-2612ba09de1d + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidates + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + ignoreCreate: + path: /ats/v1/candidates/ignore/{model_id} + method: POST + auth: true + docs: >- + Ignores a specific row based on the `model_id` in the url. These records + will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will + be stored for audit purposes. + source: + openapi: ats_v3.yml + path-parameters: + model_id: string + request: + body: atsRoot.IgnoreCommonModelRequest + content-type: application/json + examples: + - path-parameters: + model_id: model_id + headers: {} + request: + reason: GENERAL_CUSTOMER_REQUEST + metaPatchRetrieve: + path: /ats/v1/candidates/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Candidate` PATCHs. + source: + openapi: ats_v3.yml + path-parameters: + id: string + response: + docs: '' + type: atsRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /ats/v1/candidates/meta/post + method: GET + auth: true + docs: Returns metadata for `Candidate` POSTs. + source: + openapi: ats_v3.yml + response: + docs: '' + type: atsRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/deleteAccount.yml b/.mock/definition/ATS/deleteAccount.yml new file mode 100644 index 00000000..02ae3ce7 --- /dev/null +++ b/.mock/definition/ATS/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /ats/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: ats_v3.yml + examples: + - headers: {} + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/departments.yml b/.mock/definition/ATS/departments.yml new file mode 100644 index 00000000..41672b30 --- /dev/null +++ b/.mock/definition/ATS/departments.yml @@ -0,0 +1,140 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/departments + method: GET + auth: true + docs: Returns a list of `Department` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: DepartmentsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: atsRoot.PaginatedDepartmentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + remote_id: '23456' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Engineering + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /departments + data: + - Varies by platform + retrieve: + path: /ats/v1/departments/{id} + method: GET + auth: true + docs: Returns a `Department` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: DepartmentsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: atsRoot.Department + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + remote_id: '23456' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Engineering + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /departments + data: + - Varies by platform + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/eeocs.yml b/.mock/definition/ATS/eeocs.yml new file mode 100644 index 00000000..2492ffbd --- /dev/null +++ b/.mock/definition/ATS/eeocs.yml @@ -0,0 +1,306 @@ +types: + EeocsListRequestRemoteFields: + enum: + - disability_status + - value: disability_status,gender + name: DisabilityStatusGender + - value: disability_status,gender,race + name: DisabilityStatusGenderRace + - value: disability_status,gender,race,veteran_status + name: DisabilityStatusGenderRaceVeteranStatus + - value: disability_status,gender,veteran_status + name: DisabilityStatusGenderVeteranStatus + - value: disability_status,race + name: DisabilityStatusRace + - value: disability_status,race,veteran_status + name: DisabilityStatusRaceVeteranStatus + - value: disability_status,veteran_status + name: DisabilityStatusVeteranStatus + - gender + - value: gender,race + name: GenderRace + - value: gender,race,veteran_status + name: GenderRaceVeteranStatus + - value: gender,veteran_status + name: GenderVeteranStatus + - race + - value: race,veteran_status + name: RaceVeteranStatus + - veteran_status + source: + openapi: ats_v3.yml + EeocsListRequestShowEnumOrigins: + enum: + - disability_status + - value: disability_status,gender + name: DisabilityStatusGender + - value: disability_status,gender,race + name: DisabilityStatusGenderRace + - value: disability_status,gender,race,veteran_status + name: DisabilityStatusGenderRaceVeteranStatus + - value: disability_status,gender,veteran_status + name: DisabilityStatusGenderVeteranStatus + - value: disability_status,race + name: DisabilityStatusRace + - value: disability_status,race,veteran_status + name: DisabilityStatusRaceVeteranStatus + - value: disability_status,veteran_status + name: DisabilityStatusVeteranStatus + - gender + - value: gender,race + name: GenderRace + - value: gender,race,veteran_status + name: GenderRaceVeteranStatus + - value: gender,veteran_status + name: GenderVeteranStatus + - race + - value: race,veteran_status + name: RaceVeteranStatus + - veteran_status + source: + openapi: ats_v3.yml + EeocsRetrieveRequestRemoteFields: + enum: + - disability_status + - value: disability_status,gender + name: DisabilityStatusGender + - value: disability_status,gender,race + name: DisabilityStatusGenderRace + - value: disability_status,gender,race,veteran_status + name: DisabilityStatusGenderRaceVeteranStatus + - value: disability_status,gender,veteran_status + name: DisabilityStatusGenderVeteranStatus + - value: disability_status,race + name: DisabilityStatusRace + - value: disability_status,race,veteran_status + name: DisabilityStatusRaceVeteranStatus + - value: disability_status,veteran_status + name: DisabilityStatusVeteranStatus + - gender + - value: gender,race + name: GenderRace + - value: gender,race,veteran_status + name: GenderRaceVeteranStatus + - value: gender,veteran_status + name: GenderVeteranStatus + - race + - value: race,veteran_status + name: RaceVeteranStatus + - veteran_status + source: + openapi: ats_v3.yml + EeocsRetrieveRequestShowEnumOrigins: + enum: + - disability_status + - value: disability_status,gender + name: DisabilityStatusGender + - value: disability_status,gender,race + name: DisabilityStatusGenderRace + - value: disability_status,gender,race,veteran_status + name: DisabilityStatusGenderRaceVeteranStatus + - value: disability_status,gender,veteran_status + name: DisabilityStatusGenderVeteranStatus + - value: disability_status,race + name: DisabilityStatusRace + - value: disability_status,race,veteran_status + name: DisabilityStatusRaceVeteranStatus + - value: disability_status,veteran_status + name: DisabilityStatusVeteranStatus + - gender + - value: gender,race + name: GenderRace + - value: gender,race,veteran_status + name: GenderRaceVeteranStatus + - value: gender,veteran_status + name: GenderVeteranStatus + - race + - value: race,veteran_status + name: RaceVeteranStatus + - veteran_status + source: + openapi: ats_v3.yml +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/eeocs + method: GET + auth: true + docs: Returns a list of `EEOC` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: EeocsListRequest + query-parameters: + candidate_id: + type: optional + docs: If provided, will only return EEOC info for this candidate. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.PaginatedEeocList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: f7dd7b4f-237e-4772-8bd4-3246384c6c58 + remote_id: '76' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + submitted_at: '2021-10-15T00:00:00Z' + race: AMERICAN_INDIAN_OR_ALASKAN_NATIVE + gender: MALE + veteran_status: I_AM_NOT_A_PROTECTED_VETERAN + disability_status: YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /eeoc + data: + - Varies by platform + retrieve: + path: /ats/v1/eeocs/{id} + method: GET + auth: true + docs: Returns an `EEOC` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: EeocsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.Eeoc + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: f7dd7b4f-237e-4772-8bd4-3246384c6c58 + remote_id: '76' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + submitted_at: '2021-10-15T00:00:00Z' + race: AMERICAN_INDIAN_OR_ALASKAN_NATIVE + gender: MALE + veteran_status: I_AM_NOT_A_PROTECTED_VETERAN + disability_status: YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /eeoc + data: + - Varies by platform + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/fieldMapping.yml b/.mock/definition/ATS/fieldMapping.yml new file mode 100644 index 00000000..6f8cf0a7 --- /dev/null +++ b/.mock/definition/ATS/fieldMapping.yml @@ -0,0 +1,892 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /ats/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: ats_v3.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: atsRoot.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Activity: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Application: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Attachment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Candidate: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Department: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + EEOC: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + ScheduledInterview: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Job: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + JobPosting: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + JobInterviewStage: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Offer: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Office: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + RejectReason: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Scorecard: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Tag: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + RemoteUser: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /ats/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: ats_v3.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: atsRoot.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /ats/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: ats_v3.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: atsRoot.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /ats/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: ats_v3.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: atsRoot.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /ats/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: ats_v3.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: atsRoot.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Activity: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Application: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Attachment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Candidate: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Department: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + EEOC: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + ScheduledInterview: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Job: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + JobPosting: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + JobInterviewStage: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Offer: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Office: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + RejectReason: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Scorecard: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Tag: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + RemoteUser: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /ats/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: ats_v3.yml + response: + docs: '' + type: atsRoot.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Activity: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Application: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Attachment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Candidate: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Department: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + EEOC: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + ScheduledInterview: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Job: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + JobPosting: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + JobInterviewStage: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Offer: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Office: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + RejectReason: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Scorecard: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Tag: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + RemoteUser: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/forceResync.yml b/.mock/definition/ATS/forceResync.yml new file mode 100644 index 00000000..be7ea616 --- /dev/null +++ b/.mock/definition/ATS/forceResync.yml @@ -0,0 +1,37 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /ats/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: ats_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: Candidate + model_id: ats.Candidate + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/generateKey.yml b/.mock/definition/ATS/generateKey.yml new file mode 100644 index 00000000..6f190298 --- /dev/null +++ b/.mock/definition/ATS/generateKey.yml @@ -0,0 +1,36 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ats/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: ats_v3.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: atsRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/interviews.yml b/.mock/definition/ATS/interviews.yml new file mode 100644 index 00000000..05bfb0d3 --- /dev/null +++ b/.mock/definition/ATS/interviews.yml @@ -0,0 +1,488 @@ +types: + InterviewsListRequestExpandItem: + enum: + - application + - interviewers + - job_interview_stage + - organizer + source: + openapi: ats_v3.yml + InterviewsRetrieveRequestExpandItem: + enum: + - application + - interviewers + - job_interview_stage + - organizer + source: + openapi: ats_v3.yml +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/interviews + method: GET + auth: true + docs: Returns a list of `ScheduledInterview` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: InterviewsListRequest + query-parameters: + application_id: + type: optional + docs: If provided, will only return interviews for this application. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + job_id: + type: optional + docs: If provided, wll only return interviews organized for this job. + job_interview_stage_id: + type: optional + docs: If provided, will only return interviews at this stage. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + organizer_id: + type: optional + docs: If provided, will only return interviews organized by this user. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.PaginatedScheduledInterviewList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b8faf072-98b9-4445-8a9a-6b4950efca19 + remote_id: '3' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + job_interview_stage: job_interview_stage + organizer: organizer + interviewers: + - f9813dd5-e70b-484c-91d8-00acd6065b07 + - 89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c + location: Embarcadero Center 2 + start_at: '2021-10-15T00:00:00Z' + end_at: '2021-10-15T02:00:00Z' + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-15T00:00:00Z' + status: SCHEDULED + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /interviews + data: + - Varies by platform + create: + path: /ats/v1/interviews + method: POST + auth: true + docs: Creates a `ScheduledInterview` object with the given values. + source: + openapi: ats_v3.yml + request: + name: ScheduledInterviewEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: atsRoot.ScheduledInterviewRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: atsRoot.ScheduledInterviewResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: b8faf072-98b9-4445-8a9a-6b4950efca19 + remote_id: '3' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + job_interview_stage: job_interview_stage + organizer: organizer + interviewers: + - f9813dd5-e70b-484c-91d8-00acd6065b07 + - 89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c + location: Embarcadero Center 2 + start_at: '2021-10-15T00:00:00Z' + end_at: '2021-10-15T02:00:00Z' + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-15T00:00:00Z' + status: SCHEDULED + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /interviews + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ats/v1/interviews/{id} + method: GET + auth: true + docs: Returns a `ScheduledInterview` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: InterviewsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.ScheduledInterview + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b8faf072-98b9-4445-8a9a-6b4950efca19 + remote_id: '3' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + job_interview_stage: job_interview_stage + organizer: organizer + interviewers: + - f9813dd5-e70b-484c-91d8-00acd6065b07 + - 89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c + location: Embarcadero Center 2 + start_at: '2021-10-15T00:00:00Z' + end_at: '2021-10-15T02:00:00Z' + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-15T00:00:00Z' + status: SCHEDULED + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /interviews + data: + - Varies by platform + metaPostRetrieve: + path: /ats/v1/interviews/meta/post + method: GET + auth: true + docs: Returns metadata for `ScheduledInterview` POSTs. + source: + openapi: ats_v3.yml + response: + docs: '' + type: atsRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/issues.yml b/.mock/definition/ATS/issues.yml new file mode 100644 index 00000000..188bd779 --- /dev/null +++ b/.mock/definition/ATS/issues.yml @@ -0,0 +1,133 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: ats_v3.yml +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: atsRoot.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /ats/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: ats_v3.yml + path-parameters: + id: string + response: + docs: '' + type: atsRoot.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/jobInterviewStages.yml b/.mock/definition/ATS/jobInterviewStages.yml new file mode 100644 index 00000000..83acd43b --- /dev/null +++ b/.mock/definition/ATS/jobInterviewStages.yml @@ -0,0 +1,159 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/job-interview-stages + method: GET + auth: true + docs: Returns a list of `JobInterviewStage` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: JobInterviewStagesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + job_id: + type: optional + docs: If provided, will only return interview stages for this job. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: atsRoot.PaginatedJobInterviewStageList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: f9813dd5-e70b-484c-91d8-00acd6065b07 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Phone Screen + job: job + stage_order: 2 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /interview-stages + data: + - Varies by platform + retrieve: + path: /ats/v1/job-interview-stages/{id} + method: GET + auth: true + docs: Returns a `JobInterviewStage` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: JobInterviewStagesRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: atsRoot.JobInterviewStage + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: f9813dd5-e70b-484c-91d8-00acd6065b07 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Phone Screen + job: job + stage_order: 2 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /interview-stages + data: + - Varies by platform + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/jobPostings.yml b/.mock/definition/ATS/jobPostings.yml new file mode 100644 index 00000000..92bc2098 --- /dev/null +++ b/.mock/definition/ATS/jobPostings.yml @@ -0,0 +1,201 @@ +types: + JobPostingsListRequestStatus: + enum: + - CLOSED + - DRAFT + - INTERNAL + - PENDING + - PUBLISHED + source: + openapi: ats_v3.yml +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/job-postings + method: GET + auth: true + docs: Returns a list of `JobPosting` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: JobPostingsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + status: + type: optional + docs: >- + If provided, will only return Job Postings with this status. + Options: ('PUBLISHED', 'CLOSED', 'DRAFT', 'INTERNAL', 'PENDING') + + + * `PUBLISHED` - PUBLISHED + + * `CLOSED` - CLOSED + + * `DRAFT` - DRAFT + + * `INTERNAL` - INTERNAL + + * `PENDING` - PENDING + response: + docs: '' + type: atsRoot.PaginatedJobPostingList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 156a2bef-57e5-4def-8ed2-7c41bd9a554t + remote_id: '1341324' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + title: Platform - NYC + job_posting_urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: https://merge.dev/careers + url_type: JOB_POSTING + job: job + status: PUBLISHED + content: Apply at https://merge.dev/careers + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + is_internal: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /positions + data: + - Varies by platform + retrieve: + path: /ats/v1/job-postings/{id} + method: GET + auth: true + docs: Returns a `JobPosting` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: JobPostingsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: atsRoot.JobPosting + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 156a2bef-57e5-4def-8ed2-7c41bd9a554t + remote_id: '1341324' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + title: Platform - NYC + job_posting_urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: https://merge.dev/careers + url_type: JOB_POSTING + remote_was_deleted: true + job: job + status: PUBLISHED + content: Apply at https://merge.dev/careers + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + is_internal: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /positions + data: + - Varies by platform + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/jobs.yml b/.mock/definition/ATS/jobs.yml new file mode 100644 index 00000000..6f370d80 --- /dev/null +++ b/.mock/definition/ATS/jobs.yml @@ -0,0 +1,359 @@ +types: + JobsListRequestExpandItem: + enum: + - departments + - hiring_managers + - job_postings + - offices + - recruiters + source: + openapi: ats_v3.yml + JobsListRequestStatus: + enum: + - ARCHIVED + - CLOSED + - DRAFT + - OPEN + - PENDING + source: + openapi: ats_v3.yml + JobsRetrieveRequestExpandItem: + enum: + - departments + - hiring_managers + - job_postings + - offices + - recruiters + source: + openapi: ats_v3.yml + JobsScreeningQuestionsListRequestExpandItem: + enum: + - job + - options + source: + openapi: ats_v3.yml +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/jobs + method: GET + auth: true + docs: Returns a list of `Job` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: JobsListRequest + query-parameters: + code: + type: optional + docs: If provided, will only return jobs with this code. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + offices: + type: optional + docs: >- + If provided, will only return jobs for this office; multiple + offices can be separated by commas. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: >- + If provided, will only return jobs with this status. Options: + ('OPEN', 'CLOSED', 'DRAFT', 'ARCHIVED', 'PENDING') + + + * `OPEN` - OPEN + + * `CLOSED` - CLOSED + + * `DRAFT` - DRAFT + + * `ARCHIVED` - ARCHIVED + + * `PENDING` - PENDING + response: + docs: '' + type: atsRoot.PaginatedJobList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 022a2bef-57e5-4def-8ed2-7c41bd9a5ed8 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Software Engineer (Merge is actually hiring btw) + description: >- + If you're reading this documentation, you might be a good + fit for Merge! + code: C0025 + status: OPEN + type: POSTING + job_postings: + - 2r3c1341-a20f-4e51-b72c-f3830a16c97b + - 543ed912-33ec-444e-a215-8d71cc42fc12 + job_posting_urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: https://merge.dev/careers + url_type: JOB_POSTING + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + confidential: true + departments: + - 5b3c1341-a20f-4e51-b72c-f3830a16c97b + - d6e687d6-0c36-48a1-8114-35324b5cb38f + offices: + - 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + hiring_managers: + - 787ed912-33ec-444e-a215-8d71cc42fc12 + recruiters: + - 787ed912-33ec-444e-a215-8d71cc42fc12 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /positions + data: + - Varies by platform + retrieve: + path: /ats/v1/jobs/{id} + method: GET + auth: true + docs: Returns a `Job` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: JobsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.Job + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 022a2bef-57e5-4def-8ed2-7c41bd9a5ed8 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Software Engineer (Merge is actually hiring btw) + description: >- + If you're reading this documentation, you might be a good fit + for Merge! + code: C0025 + status: OPEN + type: POSTING + job_postings: + - 2r3c1341-a20f-4e51-b72c-f3830a16c97b + - 543ed912-33ec-444e-a215-8d71cc42fc12 + job_posting_urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: https://merge.dev/careers + url_type: JOB_POSTING + remote_was_deleted: true + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + confidential: true + departments: + - 5b3c1341-a20f-4e51-b72c-f3830a16c97b + - d6e687d6-0c36-48a1-8114-35324b5cb38f + offices: + - 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + hiring_managers: + - 787ed912-33ec-444e-a215-8d71cc42fc12 + recruiters: + - 787ed912-33ec-444e-a215-8d71cc42fc12 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /positions + data: + - Varies by platform + screeningQuestionsList: + path: /ats/v1/jobs/{job_id}/screening-questions + method: GET + auth: true + docs: Returns a list of `ScreeningQuestion` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + path-parameters: + job_id: string + request: + name: JobsScreeningQuestionsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: atsRoot.PaginatedScreeningQuestionList + status-code: 200 + examples: + - path-parameters: + job_id: job_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0238cbc6-6040-430a-848e-aaiehfhdbadf4ae + remote_id: '23729392' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + job: job + description: >- + Are you currently authorized to work for any employer in the + country outlined for this role? + title: Work Authorisation + type: DATE + required: true + options: + - remote_id: '19281' + label: I am currently authorised + - remote_id: '38372' + label: I am currently not eligible + remote_was_deleted: true + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/linkToken.yml b/.mock/definition/ATS/linkToken.yml new file mode 100644 index 00000000..6fc93968 --- /dev/null +++ b/.mock/definition/ATS/linkToken.yml @@ -0,0 +1,152 @@ +imports: + atsRoot: __package__.yml +types: + EndUserDetailsRequestLanguage: + discriminated: false + docs: >- + The following subset of IETF language tags can be used to configure + localization. + + + * `en` - en + + * `de` - de + union: + - atsRoot.LanguageEnum + - string + source: + openapi: ats_v3.yml + inline: true +service: + auth: false + base-path: '' + endpoints: + create: + path: /ats/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: ats_v3.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: atsRoot.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/linkedAccounts.yml b/.mock/definition/ATS/linkedAccounts.yml new file mode 100644 index 00000000..03a9bd07 --- /dev/null +++ b/.mock/definition/ATS/linkedAccounts.yml @@ -0,0 +1,152 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: ats_v3.yml +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: atsRoot.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/offers.yml b/.mock/definition/ATS/offers.yml new file mode 100644 index 00000000..2fc1f67e --- /dev/null +++ b/.mock/definition/ATS/offers.yml @@ -0,0 +1,203 @@ +types: + OffersListRequestExpandItem: + enum: + - application + - creator + source: + openapi: ats_v3.yml + OffersRetrieveRequestExpandItem: + enum: + - application + - creator + source: + openapi: ats_v3.yml +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/offers + method: GET + auth: true + docs: Returns a list of `Offer` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: OffersListRequest + query-parameters: + application_id: + type: optional + docs: If provided, will only return offers for this application. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + creator_id: + type: optional + docs: If provided, will only return offers created by this user. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.PaginatedOfferList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: dd85625c-6a59-446f-a317-6de64d83bae7 + remote_id: '9876' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + creator: creator + remote_created_at: '2021-10-15T00:00:00Z' + closed_at: '2021-10-16T00:00:00Z' + sent_at: '2021-10-15T00:00:00Z' + start_date: '2021-11-15T00:00:00Z' + status: DRAFT + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /offers + data: + - Varies by platform + retrieve: + path: /ats/v1/offers/{id} + method: GET + auth: true + docs: Returns an `Offer` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: OffersRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.Offer + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: dd85625c-6a59-446f-a317-6de64d83bae7 + remote_id: '9876' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + creator: creator + remote_created_at: '2021-10-15T00:00:00Z' + closed_at: '2021-10-16T00:00:00Z' + sent_at: '2021-10-15T00:00:00Z' + start_date: '2021-11-15T00:00:00Z' + status: DRAFT + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /offers + data: + - Varies by platform + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/offices.yml b/.mock/definition/ATS/offices.yml new file mode 100644 index 00000000..2ed7047f --- /dev/null +++ b/.mock/definition/ATS/offices.yml @@ -0,0 +1,142 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/offices + method: GET + auth: true + docs: Returns a list of `Office` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: OfficesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: atsRoot.PaginatedOfficeList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: SF Office + location: Embarcadero Center 2 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /locations + data: + - Varies by platform + retrieve: + path: /ats/v1/offices/{id} + method: GET + auth: true + docs: Returns an `Office` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: OfficesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: atsRoot.Office + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: SF Office + location: Embarcadero Center 2 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /locations + data: + - Varies by platform + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/passthrough.yml b/.mock/definition/ATS/passthrough.yml new file mode 100644 index 00000000..4388a16f --- /dev/null +++ b/.mock/definition/ATS/passthrough.yml @@ -0,0 +1,40 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ats/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: ats_v3.yml + request: + body: atsRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: atsRoot.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/regenerateKey.yml b/.mock/definition/ATS/regenerateKey.yml new file mode 100644 index 00000000..03679991 --- /dev/null +++ b/.mock/definition/ATS/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ats/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: ats_v3.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: atsRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/rejectReasons.yml b/.mock/definition/ATS/rejectReasons.yml new file mode 100644 index 00000000..446984f7 --- /dev/null +++ b/.mock/definition/ATS/rejectReasons.yml @@ -0,0 +1,140 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/reject-reasons + method: GET + auth: true + docs: Returns a list of `RejectReason` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: RejectReasonsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: atsRoot.PaginatedRejectReasonList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 8be99a4a-f8d4-4339-bf1e-30eac970e217 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Not passionate enough about APIs. + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /rejection-reasons + data: + - Varies by platform + retrieve: + path: /ats/v1/reject-reasons/{id} + method: GET + auth: true + docs: Returns a `RejectReason` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: RejectReasonsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: atsRoot.RejectReason + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 8be99a4a-f8d4-4339-bf1e-30eac970e217 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Not passionate enough about APIs. + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /rejection-reasons + data: + - Varies by platform + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/scopes.yml b/.mock/definition/ATS/scopes.yml new file mode 100644 index 00000000..20262a71 --- /dev/null +++ b/.mock/definition/ATS/scopes.yml @@ -0,0 +1,160 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /ats/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: ats_v3.yml + response: + docs: '' + type: atsRoot.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /ats/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: ats_v3.yml + response: + docs: '' + type: atsRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /ats/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: ats_v3.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + content-type: application/json + response: + docs: '' + type: atsRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/scorecards.yml b/.mock/definition/ATS/scorecards.yml new file mode 100644 index 00000000..c984b973 --- /dev/null +++ b/.mock/definition/ATS/scorecards.yml @@ -0,0 +1,206 @@ +types: + ScorecardsListRequestExpandItem: + enum: + - application + - interview + - interviewer + source: + openapi: ats_v3.yml + ScorecardsRetrieveRequestExpandItem: + enum: + - application + - interview + - interviewer + source: + openapi: ats_v3.yml +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/scorecards + method: GET + auth: true + docs: Returns a list of `Scorecard` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: ScorecardsListRequest + query-parameters: + application_id: + type: optional + docs: If provided, will only return scorecards for this application. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + interview_id: + type: optional + docs: If provided, will only return scorecards for this interview. + interviewer_id: + type: optional + docs: If provided, will only return scorecards for this interviewer. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.PaginatedScorecardList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3eab2f17-eeb1-450d-97f0-029d8be1e06f + remote_id: '22234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + interview: interview + interviewer: interviewer + remote_created_at: '2021-10-15T00:00:00Z' + submitted_at: '2021-10-15T00:00:00Z' + overall_recommendation: DEFINITELY_NO + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /ratings + data: + - Varies by platform + retrieve: + path: /ats/v1/scorecards/{id} + method: GET + auth: true + docs: Returns a `Scorecard` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: ScorecardsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.Scorecard + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 3eab2f17-eeb1-450d-97f0-029d8be1e06f + remote_id: '22234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + interview: interview + interviewer: interviewer + remote_created_at: '2021-10-15T00:00:00Z' + submitted_at: '2021-10-15T00:00:00Z' + overall_recommendation: DEFINITELY_NO + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /ratings + data: + - Varies by platform + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/syncStatus.yml b/.mock/definition/ATS/syncStatus.yml new file mode 100644 index 00000000..345d698c --- /dev/null +++ b/.mock/definition/ATS/syncStatus.yml @@ -0,0 +1,59 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: atsRoot.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: Candidate + model_id: ats.Candidate + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/tags.yml b/.mock/definition/ATS/tags.yml new file mode 100644 index 00000000..0b5ff362 --- /dev/null +++ b/.mock/definition/ATS/tags.yml @@ -0,0 +1,92 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/tags + method: GET + auth: true + docs: Returns a list of `Tag` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: TagsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: atsRoot.PaginatedTagList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - remote_id: '4567' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: High-Priority + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /tags + data: + - Varies by platform + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/users.yml b/.mock/definition/ATS/users.yml new file mode 100644 index 00000000..a76e4763 --- /dev/null +++ b/.mock/definition/ATS/users.yml @@ -0,0 +1,177 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/users + method: GET + auth: true + docs: Returns a list of `RemoteUser` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ats_v3.yml + request: + name: UsersListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email: + type: optional + docs: >- + If provided, will only return remote users with the given email + address + validation: + format: email + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.PaginatedRemoteUserList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b82302de-852e-4e60-b050-edf9da3b7c02 + remote_id: '344321' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Shensi + last_name: Ding + email: hello@merge.dev + disabled: true + remote_created_at: '2020-11-10T00:00:00Z' + access_role: SUPER_ADMIN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + retrieve: + path: /ats/v1/users/{id} + method: GET + auth: true + docs: Returns a `RemoteUser` object with the given `id`. + source: + openapi: ats_v3.yml + path-parameters: + id: string + request: + name: UsersRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: atsRoot.RemoteUser + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b82302de-852e-4e60-b050-edf9da3b7c02 + remote_id: '344321' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Shensi + last_name: Ding + email: hello@merge.dev + disabled: true + remote_created_at: '2020-11-10T00:00:00Z' + access_role: SUPER_ADMIN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + source: + openapi: ats_v3.yml diff --git a/.mock/definition/ATS/webhookReceivers.yml b/.mock/definition/ATS/webhookReceivers.yml new file mode 100644 index 00000000..c79220f8 --- /dev/null +++ b/.mock/definition/ATS/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + atsRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: ats_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /ats/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: ats_v3.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: atsRoot.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: ats_v3.yml diff --git a/.mock/definition/Accounting/__package__.yml b/.mock/definition/Accounting/__package__.yml new file mode 100644 index 00000000..231b8311 --- /dev/null +++ b/.mock/definition/Accounting/__package__.yml @@ -0,0 +1,52736 @@ +types: + AccountClassification: + discriminated: false + docs: |- + The account's broadest grouping. + + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + union: + - ClassificationEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AccountAccountType: + discriminated: false + docs: >- + Normalized account type- which is a narrower and more specific grouping + within the account's classification. + + + * `BANK` - BANK + + * `CREDIT_CARD` - CREDIT_CARD + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `FIXED_ASSET` - FIXED_ASSET + + * `OTHER_ASSET` - OTHER_ASSET + + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + + * `OTHER_EXPENSE` - OTHER_EXPENSE + + * `OTHER_INCOME` - OTHER_INCOME + + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + + * `NON_POSTING` - NON_POSTING + union: + - AccountAccountTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AccountStatus: + discriminated: false + docs: |- + The account's status. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + union: + - AccountStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AccountCurrency: + discriminated: false + docs: >- + The account's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + Account: + docs: >- + # The Account Object + + ### Description + + An `Account` represents a category in a company’s ledger in which a + financial transaction is recorded against. The aggregation of each + `Account` object is often referred to as the **Chart of Accounts**. + + + An `Account` can be classified into one of the following categories, + determined through the `classification` field: + + * __Asset:__ Accounts Receivable and Bank Accounts + + * __Liability:__ Accounts Payable and Credit Card Accounts + + * __Equity:__ Treasury Accounts and Retained Earnings + + * __Revenue:__ Income and Other Income + + * __Expense:__ Cost of Goods Sold and Office Expenses + + + ### Usage Example + + Fetch from the `LIST Accounts` endpoint and view a company's accounts. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The account's name. + description: + type: optional + docs: The account's description. + classification: + type: optional + docs: |- + The account's broadest grouping. + + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + type: + type: optional + docs: >- + The account's type is a narrower and more specific grouping within the + account's classification. + account_type: + type: optional + docs: >- + Normalized account type- which is a narrower and more specific + grouping within the account's classification. + + + * `BANK` - BANK + + * `CREDIT_CARD` - CREDIT_CARD + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `FIXED_ASSET` - FIXED_ASSET + + * `OTHER_ASSET` - OTHER_ASSET + + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + + * `OTHER_EXPENSE` - OTHER_EXPENSE + + * `OTHER_INCOME` - OTHER_INCOME + + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + + * `NON_POSTING` - NON_POSTING + status: + type: optional + docs: |- + The account's status. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + current_balance: + type: optional + docs: The account's current balance. + currency: + type: optional + docs: >- + The account's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + account_number: + type: optional + docs: The account's number. + parent_account: + type: optional + docs: ID of the parent account. + validation: + format: uuid + company: + type: optional + docs: The company the account belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + AccountAccountTypeEnum: + enum: + - BANK + - CREDIT_CARD + - ACCOUNTS_PAYABLE + - ACCOUNTS_RECEIVABLE + - FIXED_ASSET + - OTHER_ASSET + - OTHER_CURRENT_ASSET + - OTHER_EXPENSE + - OTHER_INCOME + - COST_OF_GOODS_SOLD + - OTHER_CURRENT_LIABILITY + - LONG_TERM_LIABILITY + - NON_POSTING + docs: |- + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `FIXED_ASSET` - FIXED_ASSET + * `OTHER_ASSET` - OTHER_ASSET + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + * `OTHER_EXPENSE` - OTHER_EXPENSE + * `OTHER_INCOME` - OTHER_INCOME + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + * `NON_POSTING` - NON_POSTING + source: + openapi: accounting_v3.yml + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: accounting_v3.yml + AccountDetailsAndActionsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AccountDetailsAndActionsStatus: + discriminated: false + union: + - AccountDetailsAndActionsStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatus + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + source: + openapi: accounting_v3.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: accounting_v3.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: accounting_v3.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: accounting_v3.yml + AccountRequestClassification: + discriminated: false + docs: |- + The account's broadest grouping. + + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + union: + - ClassificationEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AccountRequestAccountType: + discriminated: false + docs: >- + Normalized account type- which is a narrower and more specific grouping + within the account's classification. + + + * `BANK` - BANK + + * `CREDIT_CARD` - CREDIT_CARD + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `FIXED_ASSET` - FIXED_ASSET + + * `OTHER_ASSET` - OTHER_ASSET + + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + + * `OTHER_EXPENSE` - OTHER_EXPENSE + + * `OTHER_INCOME` - OTHER_INCOME + + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + + * `NON_POSTING` - NON_POSTING + union: + - AccountAccountTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AccountRequestStatus: + discriminated: false + docs: |- + The account's status. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + union: + - AccountStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AccountRequestCurrency: + discriminated: false + docs: >- + The account's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AccountRequest: + docs: >- + # The Account Object + + ### Description + + An `Account` represents a category in a company’s ledger in which a + financial transaction is recorded against. The aggregation of each + `Account` object is often referred to as the **Chart of Accounts**. + + + An `Account` can be classified into one of the following categories, + determined through the `classification` field: + + * __Asset:__ Accounts Receivable and Bank Accounts + + * __Liability:__ Accounts Payable and Credit Card Accounts + + * __Equity:__ Treasury Accounts and Retained Earnings + + * __Revenue:__ Income and Other Income + + * __Expense:__ Cost of Goods Sold and Office Expenses + + + ### Usage Example + + Fetch from the `LIST Accounts` endpoint and view a company's accounts. + properties: + name: + type: optional + docs: The account's name. + description: + type: optional + docs: The account's description. + classification: + type: optional + docs: |- + The account's broadest grouping. + + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + type: + type: optional + docs: >- + The account's type is a narrower and more specific grouping within the + account's classification. + account_type: + type: optional + docs: >- + Normalized account type- which is a narrower and more specific + grouping within the account's classification. + + + * `BANK` - BANK + + * `CREDIT_CARD` - CREDIT_CARD + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `FIXED_ASSET` - FIXED_ASSET + + * `OTHER_ASSET` - OTHER_ASSET + + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + + * `OTHER_EXPENSE` - OTHER_EXPENSE + + * `OTHER_INCOME` - OTHER_INCOME + + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + + * `NON_POSTING` - NON_POSTING + status: + type: optional + docs: |- + The account's status. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + current_balance: + type: optional + docs: The account's current balance. + currency: + type: optional + docs: >- + The account's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + account_number: + type: optional + docs: The account's number. + parent_account: + type: optional + docs: ID of the parent account. + validation: + format: uuid + company: + type: optional + docs: The company the account belongs to. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + AccountResponse: + properties: + model: Account + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + AccountStatusEnum: + enum: + - ACTIVE + - PENDING + - INACTIVE + docs: |- + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + source: + openapi: accounting_v3.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: accounting_v3.yml + AccountingAttachment: + docs: >- + # The Accounting Attachment Object + + ### Description + + The `AccountingAttachment` object is used to represent a company's + attachments. + + + ### Usage Example + + Fetch from the `LIST AccountingAttachments` endpoint and view a company's + attachments. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + file_name: + type: optional + docs: The attachment's name. + file_url: + type: optional + docs: The attachment's url. + validation: + format: uri + maxLength: 2000 + company: + type: optional + docs: The company the accounting attachment belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + AccountingAttachmentRequest: + docs: >- + # The Accounting Attachment Object + + ### Description + + The `AccountingAttachment` object is used to represent a company's + attachments. + + + ### Usage Example + + Fetch from the `LIST AccountingAttachments` endpoint and view a company's + attachments. + properties: + file_name: + type: optional + docs: The attachment's name. + file_url: + type: optional + docs: The attachment's url. + validation: + format: uri + maxLength: 2000 + company: + type: optional + docs: The company the accounting attachment belongs to. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + AccountingAttachmentResponse: + properties: + model: AccountingAttachment + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + AccountingPeriodStatus: + discriminated: false + union: + - Status895Enum + - string + source: + openapi: accounting_v3.yml + inline: true + AccountingPeriod: + docs: >- + # The AccountingPeriod Object + + ### Description + + The `AccountingPeriod` object is used to define a period of time in which + events occurred. + + + ### Usage Example + + Common models like `Invoice` and `Transaction` will have + `AccountingPeriod` objects which will denote when they occurred. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: Name of the accounting period. + validation: + maxLength: 100 + status: optional + start_date: + type: optional + docs: Beginning date of the period + end_date: + type: optional + docs: End date of the period + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + AccountingPhoneNumber: + docs: >- + # The AccountingPhoneNumber Object + + ### Description + + The `AccountingPhoneNumber` object is used to represent a contact's or + company's phone number. + + + ### Usage Example + + Fetch from the `GET CompanyInfo` endpoint and view the company's phone + numbers. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + number: + type: optional + docs: The phone number. + type: + type: optional + docs: The phone number's type. + source: + openapi: accounting_v3.yml + AccountingPhoneNumberRequest: + docs: >- + # The AccountingPhoneNumber Object + + ### Description + + The `AccountingPhoneNumber` object is used to represent a contact's or + company's phone number. + + + ### Usage Example + + Fetch from the `GET CompanyInfo` endpoint and view the company's phone + numbers. + properties: + number: + type: optional + docs: The phone number. + type: + type: optional + docs: The phone number's type. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + AddressType: + discriminated: false + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + union: + - AddressTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AddressCountry: + discriminated: false + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + union: + - CountryEnum + - string + source: + openapi: accounting_v3.yml + inline: true + Address: + docs: >- + # The Address Object + + ### Description + + The `Address` object is used to represent a contact's or company's + address. + + + ### Usage Example + + Fetch from the `GET CompanyInfo` endpoint and view the company's + addresses. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + type: + type: optional + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + street_1: + type: optional + docs: Line 1 of the address's street. + street_2: + type: optional + docs: Line 2 of the address's street. + city: + type: optional + docs: The address's city. + state: + type: optional + access: read-only + country_subdivision: + type: optional + docs: The address's state or region. + country: + type: optional + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + zip_code: + type: optional + docs: The address's zip code. + source: + openapi: accounting_v3.yml + AddressRequestType: + discriminated: false + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + union: + - AddressTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AddressRequestCountry: + discriminated: false + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + union: + - CountryEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AddressRequest: + docs: >- + # The Address Object + + ### Description + + The `Address` object is used to represent a contact's or company's + address. + + + ### Usage Example + + Fetch from the `GET CompanyInfo` endpoint and view the company's + addresses. + properties: + type: + type: optional + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + street_1: + type: optional + docs: Line 1 of the address's street. + street_2: + type: optional + docs: Line 2 of the address's street. + city: + type: optional + docs: The address's city. + country_subdivision: + type: optional + docs: The address's state or region. + country: + type: optional + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + zip_code: + type: optional + docs: The address's zip code. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + AddressTypeEnum: + enum: + - BILLING + - SHIPPING + docs: |- + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + source: + openapi: accounting_v3.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: accounting_v3.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: accounting_v3.yml + AsyncPostTaskStatus: + discriminated: false + union: + - AsyncPostTaskStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AsyncPostTask: + properties: + status: AsyncPostTaskStatus + result: AsyncPostTaskResult + source: + openapi: accounting_v3.yml + AsyncPostTaskResult: + properties: + status_code: optional + response: optional> + source: + openapi: accounting_v3.yml + AsyncPostTaskStatusEnum: + enum: + - QUEUED + - IN_PROGRESS + - COMPLETED + - FAILURE + docs: |- + * `QUEUED` - QUEUED + * `IN_PROGRESS` - IN_PROGRESS + * `COMPLETED` - COMPLETED + * `FAILURE` - FAILURE + source: + openapi: accounting_v3.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: accounting_v3.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: accounting_v3.yml + BalanceSheetCurrency: + discriminated: false + docs: >- + The balance sheet's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + BalanceSheetCompany: + discriminated: false + docs: '`Company` object for the given `BalanceSheet` object.' + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + BalanceSheet: + docs: >- + # The BalanceSheet Object + + ### Description + + The `BalanceSheet` object shows a company’s assets, liabilities, and + equity. Assets should be equal to liability and equity combined. This + shows the company’s financial health at a specific point in time. + + + ### Usage Example + + Fetch from the `LIST BalanceSheets` endpoint and view a company's balance + sheets. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The balance sheet's name. + currency: + type: optional + docs: >- + The balance sheet's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: optional + docs: '`Company` object for the given `BalanceSheet` object.' + date: + type: optional + docs: >- + The balance sheet's date. The balance sheet data will reflect the + company's financial position this point in time. + net_assets: + type: optional + docs: The balance sheet's net assets. + assets: + type: optional> + access: read-only + liabilities: + type: optional> + access: read-only + equity: + type: optional> + access: read-only + remote_generated_at: + type: optional + docs: The time that balance sheet was generated by the accounting system. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + BankFeedAccountCurrency: + discriminated: false + docs: >- + The currency code of the bank feed. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + BankFeedAccountFeedStatus: + discriminated: false + docs: |- + The status of the bank feed. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + union: + - FeedStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + BankFeedAccountAccountType: + discriminated: false + docs: |- + The type of the account. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + union: + - BankFeedAccountAccountTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + BankFeedAccount: + docs: >- + # The BankFeedAccount Object + + ### Description + + The `BankFeedAccount` object represents a bank feed account, detailing + various attributes including account identifiers, names, currency, and + balance information. This object is central to managing and tracking bank + feed accounts within the system. + + + ### Usage Example + + Fetch from the `GET BankFeedAccount` endpoint to view details of a bank + feed account. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + source_account_id: + type: optional + docs: >- + The unique identifier of the source account from our customer’s + platform. + validation: + maxLength: 1024 + target_account_id: + type: optional + docs: >- + The unique identifier of the target account from the third party + software. + validation: + maxLength: 1024 + source_account_name: + type: optional + docs: The name of the source account as stored in our customer’s platform. + validation: + maxLength: 1024 + source_account_number: + type: optional + docs: >- + The human-readable account number of the source account as stored in + our customer’s platform. + validation: + maxLength: 1024 + target_account_name: + type: optional + docs: The name of the target account from the third party software. + validation: + maxLength: 1024 + currency: + type: optional + docs: >- + The currency code of the bank feed. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + feed_status: + type: optional + docs: |- + The status of the bank feed. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + feed_start_date: + type: optional + docs: The start date of the bank feed’s transactions. + source_account_balance: + type: optional + docs: The current balance of funds in the source account. + account_type: + type: optional + docs: |- + The type of the account. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: optional>>> + source: + openapi: accounting_v3.yml + BankFeedAccountAccountTypeEnum: + enum: + - BANK + - CREDIT_CARD + docs: |- + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + source: + openapi: accounting_v3.yml + BankFeedAccountRequestCurrency: + discriminated: false + docs: >- + The currency code of the bank feed. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + BankFeedAccountRequestFeedStatus: + discriminated: false + docs: |- + The status of the bank feed. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + union: + - FeedStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + BankFeedAccountRequestAccountType: + discriminated: false + docs: |- + The type of the account. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + union: + - BankFeedAccountAccountTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + BankFeedAccountRequest: + docs: >- + # The BankFeedAccount Object + + ### Description + + The `BankFeedAccount` object represents a bank feed account, detailing + various attributes including account identifiers, names, currency, and + balance information. This object is central to managing and tracking bank + feed accounts within the system. + + + ### Usage Example + + Fetch from the `GET BankFeedAccount` endpoint to view details of a bank + feed account. + properties: + source_account_id: + type: optional + docs: >- + The unique identifier of the source account from our customer’s + platform. + validation: + maxLength: 1024 + target_account_id: + type: optional + docs: >- + The unique identifier of the target account from the third party + software. + validation: + maxLength: 1024 + source_account_name: + type: optional + docs: The name of the source account as stored in our customer’s platform. + validation: + maxLength: 1024 + source_account_number: + type: optional + docs: >- + The human-readable account number of the source account as stored in + our customer’s platform. + validation: + maxLength: 1024 + target_account_name: + type: optional + docs: The name of the target account from the third party software. + validation: + maxLength: 1024 + currency: + type: optional + docs: >- + The currency code of the bank feed. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + feed_status: + type: optional + docs: |- + The status of the bank feed. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + feed_start_date: + type: optional + docs: The start date of the bank feed’s transactions. + source_account_balance: + type: optional + docs: The current balance of funds in the source account. + account_type: + type: optional + docs: |- + The type of the account. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + BankFeedAccountResponse: + properties: + model: BankFeedAccount + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + BankFeedTransactionBankFeedAccount: + discriminated: false + docs: The bank feed account associated with the transaction. + union: + - type: string + validation: + format: uuid + - BankFeedAccount + source: + openapi: accounting_v3.yml + inline: true + BankFeedTransactionCreditOrDebit: + discriminated: false + docs: |- + If the transaction is of type debit or credit. + + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + union: + - CreditOrDebitEnum + - string + source: + openapi: accounting_v3.yml + inline: true + BankFeedTransaction: + docs: >- + # The BankFeedTransaction Object + + ### Description + + The `BankFeedTransaction` object is used to represent transactions linked + to a bank feed account. This includes details about the transaction such + as the date, amount, description, and type. + + + ### Usage Example + + Fetch from the `GET BankFeedTransaction` endpoint to view details of a + transaction associated with a bank feed account. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + bank_feed_account: + type: optional + docs: The bank feed account associated with the transaction. + transaction_date: + type: optional + docs: The date that the transaction occurred. + posted_date: + type: optional + docs: The date the transaction was posted to the bank account. + amount: + type: optional + docs: The amount of the transaction. + description: + type: optional + docs: The description of the transaction. + validation: + maxLength: 1024 + transaction_type: + type: optional + docs: The underlying type of the transaction. + validation: + maxLength: 1024 + payee: + type: optional + docs: >- + The person or merchant who initiated the transaction, or + alternatively, to whom the transaction was paid. + validation: + maxLength: 1024 + credit_or_debit: + type: optional + docs: |- + If the transaction is of type debit or credit. + + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + source_transaction_id: + type: optional + docs: The customer’s identifier for the transaction. + validation: + maxLength: 1024 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + is_processed: + type: optional + docs: >- + Whether or not this transaction has been processed by the external + system. For example, NetSuite writes this field as True when the + SuiteApp has processed the transaction. + access: read-only + source: + openapi: accounting_v3.yml + BankFeedTransactionRequestRequestBankFeedAccount: + discriminated: false + docs: The bank feed account associated with the transaction. + union: + - type: string + validation: + format: uuid + - BankFeedAccount + source: + openapi: accounting_v3.yml + inline: true + BankFeedTransactionRequestRequestCreditOrDebit: + discriminated: false + docs: |- + If the transaction is of type debit or credit. + + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + union: + - CreditOrDebitEnum + - string + source: + openapi: accounting_v3.yml + inline: true + BankFeedTransactionRequestRequest: + docs: >- + # The BankFeedTransaction Object + + ### Description + + The `BankFeedTransaction` object is used to represent transactions linked + to a bank feed account. This includes details about the transaction such + as the date, amount, description, and type. + + + ### Usage Example + + Fetch from the `GET BankFeedTransaction` endpoint to view details of a + transaction associated with a bank feed account. + properties: + bank_feed_account: + type: optional + docs: The bank feed account associated with the transaction. + transaction_date: + type: optional + docs: The date that the transaction occurred. + posted_date: + type: optional + docs: The date the transaction was posted to the bank account. + amount: + type: optional + docs: The amount of the transaction. + description: + type: optional + docs: The description of the transaction. + validation: + maxLength: 1024 + transaction_type: + type: optional + docs: The underlying type of the transaction. + validation: + maxLength: 1024 + payee: + type: optional + docs: >- + The person or merchant who initiated the transaction, or + alternatively, to whom the transaction was paid. + validation: + maxLength: 1024 + credit_or_debit: + type: optional + docs: |- + If the transaction is of type debit or credit. + + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + source_transaction_id: + type: optional + docs: The customer’s identifier for the transaction. + validation: + maxLength: 1024 + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + BankFeedTransactionResponse: + properties: + model: BankFeedTransaction + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + CashFlowStatementCurrency: + discriminated: false + docs: >- + The cash flow statement's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + CashFlowStatementCompany: + discriminated: false + docs: The company the cash flow statement belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + CashFlowStatement: + docs: >- + # The CashFlowStatement Object + + ### Description + + The `CashFlowStatement` object shows operating activities, investing + activities, and financing activities over a period of time (month, + quarter, or year). + + + ### Usage Example + + Fetch from the `LIST CashFlowStatements` endpoint and view a company's + cash flow statements. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The cash flow statement's name. + currency: + type: optional + docs: >- + The cash flow statement's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: optional + docs: The company the cash flow statement belongs to. + start_period: + type: optional + docs: The cash flow statement's start period. + end_period: + type: optional + docs: The cash flow statement's end period. + cash_at_beginning_of_period: + type: optional + docs: >- + Cash and cash equivalents at the beginning of the cash flow + statement's period. + cash_at_end_of_period: + type: optional + docs: >- + Cash and cash equivalents at the beginning of the cash flow + statement's period. + operating_activities: + type: optional> + access: read-only + investing_activities: + type: optional> + access: read-only + financing_activities: + type: optional> + access: read-only + remote_generated_at: + type: optional + docs: >- + The time that cash flow statement was generated by the accounting + system. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: accounting_v3.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: accounting_v3.yml + CategoryTypeEnum: + enum: + - CLASS + - DEPARTMENT + docs: |- + * `CLASS` - CLASS + * `DEPARTMENT` - DEPARTMENT + source: + openapi: accounting_v3.yml + ClassificationEnum: + enum: + - ASSET + - EQUITY + - EXPENSE + - LIABILITY + - REVENUE + docs: |- + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + source: + openapi: accounting_v3.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: accounting_v3.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: accounting_v3.yml + CompanyInfo: + docs: >- + # The CompanyInfo Object + + ### Description + + The `CompanyInfo` object contains information about the company of the + linked account. If the company has multiple entities (also known as + subsidiaries), each entity may show up as a single `CompanyInfo` record. + + + ### Usage Example + + Fetch from the `GET CompanyInfo` endpoint and view a company's + information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The company's name. + legal_name: + type: optional + docs: The company's legal name. + tax_number: + type: optional + docs: The company's tax number. + fiscal_year_end_month: + type: optional + docs: The company's fiscal year end month. + validation: + min: 1 + max: 12 + fiscal_year_end_day: + type: optional + docs: The company's fiscal year end day. + validation: + min: 1 + max: 31 + currency: optional + remote_created_at: + type: optional + docs: When the third party's company was created. + urls: + type: optional>> + docs: The company's urls. + addresses: optional> + phone_numbers: optional> + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + ComponentTypeEnum: + enum: + - SALES + - PURCHASE + docs: |- + * `SALES` - SALES + * `PURCHASE` - PURCHASE + source: + openapi: accounting_v3.yml + ContactStatus: + discriminated: false + docs: |- + The contact's status + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: accounting_v3.yml + inline: true + ContactAddressesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Address + source: + openapi: accounting_v3.yml + inline: true + Contact: + docs: >- + # The Contact Object + + ### Description + + A `Contact` is an individual or business entity to which products and + services are sold to or purchased from. The `Contact` model contains both + Customers, in which products and services are sold to, and Vendors (or + Suppliers), in which products and services are purchased from. + + * A `Contact` is a Vendor/Supplier if the `is_supplier` property is true. + + * A `Contact` is a customer if the `is_customer` property is true. + + + ### Usage Example + + Fetch from the `LIST Contacts` endpoint and view a company's contacts. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The contact's name. + is_supplier: + type: optional + docs: Whether the contact is a supplier. + is_customer: + type: optional + docs: Whether the contact is a customer. + email_address: + type: optional + docs: The contact's email address. + tax_number: + type: optional + docs: The contact's tax number. + status: + type: optional + docs: |- + The contact's status + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + currency: + type: optional + docs: The currency the contact's transactions are in. + remote_updated_at: + type: optional + docs: When the third party's contact was updated. + company: + type: optional + docs: The company the contact belongs to. + validation: + format: uuid + addresses: + type: optional>> + docs: '`Address` object IDs for the given `Contacts` object.' + phone_numbers: + type: optional> + docs: '`AccountingPhoneNumber` object for the given `Contacts` object.' + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + ContactRequestStatus: + discriminated: false + docs: |- + The contact's status + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: accounting_v3.yml + inline: true + ContactRequestAddressesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Address + source: + openapi: accounting_v3.yml + inline: true + ContactRequest: + docs: >- + # The Contact Object + + ### Description + + A `Contact` is an individual or business entity to which products and + services are sold to or purchased from. The `Contact` model contains both + Customers, in which products and services are sold to, and Vendors (or + Suppliers), in which products and services are purchased from. + + * A `Contact` is a Vendor/Supplier if the `is_supplier` property is true. + + * A `Contact` is a customer if the `is_customer` property is true. + + + ### Usage Example + + Fetch from the `LIST Contacts` endpoint and view a company's contacts. + properties: + name: + type: optional + docs: The contact's name. + is_supplier: + type: optional + docs: Whether the contact is a supplier. + is_customer: + type: optional + docs: Whether the contact is a customer. + email_address: + type: optional + docs: The contact's email address. + tax_number: + type: optional + docs: The contact's tax number. + status: + type: optional + docs: |- + The contact's status + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + currency: + type: optional + docs: The currency the contact's transactions are in. + company: + type: optional + docs: The company the contact belongs to. + validation: + format: uuid + addresses: + type: optional>> + docs: '`Address` object IDs for the given `Contacts` object.' + phone_numbers: + type: optional> + docs: '`AccountingPhoneNumber` object for the given `Contacts` object.' + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + ContactResponse: + properties: + model: Contact + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + CountryEnum: + enum: + - AF + - AX + - AL + - DZ + - AS + - AD + - AO + - AI + - AQ + - AG + - AR + - AM + - AW + - AU + - AT + - AZ + - BS + - BH + - BD + - BB + - BY + - BE + - BZ + - BJ + - BM + - BT + - BO + - BQ + - BA + - BW + - BV + - BR + - IO + - BN + - BG + - BF + - BI + - CV + - KH + - CM + - CA + - KY + - CF + - TD + - CL + - CN + - CX + - CC + - CO + - KM + - CG + - CD + - CK + - CR + - CI + - HR + - CU + - CW + - CY + - CZ + - DK + - DJ + - DM + - DO + - EC + - EG + - SV + - GQ + - ER + - EE + - SZ + - ET + - FK + - FO + - FJ + - FI + - FR + - GF + - PF + - TF + - GA + - GM + - GE + - DE + - GH + - GI + - GR + - GL + - GD + - GP + - GU + - GT + - GG + - GN + - GW + - GY + - HT + - HM + - VA + - HN + - HK + - HU + - IS + - IN + - ID + - IR + - IQ + - IE + - IM + - IL + - IT + - JM + - JP + - JE + - JO + - KZ + - KE + - KI + - KW + - KG + - LA + - LV + - LB + - LS + - LR + - LY + - LI + - LT + - LU + - MO + - MG + - MW + - MY + - MV + - ML + - MT + - MH + - MQ + - MR + - MU + - YT + - MX + - FM + - MD + - MC + - MN + - ME + - MS + - MA + - MZ + - MM + - NA + - NR + - NP + - NL + - NC + - NZ + - NI + - NE + - NG + - NU + - NF + - KP + - MK + - MP + - 'NO' + - OM + - PK + - PW + - PS + - PA + - PG + - PY + - PE + - PH + - PN + - PL + - PT + - PR + - QA + - RE + - RO + - RU + - RW + - BL + - SH + - KN + - LC + - MF + - PM + - VC + - WS + - SM + - ST + - SA + - SN + - RS + - SC + - SL + - SG + - SX + - SK + - SI + - SB + - SO + - ZA + - GS + - KR + - SS + - ES + - LK + - SD + - SR + - SJ + - SE + - CH + - SY + - TW + - TJ + - TZ + - TH + - TL + - TG + - TK + - TO + - TT + - TN + - TR + - TM + - TC + - TV + - UG + - UA + - AE + - GB + - UM + - US + - UY + - UZ + - VU + - VE + - VN + - VG + - VI + - WF + - EH + - YE + - ZM + - ZW + docs: |- + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + source: + openapi: accounting_v3.yml + CreditNoteStatus: + discriminated: false + docs: |- + The credit note's status. + + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + union: + - CreditNoteStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + CreditNoteContact: + discriminated: false + docs: The credit note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + CreditNoteCompany: + discriminated: false + docs: The company the credit note belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + CreditNoteTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + CreditNoteCurrency: + discriminated: false + docs: >- + The credit note's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + CreditNotePaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: accounting_v3.yml + inline: true + CreditNoteAppliedPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItem + source: + openapi: accounting_v3.yml + inline: true + CreditNoteAccountingPeriod: + discriminated: false + docs: The accounting period that the CreditNote was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + CreditNote: + docs: >- + # The CreditNote Object + + ### Description + + A `CreditNote` is transaction issued to a customer, indicating a reduction + or cancellation of the amount owed by the customer. It is most generally + used as an adjustment note used to rectify errors, returns, or + overpayments related to a sales transaction. A `CreditNote` can be applied + to *Accounts Receivable* Invoices to decrease the overall amount of the + Invoice. + + + ### Usage Example + + Fetch from the `LIST CreditNotes` endpoint and view a company's credit + notes. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + transaction_date: + type: optional + docs: The credit note's transaction date. + status: + type: optional + docs: |- + The credit note's status. + + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + number: + type: optional + docs: The credit note's number. + contact: + type: optional + docs: The credit note's contact. + company: + type: optional + docs: The company the credit note belongs to. + exchange_rate: + type: optional + docs: The credit note's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + total_amount: + type: optional + docs: The credit note's total amount. + remaining_credit: + type: optional + docs: >- + The amount of value remaining in the credit note that the customer can + use. + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + line_items: + type: optional> + access: read-only + tracking_categories: optional>> + currency: + type: optional + docs: >- + The credit note's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + remote_created_at: + type: optional + docs: When the third party's credit note was created. + remote_updated_at: + type: optional + docs: When the third party's credit note was updated. + payments: + type: optional>> + docs: Array of `Payment` object IDs + applied_payments: + type: optional>> + docs: >- + A list of the Payment Applied to Lines common models related to a + given Invoice, Credit Note, or Journal Entry. + accounting_period: + type: optional + docs: The accounting period that the CreditNote was generated in. + applied_to_lines: + type: optional> + docs: >- + A list of the CreditNote Applied to Lines common models related to a + given Credit Note + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + CreditNoteApplyLineForCreditNoteInvoice: + discriminated: false + union: + - type: string + validation: + format: uuid + - Invoice + source: + openapi: accounting_v3.yml + inline: true + CreditNoteApplyLineForCreditNote: + docs: >- + # The CreditNoteApplyLine Object + + ### Description + + The `CreditNoteApplyLine` is attached to the CreditNote model. + + + ### Usage Example + + Fetch from the `GET CreditNote` endpoint and view the invoice's applied to + lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + invoice: optional + applied_date: + type: optional + docs: Date that the credit note is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the Credit Note applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: accounting_v3.yml + CreditNoteApplyLineForCreditNoteRequestInvoice: + discriminated: false + union: + - type: string + validation: + format: uuid + - Invoice + source: + openapi: accounting_v3.yml + inline: true + CreditNoteApplyLineForCreditNoteRequest: + docs: >- + # The CreditNoteApplyLine Object + + ### Description + + The `CreditNoteApplyLine` is attached to the CreditNote model. + + + ### Usage Example + + Fetch from the `GET CreditNote` endpoint and view the invoice's applied to + lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + invoice: optional + applied_date: + type: optional + docs: Date that the credit note is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the Credit Note applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + CreditNoteApplyLineForInvoiceCreditNote: + discriminated: false + union: + - type: string + validation: + format: uuid + - CreditNote + source: + openapi: accounting_v3.yml + inline: true + CreditNoteApplyLineForInvoice: + docs: >- + # The CreditNoteApplyLine Object + + ### Description + + The `CreditNoteApplyLine` is attached to the CreditNote model. + + + ### Usage Example + + Fetch from the `GET CreditNote` endpoint and view the invoice's applied to + lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + credit_note: optional + applied_date: + type: optional + docs: Date that the credit note is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the Credit Note applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: accounting_v3.yml + CreditNoteLineItemItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: accounting_v3.yml + inline: true + CreditNoteLineItemCompany: + discriminated: false + docs: The company the credit note belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + CreditNoteLineItemContact: + discriminated: false + docs: The credit note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + CreditNoteLineItemProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: accounting_v3.yml + inline: true + CreditNoteLineItem: + docs: >- + # The CreditNoteLineItem Object + + ### Description + + The `CreditNoteLineItem` object is used to represent a credit note's line + items. + + + ### Usage Example + + Fetch from the `GET CreditNote` endpoint and view the credit note's line + items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + item: optional + name: + type: optional + docs: The credit note line item's name. + description: + type: optional + docs: The description of the item that is owed. + quantity: + type: optional + docs: The credit note line item's quantity. + validation: + pattern: ^-?\d{0,24}(?:\.\d{0,8})?$ + memo: + type: optional + docs: The credit note line item's memo. + unit_price: + type: optional + docs: The credit note line item's unit price. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + total_line_amount: + type: optional + docs: The credit note line item's total. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tracking_category: + type: optional + docs: The credit note line item's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The credit note line item's associated tracking categories. + account: + type: optional + docs: The credit note line item's account. + validation: + format: uuid + company: + type: optional + docs: The company the credit note belongs to. + contact: + type: optional + docs: The credit note's contact. + project: optional + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: accounting_v3.yml + CreditNoteLineItemRequestItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: accounting_v3.yml + inline: true + CreditNoteLineItemRequestCompany: + discriminated: false + docs: The company the credit note belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + CreditNoteLineItemRequestContact: + discriminated: false + docs: The credit note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + CreditNoteLineItemRequestProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: accounting_v3.yml + inline: true + CreditNoteLineItemRequest: + docs: >- + # The CreditNoteLineItem Object + + ### Description + + The `CreditNoteLineItem` object is used to represent a credit note's line + items. + + + ### Usage Example + + Fetch from the `GET CreditNote` endpoint and view the credit note's line + items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + item: optional + name: + type: optional + docs: The credit note line item's name. + description: + type: optional + docs: The description of the item that is owed. + quantity: + type: optional + docs: The credit note line item's quantity. + validation: + pattern: ^-?\d{0,24}(?:\.\d{0,8})?$ + memo: + type: optional + docs: The credit note line item's memo. + unit_price: + type: optional + docs: The credit note line item's unit price. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + total_line_amount: + type: optional + docs: The credit note line item's total. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tracking_category: + type: optional + docs: The credit note line item's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The credit note line item's associated tracking categories. + account: + type: optional + docs: The credit note line item's account. + validation: + format: uuid + company: + type: optional + docs: The company the credit note belongs to. + contact: + type: optional + docs: The credit note's contact. + project: optional + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + CreditNoteRequestStatus: + discriminated: false + docs: |- + The credit note's status. + + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + union: + - CreditNoteStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + CreditNoteRequestContact: + discriminated: false + docs: The credit note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + CreditNoteRequestCompany: + discriminated: false + docs: The company the credit note belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + CreditNoteRequestLineItemsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - CreditNoteLineItemRequest + source: + openapi: accounting_v3.yml + inline: true + CreditNoteRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + CreditNoteRequestCurrency: + discriminated: false + docs: >- + The credit note's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + CreditNoteRequestPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: accounting_v3.yml + inline: true + CreditNoteRequestAppliedPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItem + source: + openapi: accounting_v3.yml + inline: true + CreditNoteRequestAccountingPeriod: + discriminated: false + docs: The accounting period that the CreditNote was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + CreditNoteRequest: + docs: >- + # The CreditNote Object + + ### Description + + A `CreditNote` is transaction issued to a customer, indicating a reduction + or cancellation of the amount owed by the customer. It is most generally + used as an adjustment note used to rectify errors, returns, or + overpayments related to a sales transaction. A `CreditNote` can be applied + to *Accounts Receivable* Invoices to decrease the overall amount of the + Invoice. + + + ### Usage Example + + Fetch from the `LIST CreditNotes` endpoint and view a company's credit + notes. + properties: + transaction_date: + type: optional + docs: The credit note's transaction date. + status: + type: optional + docs: |- + The credit note's status. + + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + number: + type: optional + docs: The credit note's number. + contact: + type: optional + docs: The credit note's contact. + company: + type: optional + docs: The company the credit note belongs to. + exchange_rate: + type: optional + docs: The credit note's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + total_amount: + type: optional + docs: The credit note's total amount. + remaining_credit: + type: optional + docs: >- + The amount of value remaining in the credit note that the customer can + use. + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + line_items: optional> + tracking_categories: optional>> + currency: + type: optional + docs: >- + The credit note's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + payments: + type: optional>> + docs: Array of `Payment` object IDs + applied_payments: + type: optional>> + docs: >- + A list of the Payment Applied to Lines common models related to a + given Invoice, Credit Note, or Journal Entry. + accounting_period: + type: optional + docs: The accounting period that the CreditNote was generated in. + applied_to_lines: + type: optional> + docs: >- + A list of the CreditNote Applied to Lines common models related to a + given Credit Note + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + CreditNoteResponse: + properties: + model: CreditNote + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + CreditNoteStatusEnum: + enum: + - SUBMITTED + - AUTHORIZED + - PAID + docs: |- + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + source: + openapi: accounting_v3.yml + CreditOrDebitEnum: + enum: + - CREDIT + - DEBIT + docs: |- + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + source: + openapi: accounting_v3.yml + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: MethodEnum + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: accounting_v3.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: accounting_v3.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: accounting_v3.yml + EmployeeCompany: + discriminated: false + docs: The subsidiary that the employee belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + EmployeeStatus: + discriminated: false + docs: |- + The employee's status in the accounting system. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + union: + - Status895Enum + - string + source: + openapi: accounting_v3.yml + inline: true + Employee: + docs: >- + # The Employee Object + + ### Description + + An `Employee` is an individual who works for the company of the linked + account. The `Employee` model contains both contractors and full time + employees. + + * An `Employee` is a contractor if `is_contractor` property is `True` + + * An `Employee` is a full time employee if `is_contractor` property is + `False` + + + ### Usage Example + + Fetch from the `LIST Employees` endpoint and view a company's employees. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + first_name: + type: optional + docs: The employee's first name. + validation: + maxLength: 255 + last_name: + type: optional + docs: The employee's last name. + validation: + maxLength: 255 + is_contractor: + type: optional + docs: '`True` if the employee is a contractor, `False` if not.' + employee_number: + type: optional + docs: The employee's internal identification number. + validation: + maxLength: 50 + email_address: + type: optional + docs: The employee's email address. + company: + type: optional + docs: The subsidiary that the employee belongs to. + status: + type: EmployeeStatus + docs: |- + The employee's status in the accounting system. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: accounting_v3.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: accounting_v3.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: accounting_v3.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: accounting_v3.yml + ExpenseAccount: + discriminated: false + docs: The expense's payment account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + ExpenseContact: + discriminated: false + docs: The expense's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + ExpenseCurrency: + discriminated: false + docs: >- + The expense's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + ExpenseCompany: + discriminated: false + docs: The company the expense belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + ExpenseEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: accounting_v3.yml + inline: true + ExpenseTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + ExpenseAccountingPeriod: + discriminated: false + docs: The accounting period that the Expense was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + Expense: + docs: >- + # The Expense Object + + ### Description + + The `Expense` object is used to represent a direct purchase by a business, + typically made with a check, credit card, or cash. Each `Expense` object + is dedicated to a grouping of expenses, with each expense recorded in the + lines object. + + + The `Expense` object is used also used to represent refunds to direct + purchases. Refunds can be distinguished from purchases by the amount sign + of the records. Expense objects with a negative amount are purchases and + `Expense` objects with a positive amount are refunds to those purchases. + + + ### Usage Example + + Fetch from the `GET Expense` endpoint and view a company's expense. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + transaction_date: + type: optional + docs: When the transaction occurred. + remote_created_at: + type: optional + docs: When the expense was created. + account: + type: optional + docs: The expense's payment account. + contact: + type: optional + docs: The expense's contact. + total_amount: + type: optional + docs: The expense's total amount. + sub_total: + type: optional + docs: The expense's total amount before tax. + total_tax_amount: + type: optional + docs: The expense's total tax amount. + currency: + type: optional + docs: >- + The expense's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The expense's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + company: + type: optional + docs: The company the expense belongs to. + employee: + type: optional + docs: The employee this overall transaction relates to. + memo: + type: optional + docs: The expense's private note. + lines: optional> + tracking_categories: optional>> + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + accounting_period: + type: optional + docs: The accounting period that the Expense was generated in. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + ExpenseLineItem: + discriminated: false + docs: The line's item. + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineAccount: + discriminated: false + docs: The expense's payment account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineContact: + discriminated: false + docs: The expense's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: accounting_v3.yml + inline: true + ExpenseLine: + docs: |- + # The ExpenseLine Object + ### Description + The `ExpenseLine` object is used to represent an expense's line items. + + ### Usage Example + Fetch from the `GET Expense` endpoint and view the expense's line items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + item: + type: optional + docs: The line's item. + net_amount: + type: optional + docs: The line's net amount. + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The expense line item's associated tracking categories. + company: + type: optional + docs: The company the expense belongs to. + validation: + format: uuid + employee: + type: optional + docs: The employee this overall transaction relates to. + currency: + type: optional + docs: >- + The expense line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + account: + type: optional + docs: The expense's payment account. + contact: + type: optional + docs: The expense's contact. + project: optional + description: + type: optional + docs: The description of the item that was purchased by the company. + exchange_rate: + type: optional + docs: The expense line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: accounting_v3.yml + ExpenseLineRequestItem: + discriminated: false + docs: The line's item. + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineRequestTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineRequestEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineRequestCurrency: + discriminated: false + docs: >- + The expense line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineRequestAccount: + discriminated: false + docs: The expense's payment account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineRequestContact: + discriminated: false + docs: The expense's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineRequestProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: accounting_v3.yml + inline: true + ExpenseLineRequest: + docs: |- + # The ExpenseLine Object + ### Description + The `ExpenseLine` object is used to represent an expense's line items. + + ### Usage Example + Fetch from the `GET Expense` endpoint and view the expense's line items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + item: + type: optional + docs: The line's item. + net_amount: + type: optional + docs: The line's net amount. + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The expense line item's associated tracking categories. + company: + type: optional + docs: The company the expense belongs to. + validation: + format: uuid + employee: + type: optional + docs: The employee this overall transaction relates to. + currency: + type: optional + docs: >- + The expense line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + account: + type: optional + docs: The expense's payment account. + contact: + type: optional + docs: The expense's contact. + project: optional + description: + type: optional + docs: The description of the item that was purchased by the company. + exchange_rate: + type: optional + docs: The expense line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + ExpenseRequestAccount: + discriminated: false + docs: The expense's payment account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + ExpenseRequestContact: + discriminated: false + docs: The expense's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + ExpenseRequestCompany: + discriminated: false + docs: The company the expense belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + ExpenseRequestEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: accounting_v3.yml + inline: true + ExpenseRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + ExpenseRequestAccountingPeriod: + discriminated: false + docs: The accounting period that the Expense was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + ExpenseRequest: + docs: >- + # The Expense Object + + ### Description + + The `Expense` object is used to represent a direct purchase by a business, + typically made with a check, credit card, or cash. Each `Expense` object + is dedicated to a grouping of expenses, with each expense recorded in the + lines object. + + + The `Expense` object is used also used to represent refunds to direct + purchases. Refunds can be distinguished from purchases by the amount sign + of the records. Expense objects with a negative amount are purchases and + `Expense` objects with a positive amount are refunds to those purchases. + + + ### Usage Example + + Fetch from the `GET Expense` endpoint and view a company's expense. + properties: + transaction_date: + type: optional + docs: When the transaction occurred. + account: + type: optional + docs: The expense's payment account. + contact: + type: optional + docs: The expense's contact. + total_amount: + type: optional + docs: The expense's total amount. + sub_total: + type: optional + docs: The expense's total amount before tax. + total_tax_amount: + type: optional + docs: The expense's total tax amount. + currency: + type: optional + docs: >- + The expense's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The expense's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + company: + type: optional + docs: The company the expense belongs to. + employee: + type: optional + docs: The employee this overall transaction relates to. + memo: + type: optional + docs: The expense's private note. + lines: optional> + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the Expense was generated in. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + ExpenseResponse: + properties: + model: Expense + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: accounting_v3.yml + ExternalTargetFieldApiResponse: + properties: + Account: optional> + AccountingAttachment: optional> + BalanceSheet: optional> + CashFlowStatement: optional> + CompanyInfo: optional> + Contact: optional> + IncomeStatement: optional> + CreditNote: optional> + Item: optional> + PurchaseOrder: optional> + TrackingCategory: optional> + JournalEntry: optional> + TaxRate: optional> + Invoice: optional> + Payment: optional> + Expense: optional> + VendorCredit: optional> + Transaction: optional> + AccountingPeriod: optional> + GeneralLedgerTransaction: optional> + BankFeedAccount: optional> + Employee: optional> + PaymentMethod: optional> + Project: optional> + PaymentTerm: optional> + source: + openapi: accounting_v3.yml + FeedStatusEnum: + enum: + - ACTIVE + - INACTIVE + docs: |- + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + source: + openapi: accounting_v3.yml + FieldFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: accounting_v3.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: accounting_v3.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: accounting_v3.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: accounting_v3.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: accounting_v3.yml + FieldMappingApiInstanceResponse: + properties: + Account: optional> + AccountingAttachment: optional> + BalanceSheet: optional> + CashFlowStatement: optional> + CompanyInfo: optional> + Contact: optional> + IncomeStatement: optional> + CreditNote: optional> + Item: optional> + PurchaseOrder: optional> + TrackingCategory: optional> + JournalEntry: optional> + TaxRate: optional> + Invoice: optional> + Payment: optional> + Expense: optional> + VendorCredit: optional> + Transaction: optional> + AccountingPeriod: optional> + GeneralLedgerTransaction: optional> + BankFeedAccount: optional> + Employee: optional> + PaymentMethod: optional> + Project: optional> + PaymentTerm: optional> + source: + openapi: accounting_v3.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: accounting_v3.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: accounting_v3.yml + FieldTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: accounting_v3.yml + GeneralLedgerTransactionUnderlyingTransactionType: + discriminated: false + docs: |- + The type of the underlying transaction. + + * `INVOICE` - INVOICE + * `EXPENSE` - EXPENSE + * `TRANSACTION` - TRANSACTION + * `JOURNAL_ENTRY` - JOURNAL_ENTRY + * `PAYMENT` - PAYMENT + * `VENDOR_CREDIT` - VENDOR_CREDIT + * `CREDIT_NOTE` - CREDIT_NOTE + union: + - UnderlyingTransactionTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionAccountingPeriod: + discriminated: false + docs: The accounting period that the GeneralLedgerTransaction was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionCompany: + discriminated: false + docs: The company the GeneralLedgerTransaction belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionGeneralLedgerTransactionLinesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - GeneralLedgerTransactionLine + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransaction: + docs: >- + # The GeneralLedgerTransaction Object + + ### Description + + A General Ledger Entry is a record of a financial transaction that is + posted to the general ledger, the central repository of a company’s + financial data. + + + The `GeneralLedgerTransaction` object is a singular endpoint to pull all + transactions posted to a company’s general ledger. The transaction that + generated the `GeneralLedgerTransaction` can be found by referencing the + `underlying_transaction_type` and `underlying_transaction_remote_id` + fields. + + + The lines of a `GeneralLedgerTransaction` object will always have equal + amounts of debits and credits. + + + ### Usage Example + + Fetch from the `GET GeneralLedgerTransaction` endpoint and view a general + ledger transaction. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + underlying_transaction_remote_id: + type: optional + docs: The third party remote ID of the underlying transaction. + validation: + maxLength: 50 + underlying_transaction_type: + type: optional + docs: |- + The type of the underlying transaction. + + * `INVOICE` - INVOICE + * `EXPENSE` - EXPENSE + * `TRANSACTION` - TRANSACTION + * `JOURNAL_ENTRY` - JOURNAL_ENTRY + * `PAYMENT` - PAYMENT + * `VENDOR_CREDIT` - VENDOR_CREDIT + * `CREDIT_NOTE` - CREDIT_NOTE + accounting_period: + type: optional + docs: >- + The accounting period that the GeneralLedgerTransaction was generated + in. + company: + type: optional + docs: The company the GeneralLedgerTransaction belongs to. + remote_updated_at: + type: optional + docs: When the third party's GeneralLedgerTransaction entry was updated. + remote_created_at: + type: optional + docs: When the third party's GeneralLedgerTransaction entry was created. + tracking_categories: optional>> + posting_date: + type: optional + docs: The date that the transaction was posted to the general ledger. + general_ledger_transaction_lines: + type: >- + optional> + docs: A list of “General Ledger Transaction Applied to Lines” objects. + access: read-only + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + GeneralLedgerTransactionLineAccount: + discriminated: false + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionLineCompany: + discriminated: false + docs: The company the GeneralLedgerTransaction belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionLineEmployee: + discriminated: false + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionLineContact: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionLineProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionLineTransactionCurrency: + discriminated: false + docs: >- + The transaction currency that the transaction is made in. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionLineTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionLineItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: accounting_v3.yml + inline: true + GeneralLedgerTransactionLine: + docs: >- + # The GeneralLedgerTransactionLineSerializer Object + + ### Description + + The `GeneralLedgerTransactionLineSerializer` object represents general + ledger transaction line item. + + + ### Usage Example Fetch from the `GET + GeneralLedgerTransactionLineSerializer` endpoint and view an + + `GeneralLedgerTransaction` line item. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + account: optional + company: + type: optional + docs: The company the GeneralLedgerTransaction belongs to. + employee: optional + contact: optional + project: optional + base_currency: + type: optional + docs: >- + The base currency of the transaction + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + transaction_currency: + type: optional + docs: >- + The transaction currency that the transaction is made in. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: >- + The exchange rate between the base currency and the transaction + currency. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + description: + type: optional + docs: A description of the line item. + tracking_categories: + type: optional> + access: read-only + debit_amount: string + credit_amount: string + item: optional + foreign_debit_amount: string + foreign_credit_amount: string + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + IncomeStatementCurrency: + discriminated: false + docs: >- + The income statement's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + IncomeStatementCompany: + discriminated: false + docs: The company the income statement belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + IncomeStatement: + docs: >- + # The IncomeStatement Object + + ### Description + + The `IncomeStatement` object is used to represent a company’s income, the + cost of sales, operating expenses, and other non-operating expenses. The + object also includes other important values like gross profit, gross + operating profit, and net income. This represents a period of time (month, + quarter, or year). + + + ### Usage Example + + Fetch from the `GET IncomeStatement` endpoint and view a company's income + statement for a given period. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The income statement's name. + currency: + type: optional + docs: >- + The income statement's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: optional + docs: The company the income statement belongs to. + start_period: + type: optional + docs: The income statement's start period. + end_period: + type: optional + docs: The income statement's end period. + income: + type: optional> + access: read-only + cost_of_sales: + type: optional> + access: read-only + gross_profit: + type: optional + docs: The revenue minus the cost of sale. + operating_expenses: + type: optional> + access: read-only + net_operating_income: + type: optional + docs: The revenue minus the operating expenses. + non_operating_expenses: + type: optional> + access: read-only + net_income: + type: optional + docs: The gross profit minus the total expenses. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: accounting_v3.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: accounting_v3.yml + InvoiceContact: + discriminated: false + docs: The invoice's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + InvoiceCompany: + discriminated: false + docs: The company the invoice belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + InvoiceEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: accounting_v3.yml + inline: true + InvoiceCurrency: + discriminated: false + docs: >- + The invoice's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + InvoicePaymentTerm: + discriminated: false + docs: The payment term that applies to this transaction. + union: + - type: string + validation: + format: uuid + - PaymentTerm + source: + openapi: accounting_v3.yml + inline: true + InvoiceStatus: + discriminated: false + docs: |- + The status of the invoice. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + union: + - InvoiceStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + InvoiceTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + InvoiceAccountingPeriod: + discriminated: false + docs: The accounting period that the Invoice was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + InvoicePurchaseOrdersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PurchaseOrder + source: + openapi: accounting_v3.yml + inline: true + InvoicePaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: accounting_v3.yml + inline: true + InvoiceAppliedPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItem + source: + openapi: accounting_v3.yml + inline: true + InvoiceAppliedCreditNotesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - CreditNoteApplyLineForInvoice + source: + openapi: accounting_v3.yml + inline: true + InvoiceAppliedVendorCreditsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - VendorCreditApplyLineForInvoice + source: + openapi: accounting_v3.yml + inline: true + Invoice: + docs: >- + # The Invoice Object + + ### Description + + The `Invoice` object represents an itemized record of goods and/or + services sold to a customer or bought from a vendor. + + + + Represents a Bill when the `Invoice` type is `ACCOUNTS_PAYABLE`. + References an Invoice when the `Invoice` type is `ACCOUNTS_RECEIVABLE`. + + + ### Usage Example + + Fetch from the `LIST Invoices` endpoint and view a company's invoices. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + type: + type: optional + docs: >- + Whether the invoice is an accounts receivable or accounts payable. If + `type` is `ACCOUNTS_PAYABLE`, the invoice is a bill. If `type` is + `ACCOUNTS_RECEIVABLE`, it is an invoice. + + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + contact: + type: optional + docs: The invoice's contact. + number: + type: optional + docs: The invoice's number. + issue_date: + type: optional + docs: The invoice's issue date. + due_date: + type: optional + docs: The invoice's due date. + paid_on_date: + type: optional + docs: The invoice's paid date. + memo: + type: optional + docs: The invoice's private note. + company: + type: optional + docs: The company the invoice belongs to. + employee: + type: optional + docs: The employee this overall transaction relates to. + currency: + type: optional + docs: >- + The invoice's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The invoice's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + payment_term: + type: optional + docs: The payment term that applies to this transaction. + total_discount: + type: optional + docs: The total discounts applied to the total cost. + sub_total: + type: optional + docs: The total amount being paid before taxes. + status: + type: optional + docs: |- + The status of the invoice. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + total_tax_amount: + type: optional + docs: The total amount being paid in taxes. + total_amount: + type: optional + docs: The invoice's total amount. + balance: + type: optional + docs: The invoice's remaining balance. + remote_updated_at: + type: optional + docs: When the third party's invoice entry was updated. + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the Invoice was generated in. + purchase_orders: optional>> + payments: + type: optional>> + docs: Array of `Payment` object IDs. + applied_payments: + type: optional>> + docs: >- + A list of the Payment Applied to Lines common models related to a + given Invoice, Credit Note, or Journal Entry. + line_items: + type: optional> + access: read-only + applied_credit_notes: + type: optional> + docs: '`CreditNoteApplyLines` applied to the Invoice.' + access: read-only + applied_vendor_credits: + type: optional> + docs: '`VendorCreditApplyLines` applied to the Invoice.' + access: read-only + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + InvoiceLineItemEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemContact: + discriminated: false + docs: The invoice's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemCurrency: + discriminated: false + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemAccount: + discriminated: false + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItem: + docs: >- + # The InvoiceLineItem Object + + ### Description + + The `InvoiceLineItem` object represents an itemized record of goods and/or + services sold to a customer. + + + ### Usage Example + + Fetch from the `GET Invoice` endpoint and view the invoice's line items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + description: + type: optional + docs: The line item's description. + unit_price: + type: optional + docs: The line item's unit price. + quantity: + type: optional + docs: The line item's quantity. + total_amount: + type: optional + docs: The line item's total amount. + employee: + type: optional + docs: The employee this overall transaction relates to. + project: optional + contact: + type: optional + docs: The invoice's contact. + currency: + type: optional + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + item: optional + account: optional + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The invoice line item's associated tracking categories. + company: + type: optional + docs: The company the invoice belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + InvoiceLineItemRequestEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemRequestProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemRequestContact: + discriminated: false + docs: The invoice's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemRequestCurrency: + discriminated: false + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemRequestItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemRequestAccount: + discriminated: false + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemRequestTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + InvoiceLineItemRequest: + docs: >- + # The InvoiceLineItem Object + + ### Description + + The `InvoiceLineItem` object represents an itemized record of goods and/or + services sold to a customer. + + + ### Usage Example + + Fetch from the `GET Invoice` endpoint and view the invoice's line items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + description: + type: optional + docs: The line item's description. + unit_price: + type: optional + docs: The line item's unit price. + quantity: + type: optional + docs: The line item's quantity. + total_amount: + type: optional + docs: The line item's total amount. + employee: + type: optional + docs: The employee this overall transaction relates to. + project: optional + contact: + type: optional + docs: The invoice's contact. + currency: + type: optional + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + item: optional + account: optional + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The invoice line item's associated tracking categories. + company: + type: optional + docs: The company the invoice belongs to. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + InvoiceRequestType: + discriminated: false + docs: >- + Whether the invoice is an accounts receivable or accounts payable. If + `type` is `ACCOUNTS_PAYABLE`, the invoice is a bill. If `type` is + `ACCOUNTS_RECEIVABLE`, it is an invoice. + + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + union: + - InvoiceTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + InvoiceRequestContact: + discriminated: false + docs: The invoice's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + InvoiceRequestEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: accounting_v3.yml + inline: true + InvoiceRequestStatus: + discriminated: false + docs: |- + The status of the invoice. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + union: + - InvoiceStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + InvoiceRequestCompany: + discriminated: false + docs: The company the invoice belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + InvoiceRequestCurrency: + discriminated: false + docs: >- + The invoice's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + InvoiceRequestPaymentTerm: + discriminated: false + docs: The payment term that applies to this transaction. + union: + - type: string + validation: + format: uuid + - PaymentTerm + source: + openapi: accounting_v3.yml + inline: true + InvoiceRequestPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: accounting_v3.yml + inline: true + InvoiceRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + InvoiceRequestPurchaseOrdersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PurchaseOrder + source: + openapi: accounting_v3.yml + inline: true + InvoiceRequest: + docs: >- + # The Invoice Object + + ### Description + + The `Invoice` object represents an itemized record of goods and/or + services sold to a customer or bought from a vendor. + + + + Represents a Bill when the `Invoice` type is `ACCOUNTS_PAYABLE`. + References an Invoice when the `Invoice` type is `ACCOUNTS_RECEIVABLE`. + + + ### Usage Example + + Fetch from the `LIST Invoices` endpoint and view a company's invoices. + properties: + type: + type: optional + docs: >- + Whether the invoice is an accounts receivable or accounts payable. If + `type` is `ACCOUNTS_PAYABLE`, the invoice is a bill. If `type` is + `ACCOUNTS_RECEIVABLE`, it is an invoice. + + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + contact: + type: optional + docs: The invoice's contact. + number: + type: optional + docs: The invoice's number. + issue_date: + type: optional + docs: The invoice's issue date. + due_date: + type: optional + docs: The invoice's due date. + paid_on_date: + type: optional + docs: The invoice's paid date. + employee: + type: optional + docs: The employee this overall transaction relates to. + memo: + type: optional + docs: The invoice's private note. + status: + type: optional + docs: |- + The status of the invoice. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + company: + type: optional + docs: The company the invoice belongs to. + currency: + type: optional + docs: >- + The invoice's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The invoice's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + total_discount: + type: optional + docs: The total discounts applied to the total cost. + sub_total: + type: optional + docs: The total amount being paid before taxes. + payment_term: + type: optional + docs: The payment term that applies to this transaction. + total_tax_amount: + type: optional + docs: The total amount being paid in taxes. + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + total_amount: + type: optional + docs: The invoice's total amount. + balance: + type: optional + docs: The invoice's remaining balance. + payments: + type: optional>> + docs: Array of `Payment` object IDs. + tracking_categories: optional>> + line_items: optional> + purchase_orders: optional>> + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + InvoiceResponse: + properties: + model: Invoice + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + InvoiceStatusEnum: + enum: + - PAID + - DRAFT + - SUBMITTED + - PARTIALLY_PAID + - OPEN + - VOID + docs: |- + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + source: + openapi: accounting_v3.yml + InvoiceTypeEnum: + enum: + - ACCOUNTS_RECEIVABLE + - ACCOUNTS_PAYABLE + docs: |- + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + source: + openapi: accounting_v3.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: accounting_v3.yml + ItemStatus: + discriminated: false + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: accounting_v3.yml + inline: true + ItemType: + discriminated: false + docs: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + union: + - Type2BbEnum + - string + source: + openapi: accounting_v3.yml + inline: true + ItemPurchaseAccount: + discriminated: false + docs: References the default account used to record a purchase of the item. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + ItemSalesAccount: + discriminated: false + docs: References the default account used to record a sale. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + ItemCompany: + discriminated: false + docs: The company the item belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + ItemPurchaseTaxRate: + discriminated: false + docs: The default purchase tax rate for this item. + union: + - type: string + validation: + format: uuid + - TaxRate + source: + openapi: accounting_v3.yml + inline: true + ItemSalesTaxRate: + discriminated: false + docs: The default sales tax rate for this item. + union: + - type: string + validation: + format: uuid + - TaxRate + source: + openapi: accounting_v3.yml + inline: true + Item: + docs: |- + # The Item Object + ### Description + The `Item` object refers to the goods involved in a transaction. + + ### Usage Example + Fetch from the `LIST Items` endpoint and view a company's items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The item's name. + status: + type: optional + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + type: + type: optional + docs: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + unit_price: + type: optional + docs: The item's unit price. + purchase_price: + type: optional + docs: The price at which the item is purchased from a vendor. + purchase_account: + type: optional + docs: References the default account used to record a purchase of the item. + sales_account: + type: optional + docs: References the default account used to record a sale. + company: + type: optional + docs: The company the item belongs to. + purchase_tax_rate: + type: optional + docs: The default purchase tax rate for this item. + sales_tax_rate: + type: optional + docs: The default sales tax rate for this item. + remote_updated_at: + type: optional + docs: When the third party's item note was updated. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + ItemFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - uuid + * `number` - url + * `date` - email + * `datetime` - phone + * `bool` - currency + * `list` - decimal + source: + openapi: accounting_v3.yml + ItemRequestRequestStatus: + discriminated: false + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: accounting_v3.yml + inline: true + ItemRequestRequestType: + discriminated: false + docs: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + union: + - Type2BbEnum + - string + source: + openapi: accounting_v3.yml + inline: true + ItemRequestRequestPurchaseAccount: + discriminated: false + docs: References the default account used to record a purchase of the item. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + ItemRequestRequestSalesAccount: + discriminated: false + docs: References the default account used to record a sale. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + ItemRequestRequestCompany: + discriminated: false + docs: The company the item belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + ItemRequestRequestPurchaseTaxRate: + discriminated: false + docs: The default purchase tax rate for this item. + union: + - type: string + validation: + format: uuid + - TaxRate + source: + openapi: accounting_v3.yml + inline: true + ItemRequestRequestSalesTaxRate: + discriminated: false + docs: The default sales tax rate for this item. + union: + - type: string + validation: + format: uuid + - TaxRate + source: + openapi: accounting_v3.yml + inline: true + ItemRequestRequest: + docs: |- + # The Item Object + ### Description + The `Item` object refers to the goods involved in a transaction. + + ### Usage Example + Fetch from the `LIST Items` endpoint and view a company's items. + properties: + name: + type: optional + docs: The item's name. + status: + type: optional + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + type: + type: optional + docs: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + unit_price: + type: optional + docs: The item's unit price. + purchase_price: + type: optional + docs: The price at which the item is purchased from a vendor. + purchase_account: + type: optional + docs: References the default account used to record a purchase of the item. + sales_account: + type: optional + docs: References the default account used to record a sale. + company: + type: optional + docs: The company the item belongs to. + purchase_tax_rate: + type: optional + docs: The default purchase tax rate for this item. + sales_tax_rate: + type: optional + docs: The default sales tax rate for this item. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + ItemResponse: + properties: + model: Item + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + ItemSchema: + properties: + item_type: optional + item_format: optional + item_choices: optional> + source: + openapi: accounting_v3.yml + ItemTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: accounting_v3.yml + JournalEntryPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: accounting_v3.yml + inline: true + JournalEntryAppliedPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItem + source: + openapi: accounting_v3.yml + inline: true + JournalEntryCurrency: + discriminated: false + docs: >- + The journal's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + JournalEntryCompany: + discriminated: false + docs: The company the journal entry belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + JournalEntryTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + JournalEntryPostingStatus: + discriminated: false + docs: |- + The journal's posting status. + + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + union: + - PostingStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + JournalEntryAccountingPeriod: + discriminated: false + docs: The accounting period that the JournalEntry was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + JournalEntry: + docs: >- + # The JournalEntry Object + + ### Description + + A `JournalEntry` is a record of a transaction or event that is entered + into a company's accounting system. + + + The `JournalEntry` common model contains records that are automatically + created as a result of a certain type of transaction, like an Invoice, and + records that are manually created against a company’s ledger. + + + The lines of a given `JournalEntry` object should always sum to 0. A + positive `net_amount` means the line represents a debit and a negative + net_amount represents a credit. + + + ### Usage Example + + Fetch from the `GET JournalEntry` endpoint and view a company's journey + entry. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + transaction_date: + type: optional + docs: The journal entry's transaction date. + payments: + type: optional>> + docs: Array of `Payment` object IDs. + applied_payments: + type: optional>> + docs: >- + A list of the Payment Applied to Lines common models related to a + given Invoice, Credit Note, or Journal Entry. + memo: + type: optional + docs: The journal entry's private note. + currency: + type: optional + docs: >- + The journal's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The journal entry's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the journal entry belongs to. + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + lines: + type: optional> + access: read-only + journal_number: + type: optional + docs: Reference number for identifying journal entries. + validation: + maxLength: 70 + tracking_categories: optional>> + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + posting_status: + type: optional + docs: |- + The journal's posting status. + + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + accounting_period: + type: optional + docs: The accounting period that the JournalEntry was generated in. + remote_created_at: + type: optional + docs: When the third party's journal entry was created. + remote_updated_at: + type: optional + docs: When the third party's journal entry was updated. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + JournalEntryRequestPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: accounting_v3.yml + inline: true + JournalEntryRequestCurrency: + discriminated: false + docs: >- + The journal's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + JournalEntryRequestCompany: + discriminated: false + docs: The company the journal entry belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + JournalEntryRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + JournalEntryRequestPostingStatus: + discriminated: false + docs: |- + The journal's posting status. + + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + union: + - PostingStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + JournalEntryRequest: + docs: >- + # The JournalEntry Object + + ### Description + + The `JournalEntry` object is used to get a record of all manually created + entries made in a company’s general ledger. The journal line items for + each journal entry should sum to zero. + + + ### Usage Example + + Fetch from the `GET JournalEntry` endpoint and view a company's journey + entry. + properties: + transaction_date: + type: optional + docs: The journal entry's transaction date. + payments: + type: optional>> + docs: Array of `Payment` object IDs. + memo: + type: optional + docs: The journal entry's private note. + currency: + type: optional + docs: >- + The journal's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The journal entry's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the journal entry belongs to. + tracking_categories: optional>> + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + lines: optional> + journal_number: + type: optional + docs: Reference number for identifying journal entries. + validation: + maxLength: 70 + posting_status: + type: optional + docs: |- + The journal's posting status. + + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + JournalEntryResponse: + properties: + model: JournalEntry + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + JournalLineAccount: + discriminated: false + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + JournalLineTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + JournalLineTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + JournalLineCurrency: + discriminated: false + docs: >- + The journal line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + JournalLineProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: accounting_v3.yml + inline: true + JournalLine: + docs: >- + # The JournalLine Object + + ### Description + + The `JournalLine` object is used to represent a journal entry's line + items. + + + ### Usage Example + + Fetch from the `GET JournalEntry` endpoint and view the journal entry's + line items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + account: optional + net_amount: + type: optional + docs: The value of the line item including taxes and other fees. + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The journal line item's associated tracking categories. + currency: + type: optional + docs: >- + The journal line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: optional + docs: The company the journal entry belongs to. + validation: + format: uuid + employee: + type: optional + validation: + format: uuid + project: optional + contact: + type: optional + validation: + format: uuid + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + description: + type: optional + docs: The line's description. + exchange_rate: + type: optional + docs: The journal line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + JournalLineRequestAccount: + discriminated: false + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + JournalLineRequestTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + JournalLineRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + JournalLineRequestCurrency: + discriminated: false + docs: >- + The journal line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + JournalLineRequestProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: accounting_v3.yml + inline: true + JournalLineRequest: + docs: >- + # The JournalLine Object + + ### Description + + The `JournalLine` object is used to represent a journal entry's line + items. + + + ### Usage Example + + Fetch from the `GET JournalEntry` endpoint and view the journal entry's + line items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + account: optional + net_amount: + type: optional + docs: The value of the line item including taxes and other fees. + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The journal line item's associated tracking categories. + currency: + type: optional + docs: >- + The journal line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: optional + docs: The company the journal entry belongs to. + validation: + format: uuid + employee: + type: optional + validation: + format: uuid + project: optional + contact: + type: optional + validation: + format: uuid + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + description: + type: optional + docs: The line's description. + exchange_rate: + type: optional + docs: The journal line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: accounting_v3.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: accounting_v3.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: accounting_v3.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: accounting_v3.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: accounting_v3.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: accounting_v3.yml + MethodTypeEnum: + enum: + - CREDIT_CARD + - DEBIT_CARD + - ACH + - CASH + - CHECK + docs: |- + * `CREDIT_CARD` - CREDIT_CARD + * `DEBIT_CARD` - DEBIT_CARD + * `ACH` - ACH + * `CASH` - CASH + * `CHECK` - CHECK + source: + openapi: accounting_v3.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: accounting_v3.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: accounting_v3.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: accounting_v3.yml + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: accounting_v3.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedAccountList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedAccountingAttachmentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedAccountingPeriodList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedBalanceSheetList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedBankFeedAccountList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedBankFeedTransactionList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedCashFlowStatementList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedCompanyInfoList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedContactList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedCreditNoteList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedEmployeeList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedExpenseList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedGeneralLedgerTransactionList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedIncomeStatementList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedInvoiceList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedItemList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedJournalEntryList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedPaymentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedPaymentMethodList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedPaymentTermList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedProjectList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedPurchaseOrderList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedRemoteFieldClassList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedTaxRateList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedTrackingCategoryList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedTransactionList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PaginatedVendorCreditList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: accounting_v3.yml + PatchedItemRequestRequestStatus: + discriminated: false + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: accounting_v3.yml + inline: true + PatchedItemRequestRequestType: + discriminated: false + docs: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + union: + - Type2BbEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PatchedItemRequestRequest: + docs: |- + # The Item Object + ### Description + The `Item` object refers to the goods involved in a transaction. + + ### Usage Example + Fetch from the `LIST Items` endpoint and view a company's items. + properties: + name: + type: optional + docs: The item's name. + status: + type: optional + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + type: + type: optional + docs: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + unit_price: + type: optional + docs: The item's unit price. + purchase_price: + type: optional + docs: The price at which the item is purchased from a vendor. + purchase_account: + type: optional + docs: References the default account used to record a purchase of the item. + validation: + format: uuid + sales_account: + type: optional + docs: References the default account used to record a sale. + validation: + format: uuid + company: + type: optional + docs: The company the item belongs to. + validation: + format: uuid + purchase_tax_rate: + type: optional + docs: The default purchase tax rate for this item. + validation: + format: uuid + sales_tax_rate: + type: optional + docs: The default sales tax rate for this item. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + PatchedPaymentRequestContact: + discriminated: false + docs: The supplier, or customer involved in the payment. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + PatchedPaymentRequestAccount: + discriminated: false + docs: The supplier’s or customer’s account in which the payment is made. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + PatchedPaymentRequestPaymentMethod: + discriminated: false + docs: The method which this payment was made by. + union: + - type: string + validation: + format: uuid + - PaymentMethod + source: + openapi: accounting_v3.yml + inline: true + PatchedPaymentRequestCurrency: + discriminated: false + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PatchedPaymentRequestCompany: + discriminated: false + docs: The company the payment belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + PatchedPaymentRequestType: + discriminated: false + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + union: + - PaymentTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PatchedPaymentRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + PatchedPaymentRequestAccountingPeriod: + discriminated: false + docs: The accounting period that the Payment was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + PatchedPaymentRequestAppliedToLinesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItemRequest + source: + openapi: accounting_v3.yml + inline: true + PatchedPaymentRequest: + docs: >- + # The Payment Object + + ### Description + + The `Payment` object represents general payments made towards a specific + transaction. + + + ### Usage Example + + Fetch from the `GET Payment` endpoint and view an invoice's payment. + properties: + transaction_date: + type: optional + docs: The payment's transaction date. + contact: + type: optional + docs: The supplier, or customer involved in the payment. + account: + type: optional + docs: The supplier’s or customer’s account in which the payment is made. + payment_method: + type: optional + docs: The method which this payment was made by. + currency: + type: optional + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The payment's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the payment belongs to. + total_amount: + type: optional + docs: >- + The total amount of money being paid to the supplier, or customer, + after taxes. + type: + type: optional + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the Payment was generated in. + applied_to_lines: + type: optional> + docs: A list of “Payment Applied to Lines” objects. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + PaymentContact: + discriminated: false + docs: The supplier, or customer involved in the payment. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + PaymentAccount: + discriminated: false + docs: The supplier’s or customer’s account in which the payment is made. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + PaymentPaymentMethod: + discriminated: false + docs: The method which this payment was made by. + union: + - type: string + validation: + format: uuid + - PaymentMethod + source: + openapi: accounting_v3.yml + inline: true + PaymentCurrency: + discriminated: false + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PaymentCompany: + discriminated: false + docs: The company the payment belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + PaymentType: + discriminated: false + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + union: + - PaymentTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PaymentTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + PaymentAccountingPeriod: + discriminated: false + docs: The accounting period that the Payment was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + PaymentAppliedToLinesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItem + source: + openapi: accounting_v3.yml + inline: true + Payment: + docs: >- + # The Payment Object + + ### Description + + The `Payment` object represents general payments made towards a specific + transaction. + + + ### Usage Example + + Fetch from the `GET Payment` endpoint and view an invoice's payment. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + transaction_date: + type: optional + docs: The payment's transaction date. + contact: + type: optional + docs: The supplier, or customer involved in the payment. + account: + type: optional + docs: The supplier’s or customer’s account in which the payment is made. + payment_method: + type: optional + docs: The method which this payment was made by. + currency: + type: optional + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The payment's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the payment belongs to. + total_amount: + type: optional + docs: >- + The total amount of money being paid to the supplier, or customer, + after taxes. + type: + type: optional + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the Payment was generated in. + applied_to_lines: + type: optional> + docs: A list of “Payment Applied to Lines” objects. + remote_updated_at: + type: optional + docs: When the third party's payment entry was updated. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + PaymentLineItem: + docs: >- + # The PaymentLineItem Object + + ### Description + + The `PaymentLineItem` object is an applied-to-line on a `Payment` that can + either be a `Invoice`, `CreditNote`, or `JournalEntry`. + + + ### Usage Example + + `Payment` will have a field called `applied-to-lines` which will be an + array of `PaymentLineItemInternalMappingSerializer` objects that can + either be a `Invoice`, `CreditNote`, or `JournalEntry`. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + applied_amount: + type: optional + docs: The amount being applied to the transaction. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + applied_date: + type: optional + docs: The date the payment portion is applied. + related_object_id: + type: optional + docs: >- + The Merge ID of the transaction the payment portion is being applied + to. + validation: + format: uuid + related_object_type: + type: optional + docs: >- + The type of transaction the payment portion is being applied to. + Possible values include: INVOICE, JOURNAL_ENTRY, or CREDIT_NOTE. + source: + openapi: accounting_v3.yml + PaymentLineItemRequest: + docs: >- + # The PaymentLineItem Object + + ### Description + + The `PaymentLineItem` object is an applied-to-line on a `Payment` that can + either be a `Invoice`, `CreditNote`, or `JournalEntry`. + + + ### Usage Example + + `Payment` will have a field called `applied-to-lines` which will be an + array of `PaymentLineItemInternalMappingSerializer` objects that can + either be a `Invoice`, `CreditNote`, or `JournalEntry`. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + applied_amount: + type: optional + docs: The amount being applied to the transaction. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + applied_date: + type: optional + docs: The date the payment portion is applied. + related_object_id: + type: optional + docs: >- + The Merge ID of the transaction the payment portion is being applied + to. + validation: + format: uuid + related_object_type: + type: optional + docs: >- + The type of transaction the payment portion is being applied to. + Possible values include: INVOICE, JOURNAL_ENTRY, or CREDIT_NOTE. + validation: + minLength: 1 + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + PaymentMethodMethodType: + discriminated: false + docs: |- + The type of the payment method. + + * `CREDIT_CARD` - CREDIT_CARD + * `DEBIT_CARD` - DEBIT_CARD + * `ACH` - ACH + * `CASH` - CASH + * `CHECK` - CHECK + union: + - MethodTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PaymentMethod: + docs: >- + # The PaymentMethod Object + + ### Description + + The `PaymentMethod` object defines how a payment against an invoice is + made. + + + ### Usage Example + + Fetch from the `GET PaymentMethod` endpoint and view payment method + information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + method_type: + type: PaymentMethodMethodType + docs: |- + The type of the payment method. + + * `CREDIT_CARD` - CREDIT_CARD + * `DEBIT_CARD` - DEBIT_CARD + * `ACH` - ACH + * `CASH` - CASH + * `CHECK` - CHECK + name: + type: string + docs: The payment method’s name + validation: + maxLength: 255 + is_active: + type: optional + docs: '`True` if the payment method is active, `False` if not.' + remote_updated_at: + type: optional + docs: When the third party's payment method was updated. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + PaymentRequestContact: + discriminated: false + docs: The supplier, or customer involved in the payment. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + PaymentRequestAccount: + discriminated: false + docs: The supplier’s or customer’s account in which the payment is made. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + PaymentRequestPaymentMethod: + discriminated: false + docs: The method which this payment was made by. + union: + - type: string + validation: + format: uuid + - PaymentMethod + source: + openapi: accounting_v3.yml + inline: true + PaymentRequestCurrency: + discriminated: false + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PaymentRequestCompany: + discriminated: false + docs: The company the payment belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + PaymentRequestType: + discriminated: false + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + union: + - PaymentTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PaymentRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + PaymentRequestAccountingPeriod: + discriminated: false + docs: The accounting period that the Payment was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + PaymentRequestAppliedToLinesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItemRequest + source: + openapi: accounting_v3.yml + inline: true + PaymentRequest: + docs: >- + # The Payment Object + + ### Description + + The `Payment` object represents general payments made towards a specific + transaction. + + + ### Usage Example + + Fetch from the `GET Payment` endpoint and view an invoice's payment. + properties: + transaction_date: + type: optional + docs: The payment's transaction date. + contact: + type: optional + docs: The supplier, or customer involved in the payment. + account: + type: optional + docs: The supplier’s or customer’s account in which the payment is made. + payment_method: + type: optional + docs: The method which this payment was made by. + currency: + type: optional + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The payment's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the payment belongs to. + total_amount: + type: optional + docs: >- + The total amount of money being paid to the supplier, or customer, + after taxes. + type: + type: optional + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the Payment was generated in. + applied_to_lines: + type: optional> + docs: A list of “Payment Applied to Lines” objects. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + PaymentResponse: + properties: + model: Payment + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + PaymentTermCompany: + discriminated: false + docs: The subsidiary that the payment term belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + PaymentTerm: + docs: >- + # The PaymentTerm Object + + ### Description + + The `PaymentTerm` object is the agreed-upon conditions between a buyer and + a seller that define the timing, + + amount, and conditions under which payment for goods or services must be + made. + + + ### Usage Example + + Fetch from the `GET PaymentTerm` endpoint and view payment term + information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: string + docs: The name of the payment term. + validation: + maxLength: 255 + is_active: + type: optional + docs: '`True` if the payment term is active, `False` if not.' + company: + type: optional + docs: The subsidiary that the payment term belongs to. + days_until_due: + type: optional + docs: The number of days after the invoice date that payment is due. + validation: + min: -2147483648 + max: 2147483647 + discount_days: + type: optional + docs: The number of days the invoice must be paid before discounts expire. + validation: + min: -2147483648 + max: 2147483647 + remote_last_modified_at: + type: optional + docs: When the third party's payment term was modified. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + PaymentTypeEnum: + enum: + - ACCOUNTS_PAYABLE + - ACCOUNTS_RECEIVABLE + docs: |- + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + source: + openapi: accounting_v3.yml + PostingStatusEnum: + enum: + - UNPOSTED + - POSTED + docs: |- + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + source: + openapi: accounting_v3.yml + ProjectCompany: + discriminated: false + docs: The subsidiary that the project belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + ProjectContact: + discriminated: false + docs: The supplier, or customer involved in the project. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + Project: + docs: >- + # The Project Object + + ### Description + + The `Project` object is used to track and manage time, costs, resources, + and revenue for specific initiatives or work efforts. + + It provides classification on transactions for allocating expenses, + revenue, and activities to a specific project for financial reporting. + + + ### Usage Example + + Fetch from the `GET Project` endpoint and view project information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: string + docs: The project’s name + validation: + maxLength: 255 + is_active: + type: optional + docs: '`True` if the project is active, `False` if the project is not active.' + company: + type: optional + docs: The subsidiary that the project belongs to. + contact: + type: optional + docs: The supplier, or customer involved in the project. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + PurchaseOrderStatus: + discriminated: false + docs: |- + The purchase order's status. + + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + union: + - PurchaseOrderStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderDeliveryAddress: + discriminated: false + docs: The purchase order's delivery address. + union: + - type: string + validation: + format: uuid + - Address + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderVendor: + discriminated: false + docs: The party fulfilling the purchase order. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderCompany: + discriminated: false + docs: The company the purchase order belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderCurrency: + discriminated: false + docs: >- + The purchase order's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderPaymentTerm: + discriminated: false + docs: The payment term that applies to this transaction. + union: + - type: string + validation: + format: uuid + - PaymentTerm + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderAccountingPeriod: + discriminated: false + docs: The accounting period that the PurchaseOrder was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrder: + docs: >- + # The PurchaseOrder Object + + ### Description + + A `PurchaseOrder` represents a request to purchase goods or services from + a vendor. It outlines the details of the purchase, such as the items or + services requested, quantities, prices, and delivery details. + + + A `PurchaseOrder` is a crucial component of the procurement process, but + does not typically result in any impact on the company’s general ledger. + The general ledger is typically only affected when the `PurchaseOrder` is + fulfilled as an *Accounts Payable* `Invoice` object (also known as a + Bill). + + + ### Usage Example + + Fetch from the `LIST PurchaseOrders` endpoint and view a company's + purchase orders. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + status: + type: optional + docs: |- + The purchase order's status. + + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + issue_date: + type: optional + docs: The purchase order's issue date. + purchase_order_number: + type: optional + docs: The human-readable number of the purchase order. + validation: + maxLength: 100 + delivery_date: + type: optional + docs: The purchase order's delivery date. + delivery_address: + type: optional + docs: The purchase order's delivery address. + customer: + type: optional + docs: The contact making the purchase order. + validation: + format: uuid + vendor: + type: optional + docs: The party fulfilling the purchase order. + memo: + type: optional + docs: A memo attached to the purchase order. + company: + type: optional + docs: The company the purchase order belongs to. + total_amount: + type: optional + docs: The purchase order's total amount. + currency: + type: optional + docs: >- + The purchase order's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The purchase order's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + payment_term: + type: optional + docs: The payment term that applies to this transaction. + line_items: + type: optional> + access: read-only + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the PurchaseOrder was generated in. + remote_created_at: + type: optional + docs: When the third party's purchase order note was created. + remote_updated_at: + type: optional + docs: When the third party's purchase order note was updated. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + PurchaseOrderLineItemItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderLineItemCurrency: + discriminated: false + docs: >- + The purchase order line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderLineItem: + docs: >- + # The PurchaseOrderLineItem Object + + ### Description + + The `PurchaseOrderLineItem` object is used to represent a purchase order's + line item. + + + ### Usage Example + + Fetch from the `GET PurchaseOrder` endpoint and view a company's purchase + orders. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + description: + type: optional + docs: A description of the good being purchased. + unit_price: + type: optional + docs: The line item's unit price. + quantity: + type: optional + docs: The line item's quantity. + item: optional + account: + type: optional + docs: The purchase order line item's account. + validation: + format: uuid + tracking_category: + type: optional + docs: The purchase order line item's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The purchase order line item's associated tracking categories. + tax_amount: + type: optional + docs: The purchase order line item's tax amount. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + total_line_amount: + type: optional + docs: The purchase order line item's total amount. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + currency: + type: optional + docs: >- + The purchase order line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + exchange_rate: + type: optional + docs: The purchase order line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the purchase order line item belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + PurchaseOrderLineItemRequestItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderLineItemRequestCurrency: + discriminated: false + docs: >- + The purchase order line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderLineItemRequest: + docs: >- + # The PurchaseOrderLineItem Object + + ### Description + + The `PurchaseOrderLineItem` object is used to represent a purchase order's + line item. + + + ### Usage Example + + Fetch from the `GET PurchaseOrder` endpoint and view a company's purchase + orders. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + description: + type: optional + docs: A description of the good being purchased. + unit_price: + type: optional + docs: The line item's unit price. + quantity: + type: optional + docs: The line item's quantity. + item: optional + account: + type: optional + docs: The purchase order line item's account. + validation: + format: uuid + tracking_category: + type: optional + docs: The purchase order line item's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The purchase order line item's associated tracking categories. + tax_amount: + type: optional + docs: The purchase order line item's tax amount. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + total_line_amount: + type: optional + docs: The purchase order line item's total amount. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + currency: + type: optional + docs: >- + The purchase order line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + exchange_rate: + type: optional + docs: The purchase order line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the purchase order line item belongs to. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + PurchaseOrderRequestStatus: + discriminated: false + docs: |- + The purchase order's status. + + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + union: + - PurchaseOrderStatusEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderRequestDeliveryAddress: + discriminated: false + docs: The purchase order's delivery address. + union: + - type: string + validation: + format: uuid + - Address + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderRequestVendor: + discriminated: false + docs: The party fulfilling the purchase order. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderRequestCompany: + discriminated: false + docs: The company the purchase order belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderRequestPaymentTerm: + discriminated: false + docs: The payment term that applies to this transaction. + union: + - type: string + validation: + format: uuid + - PaymentTerm + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderRequestCurrency: + discriminated: false + docs: >- + The purchase order's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + PurchaseOrderRequest: + docs: >- + # The PurchaseOrder Object + + ### Description + + The `PurchaseOrder` object is a record of request for a product or service + between a buyer and seller. + + + ### Usage Example + + Fetch from the `LIST PurchaseOrders` endpoint and view a company's + purchase orders. + properties: + status: + type: optional + docs: |- + The purchase order's status. + + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + issue_date: + type: optional + docs: The purchase order's issue date. + delivery_date: + type: optional + docs: The purchase order's delivery date. + delivery_address: + type: optional + docs: The purchase order's delivery address. + customer: + type: optional + docs: The contact making the purchase order. + validation: + format: uuid + vendor: + type: optional + docs: The party fulfilling the purchase order. + memo: + type: optional + docs: A memo attached to the purchase order. + company: + type: optional + docs: The company the purchase order belongs to. + total_amount: + type: optional + docs: The purchase order's total amount. + payment_term: + type: optional + docs: The payment term that applies to this transaction. + currency: + type: optional + docs: >- + The purchase order's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + exchange_rate: + type: optional + docs: The purchase order's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tracking_categories: optional>> + line_items: optional> + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + PurchaseOrderResponse: + properties: + model: PurchaseOrder + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + PurchaseOrderStatusEnum: + enum: + - DRAFT + - SUBMITTED + - AUTHORIZED + - BILLED + - DELETED + docs: |- + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + source: + openapi: accounting_v3.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: accounting_v3.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: accounting_v3.yml + RemoteFieldRemoteFieldClass: + discriminated: false + union: + - string + - RemoteFieldClass + source: + openapi: accounting_v3.yml + inline: true + RemoteField: + properties: + remote_field_class: RemoteFieldRemoteFieldClass + value: optional + source: + openapi: accounting_v3.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: accounting_v3.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: accounting_v3.yml + RemoteFieldApiResponse: + properties: + Account: optional> + AccountingAttachment: optional> + BalanceSheet: optional> + CashFlowStatement: optional> + CompanyInfo: optional> + Contact: optional> + IncomeStatement: optional> + CreditNote: optional> + Item: optional> + PurchaseOrder: optional> + TrackingCategory: optional> + JournalEntry: optional> + TaxRate: optional> + Invoice: optional> + Payment: optional> + Expense: optional> + VendorCredit: optional> + Transaction: optional> + AccountingPeriod: optional> + GeneralLedgerTransaction: optional> + BankFeedAccount: optional> + Employee: optional> + PaymentMethod: optional> + Project: optional> + PaymentTerm: optional> + source: + openapi: accounting_v3.yml + RemoteFieldClass: + properties: + id: optional + display_name: optional + remote_key_name: optional + description: optional + is_custom: optional + is_required: optional + field_type: optional + field_format: optional + field_choices: optional> + item_schema: optional + source: + openapi: accounting_v3.yml + RemoteFieldRequestRemoteFieldClass: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteFieldClass + source: + openapi: accounting_v3.yml + inline: true + RemoteFieldRequest: + properties: + remote_field_class: RemoteFieldRequestRemoteFieldClass + value: optional + source: + openapi: accounting_v3.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: accounting_v3.yml + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: accounting_v3.yml + ReportItem: + docs: >- + # The ReportItem Object + + ### Description + + The `ReportItem` object is used to represent a report item for a Balance + Sheet, Cash Flow Statement or Profit and Loss Report. + + + ### Usage Example + + Fetch from the `GET BalanceSheet` endpoint and view the balance sheet's + report items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The report item's name. + value: + type: optional + docs: The report item's value. + sub_items: + type: optional>> + access: read-only + company: + type: optional + docs: The company the report item belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + source: + openapi: accounting_v3.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: accounting_v3.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: accounting_v3.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: accounting_v3.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: accounting_v3.yml + Status7D1Enum: + enum: + - ACTIVE + - ARCHIVED + docs: |- + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + source: + openapi: accounting_v3.yml + Status895Enum: + enum: + - ACTIVE + - INACTIVE + docs: |- + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + source: + openapi: accounting_v3.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: accounting_v3.yml + SyncStatusLastSyncResult: + discriminated: false + union: + - LastSyncResultEnum + - string + source: + openapi: accounting_v3.yml + inline: true + SyncStatusStatus: + discriminated: false + union: + - StatusFd5Enum + - string + source: + openapi: accounting_v3.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: SyncStatusStatus + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: accounting_v3.yml + TaxComponentComponentType: + discriminated: false + docs: >- + Returns PURCHASE if the tax component corresponds to a purchase tax or + SALES if the tax component corresponds to a sales tax. + + + * `SALES` - SALES + + * `PURCHASE` - PURCHASE + union: + - ComponentTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + TaxComponent: + docs: >- + # The TaxRate Object + + ### Description + + The `TaxComponent` object is used to represent any sub-taxes that make up + the `TaxRate`. + + + ### Usage Example + + Fetch from the `LIST TaxRates` endpoint and view tax components relevant + to a tax rate. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The tax rate’s name. + validation: + maxLength: 100 + rate: + type: optional + docs: The tax component’s rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + is_compound: + type: optional + docs: Returns True if the tax component is compound, False if not. + component_type: + type: optional + docs: >- + Returns PURCHASE if the tax component corresponds to a purchase tax or + SALES if the tax component corresponds to a sales tax. + + + * `SALES` - SALES + + * `PURCHASE` - PURCHASE + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: accounting_v3.yml + TaxRateCompany: + discriminated: false + docs: >- + The subsidiary that the tax rate belongs to (in the case of multi-entity + systems). + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + TaxRateStatus: + discriminated: false + docs: >- + The tax rate’s status - `ACTIVE` if an active tax rate, `ARCHIVED` if not + active. + + + * `ACTIVE` - ACTIVE + + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: accounting_v3.yml + inline: true + TaxRateTaxComponentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TaxComponent + source: + openapi: accounting_v3.yml + inline: true + TaxRate: + docs: >- + # The TaxRate Object + + ### Description + + The `TaxRate` object is used to represent a tax rate. + + + ### Usage Example + + Fetch from the `LIST TaxRates` endpoint and view tax rates relevant to a + company. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + company: + type: optional + docs: >- + The subsidiary that the tax rate belongs to (in the case of + multi-entity systems). + code: + type: optional + docs: >- + The tax code associated with this tax rate or group of tax rates from + the third-party platform. + validation: + maxLength: 100 + name: + type: optional + docs: The tax rate’s name. + validation: + maxLength: 100 + description: + type: optional + docs: The tax rate's description. + status: + type: optional + docs: >- + The tax rate’s status - `ACTIVE` if an active tax rate, `ARCHIVED` if + not active. + + + * `ACTIVE` - ACTIVE + + * `ARCHIVED` - ARCHIVED + country: + type: optional + docs: The country the tax rate is associated with. + validation: + maxLength: 100 + total_tax_rate: + type: optional + docs: The tax’s total tax rate - sum of the tax components (not compounded). + effective_tax_rate: + type: optional + docs: >- + The tax rate’s effective tax rate - total amount of tax with + compounding. + tax_components: + type: optional> + docs: The related tax components of the tax rate. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + TrackingCategoryStatus: + discriminated: false + docs: |- + The tracking category's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: accounting_v3.yml + inline: true + TrackingCategoryCategoryType: + discriminated: false + docs: |- + The tracking category’s type. + + * `CLASS` - CLASS + * `DEPARTMENT` - DEPARTMENT + union: + - CategoryTypeEnum + - string + source: + openapi: accounting_v3.yml + inline: true + TrackingCategoryCompany: + discriminated: false + docs: The company the GeneralLedgerTransaction belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + TrackingCategory: + docs: >- + # The TrackingCategory Object + + ### Description + + A `TrackingCategory` object represents a categorization method used to + classify transactions within an accounting platform. They are often used + to group records for reporting and analysis purposes. The most common + types of `TrackingCategories` are Classes and Departments. + + + ### Usage Example + + Fetch from the `GET TrackingCategory` endpoint and view a company's + tracking category. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The tracking category's name. + status: + type: optional + docs: |- + The tracking category's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + category_type: + type: optional + docs: |- + The tracking category’s type. + + * `CLASS` - CLASS + * `DEPARTMENT` - DEPARTMENT + parent_category: + type: optional + validation: + format: uuid + company: + type: optional + docs: The company the GeneralLedgerTransaction belongs to. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + TransactionAccount: + discriminated: false + docs: The transaction's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + TransactionContact: + discriminated: false + docs: The contact to whom the transaction relates to. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + TransactionCurrency: + discriminated: false + docs: >- + The transaction's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + TransactionTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + TransactionAccountingPeriod: + discriminated: false + docs: The accounting period that the Transaction was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + Transaction: + docs: >- + # The Transaction Object + + ### Description + + The `Transaction` common model includes records of all types of + transactions that do not appear in other common models. The type of + transaction can be identified through the type field. More specifically, + it will contain all types of transactions outside of: + + * __Credit Notes__ + + * __Expenses__ + + * __Invoices__ + + * __Journal Entries__ + + * __Payments__ + + * __Purchase Orders__ + + * __Vendor Credits__ + + + ### Usage Example + + Fetch from the `GET Transaction` endpoint and view a company's + transactions. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + transaction_type: + type: optional + docs: >- + The type of transaction, which can by any transaction object not + already included in Merge’s common model. + number: + type: optional + docs: The transaction's number used for identifying purposes. + transaction_date: + type: optional + docs: The date upon which the transaction occurred. + account: + type: optional + docs: The transaction's account. + contact: + type: optional + docs: The contact to whom the transaction relates to. + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + total_amount: + type: optional + docs: The total amount being paid after taxes. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + currency: + type: optional + docs: >- + The transaction's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The transaction's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the transaction belongs to. + validation: + format: uuid + tracking_categories: optional>> + line_items: + type: optional> + access: read-only + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + accounting_period: + type: optional + docs: The accounting period that the Transaction was generated in. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + TransactionCurrencyEnum: + enum: + - XUA + - AFN + - AFA + - ALL + - ALK + - DZD + - ADP + - AOA + - AOK + - AON + - AOR + - ARA + - ARS + - ARM + - ARP + - ARL + - AMD + - AWG + - AUD + - ATS + - AZN + - AZM + - BSD + - BHD + - BDT + - BBD + - BYN + - BYB + - BYR + - BEF + - BEC + - BEL + - BZD + - BMD + - BTN + - BOB + - BOL + - BOV + - BOP + - BAM + - BAD + - BAN + - BWP + - BRC + - BRZ + - BRE + - BRR + - BRN + - BRB + - BRL + - GBP + - BND + - BGL + - BGN + - BGO + - BGM + - BUK + - BIF + - XPF + - KHR + - CAD + - CVE + - KYD + - XAF + - CLE + - CLP + - CLF + - CNX + - CNY + - CNH + - COP + - COU + - KMF + - CDF + - CRC + - HRD + - HRK + - CUC + - CUP + - CYP + - CZK + - CSK + - DKK + - DJF + - DOP + - NLG + - XCD + - DDM + - ECS + - ECV + - EGP + - GQE + - ERN + - EEK + - ETB + - EUR + - XBA + - XEU + - XBB + - XBC + - XBD + - FKP + - FJD + - FIM + - FRF + - XFO + - XFU + - GMD + - GEK + - GEL + - DEM + - GHS + - GHC + - GIP + - XAU + - GRD + - GTQ + - GWP + - GNF + - GNS + - GYD + - HTG + - HNL + - HKD + - HUF + - IMP + - ISK + - ISJ + - INR + - IDR + - IRR + - IQD + - IEP + - ILS + - ILP + - ILR + - ITL + - JMD + - JPY + - JOD + - KZT + - KES + - KWD + - KGS + - LAK + - LVL + - LVR + - LBP + - LSL + - LRD + - LYD + - LTL + - LTT + - LUL + - LUC + - LUF + - MOP + - MKD + - MKN + - MGA + - MGF + - MWK + - MYR + - MVR + - MVP + - MLF + - MTL + - MTP + - MRU + - MRO + - MUR + - MXV + - MXN + - MXP + - MDC + - MDL + - MCF + - MNT + - MAD + - MAF + - MZE + - MZN + - MZM + - MMK + - NAD + - NPR + - ANG + - TWD + - NZD + - NIO + - NIC + - NGN + - KPW + - NOK + - OMR + - PKR + - XPD + - PAB + - PGK + - PYG + - PEI + - PEN + - PES + - PHP + - XPT + - PLN + - PLZ + - PTE + - GWE + - QAR + - XRE + - RHD + - RON + - ROL + - RUB + - RUR + - RWF + - SVC + - WST + - SAR + - RSD + - CSD + - SCR + - SLL + - XAG + - SGD + - SKK + - SIT + - SBD + - SOS + - ZAR + - ZAL + - KRH + - KRW + - KRO + - SSP + - SUR + - ESP + - ESA + - ESB + - XDR + - LKR + - SHP + - XSU + - SDD + - SDG + - SDP + - SRD + - SRG + - SZL + - SEK + - CHF + - SYP + - STN + - STD + - TVD + - TJR + - TJS + - TZS + - XTS + - THB + - XXX + - TPE + - TOP + - TTD + - TND + - TRY + - TRL + - TMT + - TMM + - USD + - USN + - USS + - UGX + - UGS + - UAH + - UAK + - AED + - UYW + - UYU + - UYP + - UYI + - UZS + - VUV + - VES + - VEB + - VEF + - VND + - VNN + - CHE + - CHW + - XOF + - YDD + - YER + - YUN + - YUD + - YUM + - YUR + - ZWN + - ZRN + - ZRZ + - ZMW + - ZMK + - ZWD + - ZWR + - ZWL + docs: >- + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + source: + openapi: accounting_v3.yml + TransactionLineItemItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: accounting_v3.yml + inline: true + TransactionLineItemCurrency: + discriminated: false + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + TransactionLineItem: + docs: >- + # The TransactionLineItem Object + + ### Description + + The `TransactionLineItem` object is used to represent a transaction's line + items. + + + ### Usage Example + + Fetch from the `GET TransactionLineItem` endpoint and view the + transaction's line items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + memo: + type: optional + docs: >- + An internal note used by the business to clarify purpose of the + transaction. + unit_price: + type: optional + docs: The line item's unit price. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + quantity: + type: optional + docs: The line item's quantity. + validation: + pattern: ^-?\d{0,24}(?:\.\d{0,8})?$ + item: optional + account: + type: optional + docs: The line item's account. + validation: + format: uuid + tracking_category: + type: optional + docs: The line's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The transaction line item's associated tracking categories. + total_line_amount: + type: optional + docs: The line item's total. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + currency: + type: optional + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the line belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: accounting_v3.yml + Type2BbEnum: + enum: + - INVENTORY + - NON_INVENTORY + - SERVICE + - UNKNOWN + docs: |- + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + source: + openapi: accounting_v3.yml + UnderlyingTransactionTypeEnum: + enum: + - INVOICE + - EXPENSE + - TRANSACTION + - JOURNAL_ENTRY + - PAYMENT + - VENDOR_CREDIT + - CREDIT_NOTE + docs: |- + * `INVOICE` - INVOICE + * `EXPENSE` - EXPENSE + * `TRANSACTION` - TRANSACTION + * `JOURNAL_ENTRY` - JOURNAL_ENTRY + * `PAYMENT` - PAYMENT + * `VENDOR_CREDIT` - VENDOR_CREDIT + * `CREDIT_NOTE` - CREDIT_NOTE + source: + openapi: accounting_v3.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: accounting_v3.yml + VendorCreditVendor: + discriminated: false + docs: The vendor that owes the gift or refund. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + VendorCreditCurrency: + discriminated: false + docs: >- + The vendor credit's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + VendorCreditCompany: + discriminated: false + docs: The company the vendor credit belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + VendorCreditTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + VendorCreditAccountingPeriod: + discriminated: false + docs: The accounting period that the VendorCredit was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + VendorCredit: + docs: >- + # The VendorCredit Object + + ### Description + + A `VendorCredit` is transaction issued by a vendor to the accounting + company, indicating a reduction or cancellation of the amount owed to the + vendor. It is most generally used as an adjustment note used to rectify + errors, returns, or overpayments related to a purchasing transaction. A + `VendorCredit` can be applied to `Accounts Payable` Invoices to decrease + the overall amount of the `Invoice`. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view a company's vendor + credits. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + number: + type: optional + docs: The vendor credit's number. + transaction_date: + type: optional + docs: The vendor credit's transaction date. + vendor: + type: optional + docs: The vendor that owes the gift or refund. + total_amount: + type: optional + docs: The vendor credit's total amount. + currency: + type: optional + docs: >- + The vendor credit's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The vendor credit's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + company: + type: optional + docs: The company the vendor credit belongs to. + lines: + type: optional> + access: read-only + tracking_categories: optional>> + applied_to_lines: + type: optional> + docs: A list of VendorCredit Applied to Lines objects. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + accounting_period: + type: optional + docs: The accounting period that the VendorCredit was generated in. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: accounting_v3.yml + VendorCreditApplyLineForInvoiceVendorCredit: + discriminated: false + union: + - type: string + validation: + format: uuid + - VendorCredit + source: + openapi: accounting_v3.yml + inline: true + VendorCreditApplyLineForInvoice: + docs: >- + # The VendorCreditApplyLine Object + + ### Description + + The `VendorCreditApplyLine` object is used to represent a applied vendor + credit. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's + applied to lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + vendor_credit: optional + applied_date: + type: optional + docs: Date that the vendor credit is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the VendorCredit applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: accounting_v3.yml + VendorCreditApplyLineForVendorCreditInvoice: + discriminated: false + union: + - type: string + validation: + format: uuid + - Invoice + source: + openapi: accounting_v3.yml + inline: true + VendorCreditApplyLineForVendorCredit: + docs: >- + # The VendorCreditApplyLine Object + + ### Description + + The `VendorCreditApplyLine` object is used to represent a applied vendor + credit. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's + applied to lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + invoice: optional + applied_date: + type: optional + docs: Date that the vendor credit is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the VendorCredit applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: accounting_v3.yml + VendorCreditApplyLineForVendorCreditRequestInvoice: + discriminated: false + union: + - type: string + validation: + format: uuid + - Invoice + source: + openapi: accounting_v3.yml + inline: true + VendorCreditApplyLineForVendorCreditRequest: + docs: >- + # The VendorCreditApplyLine Object + + ### Description + + The `VendorCreditApplyLine` object is used to represent a applied vendor + credit. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's + applied to lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + invoice: optional + applied_date: + type: optional + docs: Date that the vendor credit is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the VendorCredit applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + VendorCreditLineAccount: + discriminated: false + docs: The line's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + VendorCreditLineProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: accounting_v3.yml + inline: true + VendorCreditLineContact: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + VendorCreditLine: + docs: >- + # The VendorCreditLine Object + + ### Description + + The `VendorCreditLine` object is used to represent a vendor credit's line + items. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's + line items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + net_amount: + type: optional + docs: The full value of the credit. + tracking_category: + type: optional + docs: The line's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The vendor credit line item's associated tracking categories. + description: + type: optional + docs: The line's description. + account: + type: optional + docs: The line's account. + company: + type: optional + docs: The company the line belongs to. + validation: + format: uuid + project: optional + contact: optional + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + exchange_rate: + type: optional + docs: The vendor credit line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: accounting_v3.yml + VendorCreditLineRequestAccount: + discriminated: false + docs: The line's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: accounting_v3.yml + inline: true + VendorCreditLineRequestProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: accounting_v3.yml + inline: true + VendorCreditLineRequestContact: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + VendorCreditLineRequest: + docs: >- + # The VendorCreditLine Object + + ### Description + + The `VendorCreditLine` object is used to represent a vendor credit's line + items. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's + line items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + net_amount: + type: optional + docs: The full value of the credit. + tracking_category: + type: optional + docs: The line's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The vendor credit line item's associated tracking categories. + description: + type: optional + docs: The line's description. + account: + type: optional + docs: The line's account. + company: + type: optional + docs: The company the line belongs to. + validation: + format: uuid + project: optional + contact: optional + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + exchange_rate: + type: optional + docs: The vendor credit line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + VendorCreditRequestVendor: + discriminated: false + docs: The vendor that owes the gift or refund. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: accounting_v3.yml + inline: true + VendorCreditRequestCurrency: + discriminated: false + docs: >- + The vendor credit's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: accounting_v3.yml + inline: true + VendorCreditRequestCompany: + discriminated: false + docs: The company the vendor credit belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: accounting_v3.yml + inline: true + VendorCreditRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: accounting_v3.yml + inline: true + VendorCreditRequestAccountingPeriod: + discriminated: false + docs: The accounting period that the VendorCredit was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: accounting_v3.yml + inline: true + VendorCreditRequest: + docs: >- + # The VendorCredit Object + + ### Description + + A `VendorCredit` is transaction issued by a vendor to the accounting + company, indicating a reduction or cancellation of the amount owed to the + vendor. It is most generally used as an adjustment note used to rectify + errors, returns, or overpayments related to a purchasing transaction. A + `VendorCredit` can be applied to `Accounts Payable` Invoices to decrease + the overall amount of the `Invoice`. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view a company's vendor + credits. + properties: + number: + type: optional + docs: The vendor credit's number. + transaction_date: + type: optional + docs: The vendor credit's transaction date. + vendor: + type: optional + docs: The vendor that owes the gift or refund. + total_amount: + type: optional + docs: The vendor credit's total amount. + currency: + type: optional + docs: >- + The vendor credit's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The vendor credit's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + company: + type: optional + docs: The company the vendor credit belongs to. + tracking_categories: optional>> + applied_to_lines: + type: optional> + docs: A list of VendorCredit Applied to Lines objects. + accounting_period: + type: optional + docs: The accounting period that the VendorCredit was generated in. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: accounting_v3.yml + VendorCreditResponse: + properties: + model: VendorCredit + warnings: list + errors: list + logs: optional> + source: + openapi: accounting_v3.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: accounting_v3.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/accountDetails.yml b/.mock/definition/Accounting/accountDetails.yml new file mode 100644 index 00000000..2ed0ac3a --- /dev/null +++ b/.mock/definition/Accounting/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/accountToken.yml b/.mock/definition/Accounting/accountToken.yml new file mode 100644 index 00000000..3e8083ad --- /dev/null +++ b/.mock/definition/Accounting/accountToken.yml @@ -0,0 +1,44 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: accounting_v3.yml + path-parameters: + public_token: string + response: + docs: '' + type: accountingRoot.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/accountingPeriods.yml b/.mock/definition/Accounting/accountingPeriods.yml new file mode 100644 index 00000000..95e74f28 --- /dev/null +++ b/.mock/definition/Accounting/accountingPeriods.yml @@ -0,0 +1,123 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/accounting-periods + method: GET + auth: true + docs: Returns a list of `AccountingPeriod` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: AccountingPeriodsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedAccountingPeriodList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3015f7b1-4d01-460d-bfab-02a52d16cbd0 + remote_id: '2804580' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: April 2020 Financials + status: ACTIVE + start_date: '2020-03-31T00:00:00Z' + end_date: '2020-05-01T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/accounting-periods/{id} + method: GET + auth: true + docs: Returns an `AccountingPeriod` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: AccountingPeriodsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.AccountingPeriod + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 3015f7b1-4d01-460d-bfab-02a52d16cbd0 + remote_id: '2804580' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: April 2020 Financials + status: ACTIVE + start_date: '2020-03-31T00:00:00Z' + end_date: '2020-05-01T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/accounts.yml b/.mock/definition/Accounting/accounts.yml new file mode 100644 index 00000000..b08c143d --- /dev/null +++ b/.mock/definition/Accounting/accounts.yml @@ -0,0 +1,502 @@ +types: + AccountsListRequestRemoteFields: + enum: + - classification + - value: classification,status + name: ClassificationStatus + - status + source: + openapi: accounting_v3.yml + AccountsListRequestShowEnumOrigins: + enum: + - classification + - value: classification,status + name: ClassificationStatus + - status + source: + openapi: accounting_v3.yml + AccountsRetrieveRequestRemoteFields: + enum: + - classification + - value: classification,status + name: ClassificationStatus + - status + source: + openapi: accounting_v3.yml + AccountsRetrieveRequestShowEnumOrigins: + enum: + - classification + - value: classification,status + name: ClassificationStatus + - status + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/accounts + method: GET + auth: true + docs: Returns a list of `Account` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: AccountsListRequest + query-parameters: + account_type: + type: optional + docs: If provided, will only return accounts with the passed in enum. + classification: + type: optional + docs: If provided, will only return accounts with this classification. + company_id: + type: optional + docs: If provided, will only return accounts for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: If provided, will only return Accounts with this name. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: If provided, will only return accounts with this status. + response: + docs: '' + type: accountingRoot.PaginatedAccountList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '21' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cash + description: Cash + classification: ASSET + type: Asset + account_type: BANK + status: ACTIVE + current_balance: 1.1 + currency: XUA + account_number: X12Y9AB + parent_account: 22d92d6c-22f9-11ed-861d-0242ac120002 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /accounting/v1/accounts + method: POST + auth: true + docs: Creates an `Account` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: AccountEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.AccountRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.AccountResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '21' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cash + description: Cash + classification: ASSET + type: Asset + account_type: BANK + status: ACTIVE + current_balance: 1.1 + currency: XUA + account_number: X12Y9AB + parent_account: 22d92d6c-22f9-11ed-861d-0242ac120002 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/accounts/{id} + method: GET + auth: true + docs: Returns an `Account` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: AccountsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: accountingRoot.Account + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '21' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cash + description: Cash + classification: ASSET + type: Asset + account_type: BANK + status: ACTIVE + current_balance: 1.1 + currency: XUA + account_number: X12Y9AB + parent_account: 22d92d6c-22f9-11ed-861d-0242ac120002 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + metaPostRetrieve: + path: /accounting/v1/accounts/meta/post + method: GET + auth: true + docs: Returns metadata for `Account` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/addresses.yml b/.mock/definition/Accounting/addresses.yml new file mode 100644 index 00000000..8841ef7f --- /dev/null +++ b/.mock/definition/Accounting/addresses.yml @@ -0,0 +1,61 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/addresses/{id} + method: GET + auth: true + docs: Returns an `Address` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: AddressesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: accountingRoot.Address + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: BILLING + street_1: 2920 Broadway + street_2: 2nd Floor + city: New York + state: + key: value + country_subdivision: NY + country: AF + zip_code: '10027' + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/asyncPassthrough.yml b/.mock/definition/Accounting/asyncPassthrough.yml new file mode 100644 index 00000000..e1fd037b --- /dev/null +++ b/.mock/definition/Accounting/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /accounting/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: accounting_v3.yml + request: + body: accountingRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /accounting/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: accounting_v3.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: accounting_v3.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - accountingRoot.RemoteResponse + - string + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/asyncTasks.yml b/.mock/definition/Accounting/asyncTasks.yml new file mode 100644 index 00000000..c9126d81 --- /dev/null +++ b/.mock/definition/Accounting/asyncTasks.yml @@ -0,0 +1,81 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/async-tasks/{id} + method: GET + auth: true + docs: Returns an `AsyncPostTask` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + response: + docs: '' + type: accountingRoot.AsyncPostTask + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + status: QUEUED + result: + status_code: 201 + response: + model: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '990110' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + integration_params: + unique_integration_field: unique_integration_field_value + linked_account_params: + unique_linked_account_field: unique_linked_account_field_value + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + type: ACCOUNTS_RECEIVABLE + contact: 022a2bef-57e5-4def-8ed2-7c41bd9a5ed8 + number: AIQ12546 + issue_date: '2020-03-31T00:00:00Z' + due_date: '2020-04-15T00:00:00Z' + memo: Weekly Payment + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + paid_on_date: '2020-04-01T00:00:00Z' + currency: USD + exchange_rate: '2.9' + status: DRAFT + total_discount: 0 + sub_total: 100 + total_tax_amount: 5 + total_amount: 105 + balance: 105 + inclusive_of_tax: false + remote_updated_at: '2020-04-01T00:00:00Z' + tracking_categories: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + purchase_orders: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + accounting_period: 7dc5ca17-d311-44cd-9ce0-333080367a18 + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/attachments.yml b/.mock/definition/Accounting/attachments.yml new file mode 100644 index 00000000..5db063ed --- /dev/null +++ b/.mock/definition/Accounting/attachments.yml @@ -0,0 +1,406 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/attachments + method: GET + auth: true + docs: Returns a list of `AccountingAttachment` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: AttachmentsListRequest + query-parameters: + company_id: + type: optional + docs: >- + If provided, will only return accounting attachments for this + company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: accountingRoot.PaginatedAccountingAttachmentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '1018270' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: invoice.png + file_url: >- + https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /accounting/v1/attachments + method: POST + auth: true + docs: Creates an `AccountingAttachment` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: AccountingAttachmentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.AccountingAttachmentRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.AccountingAttachmentResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '1018270' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: invoice.png + file_url: >- + https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/attachments/{id} + method: GET + auth: true + docs: Returns an `AccountingAttachment` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: AttachmentsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.AccountingAttachment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '1018270' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: invoice.png + file_url: >- + https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + metaPostRetrieve: + path: /accounting/v1/attachments/meta/post + method: GET + auth: true + docs: Returns metadata for `AccountingAttachment` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/auditTrail.yml b/.mock/definition/Accounting/auditTrail.yml new file mode 100644 index 00000000..906d228f --- /dev/null +++ b/.mock/definition/Accounting/auditTrail.yml @@ -0,0 +1,98 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, + `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, + `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: accountingRoot.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/availableActions.yml b/.mock/definition/Accounting/availableActions.yml new file mode 100644 index 00000000..0d591889 --- /dev/null +++ b/.mock/definition/Accounting/availableActions.yml @@ -0,0 +1,50 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/balanceSheets.yml b/.mock/definition/Accounting/balanceSheets.yml new file mode 100644 index 00000000..fd97b5a2 --- /dev/null +++ b/.mock/definition/Accounting/balanceSheets.yml @@ -0,0 +1,247 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/balance-sheets + method: GET + auth: true + docs: Returns a list of `BalanceSheet` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: BalanceSheetsListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return balance sheets for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: accountingRoot.PaginatedBalanceSheetList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '8937018' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: BalanceSheet + currency: XUA + company: company + date: '2021-10-01T00:00:00Z' + net_assets: 1000 + assets: + - remote_id: '10010' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Assets + value: 1000 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + liabilities: + - remote_id: '10011' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Liabilities + value: 500 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + equity: + - remote_id: '10012' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Equity + value: 500 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + remote_generated_at: '2021-10-01T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /accounting/v1/balance-sheets/{id} + method: GET + auth: true + docs: Returns a `BalanceSheet` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: BalanceSheetsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.BalanceSheet + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '8937018' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: BalanceSheet + currency: XUA + company: company + date: '2021-10-01T00:00:00Z' + net_assets: 1000 + assets: + - remote_id: '10010' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Assets + value: 1000 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + liabilities: + - remote_id: '10011' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Liabilities + value: 500 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + equity: + - remote_id: '10012' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Equity + value: 500 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + remote_generated_at: '2021-10-01T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/bankFeedAccounts.yml b/.mock/definition/Accounting/bankFeedAccounts.yml new file mode 100644 index 00000000..7cb1c3bb --- /dev/null +++ b/.mock/definition/Accounting/bankFeedAccounts.yml @@ -0,0 +1,390 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/bank-feed-accounts + method: GET + auth: true + docs: Returns a list of `BankFeedAccount` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: BankFeedAccountsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedBankFeedAccountList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_account_id: '123566909' + target_account_id: 49cd5a42-b311-4750-9361-52e2ed1d4653 + source_account_name: Travel Bank Account + source_account_number: '12567' + target_account_name: Netsuite Travel Bank Account + currency: XUA + feed_status: ACTIVE + feed_start_date: '2024-02-02T00:00:00Z' + source_account_balance: 123.94 + account_type: BANK + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + create: + path: /accounting/v1/bank-feed-accounts + method: POST + auth: true + docs: Creates a `BankFeedAccount` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: BankFeedAccountEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.BankFeedAccountRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.BankFeedAccountResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_account_id: '123566909' + target_account_id: 49cd5a42-b311-4750-9361-52e2ed1d4653 + source_account_name: Travel Bank Account + source_account_number: '12567' + target_account_name: Netsuite Travel Bank Account + currency: XUA + feed_status: ACTIVE + feed_start_date: '2024-02-02T00:00:00Z' + source_account_balance: 123.94 + account_type: BANK + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - key: value + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/bank-feed-accounts/{id} + method: GET + auth: true + docs: Returns a `BankFeedAccount` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: BankFeedAccountsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.BankFeedAccount + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_account_id: '123566909' + target_account_id: 49cd5a42-b311-4750-9361-52e2ed1d4653 + source_account_name: Travel Bank Account + source_account_number: '12567' + target_account_name: Netsuite Travel Bank Account + currency: XUA + feed_status: ACTIVE + feed_start_date: '2024-02-02T00:00:00Z' + source_account_balance: 123.94 + account_type: BANK + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - key: value + metaPostRetrieve: + path: /accounting/v1/bank-feed-accounts/meta/post + method: GET + auth: true + docs: Returns metadata for `BankFeedAccount` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/bankFeedTransactions.yml b/.mock/definition/Accounting/bankFeedTransactions.yml new file mode 100644 index 00000000..3411602c --- /dev/null +++ b/.mock/definition/Accounting/bankFeedTransactions.yml @@ -0,0 +1,409 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/bank-feed-transactions + method: GET + auth: true + docs: Returns a list of `BankFeedTransaction` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: BankFeedTransactionsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_processed: + type: optional + docs: >- + If provided, will only return bank feed transactions with this + is_processed value + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: accountingRoot.PaginatedBankFeedTransactionList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + bank_feed_account: bank_feed_account + transaction_date: '2024-02-02T00:00:00Z' + posted_date: '2024-02-03T00:00:00Z' + amount: 100.1 + description: Lunch expense + transaction_type: payment + payee: Elmo's diner + credit_or_debit: CREDIT + source_transaction_id: '124569' + remote_was_deleted: true + is_processed: true + create: + path: /accounting/v1/bank-feed-transactions + method: POST + auth: true + docs: Creates a `BankFeedTransaction` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: BankFeedTransactionEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.BankFeedTransactionRequestRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.BankFeedTransactionResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + bank_feed_account: bank_feed_account + transaction_date: '2024-02-02T00:00:00Z' + posted_date: '2024-02-03T00:00:00Z' + amount: 100.1 + description: Lunch expense + transaction_type: payment + payee: Elmo's diner + credit_or_debit: CREDIT + source_transaction_id: '124569' + remote_was_deleted: true + is_processed: true + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/bank-feed-transactions/{id} + method: GET + auth: true + docs: Returns a `BankFeedTransaction` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: BankFeedTransactionsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.BankFeedTransaction + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + bank_feed_account: bank_feed_account + transaction_date: '2024-02-02T00:00:00Z' + posted_date: '2024-02-03T00:00:00Z' + amount: 100.1 + description: Lunch expense + transaction_type: payment + payee: Elmo's diner + credit_or_debit: CREDIT + source_transaction_id: '124569' + remote_was_deleted: true + is_processed: true + metaPostRetrieve: + path: /accounting/v1/bank-feed-transactions/meta/post + method: GET + auth: true + docs: Returns metadata for `BankFeedTransaction` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/cashFlowStatements.yml b/.mock/definition/Accounting/cashFlowStatements.yml new file mode 100644 index 00000000..a5f0900d --- /dev/null +++ b/.mock/definition/Accounting/cashFlowStatements.yml @@ -0,0 +1,247 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/cash-flow-statements + method: GET + auth: true + docs: Returns a list of `CashFlowStatement` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: CashFlowStatementsListRequest + query-parameters: + company_id: + type: optional + docs: >- + If provided, will only return cash flow statements for this + company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: accountingRoot.PaginatedCashFlowStatementList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + remote_id: '8211088' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: CashFlow + currency: XUA + company: company + start_period: '2020-01-01T00:00:00Z' + end_period: '2020-03-31T00:00:00Z' + cash_at_beginning_of_period: 5000 + cash_at_end_of_period: 4063.52 + operating_activities: + - remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Operating Activities + value: 1000 + sub_items: + - remote_id: '23042938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Net Income + value: 1097.13 + investing_activities: + - remote_id: '192406939' + created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-11-18T00:00:00Z' + name: Equipment + value: 1000 + sub_items: + - created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Equipment + value: 1000 + financing_activities: + - remote_id: '192406939' + created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-11-15T00:00:00Z' + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + remote_generated_at: '2020-04-01T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/cash-flow-statements/{id} + method: GET + auth: true + docs: Returns a `CashFlowStatement` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: CashFlowStatementsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.CashFlowStatement + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + remote_id: '8211088' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: CashFlow + currency: XUA + company: company + start_period: '2020-01-01T00:00:00Z' + end_period: '2020-03-31T00:00:00Z' + cash_at_beginning_of_period: 5000 + cash_at_end_of_period: 4063.52 + operating_activities: + - remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Operating Activities + value: 1000 + sub_items: + - remote_id: '23042938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Net Income + value: 1097.13 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + investing_activities: + - remote_id: '192406939' + created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-11-18T00:00:00Z' + name: Equipment + value: 1000 + sub_items: + - created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Equipment + value: 1000 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + financing_activities: + - remote_id: '192406939' + created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-11-15T00:00:00Z' + name: Revenue + value: 1000 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + remote_generated_at: '2020-04-01T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/companyInfo.yml b/.mock/definition/Accounting/companyInfo.yml new file mode 100644 index 00000000..7add92f2 --- /dev/null +++ b/.mock/definition/Accounting/companyInfo.yml @@ -0,0 +1,209 @@ +types: + CompanyInfoListRequestExpandItem: + enum: + - addresses + - phone_numbers + source: + openapi: accounting_v3.yml + CompanyInfoRetrieveRequestExpandItem: + enum: + - addresses + - phone_numbers + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/company-info + method: GET + auth: true + docs: Returns a list of `CompanyInfo` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: CompanyInfoListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: accountingRoot.PaginatedCompanyInfoList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 65d8ffd0-211b-4ba4-b85a-fbe2ce220982 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Merge Pickleball Company + legal_name: Merge Pickleball Company Inc. + tax_number: 11-0011000 + fiscal_year_end_month: 12 + fiscal_year_end_day: 31 + currency: + key: value + remote_created_at: '2020-03-31T00:00:00Z' + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 2920 Broadway + street_2: 2nd Floor + city: New York + state: NY + country: US + zip_code: '10027' + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/company-info/{id} + method: GET + auth: true + docs: Returns a `CompanyInfo` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: CompanyInfoRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.CompanyInfo + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 65d8ffd0-211b-4ba4-b85a-fbe2ce220982 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Merge Pickleball Company + legal_name: Merge Pickleball Company Inc. + tax_number: 11-0011000 + fiscal_year_end_month: 12 + fiscal_year_end_day: 31 + currency: + key: value + remote_created_at: '2020-03-31T00:00:00Z' + urls: + - urls + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: BILLING + street_1: 2920 Broadway + street_2: 2nd Floor + city: New York + state: NY + country_subdivision: NY + country: US + zip_code: '10027' + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '+3198675309' + type: Mobile + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/contacts.yml b/.mock/definition/Accounting/contacts.yml new file mode 100644 index 00000000..fe791995 --- /dev/null +++ b/.mock/definition/Accounting/contacts.yml @@ -0,0 +1,596 @@ +types: + ContactsListRequestExpandItem: + enum: + - addresses + - company + - phone_numbers + source: + openapi: accounting_v3.yml + ContactsRetrieveRequestExpandItem: + enum: + - addresses + - company + - phone_numbers + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/contacts + method: GET + auth: true + docs: Returns a list of `Contact` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: ContactsListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return contacts for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email_address: + type: optional + docs: If provided, will only return Contacts that match this email. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_customer: + type: optional + docs: >- + If provided, will only return Contacts that are denoted as + customers. + is_supplier: + type: optional + docs: >- + If provided, will only return Contacts that are denoted as + suppliers. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: If provided, will only return Contacts that match this name. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: If provided, will only return Contacts that match this status. + response: + docs: '' + type: accountingRoot.PaginatedContactList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig's pickleball store + is_supplier: true + is_customer: true + email_address: pickleball@merge.dev + tax_number: 12-3456789 + status: ACTIVE + currency: USD + remote_updated_at: '2020-03-31T00:00:00Z' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + addresses: + - 2f2702aa-8948-492b-a412-2acdf6d2c499 + - d98c7428-8dda-48a8-a1da-c570f65e2375 + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '+3198675309' + type: Mobile + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/contacts + method: POST + auth: true + docs: Creates a `Contact` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: ContactEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.ContactRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.ContactResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig's pickleball store + is_supplier: true + is_customer: true + email_address: pickleball@merge.dev + tax_number: 12-3456789 + status: ACTIVE + currency: USD + remote_updated_at: '2020-03-31T00:00:00Z' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + addresses: + - 2f2702aa-8948-492b-a412-2acdf6d2c499 + - d98c7428-8dda-48a8-a1da-c570f65e2375 + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '+3198675309' + type: Mobile + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/contacts/{id} + method: GET + auth: true + docs: Returns a `Contact` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: ContactsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: accountingRoot.Contact + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig's pickleball store + is_supplier: true + is_customer: true + email_address: pickleball@merge.dev + tax_number: 12-3456789 + status: ACTIVE + currency: USD + remote_updated_at: '2020-03-31T00:00:00Z' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + addresses: + - 2f2702aa-8948-492b-a412-2acdf6d2c499 + - d98c7428-8dda-48a8-a1da-c570f65e2375 + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '+3198675309' + type: Mobile + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + metaPostRetrieve: + path: /accounting/v1/contacts/meta/post + method: GET + auth: true + docs: Returns metadata for `Contact` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/contacts/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: ContactsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/creditNotes.yml b/.mock/definition/Accounting/creditNotes.yml new file mode 100644 index 00000000..2fd4e08e --- /dev/null +++ b/.mock/definition/Accounting/creditNotes.yml @@ -0,0 +1,637 @@ +types: + CreditNotesListRequestExpandItem: + enum: + - accounting_period + - applied_payments + - company + - contact + - line_items + - payments + - tracking_categories + source: + openapi: accounting_v3.yml + CreditNotesListRequestRemoteFields: + enum: + - status + - value: status,type + name: StatusType + - type + source: + openapi: accounting_v3.yml + CreditNotesListRequestShowEnumOrigins: + enum: + - status + - value: status,type + name: StatusType + - type + source: + openapi: accounting_v3.yml + CreditNotesRetrieveRequestExpandItem: + enum: + - accounting_period + - applied_payments + - company + - contact + - line_items + - payments + - tracking_categories + source: + openapi: accounting_v3.yml + CreditNotesRetrieveRequestRemoteFields: + enum: + - status + - value: status,type + name: StatusType + - type + source: + openapi: accounting_v3.yml + CreditNotesRetrieveRequestShowEnumOrigins: + enum: + - status + - value: status,type + name: StatusType + - type + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/credit-notes + method: GET + auth: true + docs: Returns a list of `CreditNote` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: CreditNotesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return credit notes for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: accountingRoot.PaginatedCreditNoteList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + remote_id: '123877' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + status: SUBMITTED + number: CN-29 + contact: contact + company: company + exchange_rate: '2.9' + total_amount: 50 + remaining_credit: 20 + inclusive_of_tax: true + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: 0e3fd929-436c-4fd4-a48b-0c61f68d6178 + name: Basic Monthly + description: prorated amount for items + quantity: quantity + memo: privNote + unit_price: '5.0' + tax_rate: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + total_line_amount: '5.0' + tracking_categories: + - 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + account: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + contact: 908934-49j9-093f-0989-908923908 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + remote_was_deleted: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + currency: XUA + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - a9a94a75-19c1-41fe-90d8-d9ba959c38e5 + accounting_period: accounting_period + applied_to_lines: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /accounting/v1/credit-notes + method: POST + auth: true + docs: Creates a `CreditNote` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: CreditNoteEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.CreditNoteRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.CreditNoteResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + remote_id: '123877' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + status: SUBMITTED + number: CN-29 + contact: contact + company: company + exchange_rate: '2.9' + total_amount: 50 + remaining_credit: 20 + inclusive_of_tax: true + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: 0e3fd929-436c-4fd4-a48b-0c61f68d6178 + name: Basic Monthly + description: prorated amount for items + quantity: quantity + memo: privNote + unit_price: '5.0' + tax_rate: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + total_line_amount: '5.0' + tracking_categories: + - 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + account: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + contact: 908934-49j9-093f-0989-908923908 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + remote_was_deleted: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + currency: XUA + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - a9a94a75-19c1-41fe-90d8-d9ba959c38e5 + accounting_period: accounting_period + applied_to_lines: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/credit-notes/{id} + method: GET + auth: true + docs: Returns a `CreditNote` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: CreditNotesRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: accountingRoot.CreditNote + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + remote_id: '123877' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + status: SUBMITTED + number: CN-29 + contact: contact + company: company + exchange_rate: '2.9' + total_amount: 50 + remaining_credit: 20 + inclusive_of_tax: true + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: 0e3fd929-436c-4fd4-a48b-0c61f68d6178 + name: Basic Monthly + description: prorated amount for items + quantity: quantity + memo: privNote + unit_price: '5.0' + tax_rate: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + total_line_amount: '5.0' + tracking_category: tracking_category + tracking_categories: + - 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + account: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + contact: 908934-49j9-093f-0989-908923908 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + remote_was_deleted: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + currency: XUA + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - a9a94a75-19c1-41fe-90d8-d9ba959c38e5 + accounting_period: accounting_period + applied_to_lines: + - remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + metaPostRetrieve: + path: /accounting/v1/credit-notes/meta/post + method: GET + auth: true + docs: Returns metadata for `CreditNote` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/deleteAccount.yml b/.mock/definition/Accounting/deleteAccount.yml new file mode 100644 index 00000000..2706d9b8 --- /dev/null +++ b/.mock/definition/Accounting/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /accounting/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: accounting_v3.yml + examples: + - headers: {} + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/employees.yml b/.mock/definition/Accounting/employees.yml new file mode 100644 index 00000000..7ada0e1e --- /dev/null +++ b/.mock/definition/Accounting/employees.yml @@ -0,0 +1,143 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/employees + method: GET + auth: true + docs: Returns a list of `Employee` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: EmployeesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedEmployeeList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: John + last_name: Smith + is_contractor: true + employee_number: '325462' + email_address: johnsmith@merge.dev + company: company + status: ACTIVE + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/employees/{id} + method: GET + auth: true + docs: Returns an `Employee` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: EmployeesRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.Employee + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: John + last_name: Smith + is_contractor: true + employee_number: '325462' + email_address: johnsmith@merge.dev + company: company + status: ACTIVE + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/expenses.yml b/.mock/definition/Accounting/expenses.yml new file mode 100644 index 00000000..212585dc --- /dev/null +++ b/.mock/definition/Accounting/expenses.yml @@ -0,0 +1,750 @@ +types: + ExpensesListRequestExpandItem: + enum: + - account + - accounting_period + - company + - contact + - employee + - tracking_categories + source: + openapi: accounting_v3.yml + ExpensesRetrieveRequestExpandItem: + enum: + - account + - accounting_period + - company + - contact + - employee + - tracking_categories + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/expenses + method: GET + auth: true + docs: Returns a list of `Expense` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: ExpensesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return expenses for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: accountingRoot.PaginatedExpenseList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2024-01-15T09:30:00Z' + remote_created_at: '2020-03-31T00:00:00Z' + account: account + contact: contact + total_amount: 10000 + sub_total: 1.1 + total_tax_amount: 1.1 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + employee: employee + memo: New employee supplies + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 25.54 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + account: 2a56344a-a491-11ec-b909-0242ac120002 + contact: c640b80b-fac9-409f-aa19-1f9221aec445 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + description: MacBook Pro + exchange_rate: '2.9' + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 10 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + account: 2a56344a-a491-11ec-b909-0242ac120002 + description: Desk Lamp + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/expenses + method: POST + auth: true + docs: Creates an `Expense` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: ExpenseEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.ExpenseRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.ExpenseResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2024-01-15T09:30:00Z' + remote_created_at: '2020-03-31T00:00:00Z' + account: account + contact: contact + total_amount: 10000 + sub_total: 1.1 + total_tax_amount: 1.1 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + employee: employee + memo: New employee supplies + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 25.54 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + account: 2a56344a-a491-11ec-b909-0242ac120002 + contact: c640b80b-fac9-409f-aa19-1f9221aec445 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + description: MacBook Pro + exchange_rate: '2.9' + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 10 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + account: 2a56344a-a491-11ec-b909-0242ac120002 + description: Desk Lamp + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/expenses/{id} + method: GET + auth: true + docs: Returns an `Expense` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: ExpensesRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.Expense + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2024-01-15T09:30:00Z' + remote_created_at: '2020-03-31T00:00:00Z' + account: account + contact: contact + total_amount: 10000 + sub_total: 1.1 + total_tax_amount: 1.1 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + employee: employee + memo: New employee supplies + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 25.54 + tracking_category: tracking_category + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + currency: XUA + account: 2a56344a-a491-11ec-b909-0242ac120002 + contact: c640b80b-fac9-409f-aa19-1f9221aec445 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + description: MacBook Pro + exchange_rate: '2.9' + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 10 + tracking_category: tracking_category + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: employee + currency: XUA + account: 2a56344a-a491-11ec-b909-0242ac120002 + contact: contact + project: project + description: Desk Lamp + exchange_rate: '2.9' + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + remote_was_deleted: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + linesRemoteFieldClassesList: + path: /accounting/v1/expenses/lines/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: ExpensesLinesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + metaPostRetrieve: + path: /accounting/v1/expenses/meta/post + method: GET + auth: true + docs: Returns metadata for `Expense` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/expenses/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: ExpensesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/fieldMapping.yml b/.mock/definition/Accounting/fieldMapping.yml new file mode 100644 index 00000000..fbdcd0e0 --- /dev/null +++ b/.mock/definition/Accounting/fieldMapping.yml @@ -0,0 +1,1198 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /accounting/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: accounting_v3.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: accountingRoot.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + AccountingAttachment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + BalanceSheet: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + CashFlowStatement: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + CompanyInfo: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Contact: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + IncomeStatement: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + CreditNote: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Item: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + PurchaseOrder: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + TrackingCategory: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + JournalEntry: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + TaxRate: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Invoice: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Payment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Expense: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + VendorCredit: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Transaction: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + AccountingPeriod: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + GeneralLedgerTransaction: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + BankFeedAccount: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Employee: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + PaymentMethod: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Project: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + PaymentTerm: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /accounting/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: accounting_v3.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: accountingRoot.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /accounting/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: accounting_v3.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: accountingRoot.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /accounting/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: accounting_v3.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: accountingRoot.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /accounting/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: accounting_v3.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: accountingRoot.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + AccountingAttachment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + BalanceSheet: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + CashFlowStatement: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + CompanyInfo: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Contact: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + IncomeStatement: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + CreditNote: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Item: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + PurchaseOrder: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + TrackingCategory: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + JournalEntry: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + TaxRate: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Invoice: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Payment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Expense: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + VendorCredit: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Transaction: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + AccountingPeriod: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + GeneralLedgerTransaction: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + BankFeedAccount: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Employee: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + PaymentMethod: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Project: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + PaymentTerm: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /accounting/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + AccountingAttachment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + BalanceSheet: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + CashFlowStatement: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + CompanyInfo: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Contact: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + IncomeStatement: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + CreditNote: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Item: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + PurchaseOrder: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + TrackingCategory: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + JournalEntry: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + TaxRate: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Invoice: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Payment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Expense: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + VendorCredit: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Transaction: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + AccountingPeriod: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + GeneralLedgerTransaction: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + BankFeedAccount: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Employee: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + PaymentMethod: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Project: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + PaymentTerm: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/forceResync.yml b/.mock/definition/Accounting/forceResync.yml new file mode 100644 index 00000000..519177e1 --- /dev/null +++ b/.mock/definition/Accounting/forceResync.yml @@ -0,0 +1,37 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /accounting/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: Invoice + model_id: accounting.Invoices + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/generalLedgerTransactions.yml b/.mock/definition/Accounting/generalLedgerTransactions.yml new file mode 100644 index 00000000..837920e6 --- /dev/null +++ b/.mock/definition/Accounting/generalLedgerTransactions.yml @@ -0,0 +1,249 @@ +types: + GeneralLedgerTransactionsListRequestExpandItem: + enum: + - accounting_period + - company + - general_ledger_transaction_lines + - tracking_categories + source: + openapi: accounting_v3.yml + GeneralLedgerTransactionsRetrieveRequestExpandItem: + enum: + - accounting_period + - company + - general_ledger_transaction_lines + - tracking_categories + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/general-ledger-transactions + method: GET + auth: true + docs: Returns a list of `GeneralLedgerTransaction` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: GeneralLedgerTransactionsListRequest + query-parameters: + company_id: + type: optional + docs: >- + If provided, will only return general ledger transactions for this + company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + posted_date_after: + type: optional + docs: If provided, will only return objects posted after this datetime. + posted_date_before: + type: optional + docs: If provided, will only return objects posted before this datetime. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: accountingRoot.PaginatedGeneralLedgerTransactionList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + underlying_transaction_remote_id: '1234' + underlying_transaction_type: INVOICE + accounting_period: accounting_period + company: company + remote_updated_at: '2020-03-31T00:00:00Z' + remote_created_at: '2020-03-31T00:00:00Z' + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + posting_date: '2020-03-31T00:00:00Z' + general_ledger_transaction_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + contact: d6e687d6-0c36-48a1-8114-35324b5cb38f + base_currency: USD + transaction_currency: USD + exchange_rate: exchange_rate + description: Invoice created + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + debit_amount: debit_amount + credit_amount: credit_amount + item: a47e11b6-c73b-4a0c-be31-130fc48177fa + foreign_debit_amount: foreign_debit_amount + foreign_credit_amount: foreign_credit_amount + remote_was_deleted: false + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /accounting/v1/general-ledger-transactions/{id} + method: GET + auth: true + docs: Returns a `GeneralLedgerTransaction` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: GeneralLedgerTransactionsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.GeneralLedgerTransaction + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + underlying_transaction_remote_id: '1234' + underlying_transaction_type: INVOICE + accounting_period: accounting_period + company: company + remote_updated_at: '2020-03-31T00:00:00Z' + remote_created_at: '2020-03-31T00:00:00Z' + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + posting_date: '2020-03-31T00:00:00Z' + general_ledger_transaction_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: employee + contact: d6e687d6-0c36-48a1-8114-35324b5cb38f + project: project + base_currency: USD + transaction_currency: USD + exchange_rate: exchange_rate + description: Invoice created + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + debit_amount: debit_amount + credit_amount: credit_amount + item: a47e11b6-c73b-4a0c-be31-130fc48177fa + foreign_debit_amount: foreign_debit_amount + foreign_credit_amount: foreign_credit_amount + remote_was_deleted: false + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/generateKey.yml b/.mock/definition/Accounting/generateKey.yml new file mode 100644 index 00000000..53f0f60d --- /dev/null +++ b/.mock/definition/Accounting/generateKey.yml @@ -0,0 +1,36 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /accounting/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: accounting_v3.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: accountingRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/incomeStatements.yml b/.mock/definition/Accounting/incomeStatements.yml new file mode 100644 index 00000000..1b452c9a --- /dev/null +++ b/.mock/definition/Accounting/incomeStatements.yml @@ -0,0 +1,275 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/income-statements + method: GET + auth: true + docs: Returns a list of `IncomeStatement` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: IncomeStatementsListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return income statements for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: accountingRoot.PaginatedIncomeStatementList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '1342348' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: IncomeStatement + currency: XUA + company: company + start_period: '2024-01-15T09:30:00Z' + end_period: '2024-01-15T09:30:00Z' + income: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Income + value: 325 + sub_items: + - remote_id: '10200' + name: Landscaping Services + value: 425 + - remote_id: '10201' + name: Pest Control Services + value: -100 + cost_of_sales: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total COGS + value: 25 + sub_items: + - remote_id: '10200' + name: Supplies + value: 10 + gross_profit: 300 + operating_expenses: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Operating Expenses + value: 100 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + net_operating_income: 200 + non_operating_expenses: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Non-Operating Expenses + value: 100 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + net_income: 100 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/income-statements/{id} + method: GET + auth: true + docs: Returns an `IncomeStatement` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: IncomeStatementsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.IncomeStatement + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '1342348' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: IncomeStatement + currency: XUA + company: company + start_period: '2024-01-15T09:30:00Z' + end_period: '2024-01-15T09:30:00Z' + income: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Income + value: 325 + sub_items: + - remote_id: '10200' + name: Landscaping Services + value: 425 + - remote_id: '10201' + name: Pest Control Services + value: -100 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + cost_of_sales: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total COGS + value: 25 + sub_items: + - remote_id: '10200' + name: Supplies + value: 10 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + gross_profit: 300 + operating_expenses: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Operating Expenses + value: 100 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + net_operating_income: 200 + non_operating_expenses: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Non-Operating Expenses + value: 100 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + net_income: 100 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/invoices.yml b/.mock/definition/Accounting/invoices.yml new file mode 100644 index 00000000..7af52799 --- /dev/null +++ b/.mock/definition/Accounting/invoices.yml @@ -0,0 +1,1206 @@ +types: + InvoicesListRequestExpandItem: + enum: + - accounting_period + - applied_credit_notes + - applied_payments + - applied_vendor_credits + - company + - contact + - employee + - line_items + - payment_term + - payments + - purchase_orders + - tracking_categories + source: + openapi: accounting_v3.yml + InvoicesListRequestStatus: + enum: + - DRAFT + - OPEN + - PAID + - PARTIALLY_PAID + - SUBMITTED + - VOID + source: + openapi: accounting_v3.yml + InvoicesListRequestType: + enum: + - ACCOUNTS_PAYABLE + - ACCOUNTS_RECEIVABLE + source: + openapi: accounting_v3.yml + InvoicesRetrieveRequestExpandItem: + enum: + - accounting_period + - applied_credit_notes + - applied_payments + - applied_vendor_credits + - company + - contact + - employee + - line_items + - payment_term + - payments + - purchase_orders + - tracking_categories + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/invoices + method: GET + auth: true + docs: Returns a list of `Invoice` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: InvoicesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return invoices for this company. + contact_id: + type: optional + docs: If provided, will only return invoices for this contact. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + issue_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + issue_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + number: + type: optional + docs: If provided, will only return Invoices with this number. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: |- + If provided, will only return Invoices with this status. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + type: + type: optional + docs: |- + If provided, will only return Invoices with this type. + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + response: + docs: '' + type: accountingRoot.PaginatedInvoiceList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '990110' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: ACCOUNTS_RECEIVABLE + contact: contact + number: AIQ12546 + issue_date: '2020-03-31T00:00:00Z' + due_date: '2020-04-15T00:00:00Z' + paid_on_date: '2020-04-01T00:00:00Z' + memo: Weekly Payment + company: company + employee: employee + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + total_discount: 1.1 + sub_total: 100 + status: PAID + total_tax_amount: 5 + total_amount: 105 + balance: 105 + remote_updated_at: '2020-04-01T00:00:00Z' + tracking_categories: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + accounting_period: accounting_period + purchase_orders: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball lessons + unit_price: 50 + quantity: 1 + total_amount: 50 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + currency: USD + exchange_rate: '2.9' + item: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + account: cd0f32d4-a493-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + applied_credit_notes: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + credit_note: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + applied_vendor_credits: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + vendor_credit: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + inclusive_of_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/invoices + method: POST + auth: true + docs: |- + Creates an `Invoice` object with the given values. + Including a `PurchaseOrder` id in the `purchase_orders` property will generate an Accounts Payable Invoice from the specified Purchase Order(s). + + source: + openapi: accounting_v3.yml + request: + name: InvoiceEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.InvoiceRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.InvoiceResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '990110' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: ACCOUNTS_RECEIVABLE + contact: contact + number: AIQ12546 + issue_date: '2020-03-31T00:00:00Z' + due_date: '2020-04-15T00:00:00Z' + paid_on_date: '2020-04-01T00:00:00Z' + memo: Weekly Payment + company: company + employee: employee + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + total_discount: 1.1 + sub_total: 100 + status: PAID + total_tax_amount: 5 + total_amount: 105 + balance: 105 + remote_updated_at: '2020-04-01T00:00:00Z' + tracking_categories: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + accounting_period: accounting_period + purchase_orders: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball lessons + unit_price: 50 + quantity: 1 + total_amount: 50 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + currency: USD + exchange_rate: '2.9' + item: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + account: cd0f32d4-a493-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + applied_credit_notes: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + credit_note: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + applied_vendor_credits: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + vendor_credit: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + inclusive_of_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/invoices/{id} + method: GET + auth: true + docs: Returns an `Invoice` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: InvoicesRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: accountingRoot.Invoice + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '990110' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: ACCOUNTS_RECEIVABLE + contact: contact + number: AIQ12546 + issue_date: '2020-03-31T00:00:00Z' + due_date: '2020-04-15T00:00:00Z' + paid_on_date: '2020-04-01T00:00:00Z' + memo: Weekly Payment + company: company + employee: employee + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + total_discount: 1.1 + sub_total: 100 + status: PAID + total_tax_amount: 5 + total_amount: 105 + balance: 105 + remote_updated_at: '2020-04-01T00:00:00Z' + tracking_categories: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + accounting_period: accounting_period + purchase_orders: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball lessons + unit_price: 50 + quantity: 1 + total_amount: 50 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + currency: USD + exchange_rate: '2.9' + item: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + account: cd0f32d4-a493-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + tracking_category: tracking_category + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_fields: + - remote_field_class: remote_field_class + applied_credit_notes: + - remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + credit_note: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + applied_vendor_credits: + - remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + vendor_credit: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + inclusive_of_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /accounting/v1/invoices/{id} + method: PATCH + auth: true + docs: Updates an `Invoice` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: PatchedInvoiceEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.InvoiceRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.InvoiceResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '990110' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: ACCOUNTS_RECEIVABLE + contact: contact + number: AIQ12546 + issue_date: '2020-03-31T00:00:00Z' + due_date: '2020-04-15T00:00:00Z' + paid_on_date: '2020-04-01T00:00:00Z' + memo: Weekly Payment + company: company + employee: employee + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + total_discount: 1.1 + sub_total: 100 + status: PAID + total_tax_amount: 5 + total_amount: 105 + balance: 105 + remote_updated_at: '2020-04-01T00:00:00Z' + tracking_categories: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + accounting_period: accounting_period + purchase_orders: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball lessons + unit_price: 50 + quantity: 1 + total_amount: 50 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + currency: USD + exchange_rate: '2.9' + item: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + account: cd0f32d4-a493-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + applied_credit_notes: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + credit_note: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + applied_vendor_credits: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + vendor_credit: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + inclusive_of_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + lineItemsRemoteFieldClassesList: + path: /accounting/v1/invoices/line-items/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: InvoicesLineItemsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + metaPatchRetrieve: + path: /accounting/v1/invoices/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Invoice` PATCHs. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /accounting/v1/invoices/meta/post + method: GET + auth: true + docs: Returns metadata for `Invoice` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/invoices/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: InvoicesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/issues.yml b/.mock/definition/Accounting/issues.yml new file mode 100644 index 00000000..aaef5a35 --- /dev/null +++ b/.mock/definition/Accounting/issues.yml @@ -0,0 +1,133 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: accountingRoot.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /accounting/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + response: + docs: '' + type: accountingRoot.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/items.yml b/.mock/definition/Accounting/items.yml new file mode 100644 index 00000000..276001a8 --- /dev/null +++ b/.mock/definition/Accounting/items.yml @@ -0,0 +1,746 @@ +types: + ItemsListRequestExpandItem: + enum: + - company + - purchase_account + - purchase_tax_rate + - sales_account + - sales_tax_rate + source: + openapi: accounting_v3.yml + ItemsRetrieveRequestExpandItem: + enum: + - company + - purchase_account + - purchase_tax_rate + - sales_account + - sales_tax_rate + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/items + method: GET + auth: true + docs: Returns a list of `Item` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: ItemsListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return items for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: accountingRoot.PaginatedItemList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: d2f972d0-2526-434b-9409-4c3b468e08f0 + remote_id: '12374' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Pickleball Paddle + status: ACTIVE + type: INVENTORY + unit_price: 10 + purchase_price: 25 + purchase_account: purchase_account + sales_account: sales_account + company: company + purchase_tax_rate: purchase_tax_rate + sales_tax_rate: sales_tax_rate + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /accounting/v1/items + method: POST + auth: true + docs: Creates an `Item` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: ItemEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.ItemRequestRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.ItemResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: d2f972d0-2526-434b-9409-4c3b468e08f0 + remote_id: '12374' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Pickleball Paddle + status: ACTIVE + type: INVENTORY + unit_price: 10 + purchase_price: 25 + purchase_account: purchase_account + sales_account: sales_account + company: company + purchase_tax_rate: purchase_tax_rate + sales_tax_rate: sales_tax_rate + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/items/{id} + method: GET + auth: true + docs: Returns an `Item` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: ItemsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: accountingRoot.Item + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: d2f972d0-2526-434b-9409-4c3b468e08f0 + remote_id: '12374' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Pickleball Paddle + status: ACTIVE + type: INVENTORY + unit_price: 10 + purchase_price: 25 + purchase_account: purchase_account + sales_account: sales_account + company: company + purchase_tax_rate: purchase_tax_rate + sales_tax_rate: sales_tax_rate + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + partialUpdate: + path: /accounting/v1/items/{id} + method: PATCH + auth: true + docs: Updates an `Item` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: PatchedItemEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.PatchedItemRequestRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.ItemResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: d2f972d0-2526-434b-9409-4c3b468e08f0 + remote_id: '12374' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Pickleball Paddle + status: ACTIVE + type: INVENTORY + unit_price: 10 + purchase_price: 25 + purchase_account: purchase_account + sales_account: sales_account + company: company + purchase_tax_rate: purchase_tax_rate + sales_tax_rate: sales_tax_rate + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPatchRetrieve: + path: /accounting/v1/items/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Item` PATCHs. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /accounting/v1/items/meta/post + method: GET + auth: true + docs: Returns metadata for `Item` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/journalEntries.yml b/.mock/definition/Accounting/journalEntries.yml new file mode 100644 index 00000000..e9c87803 --- /dev/null +++ b/.mock/definition/Accounting/journalEntries.yml @@ -0,0 +1,741 @@ +types: + JournalEntriesListRequestExpandItem: + enum: + - accounting_period + - applied_payments + - company + - lines + - payments + - tracking_categories + source: + openapi: accounting_v3.yml + JournalEntriesRetrieveRequestExpandItem: + enum: + - accounting_period + - applied_payments + - company + - lines + - payments + - tracking_categories + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/journal-entries + method: GET + auth: true + docs: Returns a list of `JournalEntry` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: JournalEntriesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return journal entries for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: accountingRoot.PaginatedJournalEntryList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 4311155d-f236-4a5d-9e0f-1cb167e38f95 + memo: Weekly Payment + currency: XUA + exchange_rate: '2.9' + company: company + inclusive_of_tax: true + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + net_amount: 25.54 + tracking_categories: + - d25d609b-945f-4762-b55a-1c8fb220c43c + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 123c8r35-5kf5-12x5-r833-99bwf35210b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: d2d5ea3c-b032-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: Cash payment for lunch + exchange_rate: '2.9' + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: f963f34d-3d2f-4f77-b557-cf36bc7e6498 + net_amount: 10 + journal_number: '42' + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + posting_status: UNPOSTED + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/journal-entries + method: POST + auth: true + docs: Creates a `JournalEntry` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: JournalEntryEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.JournalEntryRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.JournalEntryResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 4311155d-f236-4a5d-9e0f-1cb167e38f95 + memo: Weekly Payment + currency: XUA + exchange_rate: '2.9' + company: company + inclusive_of_tax: true + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + net_amount: 25.54 + tracking_categories: + - d25d609b-945f-4762-b55a-1c8fb220c43c + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 123c8r35-5kf5-12x5-r833-99bwf35210b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: d2d5ea3c-b032-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: Cash payment for lunch + exchange_rate: '2.9' + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: f963f34d-3d2f-4f77-b557-cf36bc7e6498 + net_amount: 10 + journal_number: '42' + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + posting_status: UNPOSTED + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/journal-entries/{id} + method: GET + auth: true + docs: Returns a `JournalEntry` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: JournalEntriesRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.JournalEntry + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 4311155d-f236-4a5d-9e0f-1cb167e38f95 + memo: Weekly Payment + currency: XUA + exchange_rate: '2.9' + company: company + inclusive_of_tax: true + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + net_amount: 25.54 + tracking_category: tracking_category + tracking_categories: + - d25d609b-945f-4762-b55a-1c8fb220c43c + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + currency: XUA + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 123c8r35-5kf5-12x5-r833-99bwf35210b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: d2d5ea3c-b032-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: Cash payment for lunch + exchange_rate: '2.9' + remote_was_deleted: false + remote_fields: + - remote_field_class: remote_field_class + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: f963f34d-3d2f-4f77-b557-cf36bc7e6498 + net_amount: 10 + tracking_category: tracking_category + tracking_categories: + - d25d609b-945f-4762-b55a-1c8fb220c43c + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + currency: XUA + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 123c8r35-5kf5-12x5-r833-99bwf35210b5 + project: project + contact: d2d5ea3c-b032-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: Cash payment for lunch + exchange_rate: '2.9' + remote_was_deleted: true + remote_fields: + - remote_field_class: remote_field_class + journal_number: '42' + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + posting_status: UNPOSTED + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + linesRemoteFieldClassesList: + path: /accounting/v1/journal-entries/lines/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: JournalEntriesLinesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + metaPostRetrieve: + path: /accounting/v1/journal-entries/meta/post + method: GET + auth: true + docs: Returns metadata for `JournalEntry` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/journal-entries/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: JournalEntriesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/linkToken.yml b/.mock/definition/Accounting/linkToken.yml new file mode 100644 index 00000000..acdb8bb4 --- /dev/null +++ b/.mock/definition/Accounting/linkToken.yml @@ -0,0 +1,152 @@ +imports: + accountingRoot: __package__.yml +types: + EndUserDetailsRequestLanguage: + discriminated: false + docs: >- + The following subset of IETF language tags can be used to configure + localization. + + + * `en` - en + + * `de` - de + union: + - accountingRoot.LanguageEnum + - string + source: + openapi: accounting_v3.yml + inline: true +service: + auth: false + base-path: '' + endpoints: + create: + path: /accounting/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: accounting_v3.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: accountingRoot.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/linkedAccounts.yml b/.mock/definition/Accounting/linkedAccounts.yml new file mode 100644 index 00000000..228511b1 --- /dev/null +++ b/.mock/definition/Accounting/linkedAccounts.yml @@ -0,0 +1,152 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: accountingRoot.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/passthrough.yml b/.mock/definition/Accounting/passthrough.yml new file mode 100644 index 00000000..04acc055 --- /dev/null +++ b/.mock/definition/Accounting/passthrough.yml @@ -0,0 +1,40 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /accounting/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: accounting_v3.yml + request: + body: accountingRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/paymentMethods.yml b/.mock/definition/Accounting/paymentMethods.yml new file mode 100644 index 00000000..9e3b60b8 --- /dev/null +++ b/.mock/definition/Accounting/paymentMethods.yml @@ -0,0 +1,123 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/payment-methods + method: GET + auth: true + docs: Returns a list of `PaymentMethod` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: PaymentMethodsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedPaymentMethodList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + method_type: CREDIT_CARD + name: John Smith's Credit Card + is_active: true + remote_updated_at: '2021-09-15T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/payment-methods/{id} + method: GET + auth: true + docs: Returns a `PaymentMethod` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: PaymentMethodsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.PaymentMethod + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + method_type: CREDIT_CARD + name: John Smith's Credit Card + is_active: true + remote_updated_at: '2021-09-15T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/paymentTerms.yml b/.mock/definition/Accounting/paymentTerms.yml new file mode 100644 index 00000000..ea5a1054 --- /dev/null +++ b/.mock/definition/Accounting/paymentTerms.yml @@ -0,0 +1,139 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/payment-terms + method: GET + auth: true + docs: Returns a list of `PaymentTerm` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: PaymentTermsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedPaymentTermList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Net 30 + is_active: true + company: company + days_until_due: 30 + discount_days: 15 + remote_last_modified_at: '2024-10-16T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/payment-terms/{id} + method: GET + auth: true + docs: Returns a `PaymentTerm` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: PaymentTermsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.PaymentTerm + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Net 30 + is_active: true + company: company + days_until_due: 30 + discount_days: 15 + remote_last_modified_at: '2024-10-16T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/payments.yml b/.mock/definition/Accounting/payments.yml new file mode 100644 index 00000000..c91a3e65 --- /dev/null +++ b/.mock/definition/Accounting/payments.yml @@ -0,0 +1,986 @@ +types: + PaymentsListRequestExpandItem: + enum: + - account + - accounting_period + - applied_to_lines + - company + - contact + - payment_method + - tracking_categories + source: + openapi: accounting_v3.yml + PaymentsRetrieveRequestExpandItem: + enum: + - account + - accounting_period + - applied_to_lines + - company + - contact + - payment_method + - tracking_categories + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/payments + method: GET + auth: true + docs: Returns a list of `Payment` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: PaymentsListRequest + query-parameters: + account_id: + type: optional + docs: If provided, will only return payments for this account. + company_id: + type: optional + docs: If provided, will only return payments for this company. + contact_id: + type: optional + docs: If provided, will only return payments for this contact. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: accountingRoot.PaginatedPaymentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + contact: contact + account: account + payment_method: payment_method + currency: XUA + exchange_rate: '2.9' + company: company + total_amount: 50 + type: ACCOUNTS_PAYABLE + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + applied_to_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: '25' + applied_date: '2020-03-31T00:00:00Z' + related_object_id: a47e11b6-c73b-4a0c-be31-130fc48177fa + related_object_type: INVOICE + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '235' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: '25' + applied_date: '2020-03-31T00:00:00Z' + related_object_id: 9b96a886-29a5-452b-8733-2a1e03497cf4 + related_object_type: CREDIT_NOTE + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/payments + method: POST + auth: true + docs: Creates a `Payment` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: PaymentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.PaymentRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.PaymentResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + contact: contact + account: account + payment_method: payment_method + currency: XUA + exchange_rate: '2.9' + company: company + total_amount: 50 + type: ACCOUNTS_PAYABLE + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + applied_to_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: '25' + applied_date: '2020-03-31T00:00:00Z' + related_object_id: a47e11b6-c73b-4a0c-be31-130fc48177fa + related_object_type: INVOICE + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '235' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: '25' + applied_date: '2020-03-31T00:00:00Z' + related_object_id: 9b96a886-29a5-452b-8733-2a1e03497cf4 + related_object_type: CREDIT_NOTE + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/payments/{id} + method: GET + auth: true + docs: Returns a `Payment` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: PaymentsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.Payment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + contact: contact + account: account + payment_method: payment_method + currency: XUA + exchange_rate: '2.9' + company: company + total_amount: 50 + type: ACCOUNTS_PAYABLE + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + applied_to_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: '25' + applied_date: '2020-03-31T00:00:00Z' + related_object_id: a47e11b6-c73b-4a0c-be31-130fc48177fa + related_object_type: INVOICE + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '235' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: '25' + applied_date: '2020-03-31T00:00:00Z' + related_object_id: 9b96a886-29a5-452b-8733-2a1e03497cf4 + related_object_type: CREDIT_NOTE + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /accounting/v1/payments/{id} + method: PATCH + auth: true + docs: Updates a `Payment` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: PatchedPaymentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.PatchedPaymentRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.PaymentResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + contact: contact + account: account + payment_method: payment_method + currency: XUA + exchange_rate: '2.9' + company: company + total_amount: 50 + type: ACCOUNTS_PAYABLE + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + applied_to_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: '25' + applied_date: '2020-03-31T00:00:00Z' + related_object_id: a47e11b6-c73b-4a0c-be31-130fc48177fa + related_object_type: INVOICE + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '235' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: '25' + applied_date: '2020-03-31T00:00:00Z' + related_object_id: 9b96a886-29a5-452b-8733-2a1e03497cf4 + related_object_type: CREDIT_NOTE + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + lineItemsRemoteFieldClassesList: + path: /accounting/v1/payments/line-items/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: PaymentsLineItemsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + metaPatchRetrieve: + path: /accounting/v1/payments/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Payment` PATCHs. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /accounting/v1/payments/meta/post + method: GET + auth: true + docs: Returns metadata for `Payment` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/payments/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: PaymentsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/phoneNumbers.yml b/.mock/definition/Accounting/phoneNumbers.yml new file mode 100644 index 00000000..293ef8ae --- /dev/null +++ b/.mock/definition/Accounting/phoneNumbers.yml @@ -0,0 +1,44 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/phone-numbers/{id} + method: GET + auth: true + docs: Returns an `AccountingPhoneNumber` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: PhoneNumbersRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.AccountingPhoneNumber + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '+3198675309' + type: Mobile + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/projects.yml b/.mock/definition/Accounting/projects.yml new file mode 100644 index 00000000..0aa5d634 --- /dev/null +++ b/.mock/definition/Accounting/projects.yml @@ -0,0 +1,144 @@ +types: + ProjectsListRequestExpandItem: + enum: + - company + - contact + source: + openapi: accounting_v3.yml + ProjectsRetrieveRequestExpandItem: + enum: + - company + - contact + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/projects + method: GET + auth: true + docs: Returns a list of `Project` objects. + source: + openapi: accounting_v3.yml + request: + name: ProjectsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedProjectList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Permissions Mapping + is_active: true + company: company + contact: contact + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/projects/{id} + method: GET + auth: true + docs: Returns a `Project` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: ProjectsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.Project + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Permissions Mapping + is_active: true + company: company + contact: contact + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/purchaseOrders.yml b/.mock/definition/Accounting/purchaseOrders.yml new file mode 100644 index 00000000..f85a771d --- /dev/null +++ b/.mock/definition/Accounting/purchaseOrders.yml @@ -0,0 +1,787 @@ +types: + PurchaseOrdersListRequestExpandItem: + enum: + - accounting_period + - company + - delivery_address + - line_items + - payment_term + - tracking_categories + - vendor + source: + openapi: accounting_v3.yml + PurchaseOrdersRetrieveRequestExpandItem: + enum: + - accounting_period + - company + - delivery_address + - line_items + - payment_term + - tracking_categories + - vendor + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/purchase-orders + method: GET + auth: true + docs: Returns a list of `PurchaseOrder` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: PurchaseOrdersListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return purchase orders for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + issue_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + issue_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: accountingRoot.PaginatedPurchaseOrderList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: '239741' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + status: DRAFT + issue_date: '2020-03-31T00:00:00Z' + purchase_order_number: PO1234 + delivery_date: '2020-04-15T00:00:00Z' + delivery_address: delivery_address + customer: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + vendor: vendor + memo: private note + company: company + total_amount: 260 + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball paddles + unit_price: 25 + quantity: 10 + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + currency: USD + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball Balls + unit_price: 1 + quantity: 10 + item: 249c9faa-3045-4a31-953b-8f22d3613301 + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + inclusive_of_tax: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/purchase-orders + method: POST + auth: true + docs: Creates a `PurchaseOrder` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: PurchaseOrderEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.PurchaseOrderRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.PurchaseOrderResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: '239741' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + status: DRAFT + issue_date: '2020-03-31T00:00:00Z' + purchase_order_number: PO1234 + delivery_date: '2020-04-15T00:00:00Z' + delivery_address: delivery_address + customer: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + vendor: vendor + memo: private note + company: company + total_amount: 260 + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball paddles + unit_price: 25 + quantity: 10 + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + currency: USD + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball Balls + unit_price: 1 + quantity: 10 + item: 249c9faa-3045-4a31-953b-8f22d3613301 + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + inclusive_of_tax: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/purchase-orders/{id} + method: GET + auth: true + docs: Returns a `PurchaseOrder` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: PurchaseOrdersRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: accountingRoot.PurchaseOrder + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: '239741' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + status: DRAFT + issue_date: '2020-03-31T00:00:00Z' + purchase_order_number: PO1234 + delivery_date: '2020-04-15T00:00:00Z' + delivery_address: delivery_address + customer: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + vendor: vendor + memo: private note + company: company + total_amount: 260 + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball paddles + unit_price: 25 + quantity: 10 + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + account: account + tracking_category: tracking_category + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + currency: USD + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + remote_fields: + - remote_field_class: remote_field_class + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball Balls + unit_price: 1 + quantity: 10 + item: 249c9faa-3045-4a31-953b-8f22d3613301 + account: account + tracking_category: tracking_category + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + currency: XUA + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + remote_fields: + - remote_field_class: remote_field_class + inclusive_of_tax: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + lineItemsRemoteFieldClassesList: + path: /accounting/v1/purchase-orders/line-items/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: PurchaseOrdersLineItemsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + metaPostRetrieve: + path: /accounting/v1/purchase-orders/meta/post + method: GET + auth: true + docs: Returns metadata for `PurchaseOrder` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/purchase-orders/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: PurchaseOrdersRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/regenerateKey.yml b/.mock/definition/Accounting/regenerateKey.yml new file mode 100644 index 00000000..57885032 --- /dev/null +++ b/.mock/definition/Accounting/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /accounting/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: accounting_v3.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: accountingRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/scopes.yml b/.mock/definition/Accounting/scopes.yml new file mode 100644 index 00000000..5bed6a26 --- /dev/null +++ b/.mock/definition/Accounting/scopes.yml @@ -0,0 +1,161 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /accounting/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /accounting/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /accounting/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: accounting_v3.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: >- + list + content-type: application/json + response: + docs: '' + type: accountingRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/syncStatus.yml b/.mock/definition/Accounting/syncStatus.yml new file mode 100644 index 00000000..2872af19 --- /dev/null +++ b/.mock/definition/Accounting/syncStatus.yml @@ -0,0 +1,59 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: accountingRoot.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: Invoice + model_id: accounting.Invoices + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/taxRates.yml b/.mock/definition/Accounting/taxRates.yml new file mode 100644 index 00000000..8f3ccfb3 --- /dev/null +++ b/.mock/definition/Accounting/taxRates.yml @@ -0,0 +1,191 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/tax-rates + method: GET + auth: true + docs: Returns a list of `TaxRate` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: TaxRatesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return tax rates for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: If provided, will only return TaxRates with this name. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: accountingRoot.PaginatedTaxRateList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b82302de-852e-4e60-b050-edf9da3b7c02 + remote_id: '039111' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + company: company + code: '890' + name: State tax rate + description: Sales Tax + status: ACTIVE + country: US + total_tax_rate: 15 + effective_tax_rate: 15 + tax_components: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '039111' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Drink Tax Component + rate: rate + is_compound: true + component_type: SALES + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/tax-rates/{id} + method: GET + auth: true + docs: Returns a `TaxRate` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: TaxRatesRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.TaxRate + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b82302de-852e-4e60-b050-edf9da3b7c02 + remote_id: '039111' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + company: company + code: '890' + name: State tax rate + description: Sales Tax + status: ACTIVE + country: US + total_tax_rate: 15 + effective_tax_rate: 15 + tax_components: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '039111' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Drink Tax Component + rate: rate + is_compound: true + component_type: SALES + remote_was_deleted: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/trackingCategories.yml b/.mock/definition/Accounting/trackingCategories.yml new file mode 100644 index 00000000..50c47e8e --- /dev/null +++ b/.mock/definition/Accounting/trackingCategories.yml @@ -0,0 +1,188 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/tracking-categories + method: GET + auth: true + docs: Returns a list of `TrackingCategory` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: TrackingCategoriesListRequest + query-parameters: + category_type: + type: optional + docs: If provided, will only return tracking categories with this type. + company_id: + type: optional + docs: >- + If provided, will only return tracking categories for this + company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: If provided, will only return tracking categories with this name. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: >- + If provided, will only return tracking categories with this + status. + response: + docs: '' + type: accountingRoot.PaginatedTrackingCategoryList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '948201' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Marketing Department + status: ACTIVE + category_type: CLASS + parent_category: d25d609b-945f-4762-b55a-1c8fb220c43c + company: company + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + retrieve: + path: /accounting/v1/tracking-categories/{id} + method: GET + auth: true + docs: Returns a `TrackingCategory` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: TrackingCategoriesRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: accountingRoot.TrackingCategory + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '948201' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Marketing Department + status: ACTIVE + category_type: CLASS + parent_category: d25d609b-945f-4762-b55a-1c8fb220c43c + company: company + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/transactions.yml b/.mock/definition/Accounting/transactions.yml new file mode 100644 index 00000000..de2a13f6 --- /dev/null +++ b/.mock/definition/Accounting/transactions.yml @@ -0,0 +1,287 @@ +types: + TransactionsListRequestExpandItem: + enum: + - account + - accounting_period + - contact + - line_items + - tracking_categories + source: + openapi: accounting_v3.yml + TransactionsRetrieveRequestExpandItem: + enum: + - account + - accounting_period + - contact + - line_items + - tracking_categories + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/transactions + method: GET + auth: true + docs: Returns a list of `Transaction` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: TransactionsListRequest + query-parameters: + company_id: + type: optional + docs: >- + If provided, will only return accounting transactions for this + company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: accountingRoot.PaginatedTransactionList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: '239741' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_type: estimate + number: '122' + transaction_date: '2020-03-31T00:00:00Z' + account: account + contact: contact + inclusive_of_tax: true + total_amount: total_amount + currency: XUA + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + memo: Pickleball paddles + unit_price: '25.0' + quantity: '10.0' + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + account: 2b38c085-2620-4269-b5ec-75dd9095ed2c + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + total_line_amount: total_line_amount + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + currency: USD + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + memo: Pickleball balls + unit_price: '25.0' + quantity: '10.0' + item: 249c9faa-3045-4a31-953b-8f22d3613301 + account: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + total_line_amount: total_line_amount + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/transactions/{id} + method: GET + auth: true + docs: Returns a `Transaction` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: TransactionsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.Transaction + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: '239741' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_type: estimate + number: '122' + transaction_date: '2020-03-31T00:00:00Z' + account: account + contact: contact + inclusive_of_tax: true + total_amount: total_amount + currency: XUA + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + memo: Pickleball paddles + unit_price: '25.0' + quantity: '10.0' + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + account: 2b38c085-2620-4269-b5ec-75dd9095ed2c + tracking_category: tracking_category + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + total_line_amount: total_line_amount + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + currency: USD + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + memo: Pickleball balls + unit_price: '25.0' + quantity: '10.0' + item: 249c9faa-3045-4a31-953b-8f22d3613301 + account: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + tracking_category: tracking_category + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + total_line_amount: total_line_amount + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + currency: XUA + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/vendorCredits.yml b/.mock/definition/Accounting/vendorCredits.yml new file mode 100644 index 00000000..6c91ef16 --- /dev/null +++ b/.mock/definition/Accounting/vendorCredits.yml @@ -0,0 +1,585 @@ +types: + VendorCreditsListRequestExpandItem: + enum: + - accounting_period + - company + - lines + - tracking_categories + - vendor + source: + openapi: accounting_v3.yml + VendorCreditsRetrieveRequestExpandItem: + enum: + - accounting_period + - company + - lines + - tracking_categories + - vendor + source: + openapi: accounting_v3.yml +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/vendor-credits + method: GET + auth: true + docs: Returns a list of `VendorCredit` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: accounting_v3.yml + request: + name: VendorCreditsListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return vendor credits for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: accountingRoot.PaginatedVendorCreditList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '6' + transaction_date: '2020-03-31T00:00:00Z' + vendor: vendor + total_amount: 10000 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 25.54 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Gifted Merge Credit + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 10 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Refund for overpayment + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + applied_to_lines: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /accounting/v1/vendor-credits + method: POST + auth: true + docs: Creates a `VendorCredit` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: VendorCreditEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: accountingRoot.VendorCreditRequest + content-type: application/json + response: + docs: '' + type: accountingRoot.VendorCreditResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '6' + transaction_date: '2020-03-31T00:00:00Z' + vendor: vendor + total_amount: 10000 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 25.54 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Gifted Merge Credit + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 10 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Refund for overpayment + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + applied_to_lines: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/vendor-credits/{id} + method: GET + auth: true + docs: Returns a `VendorCredit` object with the given `id`. + source: + openapi: accounting_v3.yml + path-parameters: + id: string + request: + name: VendorCreditsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: accountingRoot.VendorCredit + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '6' + transaction_date: '2020-03-31T00:00:00Z' + vendor: vendor + total_amount: 10000 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 25.54 + tracking_category: tracking_category + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Gifted Merge Credit + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 10 + tracking_category: tracking_category + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Refund for overpayment + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: project + contact: contact + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + remote_was_deleted: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + applied_to_lines: + - remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + metaPostRetrieve: + path: /accounting/v1/vendor-credits/meta/post + method: GET + auth: true + docs: Returns metadata for `VendorCredit` POSTs. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: accountingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/Accounting/webhookReceivers.yml b/.mock/definition/Accounting/webhookReceivers.yml new file mode 100644 index 00000000..bb5e70aa --- /dev/null +++ b/.mock/definition/Accounting/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + accountingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: accounting_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /accounting/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: accounting_v3.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: accountingRoot.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: accounting_v3.yml diff --git a/.mock/definition/CRM/__package__.yml b/.mock/definition/CRM/__package__.yml new file mode 100644 index 00000000..d5382cc7 --- /dev/null +++ b/.mock/definition/CRM/__package__.yml @@ -0,0 +1,5733 @@ +types: + AccountOwner: + discriminated: false + docs: The account's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + Account: + docs: |- + # The Account Object + ### Description + The `Account` object is used to represent a company in a CRM system. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + owner: + type: optional + docs: The account's owner. + name: + type: optional + docs: The account's name. + description: + type: optional + docs: The account's description. + industry: + type: optional + docs: The account's industry. + website: + type: optional + docs: The account's website. + validation: + format: uri + maxLength: 2000 + number_of_employees: + type: optional + docs: The account's number of employees. + validation: + min: -2147483648 + max: 2147483647 + addresses: optional> + phone_numbers: + type: optional> + access: read-only + last_activity_at: + type: optional + docs: >- + The last date (either most recent or furthest in the future) of when + an activity occurs in an account. + remote_updated_at: + type: optional + docs: >- + When the CRM system account data was last modified by a user with a + login. + remote_created_at: + type: optional + docs: When the third party's account was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + AccountDetailsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: crm_v3.yml + inline: true + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: crm_v3.yml + AccountDetailsAndActionsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: crm_v3.yml + inline: true + AccountDetailsAndActionsStatus: + discriminated: false + union: + - AccountDetailsAndActionsStatusEnum + - string + source: + openapi: crm_v3.yml + inline: true + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatus + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + source: + openapi: crm_v3.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: crm_v3.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: crm_v3.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: crm_v3.yml + AccountRequestOwner: + discriminated: false + docs: The account's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + AccountRequest: + docs: |- + # The Account Object + ### Description + The `Account` object is used to represent a company in a CRM system. + ### Usage Example + TODO + properties: + owner: + type: optional + docs: The account's owner. + name: + type: optional + docs: The account's name. + description: + type: optional + docs: The account's description. + industry: + type: optional + docs: The account's industry. + website: + type: optional + docs: The account's website. + validation: + format: uri + maxLength: 2000 + number_of_employees: + type: optional + docs: The account's number of employees. + validation: + min: -2147483648 + max: 2147483647 + addresses: optional> + last_activity_at: + type: optional + docs: >- + The last date (either most recent or furthest in the future) of when + an activity occurs in an account. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: crm_v3.yml + ActivityTypeEnum: + enum: + - CALL + - MEETING + - EMAIL + docs: |- + * `CALL` - CALL + * `MEETING` - MEETING + * `EMAIL` - EMAIL + source: + openapi: crm_v3.yml + AddressCountry: + discriminated: false + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + union: + - CountryEnum + - string + source: + openapi: crm_v3.yml + inline: true + AddressAddressType: + discriminated: false + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + union: + - AddressTypeEnum + - string + source: + openapi: crm_v3.yml + inline: true + Address: + docs: |- + # The Address Object + ### Description + The `Address` object is used to represent an entity's address. + ### Usage Example + TODO + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + street_1: + type: optional + docs: Line 1 of the address's street. + street_2: + type: optional + docs: Line 2 of the address's street. + city: + type: optional + docs: The address's city. + state: + type: optional + docs: The address's state. + postal_code: + type: optional + docs: The address's postal code. + country: + type: optional + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + address_type: + type: optional + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + source: + openapi: crm_v3.yml + AddressRequestCountry: + discriminated: false + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + union: + - CountryEnum + - string + source: + openapi: crm_v3.yml + inline: true + AddressRequestAddressType: + discriminated: false + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + union: + - AddressTypeEnum + - string + source: + openapi: crm_v3.yml + inline: true + AddressRequest: + docs: |- + # The Address Object + ### Description + The `Address` object is used to represent an entity's address. + ### Usage Example + TODO + properties: + street_1: + type: optional + docs: Line 1 of the address's street. + street_2: + type: optional + docs: Line 2 of the address's street. + city: + type: optional + docs: The address's city. + state: + type: optional + docs: The address's state. + postal_code: + type: optional + docs: The address's postal code. + country: + type: optional + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + address_type: + type: optional + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + AddressTypeEnum: + enum: + - BILLING + - SHIPPING + docs: |- + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + source: + openapi: crm_v3.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: crm_v3.yml + AssociationAssociationType: + discriminated: false + docs: The association type the association belongs to. + union: + - type: string + validation: + format: uuid + - AssociationType + source: + openapi: crm_v3.yml + inline: true + Association: + docs: |- + # The Association Object + ### Description + The `Association` record refers to an instance of an Association Type. + ### Usage Example + TODO + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + source_object: + type: optional + validation: + format: uuid + access: read-only + target_object: + type: optional + validation: + format: uuid + access: read-only + association_type: + type: optional + docs: The association type the association belongs to. + source: + openapi: crm_v3.yml + AssociationSubType: + properties: + id: + type: optional + access: read-only + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + origin_type: + type: optional + access: read-only + source: + openapi: crm_v3.yml + AssociationTypeCardinality: + discriminated: false + union: + - CardinalityEnum + - string + source: + openapi: crm_v3.yml + inline: true + AssociationType: + docs: >- + # The AssociationType Object + + ### Description + + The `Association Type` object represents the relationship between two + objects. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + source_object_class: + type: optional> + docs: >- + The class of the source object (Custom Object or Common Model) for the + association type. + access: read-only + target_object_classes: + type: optional> + access: read-only + remote_key_name: optional + display_name: optional + cardinality: optional + is_required: optional + source: + openapi: crm_v3.yml + AssociationTypeRequestRequest: + properties: + source_object_class: ObjectClassDescriptionRequest + target_object_classes: list + remote_key_name: + type: string + validation: + minLength: 1 + display_name: + type: optional + validation: + minLength: 1 + cardinality: optional + is_required: + type: optional + default: false + source: + openapi: crm_v3.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: crm_v3.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: crm_v3.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: crm_v3.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: crm_v3.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: crm_v3.yml + CrmAccountResponse: + properties: + model: Account + warnings: list + errors: list + logs: optional> + source: + openapi: crm_v3.yml + CrmAssociationTypeResponse: + properties: + model: AssociationType + warnings: list + errors: list + logs: optional> + source: + openapi: crm_v3.yml + CrmContactResponse: + properties: + model: Contact + warnings: list + errors: list + logs: optional> + source: + openapi: crm_v3.yml + CrmCustomObjectResponse: + properties: + model: CustomObject + warnings: list + errors: list + logs: optional> + source: + openapi: crm_v3.yml + CardinalityEnum: + enum: + - ONE_TO_ONE + - MANY_TO_ONE + - MANY_TO_MANY + - ONE_TO_MANY + docs: |- + * `ONE_TO_ONE` - ONE_TO_ONE + * `MANY_TO_ONE` - MANY_TO_ONE + * `MANY_TO_MANY` - MANY_TO_MANY + * `ONE_TO_MANY` - ONE_TO_MANY + source: + openapi: crm_v3.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: crm_v3.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: crm_v3.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: crm_v3.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: crm_v3.yml + ContactAccount: + discriminated: false + docs: The contact's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + ContactOwner: + discriminated: false + docs: The contact's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + Contact: + docs: >- + # The Contact Object + + ### Description + + The `Contact` object is used to represent an existing point of contact at + a company in a CRM system. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + first_name: + type: optional + docs: The contact's first name. + last_name: + type: optional + docs: The contact's last name. + account: + type: optional + docs: The contact's account. + owner: + type: optional + docs: The contact's owner. + addresses: optional> + email_addresses: optional> + phone_numbers: optional> + last_activity_at: + type: optional + docs: When the contact's last activity occurred. + remote_created_at: + type: optional + docs: When the third party's contact was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + ContactRequestAccount: + discriminated: false + docs: The contact's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + ContactRequestOwner: + discriminated: false + docs: The contact's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + ContactRequest: + docs: >- + # The Contact Object + + ### Description + + The `Contact` object is used to represent an existing point of contact at + a company in a CRM system. + + ### Usage Example + + TODO + properties: + first_name: + type: optional + docs: The contact's first name. + last_name: + type: optional + docs: The contact's last name. + account: + type: optional + docs: The contact's account. + owner: + type: optional + docs: The contact's owner. + addresses: optional> + email_addresses: optional> + phone_numbers: optional> + last_activity_at: + type: optional + docs: When the contact's last activity occurred. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + CountryEnum: + enum: + - AF + - AX + - AL + - DZ + - AS + - AD + - AO + - AI + - AQ + - AG + - AR + - AM + - AW + - AU + - AT + - AZ + - BS + - BH + - BD + - BB + - BY + - BE + - BZ + - BJ + - BM + - BT + - BO + - BQ + - BA + - BW + - BV + - BR + - IO + - BN + - BG + - BF + - BI + - CV + - KH + - CM + - CA + - KY + - CF + - TD + - CL + - CN + - CX + - CC + - CO + - KM + - CG + - CD + - CK + - CR + - CI + - HR + - CU + - CW + - CY + - CZ + - DK + - DJ + - DM + - DO + - EC + - EG + - SV + - GQ + - ER + - EE + - SZ + - ET + - FK + - FO + - FJ + - FI + - FR + - GF + - PF + - TF + - GA + - GM + - GE + - DE + - GH + - GI + - GR + - GL + - GD + - GP + - GU + - GT + - GG + - GN + - GW + - GY + - HT + - HM + - VA + - HN + - HK + - HU + - IS + - IN + - ID + - IR + - IQ + - IE + - IM + - IL + - IT + - JM + - JP + - JE + - JO + - KZ + - KE + - KI + - KW + - KG + - LA + - LV + - LB + - LS + - LR + - LY + - LI + - LT + - LU + - MO + - MG + - MW + - MY + - MV + - ML + - MT + - MH + - MQ + - MR + - MU + - YT + - MX + - FM + - MD + - MC + - MN + - ME + - MS + - MA + - MZ + - MM + - NA + - NR + - NP + - NL + - NC + - NZ + - NI + - NE + - NG + - NU + - NF + - KP + - MK + - MP + - 'NO' + - OM + - PK + - PW + - PS + - PA + - PG + - PY + - PE + - PH + - PN + - PL + - PT + - PR + - QA + - RE + - RO + - RU + - RW + - BL + - SH + - KN + - LC + - MF + - PM + - VC + - WS + - SM + - ST + - SA + - SN + - RS + - SC + - SL + - SG + - SX + - SK + - SI + - SB + - SO + - ZA + - GS + - KR + - SS + - ES + - LK + - SD + - SR + - SJ + - SE + - CH + - SY + - TW + - TJ + - TZ + - TH + - TL + - TG + - TK + - TO + - TT + - TN + - TR + - TM + - TC + - TV + - UG + - UA + - AE + - GB + - UM + - US + - UY + - UZ + - VU + - VE + - VN + - VG + - VI + - WF + - EH + - YE + - ZM + - ZW + docs: |- + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + source: + openapi: crm_v3.yml + CustomObject: + docs: |- + # The CustomObject Object + ### Description + The `Custom Object` record refers to an instance of a Custom Object Class. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + object_class: + type: optional + docs: The custom object class the custom object record belongs to. + validation: + format: uuid + fields: + type: optional> + docs: The fields and values contained within the custom object record. + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + CustomObjectClass: + docs: >- + # The Custom Object Class Object + + ### Description + + The `Custom Object Class` object is used to represent a Custom Object + Schema in the remote system. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + access: read-only + modified_at: + type: optional + access: read-only + name: + type: optional + docs: The custom object class's name. + description: + type: optional + docs: The custom object class's description. + labels: + type: optional>> + docs: The custom object class's singular and plural labels. + access: read-only + fields: + type: optional> + access: read-only + association_types: + type: optional>> + docs: >- + The types of associations with other models that the custom object + class can have. + access: read-only + source: + openapi: crm_v3.yml + CustomObjectRequest: + properties: + fields: map + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: MethodEnum + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: crm_v3.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: crm_v3.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: crm_v3.yml + DirectionEnum: + enum: + - INBOUND + - OUTBOUND + docs: |- + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + source: + openapi: crm_v3.yml + EmailAddress: + docs: |- + # The EmailAddress Object + ### Description + The `EmailAddress` object is used to represent an entity's email address. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their email addresses. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + email_address: + type: optional + docs: The email address. + email_address_type: + type: optional + docs: The email address's type. + source: + openapi: crm_v3.yml + EmailAddressRequest: + docs: |- + # The EmailAddress Object + ### Description + The `EmailAddress` object is used to represent an entity's email address. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their email addresses. + properties: + email_address: + type: optional + docs: The email address. + email_address_type: + type: optional + docs: The email address's type. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: crm_v3.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: crm_v3.yml + EngagementOwner: + discriminated: false + docs: The engagement's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + EngagementDirection: + discriminated: false + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + union: + - DirectionEnum + - string + source: + openapi: crm_v3.yml + inline: true + EngagementEngagementType: + discriminated: false + docs: The engagement type of the engagement. + union: + - type: string + validation: + format: uuid + - EngagementType + source: + openapi: crm_v3.yml + inline: true + EngagementAccount: + discriminated: false + docs: The account of the engagement. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + EngagementContactsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: crm_v3.yml + inline: true + Engagement: + docs: >- + # The Engagement Object + + ### Description + + The `Engagement` object is used to represent an interaction noted in a CRM + system. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + owner: + type: optional + docs: The engagement's owner. + content: + type: optional + docs: The engagement's content. + subject: + type: optional + docs: The engagement's subject. + direction: + type: optional + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + engagement_type: + type: optional + docs: The engagement type of the engagement. + start_time: + type: optional + docs: The time at which the engagement started. + end_time: + type: optional + docs: The time at which the engagement ended. + account: + type: optional + docs: The account of the engagement. + contacts: optional>> + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + EngagementRequestOwner: + discriminated: false + docs: The engagement's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + EngagementRequestDirection: + discriminated: false + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + union: + - DirectionEnum + - string + source: + openapi: crm_v3.yml + inline: true + EngagementRequestEngagementType: + discriminated: false + docs: The engagement type of the engagement. + union: + - type: string + validation: + format: uuid + - EngagementType + source: + openapi: crm_v3.yml + inline: true + EngagementRequestAccount: + discriminated: false + docs: The account of the engagement. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + EngagementRequestContactsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: crm_v3.yml + inline: true + EngagementRequest: + docs: >- + # The Engagement Object + + ### Description + + The `Engagement` object is used to represent an interaction noted in a CRM + system. + + ### Usage Example + + TODO + properties: + owner: + type: optional + docs: The engagement's owner. + content: + type: optional + docs: The engagement's content. + subject: + type: optional + docs: The engagement's subject. + direction: + type: optional + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + engagement_type: + type: optional + docs: The engagement type of the engagement. + start_time: + type: optional + docs: The time at which the engagement started. + end_time: + type: optional + docs: The time at which the engagement ended. + account: + type: optional + docs: The account of the engagement. + contacts: optional>> + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + EngagementResponse: + properties: + model: Engagement + warnings: list + errors: list + logs: optional> + source: + openapi: crm_v3.yml + EngagementTypeActivityType: + discriminated: false + docs: |- + The engagement type's activity type. + + * `CALL` - CALL + * `MEETING` - MEETING + * `EMAIL` - EMAIL + union: + - ActivityTypeEnum + - string + source: + openapi: crm_v3.yml + inline: true + EngagementType: + docs: >- + # The Engagement Type Object + + ### Description + + The `Engagement Type` object is used to represent an interaction activity. + A given `Engagement` typically has an `Engagement Type` object represented + in the engagement_type field. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + activity_type: + type: optional + docs: |- + The engagement type's activity type. + + * `CALL` - CALL + * `MEETING` - MEETING + * `EMAIL` - EMAIL + name: + type: optional + docs: The engagement type's name. + remote_fields: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: crm_v3.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: crm_v3.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: crm_v3.yml + ExternalTargetFieldApiResponse: + properties: + Account: optional> + Contact: optional> + Lead: optional> + Note: optional> + Opportunity: optional> + Stage: optional> + User: optional> + Task: optional> + Engagement: optional> + source: + openapi: crm_v3.yml + FieldFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: crm_v3.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: crm_v3.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: crm_v3.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: crm_v3.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: crm_v3.yml + FieldMappingApiInstanceResponse: + properties: + Account: optional> + Contact: optional> + Lead: optional> + Note: optional> + Opportunity: optional> + Stage: optional> + User: optional> + Task: optional> + Engagement: optional> + source: + openapi: crm_v3.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: crm_v3.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: crm_v3.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: crm_v3.yml + FieldTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: crm_v3.yml + IgnoreCommonModelRequestReason: + discriminated: false + union: + - ReasonEnum + - string + source: + openapi: crm_v3.yml + inline: true + IgnoreCommonModelRequest: + properties: + reason: IgnoreCommonModelRequestReason + message: + type: optional + validation: + minLength: 1 + maxLength: 256 + source: + openapi: crm_v3.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: crm_v3.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: crm_v3.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: crm_v3.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: crm_v3.yml + ItemFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - uuid + * `number` - url + * `date` - email + * `datetime` - phone + * `bool` - currency + * `list` - decimal + source: + openapi: crm_v3.yml + ItemSchema: + properties: + item_type: optional + item_format: optional + item_choices: optional> + source: + openapi: crm_v3.yml + ItemTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: crm_v3.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: crm_v3.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: crm_v3.yml + LeadOwner: + discriminated: false + docs: The lead's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + LeadConvertedContact: + discriminated: false + docs: The contact of the converted lead. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: crm_v3.yml + inline: true + LeadConvertedAccount: + discriminated: false + docs: The account of the converted lead. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + Lead: + docs: >- + # The Lead Object + + ### Description + + The `Lead` object is used to represent an individual who is a potential + customer. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + owner: + type: optional + docs: The lead's owner. + lead_source: + type: optional + docs: The lead's source. + title: + type: optional + docs: The lead's title. + company: + type: optional + docs: The lead's company. + first_name: + type: optional + docs: The lead's first name. + last_name: + type: optional + docs: The lead's last name. + addresses: + type: optional> + access: read-only + email_addresses: + type: optional> + access: read-only + phone_numbers: + type: optional> + access: read-only + remote_updated_at: + type: optional + docs: When the third party's lead was updated. + remote_created_at: + type: optional + docs: When the third party's lead was created. + converted_date: + type: optional + docs: When the lead was converted. + converted_contact: + type: optional + docs: The contact of the converted lead. + converted_account: + type: optional + docs: The account of the converted lead. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + LeadRequestOwner: + discriminated: false + docs: The lead's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + LeadRequestConvertedContact: + discriminated: false + docs: The contact of the converted lead. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: crm_v3.yml + inline: true + LeadRequestConvertedAccount: + discriminated: false + docs: The account of the converted lead. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + LeadRequest: + docs: >- + # The Lead Object + + ### Description + + The `Lead` object is used to represent an individual who is a potential + customer. + + ### Usage Example + + TODO + properties: + owner: + type: optional + docs: The lead's owner. + lead_source: + type: optional + docs: The lead's source. + title: + type: optional + docs: The lead's title. + company: + type: optional + docs: The lead's company. + first_name: + type: optional + docs: The lead's first name. + last_name: + type: optional + docs: The lead's last name. + addresses: optional> + email_addresses: optional> + phone_numbers: optional> + converted_date: + type: optional + docs: When the lead was converted. + converted_contact: + type: optional + docs: The contact of the converted lead. + converted_account: + type: optional + docs: The account of the converted lead. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + LeadResponse: + properties: + model: Lead + warnings: list + errors: list + logs: optional> + source: + openapi: crm_v3.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: crm_v3.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: crm_v3.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: crm_v3.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: crm_v3.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: crm_v3.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: crm_v3.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: crm_v3.yml + MultipartFormFieldRequestEncoding: + discriminated: false + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + union: + - EncodingEnum + - string + source: + openapi: crm_v3.yml + inline: true + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: crm_v3.yml + NoteOwner: + discriminated: false + docs: The note's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + NoteContact: + discriminated: false + docs: The note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: crm_v3.yml + inline: true + NoteAccount: + discriminated: false + docs: The note's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + NoteOpportunity: + discriminated: false + docs: The note's opportunity. + union: + - type: string + validation: + format: uuid + - Opportunity + source: + openapi: crm_v3.yml + inline: true + Note: + docs: |- + # The Note Object + ### Description + The `Note` object is used to represent a note on another object. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + owner: + type: optional + docs: The note's owner. + content: + type: optional + docs: The note's content. + contact: + type: optional + docs: The note's contact. + account: + type: optional + docs: The note's account. + opportunity: + type: optional + docs: The note's opportunity. + remote_updated_at: + type: optional + docs: When the third party's lead was updated. + remote_created_at: + type: optional + docs: When the third party's lead was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + NoteRequestOwner: + discriminated: false + docs: The note's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + NoteRequestContact: + discriminated: false + docs: The note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: crm_v3.yml + inline: true + NoteRequestAccount: + discriminated: false + docs: The note's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + NoteRequestOpportunity: + discriminated: false + docs: The note's opportunity. + union: + - type: string + validation: + format: uuid + - Opportunity + source: + openapi: crm_v3.yml + inline: true + NoteRequest: + docs: |- + # The Note Object + ### Description + The `Note` object is used to represent a note on another object. + ### Usage Example + TODO + properties: + owner: + type: optional + docs: The note's owner. + content: + type: optional + docs: The note's content. + contact: + type: optional + docs: The note's contact. + account: + type: optional + docs: The note's account. + opportunity: + type: optional + docs: The note's opportunity. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + NoteResponse: + properties: + model: Note + warnings: list + errors: list + logs: optional> + source: + openapi: crm_v3.yml + ObjectClassDescriptionRequest: + properties: + id: + type: string + validation: + minLength: 1 + origin_type: OriginTypeEnum + source: + openapi: crm_v3.yml + OpportunityOwner: + discriminated: false + docs: The opportunity's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + OpportunityAccount: + discriminated: false + docs: The account of the opportunity. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + OpportunityStage: + discriminated: false + docs: The stage of the opportunity. + union: + - type: string + validation: + format: uuid + - Stage + source: + openapi: crm_v3.yml + inline: true + OpportunityStatus: + discriminated: false + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + union: + - OpportunityStatusEnum + - string + source: + openapi: crm_v3.yml + inline: true + Opportunity: + docs: >- + # The Opportunity Object + + ### Description + + The `Opportunity` object is used to represent a deal opportunity in a CRM + system. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The opportunity's name. + description: + type: optional + docs: The opportunity's description. + amount: + type: optional + docs: The opportunity's amount. + validation: + min: -2147483648 + max: 2147483647 + owner: + type: optional + docs: The opportunity's owner. + account: + type: optional + docs: The account of the opportunity. + stage: + type: optional + docs: The stage of the opportunity. + status: + type: optional + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + last_activity_at: + type: optional + docs: When the opportunity's last activity occurred. + close_date: + type: optional + docs: When the opportunity was closed. + remote_created_at: + type: optional + docs: When the third party's opportunity was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + OpportunityRequestOwner: + discriminated: false + docs: The opportunity's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + OpportunityRequestAccount: + discriminated: false + docs: The account of the opportunity. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + OpportunityRequestStage: + discriminated: false + docs: The stage of the opportunity. + union: + - type: string + validation: + format: uuid + - Stage + source: + openapi: crm_v3.yml + inline: true + OpportunityRequestStatus: + discriminated: false + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + union: + - OpportunityStatusEnum + - string + source: + openapi: crm_v3.yml + inline: true + OpportunityRequest: + docs: >- + # The Opportunity Object + + ### Description + + The `Opportunity` object is used to represent a deal opportunity in a CRM + system. + + ### Usage Example + + TODO + properties: + name: + type: optional + docs: The opportunity's name. + description: + type: optional + docs: The opportunity's description. + amount: + type: optional + docs: The opportunity's amount. + validation: + min: -2147483648 + max: 2147483647 + owner: + type: optional + docs: The opportunity's owner. + account: + type: optional + docs: The account of the opportunity. + stage: + type: optional + docs: The stage of the opportunity. + status: + type: optional + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + last_activity_at: + type: optional + docs: When the opportunity's last activity occurred. + close_date: + type: optional + docs: When the opportunity was closed. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + OpportunityResponse: + properties: + model: Opportunity + warnings: list + errors: list + logs: optional> + source: + openapi: crm_v3.yml + OpportunityStatusEnum: + enum: + - OPEN + - WON + - LOST + docs: |- + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + source: + openapi: crm_v3.yml + OriginTypeEnum: + enum: + - CUSTOM_OBJECT + - COMMON_MODEL + - REMOTE_ONLY_MODEL + docs: |- + * `CUSTOM_OBJECT` - CUSTOM_OBJECT + * `COMMON_MODEL` - COMMON_MODEL + * `REMOTE_ONLY_MODEL` - REMOTE_ONLY_MODEL + source: + openapi: crm_v3.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedAccountList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedAssociationList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedAssociationTypeList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedContactList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedCustomObjectClassList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedCustomObjectList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedEngagementList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedEngagementTypeList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedLeadList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedNoteList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedOpportunityList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedRemoteFieldClassList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedStageList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedTaskList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PaginatedUserList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: crm_v3.yml + PatchedAccountRequest: + docs: |- + # The Account Object + ### Description + The `Account` object is used to represent a company in a CRM system. + ### Usage Example + TODO + properties: + owner: + type: optional + docs: The account's owner. + validation: + format: uuid + name: + type: optional + docs: The account's name. + description: + type: optional + docs: The account's description. + industry: + type: optional + docs: The account's industry. + website: + type: optional + docs: The account's website. + validation: + format: uri + maxLength: 2000 + number_of_employees: + type: optional + docs: The account's number of employees. + validation: + min: -2147483648 + max: 2147483647 + addresses: optional> + last_activity_at: + type: optional + docs: >- + The last date (either most recent or furthest in the future) of when + an activity occurs in an account. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + PatchedContactRequestOwner: + discriminated: false + docs: The contact's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + PatchedContactRequest: + docs: >- + # The Contact Object + + ### Description + + The `Contact` object is used to represent an existing point of contact at + a company in a CRM system. + + ### Usage Example + + TODO + properties: + first_name: + type: optional + docs: The contact's first name. + last_name: + type: optional + docs: The contact's last name. + account: + type: optional + docs: The contact's account. + validation: + format: uuid + owner: + type: optional + docs: The contact's owner. + addresses: optional> + email_addresses: optional> + phone_numbers: optional> + last_activity_at: + type: optional + docs: When the contact's last activity occurred. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + PatchedEngagementRequestDirection: + discriminated: false + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + union: + - DirectionEnum + - string + source: + openapi: crm_v3.yml + inline: true + PatchedEngagementRequest: + docs: >- + # The Engagement Object + + ### Description + + The `Engagement` object is used to represent an interaction noted in a CRM + system. + + ### Usage Example + + TODO + properties: + owner: + type: optional + docs: The engagement's owner. + validation: + format: uuid + content: + type: optional + docs: The engagement's content. + subject: + type: optional + docs: The engagement's subject. + direction: + type: optional + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + engagement_type: + type: optional + docs: The engagement type of the engagement. + validation: + format: uuid + start_time: + type: optional + docs: The time at which the engagement started. + end_time: + type: optional + docs: The time at which the engagement ended. + account: + type: optional + docs: The account of the engagement. + validation: + format: uuid + contacts: optional>> + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + PatchedOpportunityRequestStatus: + discriminated: false + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + union: + - OpportunityStatusEnum + - string + source: + openapi: crm_v3.yml + inline: true + PatchedOpportunityRequest: + docs: >- + # The Opportunity Object + + ### Description + + The `Opportunity` object is used to represent a deal opportunity in a CRM + system. + + ### Usage Example + + TODO + properties: + name: + type: optional + docs: The opportunity's name. + description: + type: optional + docs: The opportunity's description. + amount: + type: optional + docs: The opportunity's amount. + validation: + min: -2147483648 + max: 2147483647 + owner: + type: optional + docs: The opportunity's owner. + validation: + format: uuid + account: + type: optional + docs: The account of the opportunity. + validation: + format: uuid + stage: + type: optional + docs: The stage of the opportunity. + validation: + format: uuid + status: + type: optional + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + last_activity_at: + type: optional + docs: When the opportunity's last activity occurred. + close_date: + type: optional + docs: When the opportunity was closed. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + PatchedTaskRequestStatus: + discriminated: false + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + union: + - TaskStatusEnum + - string + source: + openapi: crm_v3.yml + inline: true + PatchedTaskRequest: + docs: |- + # The Task Object + ### Description + The `Task` object is used to represent a task, such as a to-do item. + ### Usage Example + TODO + properties: + subject: + type: optional + docs: The task's subject. + content: + type: optional + docs: The task's content. + owner: + type: optional + docs: The task's owner. + validation: + format: uuid + account: + type: optional + docs: The task's account. + validation: + format: uuid + opportunity: + type: optional + docs: The task's opportunity. + validation: + format: uuid + completed_date: + type: optional + docs: When the task is completed. + due_date: + type: optional + docs: When the task is due. + status: + type: optional + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + PhoneNumber: + docs: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent an entity's phone number. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their phone numbers. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + phone_number: + type: optional + docs: The phone number. + phone_number_type: + type: optional + docs: The phone number's type. + source: + openapi: crm_v3.yml + PhoneNumberRequest: + docs: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent an entity's phone number. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their phone numbers. + properties: + phone_number: + type: optional + docs: The phone number. + phone_number_type: + type: optional + docs: The phone number's type. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + ReasonEnum: + enum: + - GENERAL_CUSTOMER_REQUEST + - GDPR + - OTHER + docs: |- + * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST + * `GDPR` - GDPR + * `OTHER` - OTHER + source: + openapi: crm_v3.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: crm_v3.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: crm_v3.yml + RemoteFieldRemoteFieldClass: + discriminated: false + union: + - string + - RemoteFieldClass + source: + openapi: crm_v3.yml + inline: true + RemoteField: + properties: + remote_field_class: RemoteFieldRemoteFieldClass + value: optional + source: + openapi: crm_v3.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: crm_v3.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: crm_v3.yml + RemoteFieldApiResponse: + properties: + Account: optional> + Contact: optional> + Lead: optional> + Note: optional> + Opportunity: optional> + Stage: optional> + User: optional> + Task: optional> + Engagement: optional> + source: + openapi: crm_v3.yml + RemoteFieldClassFieldChoicesItem: + properties: + value: optional + display_name: optional + source: + openapi: crm_v3.yml + inline: true + RemoteFieldClass: + properties: + id: optional + display_name: optional + remote_key_name: optional + description: optional + is_custom: optional + is_required: optional + field_type: optional + field_format: optional + field_choices: optional> + item_schema: optional + source: + openapi: crm_v3.yml + RemoteFieldClassForCustomObjectClassFieldType: + discriminated: false + union: + - FieldTypeEnum + - string + source: + openapi: crm_v3.yml + inline: true + RemoteFieldClassForCustomObjectClassFieldFormat: + discriminated: false + union: + - FieldFormatEnum + - string + source: + openapi: crm_v3.yml + inline: true + RemoteFieldClassForCustomObjectClassFieldChoicesItem: + properties: + value: optional + display_name: optional + source: + openapi: crm_v3.yml + inline: true + RemoteFieldClassForCustomObjectClassItemSchema: + properties: + item_type: optional + item_format: optional + item_choices: optional>> + source: + openapi: crm_v3.yml + inline: true + RemoteFieldClassForCustomObjectClass: + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + display_name: optional + remote_key_name: optional + description: optional + is_required: optional + field_type: + type: optional + access: read-only + field_format: + type: optional + access: read-only + field_choices: + type: optional> + access: read-only + item_schema: + type: optional + access: read-only + source: + openapi: crm_v3.yml + RemoteFieldRequestRemoteFieldClass: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteFieldClass + source: + openapi: crm_v3.yml + inline: true + RemoteFieldRequest: + properties: + remote_field_class: RemoteFieldRequestRemoteFieldClass + value: optional + source: + openapi: crm_v3.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: crm_v3.yml + RemoteResponseResponseType: + discriminated: false + union: + - ResponseTypeEnum + - string + source: + openapi: crm_v3.yml + inline: true + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: crm_v3.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: crm_v3.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: crm_v3.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: crm_v3.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: crm_v3.yml + Stage: + docs: |- + # The Stage Object + ### Description + The `Stage` object is used to represent the stage of an opportunity. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The stage's name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: crm_v3.yml + SyncStatusLastSyncResult: + discriminated: false + union: + - LastSyncResultEnum + - string + source: + openapi: crm_v3.yml + inline: true + SyncStatusStatus: + discriminated: false + union: + - StatusFd5Enum + - string + source: + openapi: crm_v3.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: SyncStatusStatus + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: crm_v3.yml + TaskOwner: + discriminated: false + docs: The task's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + TaskAccount: + discriminated: false + docs: The task's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + TaskOpportunity: + discriminated: false + docs: The task's opportunity. + union: + - type: string + validation: + format: uuid + - Opportunity + source: + openapi: crm_v3.yml + inline: true + TaskStatus: + discriminated: false + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + union: + - TaskStatusEnum + - string + source: + openapi: crm_v3.yml + inline: true + Task: + docs: |- + # The Task Object + ### Description + The `Task` object is used to represent a task, such as a to-do item. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + subject: + type: optional + docs: The task's subject. + content: + type: optional + docs: The task's content. + owner: + type: optional + docs: The task's owner. + account: + type: optional + docs: The task's account. + opportunity: + type: optional + docs: The task's opportunity. + completed_date: + type: optional + docs: When the task is completed. + due_date: + type: optional + docs: When the task is due. + status: + type: optional + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + TaskRequestOwner: + discriminated: false + docs: The task's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: crm_v3.yml + inline: true + TaskRequestAccount: + discriminated: false + docs: The task's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: crm_v3.yml + inline: true + TaskRequestOpportunity: + discriminated: false + docs: The task's opportunity. + union: + - type: string + validation: + format: uuid + - Opportunity + source: + openapi: crm_v3.yml + inline: true + TaskRequestStatus: + discriminated: false + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + union: + - TaskStatusEnum + - string + source: + openapi: crm_v3.yml + inline: true + TaskRequest: + docs: |- + # The Task Object + ### Description + The `Task` object is used to represent a task, such as a to-do item. + ### Usage Example + TODO + properties: + subject: + type: optional + docs: The task's subject. + content: + type: optional + docs: The task's content. + owner: + type: optional + docs: The task's owner. + account: + type: optional + docs: The task's account. + opportunity: + type: optional + docs: The task's opportunity. + completed_date: + type: optional + docs: When the task is completed. + due_date: + type: optional + docs: When the task is due. + status: + type: optional + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: crm_v3.yml + TaskResponse: + properties: + model: Task + warnings: list + errors: list + logs: optional> + source: + openapi: crm_v3.yml + TaskStatusEnum: + enum: + - OPEN + - CLOSED + docs: |- + * `OPEN` - OPEN + * `CLOSED` - CLOSED + source: + openapi: crm_v3.yml + User: + docs: >- + # The User Object + + ### Description + + The `User` object is used to represent a user with a login to the CRM + system. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The user's name. + email: + type: optional + docs: The user's email address. + is_active: + type: optional + docs: Whether or not the user is active. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: crm_v3.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: crm_v3.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: crm_v3.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/accountDetails.yml b/.mock/definition/CRM/accountDetails.yml new file mode 100644 index 00000000..99cf4cd2 --- /dev/null +++ b/.mock/definition/CRM/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /crm/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/accountToken.yml b/.mock/definition/CRM/accountToken.yml new file mode 100644 index 00000000..814d7a3c --- /dev/null +++ b/.mock/definition/CRM/accountToken.yml @@ -0,0 +1,44 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /crm/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: crm_v3.yml + path-parameters: + public_token: string + response: + docs: '' + type: crmRoot.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/accounts.yml b/.mock/definition/CRM/accounts.yml new file mode 100644 index 00000000..a304597f --- /dev/null +++ b/.mock/definition/CRM/accounts.yml @@ -0,0 +1,856 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/accounts + method: GET + auth: true + docs: Returns a list of `Account` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: AccountsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: If provided, will only return accounts with this name. + owner_id: + type: optional + docs: If provided, will only return accounts with this owner. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedAccountList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + name: Merge API + description: One API for all integrations + industry: API's + website: https://merge.dev/ + number_of_employees: 276000 + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16788879833' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_updated_at: '2022-01-09T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /accounts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/accounts + method: POST + auth: true + docs: Creates an `Account` object with the given values. + source: + openapi: crm_v3.yml + request: + name: CrmAccountEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.AccountRequest + content-type: application/json + response: + docs: '' + type: crmRoot.CrmAccountResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + name: Merge API + description: One API for all integrations + industry: API's + website: https://merge.dev/ + number_of_employees: 276000 + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16788879833' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_updated_at: '2022-01-09T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /accounts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/accounts/{id} + method: GET + auth: true + docs: Returns an `Account` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: AccountsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.Account + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + name: Merge API + description: One API for all integrations + industry: API's + website: https://merge.dev/ + number_of_employees: 276000 + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16788879833' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_updated_at: '2022-01-09T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /accounts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /crm/v1/accounts/{id} + method: PATCH + auth: true + docs: Updates an `Account` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: PatchedCrmAccountEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.PatchedAccountRequest + content-type: application/json + response: + docs: '' + type: crmRoot.CrmAccountResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + name: Merge API + description: One API for all integrations + industry: API's + website: https://merge.dev/ + number_of_employees: 276000 + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16788879833' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_updated_at: '2022-01-09T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /accounts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPatchRetrieve: + path: /crm/v1/accounts/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `CRMAccount` PATCHs. + source: + openapi: crm_v3.yml + path-parameters: + id: string + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /crm/v1/accounts/meta/post + method: GET + auth: true + docs: Returns metadata for `CRMAccount` POSTs. + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/accounts/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: AccountsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/associationTypes.yml b/.mock/definition/CRM/associationTypes.yml new file mode 100644 index 00000000..a0560561 --- /dev/null +++ b/.mock/definition/CRM/associationTypes.yml @@ -0,0 +1,426 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + custom_object_classes_association_types_list: + path: /crm/v1/custom-object-classes/{custom_object_class_id}/association-types + method: GET + auth: true + docs: Returns a list of `AssociationType` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + path-parameters: + custom_object_class_id: string + request: + name: CustomObjectClassesAssociationTypesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedAssociationTypeList + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 5bb73c32-3c6c-4757-ab7d-7d3540a1be31 + remote_id: '93' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_object_class: + id: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + origin_type: CUSTOM_OBJECT + target_object_classes: + - id: Opportunity + origin_type: COMMON_MODEL + remote_key_name: order_to_opportunity + display_name: Order to Opportunity + cardinality: ONE_TO_ONE + is_required: true + custom_object_classes_association_types_create: + path: /crm/v1/custom-object-classes/{custom_object_class_id}/association-types + method: POST + auth: true + docs: Creates an `AssociationType` object with the given values. + source: + openapi: crm_v3.yml + path-parameters: + custom_object_class_id: string + request: + name: CrmAssociationTypeEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.AssociationTypeRequestRequest + content-type: application/json + response: + docs: '' + type: crmRoot.CrmAssociationTypeResponse + status-code: 201 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + request: + model: + source_object_class: + id: id + origin_type: CUSTOM_OBJECT + target_object_classes: + - id: id + origin_type: CUSTOM_OBJECT + remote_key_name: remote_key_name + response: + body: + model: + id: 5bb73c32-3c6c-4757-ab7d-7d3540a1be31 + remote_id: '93' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_object_class: + id: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + origin_type: CUSTOM_OBJECT + target_object_classes: + - id: Opportunity + origin_type: COMMON_MODEL + remote_key_name: order_to_opportunity + display_name: Order to Opportunity + cardinality: ONE_TO_ONE + is_required: true + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + custom_object_classes_association_types_retrieve: + path: >- + /crm/v1/custom-object-classes/{custom_object_class_id}/association-types/{id} + method: GET + auth: true + docs: Returns an `AssociationType` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + custom_object_class_id: string + id: string + request: + name: CustomObjectClassesAssociationTypesRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.AssociationType + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + id: id + headers: {} + response: + body: + id: 5bb73c32-3c6c-4757-ab7d-7d3540a1be31 + remote_id: '93' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_object_class: + id: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + origin_type: CUSTOM_OBJECT + target_object_classes: + - id: Opportunity + created_at: '2024-01-15T09:30:00Z' + modified_at: '2024-01-15T09:30:00Z' + origin_type: COMMON_MODEL + remote_key_name: order_to_opportunity + display_name: Order to Opportunity + cardinality: ONE_TO_ONE + is_required: true + custom_object_classes_association_types_meta_post_retrieve: + path: >- + /crm/v1/custom-object-classes/{custom_object_class_id}/association-types/meta/post + method: GET + auth: true + docs: Returns metadata for `CRMAssociationType` POSTs. + source: + openapi: crm_v3.yml + path-parameters: + custom_object_class_id: string + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/associations.yml b/.mock/definition/CRM/associations.yml new file mode 100644 index 00000000..f4e420a9 --- /dev/null +++ b/.mock/definition/CRM/associations.yml @@ -0,0 +1,147 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + custom_object_classes_custom_objects_associations_list: + path: >- + /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects/{object_id}/associations + method: GET + auth: true + docs: Returns a list of `Association` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + path-parameters: + custom_object_class_id: string + object_id: string + request: + name: CustomObjectClassesCustomObjectsAssociationsListRequest + query-parameters: + association_type_id: + type: optional + docs: >- + If provided, will only return opportunities with this + association_type. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedAssociationList + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + object_id: object_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_object: a8f5d29f-4e50-473f-8f12-27128ffcd37a + target_object: da0b1963-be70-469c-9f8c-06a81d0fe759 + association_type: association_type + custom_object_classes_custom_objects_associations_update: + path: >- + /crm/v1/custom-object-classes/{source_class_id}/custom-objects/{source_object_id}/associations/{target_class_id}/{target_object_id}/{association_type_id} + method: PUT + auth: true + docs: >- + Creates an Association between `source_object_id` and `target_object_id` + of type `association_type_id`. + source: + openapi: crm_v3.yml + path-parameters: + association_type_id: string + source_class_id: string + source_object_id: string + target_class_id: string + target_object_id: string + request: + name: CustomObjectClassesCustomObjectsAssociationsUpdateRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + response: + docs: '' + type: crmRoot.Association + status-code: 200 + examples: + - path-parameters: + association_type_id: association_type_id + source_class_id: source_class_id + source_object_id: source_object_id + target_class_id: target_class_id + target_object_id: target_object_id + headers: {} + response: + body: + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_object: a8f5d29f-4e50-473f-8f12-27128ffcd37a + target_object: da0b1963-be70-469c-9f8c-06a81d0fe759 + association_type: association_type + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/asyncPassthrough.yml b/.mock/definition/CRM/asyncPassthrough.yml new file mode 100644 index 00000000..8010d2c5 --- /dev/null +++ b/.mock/definition/CRM/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /crm/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: crm_v3.yml + request: + body: crmRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: crmRoot.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /crm/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: crm_v3.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: crm_v3.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - crmRoot.RemoteResponse + - string + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/auditTrail.yml b/.mock/definition/CRM/auditTrail.yml new file mode 100644 index 00000000..5ee5ca9c --- /dev/null +++ b/.mock/definition/CRM/auditTrail.yml @@ -0,0 +1,98 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, + `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, + `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: crmRoot.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/availableActions.yml b/.mock/definition/CRM/availableActions.yml new file mode 100644 index 00000000..59a18949 --- /dev/null +++ b/.mock/definition/CRM/availableActions.yml @@ -0,0 +1,50 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /crm/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/contacts.yml b/.mock/definition/CRM/contacts.yml new file mode 100644 index 00000000..f6363295 --- /dev/null +++ b/.mock/definition/CRM/contacts.yml @@ -0,0 +1,906 @@ +types: + ContactsListRequestExpandItem: + enum: + - account + - owner + source: + openapi: crm_v3.yml + ContactsRetrieveRequestExpandItem: + enum: + - account + - owner + source: + openapi: crm_v3.yml +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/contacts + method: GET + auth: true + docs: Returns a list of `Contact` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: ContactsListRequest + query-parameters: + account_id: + type: optional + docs: If provided, will only return contacts with this account. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email_addresses: + type: optional + docs: >- + If provided, will only return contacts matching the email + addresses; multiple email_addresses can be separated by commas. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + phone_numbers: + type: optional + docs: >- + If provided, will only return contacts matching the phone numbers; + multiple phone numbers can be separated by commas. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedContactList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + account: account + owner: owner + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+13785579223' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /contacts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/contacts + method: POST + auth: true + docs: Creates a `Contact` object with the given values. + source: + openapi: crm_v3.yml + request: + name: CrmContactEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.ContactRequest + content-type: application/json + response: + docs: '' + type: crmRoot.CrmContactResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + account: account + owner: owner + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+13785579223' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /contacts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/contacts/{id} + method: GET + auth: true + docs: Returns a `Contact` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: ContactsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.Contact + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + account: account + owner: owner + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+13785579223' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /contacts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /crm/v1/contacts/{id} + method: PATCH + auth: true + docs: Updates a `Contact` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: PatchedCrmContactEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.PatchedContactRequest + content-type: application/json + response: + docs: '' + type: crmRoot.CrmContactResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + account: account + owner: owner + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+13785579223' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /contacts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + ignoreCreate: + path: /crm/v1/contacts/ignore/{model_id} + method: POST + auth: true + docs: >- + Ignores a specific row based on the `model_id` in the url. These records + will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will + be stored for audit purposes. + source: + openapi: crm_v3.yml + path-parameters: + model_id: string + request: + body: crmRoot.IgnoreCommonModelRequest + content-type: application/json + examples: + - path-parameters: + model_id: model_id + headers: {} + request: + reason: GENERAL_CUSTOMER_REQUEST + metaPatchRetrieve: + path: /crm/v1/contacts/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `CRMContact` PATCHs. + source: + openapi: crm_v3.yml + path-parameters: + id: string + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /crm/v1/contacts/meta/post + method: GET + auth: true + docs: Returns metadata for `CRMContact` POSTs. + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/contacts/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: ContactsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/customObjectClasses.yml b/.mock/definition/CRM/customObjectClasses.yml new file mode 100644 index 00000000..77c19f6c --- /dev/null +++ b/.mock/definition/CRM/customObjectClasses.yml @@ -0,0 +1,202 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/custom-object-classes + method: GET + auth: true + docs: Returns a list of `CustomObjectClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: CustomObjectClassesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedCustomObjectClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + remote_id: '9579977' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: order + description: Order object + labels: + singular: Order + plural: Orders + fields: + - display_name: Order ID + remote_key_name: order_id + description: The unique ID for the order. + is_required: true + field_type: string + field_format: string + field_choices: + - {} + - display_name: Order Quantity + remote_key_name: order_quantity + description: The number of items ordered. + is_required: true + field_type: number + field_format: number + field_choices: + - {} + - display_name: Customer Type + remote_key_name: customer_type + description: The type of customer. + is_required: true + field_type: string + field_format: enumeration + field_choices: + - {} + - {} + association_types: + - key: value + retrieve: + path: /crm/v1/custom-object-classes/{id} + method: GET + auth: true + docs: Returns a `CustomObjectClass` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: CustomObjectClassesRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.CustomObjectClass + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + remote_id: '9579977' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: order + description: Order object + labels: + singular: Order + plural: Orders + fields: + - created_at: '2024-01-15T09:30:00Z' + modified_at: '2024-01-15T09:30:00Z' + display_name: Order ID + remote_key_name: order_id + description: The unique ID for the order. + is_required: true + field_type: string + field_format: string + field_choices: + - {} + - created_at: '2024-01-15T09:30:00Z' + modified_at: '2024-01-15T09:30:00Z' + display_name: Order Quantity + remote_key_name: order_quantity + description: The number of items ordered. + is_required: true + field_type: number + field_format: number + field_choices: + - {} + - created_at: '2024-01-15T09:30:00Z' + modified_at: '2024-01-15T09:30:00Z' + display_name: Customer Type + remote_key_name: customer_type + description: The type of customer. + is_required: true + field_type: string + field_format: enumeration + field_choices: + - {} + - {} + association_types: + - key: value + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/customObjects.yml b/.mock/definition/CRM/customObjects.yml new file mode 100644 index 00000000..3c0b6e2c --- /dev/null +++ b/.mock/definition/CRM/customObjects.yml @@ -0,0 +1,484 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + custom_object_classes_custom_objects_list: + path: /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects + method: GET + auth: true + docs: Returns a list of `CustomObject` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + path-parameters: + custom_object_class_id: string + request: + name: CustomObjectClassesCustomObjectsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedCustomObjectList + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: da0b1963-be70-469c-9f8c-06a81d0fe759 + remote_id: '4183634295' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + object_class: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + fields: + order_id: '4183634295' + order_quantity: 50 + customer_type: Returning + remote_fields: + - remote_field_class: remote_field_class + custom_object_classes_custom_objects_create: + path: /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects + method: POST + auth: true + docs: Creates a `CustomObject` object with the given values. + source: + openapi: crm_v3.yml + path-parameters: + custom_object_class_id: string + request: + name: CrmCustomObjectEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.CustomObjectRequest + content-type: application/json + response: + docs: '' + type: crmRoot.CrmCustomObjectResponse + status-code: 201 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + request: + model: + fields: + test_field: hello + response: + body: + model: + id: da0b1963-be70-469c-9f8c-06a81d0fe759 + remote_id: '4183634295' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + object_class: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + fields: + order_id: '4183634295' + order_quantity: 50 + customer_type: Returning + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + custom_object_classes_custom_objects_retrieve: + path: >- + /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects/{id} + method: GET + auth: true + docs: Returns a `CustomObject` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + custom_object_class_id: string + id: string + request: + name: CustomObjectClassesCustomObjectsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.CustomObject + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + id: id + headers: {} + response: + body: + id: da0b1963-be70-469c-9f8c-06a81d0fe759 + remote_id: '4183634295' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + object_class: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + fields: + order_id: '4183634295' + order_quantity: 50 + customer_type: Returning + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + custom_object_classes_custom_objects_meta_post_retrieve: + path: >- + /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects/meta/post + method: GET + auth: true + docs: Returns metadata for `CRMCustomObject` POSTs. + source: + openapi: crm_v3.yml + path-parameters: + custom_object_class_id: string + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + custom_object_classes_custom_objects_remote_field_classes_list: + path: /crm/v1/custom-object-classes/custom-objects/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/deleteAccount.yml b/.mock/definition/CRM/deleteAccount.yml new file mode 100644 index 00000000..5379d155 --- /dev/null +++ b/.mock/definition/CRM/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /crm/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: crm_v3.yml + examples: + - headers: {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/engagementTypes.yml b/.mock/definition/CRM/engagementTypes.yml new file mode 100644 index 00000000..99d1d5bb --- /dev/null +++ b/.mock/definition/CRM/engagementTypes.yml @@ -0,0 +1,212 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/engagement-types + method: GET + auth: true + docs: Returns a list of `EngagementType` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: EngagementTypesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedEngagementTypeList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + activity_type: CALL + name: First Call + remote_fields: + - remote_field_class: remote_field_class + retrieve: + path: /crm/v1/engagement-types/{id} + method: GET + auth: true + docs: Returns an `EngagementType` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: EngagementTypesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.EngagementType + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + activity_type: CALL + name: First Call + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + remoteFieldClassesList: + path: /crm/v1/engagement-types/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: EngagementTypesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/engagements.yml b/.mock/definition/CRM/engagements.yml new file mode 100644 index 00000000..89883db0 --- /dev/null +++ b/.mock/definition/CRM/engagements.yml @@ -0,0 +1,821 @@ +types: + EngagementsListRequestExpandItem: + enum: + - account + - contacts + - engagement_type + - owner + source: + openapi: crm_v3.yml + EngagementsRetrieveRequestExpandItem: + enum: + - account + - contacts + - engagement_type + - owner + source: + openapi: crm_v3.yml +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/engagements + method: GET + auth: true + docs: Returns a list of `Engagement` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: EngagementsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + started_after: + type: optional + docs: >- + If provided, will only return engagements started after this + datetime. + started_before: + type: optional + docs: >- + If provided, will only return engagements started before this + datetime. + response: + docs: '' + type: crmRoot.PaginatedEngagementList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Call for negotiation + subject: Call from customer + direction: INBOUND + engagement_type: engagement_type + start_time: '2022-02-10T00:00:00Z' + end_time: '2022-02-10T00:05:00Z' + account: account + contacts: + - a7c55bc6-2940-c80a-848e-bbfacbfdf4fg + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /engagements + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/engagements + method: POST + auth: true + docs: Creates an `Engagement` object with the given values. + source: + openapi: crm_v3.yml + request: + name: EngagementEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.EngagementRequest + content-type: application/json + response: + docs: '' + type: crmRoot.EngagementResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Call for negotiation + subject: Call from customer + direction: INBOUND + engagement_type: engagement_type + start_time: '2022-02-10T00:00:00Z' + end_time: '2022-02-10T00:05:00Z' + account: account + contacts: + - a7c55bc6-2940-c80a-848e-bbfacbfdf4fg + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /engagements + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/engagements/{id} + method: GET + auth: true + docs: Returns an `Engagement` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: EngagementsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.Engagement + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Call for negotiation + subject: Call from customer + direction: INBOUND + engagement_type: engagement_type + start_time: '2022-02-10T00:00:00Z' + end_time: '2022-02-10T00:05:00Z' + account: account + contacts: + - a7c55bc6-2940-c80a-848e-bbfacbfdf4fg + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /engagements + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /crm/v1/engagements/{id} + method: PATCH + auth: true + docs: Updates an `Engagement` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: PatchedEngagementEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.PatchedEngagementRequest + content-type: application/json + response: + docs: '' + type: crmRoot.EngagementResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Call for negotiation + subject: Call from customer + direction: INBOUND + engagement_type: engagement_type + start_time: '2022-02-10T00:00:00Z' + end_time: '2022-02-10T00:05:00Z' + account: account + contacts: + - a7c55bc6-2940-c80a-848e-bbfacbfdf4fg + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /engagements + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPatchRetrieve: + path: /crm/v1/engagements/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Engagement` PATCHs. + source: + openapi: crm_v3.yml + path-parameters: + id: string + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /crm/v1/engagements/meta/post + method: GET + auth: true + docs: Returns metadata for `Engagement` POSTs. + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/engagements/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: EngagementsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/fieldMapping.yml b/.mock/definition/CRM/fieldMapping.yml new file mode 100644 index 00000000..421def33 --- /dev/null +++ b/.mock/definition/CRM/fieldMapping.yml @@ -0,0 +1,654 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /crm/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: crm_v3.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: crmRoot.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Contact: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Lead: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Note: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Opportunity: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Stage: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + User: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Task: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Engagement: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /crm/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: crm_v3.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: crmRoot.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /crm/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: crm_v3.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: crmRoot.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /crm/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: crm_v3.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: crmRoot.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /crm/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: crm_v3.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: crmRoot.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Contact: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Lead: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Note: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Opportunity: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Stage: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + User: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Task: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Engagement: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /crm/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Contact: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Lead: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Note: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Opportunity: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Stage: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + User: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Task: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Engagement: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/forceResync.yml b/.mock/definition/CRM/forceResync.yml new file mode 100644 index 00000000..94fc4a6d --- /dev/null +++ b/.mock/definition/CRM/forceResync.yml @@ -0,0 +1,37 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /crm/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: crm_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: Account + model_id: crm.Account + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/generateKey.yml b/.mock/definition/CRM/generateKey.yml new file mode 100644 index 00000000..823c5e73 --- /dev/null +++ b/.mock/definition/CRM/generateKey.yml @@ -0,0 +1,36 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /crm/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: crm_v3.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: crmRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/issues.yml b/.mock/definition/CRM/issues.yml new file mode 100644 index 00000000..1fb03f47 --- /dev/null +++ b/.mock/definition/CRM/issues.yml @@ -0,0 +1,133 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: crm_v3.yml +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: crmRoot.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /crm/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: crm_v3.yml + path-parameters: + id: string + response: + docs: '' + type: crmRoot.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/leads.yml b/.mock/definition/CRM/leads.yml new file mode 100644 index 00000000..24d2df66 --- /dev/null +++ b/.mock/definition/CRM/leads.yml @@ -0,0 +1,620 @@ +types: + LeadsListRequestExpandItem: + enum: + - converted_account + - converted_contact + - owner + source: + openapi: crm_v3.yml + LeadsRetrieveRequestExpandItem: + enum: + - converted_account + - converted_contact + - owner + source: + openapi: crm_v3.yml +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/leads + method: GET + auth: true + docs: Returns a list of `Lead` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: LeadsListRequest + query-parameters: + converted_account_id: + type: optional + docs: If provided, will only return leads with this account. + converted_contact_id: + type: optional + docs: If provided, will only return leads with this contact. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email_addresses: + type: optional + docs: >- + If provided, will only return contacts matching the email + addresses; multiple email_addresses can be separated by commas. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + owner_id: + type: optional + docs: If provided, will only return leads with this owner. + page_size: + type: optional + docs: Number of results to return per page. + phone_numbers: + type: optional + docs: >- + If provided, will only return contacts matching the phone numbers; + multiple phone numbers can be separated by commas. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedLeadList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + lead_source: API Blogger + title: Co-Founder + company: Merge API + first_name: Gil + last_name: Feig + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16789932455' + phone_number_type: Mobile + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + converted_date: '2022-03-10T00:00:00Z' + converted_contact: converted_contact + converted_account: converted_account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leads + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/leads + method: POST + auth: true + docs: Creates a `Lead` object with the given values. + source: + openapi: crm_v3.yml + request: + name: LeadEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.LeadRequest + content-type: application/json + response: + docs: '' + type: crmRoot.LeadResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + lead_source: API Blogger + title: Co-Founder + company: Merge API + first_name: Gil + last_name: Feig + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16789932455' + phone_number_type: Mobile + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + converted_date: '2022-03-10T00:00:00Z' + converted_contact: converted_contact + converted_account: converted_account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leads + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/leads/{id} + method: GET + auth: true + docs: Returns a `Lead` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: LeadsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.Lead + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + lead_source: API Blogger + title: Co-Founder + company: Merge API + first_name: Gil + last_name: Feig + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16789932455' + phone_number_type: Mobile + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + converted_date: '2022-03-10T00:00:00Z' + converted_contact: converted_contact + converted_account: converted_account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leads + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + metaPostRetrieve: + path: /crm/v1/leads/meta/post + method: GET + auth: true + docs: Returns metadata for `Lead` POSTs. + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/leads/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: LeadsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/linkToken.yml b/.mock/definition/CRM/linkToken.yml new file mode 100644 index 00000000..7e4b0bdb --- /dev/null +++ b/.mock/definition/CRM/linkToken.yml @@ -0,0 +1,152 @@ +imports: + crmRoot: __package__.yml +types: + EndUserDetailsRequestLanguage: + discriminated: false + docs: >- + The following subset of IETF language tags can be used to configure + localization. + + + * `en` - en + + * `de` - de + union: + - crmRoot.LanguageEnum + - string + source: + openapi: crm_v3.yml + inline: true +service: + auth: false + base-path: '' + endpoints: + create: + path: /crm/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: crm_v3.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: crmRoot.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/linkedAccounts.yml b/.mock/definition/CRM/linkedAccounts.yml new file mode 100644 index 00000000..420c18d6 --- /dev/null +++ b/.mock/definition/CRM/linkedAccounts.yml @@ -0,0 +1,152 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: crm_v3.yml +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: crmRoot.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/notes.yml b/.mock/definition/CRM/notes.yml new file mode 100644 index 00000000..67805b2d --- /dev/null +++ b/.mock/definition/CRM/notes.yml @@ -0,0 +1,543 @@ +types: + NotesListRequestExpandItem: + enum: + - account + - contact + - opportunity + - owner + source: + openapi: crm_v3.yml + NotesRetrieveRequestExpandItem: + enum: + - account + - contact + - opportunity + - owner + source: + openapi: crm_v3.yml +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/notes + method: GET + auth: true + docs: Returns a list of `Note` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: NotesListRequest + query-parameters: + account_id: + type: optional + docs: If provided, will only return notes with this account. + contact_id: + type: optional + docs: If provided, will only return notes with this contact. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + opportunity_id: + type: optional + docs: If provided, will only return notes with this opportunity. + owner_id: + type: optional + docs: If provided, will only return notes with this owner. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedNoteList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Merge is hiring! + contact: contact + account: account + opportunity: opportunity + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /notes + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/notes + method: POST + auth: true + docs: Creates a `Note` object with the given values. + source: + openapi: crm_v3.yml + request: + name: NoteEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.NoteRequest + content-type: application/json + response: + docs: '' + type: crmRoot.NoteResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Merge is hiring! + contact: contact + account: account + opportunity: opportunity + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /notes + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/notes/{id} + method: GET + auth: true + docs: Returns a `Note` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: NotesRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.Note + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Merge is hiring! + contact: contact + account: account + opportunity: opportunity + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /notes + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + metaPostRetrieve: + path: /crm/v1/notes/meta/post + method: GET + auth: true + docs: Returns metadata for `Note` POSTs. + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/notes/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: NotesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/opportunities.yml b/.mock/definition/CRM/opportunities.yml new file mode 100644 index 00000000..f4816c11 --- /dev/null +++ b/.mock/definition/CRM/opportunities.yml @@ -0,0 +1,862 @@ +types: + OpportunitiesListRequestExpandItem: + enum: + - account + - owner + - stage + source: + openapi: crm_v3.yml + OpportunitiesListRequestStatus: + enum: + - LOST + - OPEN + - WON + source: + openapi: crm_v3.yml + OpportunitiesRetrieveRequestExpandItem: + enum: + - account + - owner + - stage + source: + openapi: crm_v3.yml +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/opportunities + method: GET + auth: true + docs: Returns a list of `Opportunity` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: OpportunitiesListRequest + query-parameters: + account_id: + type: optional + docs: If provided, will only return opportunities with this account. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + owner_id: + type: optional + docs: If provided, will only return opportunities with this owner. + page_size: + type: optional + docs: Number of results to return per page. + remote_created_after: + type: optional + docs: >- + If provided, will only return opportunities created in the third + party platform after this datetime. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + stage_id: + type: optional + docs: If provided, will only return opportunities with this stage. + status: + type: optional + docs: >- + If provided, will only return opportunities with this status. + Options: ('OPEN', 'WON', 'LOST') + + + * `OPEN` - OPEN + + * `WON` - WON + + * `LOST` - LOST + response: + docs: '' + type: crmRoot.PaginatedOpportunityList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Needs Integrations + description: Needs a Unified API for Integrations! + amount: 100000 + owner: owner + account: account + stage: stage + status: OPEN + last_activity_at: '2022-02-10T00:00:00Z' + close_date: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /opportunities + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/opportunities + method: POST + auth: true + docs: Creates an `Opportunity` object with the given values. + source: + openapi: crm_v3.yml + request: + name: OpportunityEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.OpportunityRequest + content-type: application/json + response: + docs: '' + type: crmRoot.OpportunityResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Needs Integrations + description: Needs a Unified API for Integrations! + amount: 100000 + owner: owner + account: account + stage: stage + status: OPEN + last_activity_at: '2022-02-10T00:00:00Z' + close_date: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /opportunities + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/opportunities/{id} + method: GET + auth: true + docs: Returns an `Opportunity` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: OpportunitiesRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: crmRoot.Opportunity + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Needs Integrations + description: Needs a Unified API for Integrations! + amount: 100000 + owner: owner + account: account + stage: stage + status: OPEN + last_activity_at: '2022-02-10T00:00:00Z' + close_date: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /opportunities + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /crm/v1/opportunities/{id} + method: PATCH + auth: true + docs: Updates an `Opportunity` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: PatchedOpportunityEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.PatchedOpportunityRequest + content-type: application/json + response: + docs: '' + type: crmRoot.OpportunityResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Needs Integrations + description: Needs a Unified API for Integrations! + amount: 100000 + owner: owner + account: account + stage: stage + status: OPEN + last_activity_at: '2022-02-10T00:00:00Z' + close_date: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /opportunities + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPatchRetrieve: + path: /crm/v1/opportunities/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Opportunity` PATCHs. + source: + openapi: crm_v3.yml + path-parameters: + id: string + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /crm/v1/opportunities/meta/post + method: GET + auth: true + docs: Returns metadata for `Opportunity` POSTs. + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/opportunities/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: OpportunitiesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/passthrough.yml b/.mock/definition/CRM/passthrough.yml new file mode 100644 index 00000000..074a43b1 --- /dev/null +++ b/.mock/definition/CRM/passthrough.yml @@ -0,0 +1,40 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /crm/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: crm_v3.yml + request: + body: crmRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: crmRoot.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/regenerateKey.yml b/.mock/definition/CRM/regenerateKey.yml new file mode 100644 index 00000000..2515182c --- /dev/null +++ b/.mock/definition/CRM/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /crm/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: crm_v3.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: crmRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/scopes.yml b/.mock/definition/CRM/scopes.yml new file mode 100644 index 00000000..7091eeaf --- /dev/null +++ b/.mock/definition/CRM/scopes.yml @@ -0,0 +1,160 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /crm/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /crm/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /crm/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: crm_v3.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + content-type: application/json + response: + docs: '' + type: crmRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/stages.yml b/.mock/definition/CRM/stages.yml new file mode 100644 index 00000000..0c2e8eb6 --- /dev/null +++ b/.mock/definition/CRM/stages.yml @@ -0,0 +1,230 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/stages + method: GET + auth: true + docs: Returns a list of `Stage` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: StagesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedStageList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0358cbc6-2040-430a-848e-aafacbadf3aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Closed Won + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /stages + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + retrieve: + path: /crm/v1/stages/{id} + method: GET + auth: true + docs: Returns a `Stage` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: StagesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.Stage + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0358cbc6-2040-430a-848e-aafacbadf3aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Closed Won + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /stages + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + remoteFieldClassesList: + path: /crm/v1/stages/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: StagesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/syncStatus.yml b/.mock/definition/CRM/syncStatus.yml new file mode 100644 index 00000000..7a57c6fd --- /dev/null +++ b/.mock/definition/CRM/syncStatus.yml @@ -0,0 +1,55 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + source: + openapi: crm_v3.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: Account + model_id: crm.Account + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/tasks.yml b/.mock/definition/CRM/tasks.yml new file mode 100644 index 00000000..01a7f1b4 --- /dev/null +++ b/.mock/definition/CRM/tasks.yml @@ -0,0 +1,801 @@ +types: + TasksListRequestExpandItem: + enum: + - account + - opportunity + - owner + source: + openapi: crm_v3.yml + TasksRetrieveRequestExpandItem: + enum: + - account + - opportunity + - owner + source: + openapi: crm_v3.yml +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/tasks + method: GET + auth: true + docs: Returns a list of `Task` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: TasksListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedTaskList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + subject: Contact about Integration Strategy + content: Follow up to see whether they need integrations + owner: owner + account: account + opportunity: opportunity + completed_date: '2022-02-11T00:00:00Z' + due_date: '2022-02-10T00:00:00Z' + status: OPEN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /tasks + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/tasks + method: POST + auth: true + docs: Creates a `Task` object with the given values. + source: + openapi: crm_v3.yml + request: + name: TaskEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.TaskRequest + content-type: application/json + response: + docs: '' + type: crmRoot.TaskResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + subject: Contact about Integration Strategy + content: Follow up to see whether they need integrations + owner: owner + account: account + opportunity: opportunity + completed_date: '2022-02-11T00:00:00Z' + due_date: '2022-02-10T00:00:00Z' + status: OPEN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /tasks + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/tasks/{id} + method: GET + auth: true + docs: Returns a `Task` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: TasksRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.Task + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + subject: Contact about Integration Strategy + content: Follow up to see whether they need integrations + owner: owner + account: account + opportunity: opportunity + completed_date: '2022-02-11T00:00:00Z' + due_date: '2022-02-10T00:00:00Z' + status: OPEN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /tasks + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /crm/v1/tasks/{id} + method: PATCH + auth: true + docs: Updates a `Task` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: PatchedTaskEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: crmRoot.PatchedTaskRequest + content-type: application/json + response: + docs: '' + type: crmRoot.TaskResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + subject: Contact about Integration Strategy + content: Follow up to see whether they need integrations + owner: owner + account: account + opportunity: opportunity + completed_date: '2022-02-11T00:00:00Z' + due_date: '2022-02-10T00:00:00Z' + status: OPEN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /tasks + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPatchRetrieve: + path: /crm/v1/tasks/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Task` PATCHs. + source: + openapi: crm_v3.yml + path-parameters: + id: string + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /crm/v1/tasks/meta/post + method: GET + auth: true + docs: Returns metadata for `Task` POSTs. + source: + openapi: crm_v3.yml + response: + docs: '' + type: crmRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/tasks/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: TasksRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/users.yml b/.mock/definition/CRM/users.yml new file mode 100644 index 00000000..90719a44 --- /dev/null +++ b/.mock/definition/CRM/users.yml @@ -0,0 +1,259 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/users + method: GET + auth: true + docs: Returns a list of `User` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: UsersListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email: + type: optional + docs: If provided, will only return users with this email. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: crmRoot.PaginatedUserList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0358cbc6-2040-430a-848e-aafacbadf3aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email: merge_is_hiring@merge.dev + is_active: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + retrieve: + path: /crm/v1/users/{id} + method: GET + auth: true + docs: Returns a `User` object with the given `id`. + source: + openapi: crm_v3.yml + path-parameters: + id: string + request: + name: UsersRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: crmRoot.User + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0358cbc6-2040-430a-848e-aafacbadf3aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email: merge_is_hiring@merge.dev + is_active: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + ignoreCreate: + path: /crm/v1/users/ignore/{model_id} + method: POST + auth: true + docs: >- + Ignores a specific row based on the `model_id` in the url. These records + will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will + be stored for audit purposes. + source: + openapi: crm_v3.yml + path-parameters: + model_id: string + request: + body: crmRoot.IgnoreCommonModelRequest + content-type: application/json + examples: + - path-parameters: + model_id: model_id + headers: {} + request: + reason: GENERAL_CUSTOMER_REQUEST + remoteFieldClassesList: + path: /crm/v1/users/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: crm_v3.yml + request: + name: UsersRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: crmRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: crm_v3.yml diff --git a/.mock/definition/CRM/webhookReceivers.yml b/.mock/definition/CRM/webhookReceivers.yml new file mode 100644 index 00000000..64b2593e --- /dev/null +++ b/.mock/definition/CRM/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + crmRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: crm_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /crm/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: crm_v3.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: crmRoot.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: crm_v3.yml diff --git a/.mock/definition/FileStorage/__package__.yml b/.mock/definition/FileStorage/__package__.yml new file mode 100644 index 00000000..f07c96e3 --- /dev/null +++ b/.mock/definition/FileStorage/__package__.yml @@ -0,0 +1,2404 @@ +types: + AccountDetailsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: filestorage_v3.yml + AccountDetailsAndActionsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + AccountDetailsAndActionsStatus: + discriminated: false + union: + - AccountDetailsAndActionsStatusEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatus + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + source: + openapi: filestorage_v3.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: filestorage_v3.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: filestorage_v3.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: filestorage_v3.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: filestorage_v3.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: filestorage_v3.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: filestorage_v3.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: filestorage_v3.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: filestorage_v3.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: filestorage_v3.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: filestorage_v3.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: filestorage_v3.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: filestorage_v3.yml + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: MethodEnum + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: filestorage_v3.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: filestorage_v3.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: filestorage_v3.yml + DownloadRequestMeta: + properties: + id: string + url: string + method: string + headers: map + source: + openapi: filestorage_v3.yml + Drive: + docs: >- + # The Drive Object + + ### Description + + The `Drive` object is used to represent a drive that contains the folders + and files in the user's workspace. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/drives` endpoint and view their + drives. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The drive's name. + validation: + maxLength: 254 + remote_created_at: + type: optional + docs: When the third party's drive was created. + drive_url: + type: optional + docs: The drive's url. + validation: + maxLength: 2000 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: filestorage_v3.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: filestorage_v3.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: filestorage_v3.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: filestorage_v3.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: filestorage_v3.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: filestorage_v3.yml + ExternalTargetFieldApiResponse: + properties: + File: optional> + Folder: optional> + Drive: optional> + Group: optional> + User: optional> + source: + openapi: filestorage_v3.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: filestorage_v3.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: filestorage_v3.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: filestorage_v3.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: filestorage_v3.yml + FieldMappingApiInstanceResponse: + properties: + File: optional> + Folder: optional> + Drive: optional> + Group: optional> + User: optional> + source: + openapi: filestorage_v3.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: filestorage_v3.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: filestorage_v3.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: filestorage_v3.yml + FileFolder: + discriminated: false + docs: The folder that the file belongs to. + union: + - type: string + validation: + format: uuid + - Folder + source: + openapi: filestorage_v3.yml + inline: true + FilePermissionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Permission + source: + openapi: filestorage_v3.yml + inline: true + FilePermissions: + discriminated: false + docs: >- + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. Use the query param + `expand=permissions` to see more details under `GET /files`. + union: + - type: string + validation: + format: uuid + - Permission + - list + source: + openapi: filestorage_v3.yml + inline: true + FileDrive: + discriminated: false + docs: The drive that the file belongs to. + union: + - type: string + validation: + format: uuid + - Drive + source: + openapi: filestorage_v3.yml + inline: true + File: + docs: >- + # The File Object + + ### Description + + The `File` object is used to represent a file in the workspace. The Object + typically exists under a folder or drive, if it exists. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/files` endpoint and view their + files. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The file's name. + validation: + maxLength: 254 + file_url: + type: optional + docs: The URL to access the file. + validation: + maxLength: 2000 + file_thumbnail_url: + type: optional + docs: >- + The URL that produces a thumbnail preview of the file. Typically an + image. + validation: + maxLength: 2000 + size: + type: optional + docs: The file's size, in bytes. + mime_type: + type: optional + docs: The file's mime type. + validation: + maxLength: 128 + description: + type: optional + docs: The file's description. + validation: + maxLength: 2000 + folder: + type: optional + docs: The folder that the file belongs to. + checksum: + type: optional> + docs: >- + This field stores file checksum data. 'type' indicates the algorithm + (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is + the unique hash used to verify file integrity and detect alterations. + permissions: + type: optional + docs: >- + The Permission object is used to represent a user's or group's access + to a File or Folder. Permissions are unexpanded by default. Use the + query param `expand=permissions` to see more details under `GET + /files`. + drive: + type: optional + docs: The drive that the file belongs to. + remote_created_at: + type: optional + docs: When the third party's file was created. + remote_updated_at: + type: optional + docs: When the third party's file was updated. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: filestorage_v3.yml + FileRequestFolder: + discriminated: false + docs: The folder that the file belongs to. + union: + - type: string + validation: + format: uuid + - Folder + source: + openapi: filestorage_v3.yml + inline: true + FileRequestPermissionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PermissionRequest + source: + openapi: filestorage_v3.yml + inline: true + FileRequestPermissions: + discriminated: false + docs: >- + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. Use the query param + `expand=permissions` to see more details under `GET /files`. + union: + - type: string + validation: + format: uuid + - PermissionRequest + - list + source: + openapi: filestorage_v3.yml + inline: true + FileRequestDrive: + discriminated: false + docs: The drive that the file belongs to. + union: + - type: string + validation: + format: uuid + - Drive + source: + openapi: filestorage_v3.yml + inline: true + FileRequest: + docs: >- + # The File Object + + ### Description + + The `File` object is used to represent a file in the workspace. The Object + typically exists under a folder or drive, if it exists. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/files` endpoint and view their + files. + properties: + name: + type: optional + docs: The file's name. + validation: + maxLength: 254 + file_url: + type: optional + docs: The URL to access the file. + validation: + maxLength: 2000 + file_thumbnail_url: + type: optional + docs: >- + The URL that produces a thumbnail preview of the file. Typically an + image. + validation: + maxLength: 2000 + size: + type: optional + docs: The file's size, in bytes. + mime_type: + type: optional + docs: The file's mime type. + validation: + maxLength: 128 + description: + type: optional + docs: The file's description. + validation: + maxLength: 2000 + folder: + type: optional + docs: The folder that the file belongs to. + checksum: + type: optional> + docs: >- + This field stores file checksum data. 'type' indicates the algorithm + (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is + the unique hash used to verify file integrity and detect alterations. + permissions: + type: optional + docs: >- + The Permission object is used to represent a user's or group's access + to a File or Folder. Permissions are unexpanded by default. Use the + query param `expand=permissions` to see more details under `GET + /files`. + drive: + type: optional + docs: The drive that the file belongs to. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: filestorage_v3.yml + FileStorageFileResponse: + properties: + model: File + warnings: list + errors: list + logs: optional> + source: + openapi: filestorage_v3.yml + FileStorageFolderResponse: + properties: + model: Folder + warnings: list + errors: list + logs: optional> + source: + openapi: filestorage_v3.yml + FolderParentFolder: + discriminated: false + docs: The folder that the folder belongs to. + union: + - type: string + validation: + format: uuid + - Folder + source: + openapi: filestorage_v3.yml + inline: true + FolderDrive: + discriminated: false + docs: The drive that the folder belongs to. + union: + - type: string + validation: + format: uuid + - Drive + source: + openapi: filestorage_v3.yml + inline: true + FolderPermissionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Permission + source: + openapi: filestorage_v3.yml + inline: true + FolderPermissions: + discriminated: false + docs: >- + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. Use the query param + `expand=permissions` to see more details under `GET /folders`. + union: + - type: string + validation: + format: uuid + - Permission + - list + source: + openapi: filestorage_v3.yml + inline: true + Folder: + docs: >- + # The Folder Object + + ### Description + + The `Folder` object is used to represent a collection of files and/or + folders in the workspace. Could be within a drive, if it exists. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/folders` endpoint and view their + folders. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The folder's name. + validation: + maxLength: 254 + folder_url: + type: optional + docs: The URL to access the folder. + validation: + maxLength: 2000 + size: + type: optional + docs: The folder's size, in bytes. + description: + type: optional + docs: The folder's description. + validation: + maxLength: 2000 + parent_folder: + type: optional + docs: The folder that the folder belongs to. + drive: + type: optional + docs: The drive that the folder belongs to. + permissions: + type: optional + docs: >- + The Permission object is used to represent a user's or group's access + to a File or Folder. Permissions are unexpanded by default. Use the + query param `expand=permissions` to see more details under `GET + /folders`. + remote_created_at: + type: optional + docs: When the third party's folder was created. + remote_updated_at: + type: optional + docs: When the third party's folder was updated. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: filestorage_v3.yml + FolderRequestParentFolder: + discriminated: false + docs: The folder that the folder belongs to. + union: + - type: string + validation: + format: uuid + - Folder + source: + openapi: filestorage_v3.yml + inline: true + FolderRequestDrive: + discriminated: false + docs: The drive that the folder belongs to. + union: + - type: string + validation: + format: uuid + - Drive + source: + openapi: filestorage_v3.yml + inline: true + FolderRequestPermissionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PermissionRequest + source: + openapi: filestorage_v3.yml + inline: true + FolderRequestPermissions: + discriminated: false + docs: >- + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. Use the query param + `expand=permissions` to see more details under `GET /folders`. + union: + - type: string + validation: + format: uuid + - PermissionRequest + - list + source: + openapi: filestorage_v3.yml + inline: true + FolderRequest: + docs: >- + # The Folder Object + + ### Description + + The `Folder` object is used to represent a collection of files and/or + folders in the workspace. Could be within a drive, if it exists. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/folders` endpoint and view their + folders. + properties: + name: + type: optional + docs: The folder's name. + validation: + maxLength: 254 + folder_url: + type: optional + docs: The URL to access the folder. + validation: + maxLength: 2000 + size: + type: optional + docs: The folder's size, in bytes. + description: + type: optional + docs: The folder's description. + validation: + maxLength: 2000 + parent_folder: + type: optional + docs: The folder that the folder belongs to. + drive: + type: optional + docs: The drive that the folder belongs to. + permissions: + type: optional + docs: >- + The Permission object is used to represent a user's or group's access + to a File or Folder. Permissions are unexpanded by default. Use the + query param `expand=permissions` to see more details under `GET + /folders`. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: filestorage_v3.yml + GroupChildGroupsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Group + source: + openapi: filestorage_v3.yml + inline: true + Group: + docs: >- + # The Group Object + + ### Description + + The `Group` object is used to represent any subset of `Users`. This can + extend to company domains as well. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/groups` endpoint and view their + groups. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The group's name. + validation: + maxLength: 254 + users: + docs: >- + The users that belong in the group. If null, this typically means it's + either a domain or the third-party platform does not surface this + information. + type: list + child_groups: + type: optional> + docs: Groups that inherit the permissions of the parent group. + access: read-only + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: filestorage_v3.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: filestorage_v3.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: filestorage_v3.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: filestorage_v3.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: filestorage_v3.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: filestorage_v3.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: filestorage_v3.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: filestorage_v3.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: filestorage_v3.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: filestorage_v3.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: filestorage_v3.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: filestorage_v3.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: filestorage_v3.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: filestorage_v3.yml + MultipartFormFieldRequestEncoding: + discriminated: false + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + union: + - EncodingEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: filestorage_v3.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: filestorage_v3.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: filestorage_v3.yml + PaginatedDownloadRequestMetaList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: filestorage_v3.yml + PaginatedDriveList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: filestorage_v3.yml + PaginatedFileList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: filestorage_v3.yml + PaginatedFolderList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: filestorage_v3.yml + PaginatedGroupList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: filestorage_v3.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: filestorage_v3.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: filestorage_v3.yml + PaginatedUserList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: filestorage_v3.yml + PermissionUser: + discriminated: false + docs: >- + The user that is granted this permission. This will only be populated if + the type is `USER`. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: filestorage_v3.yml + inline: true + PermissionGroup: + discriminated: false + docs: >- + The group that is granted this permission. This will only be populated if + the type is `GROUP`. + union: + - type: string + validation: + format: uuid + - Group + source: + openapi: filestorage_v3.yml + inline: true + PermissionType: + discriminated: false + docs: |- + Denotes what type of people have access to the file. + + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + union: + - TypeEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + PermissionRolesItem: + discriminated: false + docs: |- + The permissions that the user or group has for the File or Folder. + + * `READ` - READ + * `WRITE` - WRITE + * `OWNER` - OWNER + union: + - RolesEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + Permission: + docs: >- + # The Permission Object + + ### Description + + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. + + + ### Usage Example + + Fetch from the `GET Files` or `GET Folders` endpoint. Permissions are + unexpanded by default. Use the query param `expand=permissions` to see + more details. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + user: + type: optional + docs: >- + The user that is granted this permission. This will only be populated + if the type is `USER`. + group: + type: optional + docs: >- + The group that is granted this permission. This will only be populated + if the type is `GROUP`. + type: + type: optional + docs: |- + Denotes what type of people have access to the file. + + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + roles: + type: optional>> + docs: >- + The permissions that the user or group has for the File or Folder. It + is possible for a user or group to have multiple roles, such as + viewing & uploading. Possible values include: `READ`, `WRITE`, + `OWNER`. In cases where there is no clear mapping, the original value + passed through will be returned. + source: + openapi: filestorage_v3.yml + PermissionRequestUser: + discriminated: false + docs: >- + The user that is granted this permission. This will only be populated if + the type is `USER`. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: filestorage_v3.yml + inline: true + PermissionRequestGroup: + discriminated: false + docs: >- + The group that is granted this permission. This will only be populated if + the type is `GROUP`. + union: + - type: string + validation: + format: uuid + - Group + source: + openapi: filestorage_v3.yml + inline: true + PermissionRequestType: + discriminated: false + docs: |- + Denotes what type of people have access to the file. + + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + union: + - TypeEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + PermissionRequestRolesItem: + discriminated: false + docs: |- + The permissions that the user or group has for the File or Folder. + + * `READ` - READ + * `WRITE` - WRITE + * `OWNER` - OWNER + union: + - RolesEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + PermissionRequest: + docs: >- + # The Permission Object + + ### Description + + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. + + + ### Usage Example + + Fetch from the `GET Files` or `GET Folders` endpoint. Permissions are + unexpanded by default. Use the query param `expand=permissions` to see + more details. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + user: + type: optional + docs: >- + The user that is granted this permission. This will only be populated + if the type is `USER`. + group: + type: optional + docs: >- + The group that is granted this permission. This will only be populated + if the type is `GROUP`. + type: + type: optional + docs: |- + Denotes what type of people have access to the file. + + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + roles: + type: optional>> + docs: >- + The permissions that the user or group has for the File or Folder. It + is possible for a user or group to have multiple roles, such as + viewing & uploading. Possible values include: `READ`, `WRITE`, + `OWNER`. In cases where there is no clear mapping, the original value + passed through will be returned. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: filestorage_v3.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: filestorage_v3.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: filestorage_v3.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: filestorage_v3.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: filestorage_v3.yml + RemoteFieldApiResponse: + properties: + File: optional> + Folder: optional> + Drive: optional> + Group: optional> + User: optional> + source: + openapi: filestorage_v3.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: filestorage_v3.yml + RemoteResponseResponseType: + discriminated: false + union: + - ResponseTypeEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: filestorage_v3.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: filestorage_v3.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: filestorage_v3.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: filestorage_v3.yml + RolesEnum: + enum: + - READ + - WRITE + - OWNER + docs: |- + * `READ` - READ + * `WRITE` - WRITE + * `OWNER` - OWNER + source: + openapi: filestorage_v3.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: filestorage_v3.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: filestorage_v3.yml + SyncStatusLastSyncResult: + discriminated: false + union: + - LastSyncResultEnum + - string + source: + openapi: filestorage_v3.yml + inline: true + SyncStatusStatus: + discriminated: false + union: + - StatusFd5Enum + - string + source: + openapi: filestorage_v3.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: SyncStatusStatus + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: filestorage_v3.yml + TypeEnum: + enum: + - USER + - GROUP + - COMPANY + - ANYONE + docs: |- + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + source: + openapi: filestorage_v3.yml + User: + docs: >- + # The User Object + + ### Description + + The `User` object is used to represent a user within the File Storage + account. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/users` endpoint and view their + users. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The user's name. + validation: + maxLength: 254 + email_address: + type: optional + docs: >- + The user's email address. This is typically used to identify a user + across linked accounts. + validation: + maxLength: 2000 + is_me: + type: optional + docs: Whether the user is the one who linked this account. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: filestorage_v3.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: filestorage_v3.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: filestorage_v3.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/accountDetails.yml b/.mock/definition/FileStorage/accountDetails.yml new file mode 100644 index 00000000..10e44e40 --- /dev/null +++ b/.mock/definition/FileStorage/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /filestorage/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: filestorage_v3.yml + response: + docs: '' + type: fileStorageRoot.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/accountToken.yml b/.mock/definition/FileStorage/accountToken.yml new file mode 100644 index 00000000..46dc75e8 --- /dev/null +++ b/.mock/definition/FileStorage/accountToken.yml @@ -0,0 +1,44 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /filestorage/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: filestorage_v3.yml + path-parameters: + public_token: string + response: + docs: '' + type: fileStorageRoot.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/asyncPassthrough.yml b/.mock/definition/FileStorage/asyncPassthrough.yml new file mode 100644 index 00000000..f05f2a0f --- /dev/null +++ b/.mock/definition/FileStorage/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /filestorage/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: filestorage_v3.yml + request: + body: fileStorageRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: fileStorageRoot.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /filestorage/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: filestorage_v3.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: filestorage_v3.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - fileStorageRoot.RemoteResponse + - string + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/auditTrail.yml b/.mock/definition/FileStorage/auditTrail.yml new file mode 100644 index 00000000..68b1f419 --- /dev/null +++ b/.mock/definition/FileStorage/auditTrail.yml @@ -0,0 +1,98 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: filestorage_v3.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, + `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, + `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: fileStorageRoot.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/availableActions.yml b/.mock/definition/FileStorage/availableActions.yml new file mode 100644 index 00000000..9bfd8746 --- /dev/null +++ b/.mock/definition/FileStorage/availableActions.yml @@ -0,0 +1,50 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /filestorage/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: filestorage_v3.yml + response: + docs: '' + type: fileStorageRoot.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/deleteAccount.yml b/.mock/definition/FileStorage/deleteAccount.yml new file mode 100644 index 00000000..5ebc5c5c --- /dev/null +++ b/.mock/definition/FileStorage/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /filestorage/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: filestorage_v3.yml + examples: + - headers: {} + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/drives.yml b/.mock/definition/FileStorage/drives.yml new file mode 100644 index 00000000..848f8773 --- /dev/null +++ b/.mock/definition/FileStorage/drives.yml @@ -0,0 +1,149 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/drives + method: GET + auth: true + docs: Returns a list of `Drive` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: filestorage_v3.yml + request: + name: DrivesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: >- + If provided, will only return drives with this name. This performs + an exact match. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: fileStorageRoot.PaginatedDriveList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: f9e3d315-d6c2-458e-85c4-fa773d6ff4a6 + remote_id: '2039348' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: My Drive + remote_created_at: '2024-01-15T09:30:00Z' + drive_url: https://drive.com/drives/2039349 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /drives + data: + - Varies by platform + retrieve: + path: /filestorage/v1/drives/{id} + method: GET + auth: true + docs: Returns a `Drive` object with the given `id`. + source: + openapi: filestorage_v3.yml + path-parameters: + id: string + request: + name: DrivesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: fileStorageRoot.Drive + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: f9e3d315-d6c2-458e-85c4-fa773d6ff4a6 + remote_id: '2039348' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: My Drive + remote_created_at: '2024-01-15T09:30:00Z' + drive_url: https://drive.com/drives/2039349 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /drives + data: + - Varies by platform + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/fieldMapping.yml b/.mock/definition/FileStorage/fieldMapping.yml new file mode 100644 index 00000000..86edc0b6 --- /dev/null +++ b/.mock/definition/FileStorage/fieldMapping.yml @@ -0,0 +1,518 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /filestorage/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: filestorage_v3.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: fileStorageRoot.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + File: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Folder: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Drive: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Group: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + User: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /filestorage/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: filestorage_v3.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: fileStorageRoot.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /filestorage/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: filestorage_v3.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: fileStorageRoot.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /filestorage/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: filestorage_v3.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: fileStorageRoot.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /filestorage/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: filestorage_v3.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: fileStorageRoot.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + File: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Folder: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Drive: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Group: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + User: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /filestorage/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: filestorage_v3.yml + response: + docs: '' + type: fileStorageRoot.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + File: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Folder: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Drive: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Group: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + User: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/files.yml b/.mock/definition/FileStorage/files.yml new file mode 100644 index 00000000..442ca43f --- /dev/null +++ b/.mock/definition/FileStorage/files.yml @@ -0,0 +1,666 @@ +types: + FilesListRequestExpandItem: + enum: + - drive + - folder + - permissions + source: + openapi: filestorage_v3.yml + FilesListRequestOrderBy: + enum: + - value: '-created_at' + name: CreatedAtDescending + - value: '-modified_at' + name: ModifiedAtDescending + - value: created_at + name: CreatedAtAscending + - value: modified_at + name: ModifiedAtAscending + source: + openapi: filestorage_v3.yml + FilesRetrieveRequestExpandItem: + enum: + - drive + - folder + - permissions + source: + openapi: filestorage_v3.yml + FilesDownloadRequestMetaListRequestOrderBy: + enum: + - value: '-created_at' + name: CreatedAtDescending + - value: '-modified_at' + name: ModifiedAtDescending + - value: created_at + name: CreatedAtAscending + - value: modified_at + name: ModifiedAtAscending + source: + openapi: filestorage_v3.yml +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/files + method: GET + auth: true + docs: Returns a list of `File` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: filestorage_v3.yml + request: + name: FilesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + drive_id: + type: optional + docs: >- + Specifying a drive id returns only the files in that drive. + Specifying null returns only the files outside the top-level + drive. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + folder_id: + type: optional + docs: >- + Specifying a folder id returns only the files in that folder. + Specifying null returns only the files in root directory. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + mime_type: + type: optional + docs: >- + If provided, will only return files with these mime_types. + Multiple values can be separated by commas. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: >- + If provided, will only return files with this name. This performs + an exact match. + order_by: + type: optional + docs: >- + Overrides the default ordering for this endpoint. Possible values + include: created_at, -created_at, modified_at, -modified_at. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: fileStorageRoot.PaginatedFileList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 45ce474c-dhcj-43a6-754r-629f799f7d68 + remote_id: '12' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: merge_file_storage_launch.docx + file_url: https://drive.com/1234 + file_thumbnail_url: https://drive.com/1234/thumbnail.png + size: 254 + mime_type: >- + application/vnd.openxmlformats-officedocument.wordprocessingml.document + description: >- + Use common model scopes to redact data returned in Merge's + Common Models! + folder: folder + checksum: + type: sha256 + content_hash: >- + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + permissions: permissions + drive: drive + remote_created_at: '2022-02-02T00:00:00Z' + remote_updated_at: '2022-02-03T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /files + data: + - Varies by platform + create: + path: /filestorage/v1/files + method: POST + auth: true + docs: Creates a `File` object with the given values. + source: + openapi: filestorage_v3.yml + request: + name: FileStorageFileEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: fileStorageRoot.FileRequest + content-type: application/json + response: + docs: '' + type: fileStorageRoot.FileStorageFileResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 45ce474c-dhcj-43a6-754r-629f799f7d68 + remote_id: '12' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: merge_file_storage_launch.docx + file_url: https://drive.com/1234 + file_thumbnail_url: https://drive.com/1234/thumbnail.png + size: 254 + mime_type: >- + application/vnd.openxmlformats-officedocument.wordprocessingml.document + description: >- + Use common model scopes to redact data returned in Merge's + Common Models! + folder: folder + checksum: + type: sha256 + content_hash: >- + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + permissions: permissions + drive: drive + remote_created_at: '2022-02-02T00:00:00Z' + remote_updated_at: '2022-02-03T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /files + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /filestorage/v1/files/{id} + method: GET + auth: true + docs: Returns a `File` object with the given `id`. + source: + openapi: filestorage_v3.yml + path-parameters: + id: string + request: + name: FilesRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: fileStorageRoot.File + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 45ce474c-dhcj-43a6-754r-629f799f7d68 + remote_id: '12' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: merge_file_storage_launch.docx + file_url: https://drive.com/1234 + file_thumbnail_url: https://drive.com/1234/thumbnail.png + size: 254 + mime_type: >- + application/vnd.openxmlformats-officedocument.wordprocessingml.document + description: >- + Use common model scopes to redact data returned in Merge's + Common Models! + folder: folder + checksum: + type: sha256 + content_hash: >- + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + permissions: permissions + drive: drive + remote_created_at: '2022-02-02T00:00:00Z' + remote_updated_at: '2022-02-03T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /files + data: + - Varies by platform + downloadRetrieve: + path: /filestorage/v1/files/{id}/download + method: GET + auth: true + docs: Returns the `File` content with the given `id` as a stream of bytes. + source: + openapi: filestorage_v3.yml + path-parameters: + id: string + request: + name: FilesDownloadRetrieveRequest + query-parameters: + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + mime_type: + type: optional + docs: >- + If provided, specifies the export format of the file to be + downloaded. For information on supported export formats, please + refer to our export format help center article. + response: + docs: '' + type: file + status-code: 200 + downloadRequestMetaRetrieve: + path: /filestorage/v1/files/{id}/download/request-meta + method: GET + auth: true + docs: >- + Returns metadata to construct an authenticated file download request for + a singular file, allowing you to download file directly from the + third-party. + source: + openapi: filestorage_v3.yml + path-parameters: + id: string + request: + name: FilesDownloadRequestMetaRetrieveRequest + query-parameters: + mime_type: + type: optional + docs: >- + If provided, specifies the export format of the file to be + downloaded. For information on supported export formats, please + refer to our export format help center article. + response: + docs: '' + type: fileStorageRoot.DownloadRequestMeta + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + url: https://www.googleapis.com/drive/v3/files/234?alt=media + method: GET + headers: + Authorization: Bearer 1234 + downloadRequestMetaList: + path: /filestorage/v1/files/download/request-meta + method: GET + auth: true + docs: >- + Returns metadata to construct authenticated file download requests, + allowing you to download files directly from the third-party. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: filestorage_v3.yml + request: + name: FilesDownloadRequestMetaListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + mime_types: + type: optional + docs: >- + A comma-separated list of preferred MIME types in order of + priority. If supported by the third-party provider, the file(s) + will be returned in the first supported MIME type from the list. + The default MIME type is PDF. To see supported MIME types by file + type, refer to our export format help center article. + modified_after: + type: optional + docs: >- + If provided, will only return objects modified after this + datetime. + modified_before: + type: optional + docs: >- + If provided, will only return objects modified before this + datetime. + order_by: + type: optional + docs: >- + Overrides the default ordering for this endpoint. Possible values + include: created_at, -created_at, modified_at, -modified_at. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: fileStorageRoot.PaginatedDownloadRequestMetaList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + url: https://www.googleapis.com/drive/v3/files/234?alt=media + method: GET + headers: + Authorization: Bearer 1234 + metaPostRetrieve: + path: /filestorage/v1/files/meta/post + method: GET + auth: true + docs: Returns metadata for `FileStorageFile` POSTs. + source: + openapi: filestorage_v3.yml + response: + docs: '' + type: fileStorageRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/folders.yml b/.mock/definition/FileStorage/folders.yml new file mode 100644 index 00000000..c115e066 --- /dev/null +++ b/.mock/definition/FileStorage/folders.yml @@ -0,0 +1,456 @@ +types: + FoldersListRequestExpandItem: + enum: + - drive + - parent_folder + - permissions + source: + openapi: filestorage_v3.yml + FoldersRetrieveRequestExpandItem: + enum: + - drive + - parent_folder + - permissions + source: + openapi: filestorage_v3.yml +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/folders + method: GET + auth: true + docs: Returns a list of `Folder` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: filestorage_v3.yml + request: + name: FoldersListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + drive_id: + type: optional + docs: If provided, will only return folders in this drive. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: >- + If provided, will only return folders with this name. This + performs an exact match. + page_size: + type: optional + docs: Number of results to return per page. + parent_folder_id: + type: optional + docs: >- + If provided, will only return folders in this parent folder. If + null, will return folders in root directory. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: fileStorageRoot.PaginatedFolderList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e021f7a7-74fc-4487-8e12-14180c92d3b7 + remote_id: '14' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: R&D + folder_url: https://drive.com/1234 + size: 2738000 + description: All things R&D related at Merge! + parent_folder: parent_folder + drive: drive + permissions: permissions + remote_created_at: '2024-02-02T00:00:00Z' + remote_updated_at: '2024-06-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /folders + data: + - Varies by platform + create: + path: /filestorage/v1/folders + method: POST + auth: true + docs: Creates a `Folder` object with the given values. + source: + openapi: filestorage_v3.yml + request: + name: FileStorageFolderEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: fileStorageRoot.FolderRequest + content-type: application/json + response: + docs: '' + type: fileStorageRoot.FileStorageFolderResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: e021f7a7-74fc-4487-8e12-14180c92d3b7 + remote_id: '14' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: R&D + folder_url: https://drive.com/1234 + size: 2738000 + description: All things R&D related at Merge! + parent_folder: parent_folder + drive: drive + permissions: permissions + remote_created_at: '2024-02-02T00:00:00Z' + remote_updated_at: '2024-06-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /folders + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /filestorage/v1/folders/{id} + method: GET + auth: true + docs: Returns a `Folder` object with the given `id`. + source: + openapi: filestorage_v3.yml + path-parameters: + id: string + request: + name: FoldersRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: fileStorageRoot.Folder + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: e021f7a7-74fc-4487-8e12-14180c92d3b7 + remote_id: '14' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: R&D + folder_url: https://drive.com/1234 + size: 2738000 + description: All things R&D related at Merge! + parent_folder: parent_folder + drive: drive + permissions: permissions + remote_created_at: '2024-02-02T00:00:00Z' + remote_updated_at: '2024-06-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /folders + data: + - Varies by platform + metaPostRetrieve: + path: /filestorage/v1/folders/meta/post + method: GET + auth: true + docs: Returns metadata for `FileStorageFolder` POSTs. + source: + openapi: filestorage_v3.yml + response: + docs: '' + type: fileStorageRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/forceResync.yml b/.mock/definition/FileStorage/forceResync.yml new file mode 100644 index 00000000..5a4ee92f --- /dev/null +++ b/.mock/definition/FileStorage/forceResync.yml @@ -0,0 +1,37 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /filestorage/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: filestorage_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: File + model_id: filestorage.FileStorageFile + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/generateKey.yml b/.mock/definition/FileStorage/generateKey.yml new file mode 100644 index 00000000..947aa930 --- /dev/null +++ b/.mock/definition/FileStorage/generateKey.yml @@ -0,0 +1,36 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /filestorage/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: filestorage_v3.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: fileStorageRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/groups.yml b/.mock/definition/FileStorage/groups.yml new file mode 100644 index 00000000..721be36b --- /dev/null +++ b/.mock/definition/FileStorage/groups.yml @@ -0,0 +1,173 @@ +types: + GroupsListRequestExpandItem: + enum: + - child_groups + - users + source: + openapi: filestorage_v3.yml + GroupsRetrieveRequestExpandItem: + enum: + - child_groups + - users + source: + openapi: filestorage_v3.yml +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/groups + method: GET + auth: true + docs: Returns a list of `Group` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: filestorage_v3.yml + request: + name: GroupsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: fileStorageRoot.PaginatedGroupList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 5624aceb-0ea2-4864-ba08-354ac56b9884 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Administrators + users: + - 6e93361b-8ae7-444b-bfa2-71206cbbee24 + child_groups: + - a1f90b3c-633d-404e-a696-05cd54808676 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /groups + data: + - Varies by platform + retrieve: + path: /filestorage/v1/groups/{id} + method: GET + auth: true + docs: Returns a `Group` object with the given `id`. + source: + openapi: filestorage_v3.yml + path-parameters: + id: string + request: + name: GroupsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: fileStorageRoot.Group + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 5624aceb-0ea2-4864-ba08-354ac56b9884 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Administrators + users: + - 6e93361b-8ae7-444b-bfa2-71206cbbee24 + child_groups: + - a1f90b3c-633d-404e-a696-05cd54808676 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /groups + data: + - Varies by platform + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/issues.yml b/.mock/definition/FileStorage/issues.yml new file mode 100644 index 00000000..4e54131b --- /dev/null +++ b/.mock/definition/FileStorage/issues.yml @@ -0,0 +1,133 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: filestorage_v3.yml +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: filestorage_v3.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: fileStorageRoot.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /filestorage/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: filestorage_v3.yml + path-parameters: + id: string + response: + docs: '' + type: fileStorageRoot.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/linkToken.yml b/.mock/definition/FileStorage/linkToken.yml new file mode 100644 index 00000000..a0124a27 --- /dev/null +++ b/.mock/definition/FileStorage/linkToken.yml @@ -0,0 +1,152 @@ +imports: + fileStorageRoot: __package__.yml +types: + EndUserDetailsRequestLanguage: + discriminated: false + docs: >- + The following subset of IETF language tags can be used to configure + localization. + + + * `en` - en + + * `de` - de + union: + - fileStorageRoot.LanguageEnum + - string + source: + openapi: filestorage_v3.yml + inline: true +service: + auth: false + base-path: '' + endpoints: + create: + path: /filestorage/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: filestorage_v3.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: fileStorageRoot.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/linkedAccounts.yml b/.mock/definition/FileStorage/linkedAccounts.yml new file mode 100644 index 00000000..253d028c --- /dev/null +++ b/.mock/definition/FileStorage/linkedAccounts.yml @@ -0,0 +1,152 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: filestorage_v3.yml +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: filestorage_v3.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: fileStorageRoot.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/passthrough.yml b/.mock/definition/FileStorage/passthrough.yml new file mode 100644 index 00000000..f1f30263 --- /dev/null +++ b/.mock/definition/FileStorage/passthrough.yml @@ -0,0 +1,40 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /filestorage/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: filestorage_v3.yml + request: + body: fileStorageRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: fileStorageRoot.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/regenerateKey.yml b/.mock/definition/FileStorage/regenerateKey.yml new file mode 100644 index 00000000..6e7dbfa6 --- /dev/null +++ b/.mock/definition/FileStorage/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /filestorage/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: filestorage_v3.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: fileStorageRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/scopes.yml b/.mock/definition/FileStorage/scopes.yml new file mode 100644 index 00000000..fd141a57 --- /dev/null +++ b/.mock/definition/FileStorage/scopes.yml @@ -0,0 +1,161 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /filestorage/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: filestorage_v3.yml + response: + docs: '' + type: fileStorageRoot.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /filestorage/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: filestorage_v3.yml + response: + docs: '' + type: fileStorageRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /filestorage/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: filestorage_v3.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: >- + list + content-type: application/json + response: + docs: '' + type: fileStorageRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/syncStatus.yml b/.mock/definition/FileStorage/syncStatus.yml new file mode 100644 index 00000000..dd0ca6da --- /dev/null +++ b/.mock/definition/FileStorage/syncStatus.yml @@ -0,0 +1,59 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: filestorage_v3.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: fileStorageRoot.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: File + model_id: filestorage.FileStorageFile + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/users.yml b/.mock/definition/FileStorage/users.yml new file mode 100644 index 00000000..ee742af6 --- /dev/null +++ b/.mock/definition/FileStorage/users.yml @@ -0,0 +1,147 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/users + method: GET + auth: true + docs: Returns a list of `User` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: filestorage_v3.yml + request: + name: UsersListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_me: + type: optional + docs: If provided, will only return the user object for requestor. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: fileStorageRoot.PaginatedUserList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 83902e75-4362-4803-b76c-a7d6be292cbd + remote_id: '2039349' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email_address: hello@merge.dev + is_me: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + retrieve: + path: /filestorage/v1/users/{id} + method: GET + auth: true + docs: Returns a `User` object with the given `id`. + source: + openapi: filestorage_v3.yml + path-parameters: + id: string + request: + name: UsersRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: fileStorageRoot.User + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 83902e75-4362-4803-b76c-a7d6be292cbd + remote_id: '2039349' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email_address: hello@merge.dev + is_me: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/FileStorage/webhookReceivers.yml b/.mock/definition/FileStorage/webhookReceivers.yml new file mode 100644 index 00000000..098fa4f1 --- /dev/null +++ b/.mock/definition/FileStorage/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + fileStorageRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: filestorage_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /filestorage/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: filestorage_v3.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: fileStorageRoot.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: filestorage_v3.yml diff --git a/.mock/definition/HRIS/__package__.yml b/.mock/definition/HRIS/__package__.yml new file mode 100644 index 00000000..61e76ec2 --- /dev/null +++ b/.mock/definition/HRIS/__package__.yml @@ -0,0 +1,7710 @@ +types: + AccountDetailsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: hris_v3.yml + inline: true + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: hris_v3.yml + AccountDetailsAndActionsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: hris_v3.yml + inline: true + AccountDetailsAndActionsStatus: + discriminated: false + union: + - AccountDetailsAndActionsStatusEnum + - string + source: + openapi: hris_v3.yml + inline: true + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatus + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + source: + openapi: hris_v3.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: hris_v3.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: hris_v3.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: hris_v3.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: hris_v3.yml + AccountTypeEnum: + enum: + - SAVINGS + - CHECKING + docs: |- + * `SAVINGS` - SAVINGS + * `CHECKING` - CHECKING + source: + openapi: hris_v3.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: hris_v3.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: hris_v3.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: hris_v3.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: hris_v3.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: hris_v3.yml + BankInfoEmployee: + discriminated: false + docs: The employee with this bank account. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + BankInfoAccountType: + discriminated: false + docs: |- + The bank account type + + * `SAVINGS` - SAVINGS + * `CHECKING` - CHECKING + union: + - AccountTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + BankInfo: + docs: >- + # The BankInfo Object + + ### Description + + The `BankInfo` object is used to represent the Bank Account information + for an Employee. + + + ### Usage Example + + Fetch from the `LIST BankInfo` endpoint and filter by `ID` to show all + bank information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee with this bank account. + account_number: + type: optional + docs: The account number. + validation: + maxLength: 100 + routing_number: + type: optional + docs: The routing number. + bank_name: + type: optional + docs: The bank name. + account_type: + type: optional + docs: |- + The bank account type + + * `SAVINGS` - SAVINGS + * `CHECKING` - CHECKING + remote_created_at: + type: optional + docs: When the matching bank object was created in the third party system. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + BenefitEmployee: + discriminated: false + docs: The employee on the plan. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + Benefit: + docs: >- + # The Benefit Object + + ### Description + + The `Benefit` object is used to represent a benefit that an employee has + enrolled in. + + + ### Usage Example + + Fetch from the `LIST Benefits` endpoint and filter by `ID` to show all + benefits. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee on the plan. + provider_name: + type: optional + docs: The name of the benefit provider. + benefit_plan_type: + type: optional + docs: The type of benefit plan + availability: deprecated + employee_contribution: + type: optional + docs: The employee's contribution. + company_contribution: + type: optional + docs: The company's contribution. + start_date: + type: optional + docs: The day and time the benefit started. + end_date: + type: optional + docs: The day and time the benefit ended. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + employer_benefit: + type: optional + docs: The employer benefit plan the employee is enrolled in. + validation: + format: uuid + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + BenefitPlanTypeEnum: + enum: + - MEDICAL + - HEALTH_SAVINGS + - INSURANCE + - RETIREMENT + - OTHER + docs: |- + * `MEDICAL` - MEDICAL + * `HEALTH_SAVINGS` - HEALTH_SAVINGS + * `INSURANCE` - INSURANCE + * `RETIREMENT` - RETIREMENT + * `OTHER` - OTHER + source: + openapi: hris_v3.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: hris_v3.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: hris_v3.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: hris_v3.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: hris_v3.yml + Company: + docs: >- + # The Company Object + + ### Description + + The `Company` object is used to represent a company within the HRIS / + Payroll system. + + + ### Usage Example + + Fetch from the `LIST Companies` endpoint and filter by `ID` to show all + companies. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + legal_name: + type: optional + docs: The company's legal name. + display_name: + type: optional + docs: The company's display name. + eins: + type: optional>> + docs: The company's Employer Identification Numbers. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + CountryEnum: + enum: + - AF + - AX + - AL + - DZ + - AS + - AD + - AO + - AI + - AQ + - AG + - AR + - AM + - AW + - AU + - AT + - AZ + - BS + - BH + - BD + - BB + - BY + - BE + - BZ + - BJ + - BM + - BT + - BO + - BQ + - BA + - BW + - BV + - BR + - IO + - BN + - BG + - BF + - BI + - CV + - KH + - CM + - CA + - KY + - CF + - TD + - CL + - CN + - CX + - CC + - CO + - KM + - CG + - CD + - CK + - CR + - CI + - HR + - CU + - CW + - CY + - CZ + - DK + - DJ + - DM + - DO + - EC + - EG + - SV + - GQ + - ER + - EE + - SZ + - ET + - FK + - FO + - FJ + - FI + - FR + - GF + - PF + - TF + - GA + - GM + - GE + - DE + - GH + - GI + - GR + - GL + - GD + - GP + - GU + - GT + - GG + - GN + - GW + - GY + - HT + - HM + - VA + - HN + - HK + - HU + - IS + - IN + - ID + - IR + - IQ + - IE + - IM + - IL + - IT + - JM + - JP + - JE + - JO + - KZ + - KE + - KI + - KW + - KG + - LA + - LV + - LB + - LS + - LR + - LY + - LI + - LT + - LU + - MO + - MG + - MW + - MY + - MV + - ML + - MT + - MH + - MQ + - MR + - MU + - YT + - MX + - FM + - MD + - MC + - MN + - ME + - MS + - MA + - MZ + - MM + - NA + - NR + - NP + - NL + - NC + - NZ + - NI + - NE + - NG + - NU + - NF + - KP + - MK + - MP + - 'NO' + - OM + - PK + - PW + - PS + - PA + - PG + - PY + - PE + - PH + - PN + - PL + - PT + - PR + - QA + - RE + - RO + - RU + - RW + - BL + - SH + - KN + - LC + - MF + - PM + - VC + - WS + - SM + - ST + - SA + - SN + - RS + - SC + - SL + - SG + - SX + - SK + - SI + - SB + - SO + - ZA + - GS + - KR + - SS + - ES + - LK + - SD + - SR + - SJ + - SE + - CH + - SY + - TW + - TJ + - TZ + - TH + - TL + - TG + - TK + - TO + - TT + - TN + - TR + - TM + - TC + - TV + - UG + - UA + - AE + - GB + - UM + - US + - UY + - UZ + - VU + - VE + - VN + - VG + - VI + - WF + - EH + - YE + - ZM + - ZW + docs: |- + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + source: + openapi: hris_v3.yml + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: MethodEnum + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: hris_v3.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: hris_v3.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: hris_v3.yml + Deduction: + docs: >- + # The Deduction Object + + ### Description + + The `Deduction` object is used to represent an array of the wages withheld + from total earnings for the purpose of paying taxes. + + + ### Usage Example + + Fetch from the `LIST Deductions` endpoint and filter by `ID` to show all + deductions. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee_payroll_run: + type: optional + validation: + format: uuid + name: + type: optional + docs: The deduction's name. + employee_deduction: + type: optional + docs: >- + The amount of money that is withheld from an employee's gross pay by + the employee. + company_deduction: + type: optional + docs: >- + The amount of money that is withheld on behalf of an employee by the + company. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + DependentRelationship: + discriminated: false + docs: |- + The dependent's relationship to the employee. + + * `CHILD` - CHILD + * `SPOUSE` - SPOUSE + * `DOMESTIC_PARTNER` - DOMESTIC_PARTNER + union: + - RelationshipEnum + - string + source: + openapi: hris_v3.yml + inline: true + DependentGender: + discriminated: false + docs: |- + The dependent's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + union: + - GenderEnum + - string + source: + openapi: hris_v3.yml + inline: true + Dependent: + docs: >- + # The Dependent Object + + ### Description + + The `Dependent` object is used to represent a dependent (e.g. child, + spouse, domestic partner, etc) of an `Employee` + + + ### Usage Example + + Fetch from the `LIST Dependents` endpoint and filter by `ID` to show all + dependents. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + first_name: + type: optional + docs: The dependents's first name. + validation: + maxLength: 60 + middle_name: + type: optional + docs: The dependents's middle name. + validation: + maxLength: 60 + last_name: + type: optional + docs: The dependents's last name. + validation: + maxLength: 60 + relationship: + type: optional + docs: |- + The dependent's relationship to the employee. + + * `CHILD` - CHILD + * `SPOUSE` - SPOUSE + * `DOMESTIC_PARTNER` - DOMESTIC_PARTNER + employee: + type: optional + docs: The employee this person is a dependent of. + validation: + format: uuid + date_of_birth: + type: optional + docs: The dependent's date of birth. + gender: + type: optional + docs: |- + The dependent's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + phone_number: + type: optional + docs: The dependent's phone number. + validation: + maxLength: 50 + home_location: + type: optional + docs: The dependents's home address. + validation: + format: uuid + is_student: + type: optional + docs: Whether or not the dependent is a student + ssn: + type: optional + docs: The dependents's social security number. + validation: + maxLength: 50 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + EarningType: + discriminated: false + docs: |- + The type of earning. + + * `SALARY` - SALARY + * `REIMBURSEMENT` - REIMBURSEMENT + * `OVERTIME` - OVERTIME + * `BONUS` - BONUS + union: + - EarningTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + Earning: + docs: >- + # The Earning Object + + ### Description + + The `Earning` object is used to represent an array of different + compensations that an employee receives within specific wage categories. + + + ### Usage Example + + Fetch from the `LIST Earnings` endpoint and filter by `ID` to show all + earnings. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee_payroll_run: + type: optional + validation: + format: uuid + amount: + type: optional + docs: The amount earned. + type: + type: optional + docs: |- + The type of earning. + + * `SALARY` - SALARY + * `REIMBURSEMENT` - REIMBURSEMENT + * `OVERTIME` - OVERTIME + * `BONUS` - BONUS + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + EarningTypeEnum: + enum: + - SALARY + - REIMBURSEMENT + - OVERTIME + - BONUS + docs: |- + * `SALARY` - SALARY + * `REIMBURSEMENT` - REIMBURSEMENT + * `OVERTIME` - OVERTIME + * `BONUS` - BONUS + source: + openapi: hris_v3.yml + EmployeeCompany: + discriminated: false + docs: The ID of the employee's company. + union: + - type: string + validation: + format: uuid + - Company + source: + openapi: hris_v3.yml + inline: true + EmployeeGroupsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Group + source: + openapi: hris_v3.yml + inline: true + EmployeeEmploymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Employment + source: + openapi: hris_v3.yml + inline: true + EmployeeHomeLocation: + discriminated: false + docs: The employee's home address. + union: + - type: string + validation: + format: uuid + - Location + source: + openapi: hris_v3.yml + inline: true + EmployeeWorkLocation: + discriminated: false + docs: The employee's work address. + union: + - type: string + validation: + format: uuid + - Location + source: + openapi: hris_v3.yml + inline: true + EmployeeManager: + discriminated: false + docs: The employee ID of the employee's manager. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + EmployeeTeam: + discriminated: false + docs: The employee's team. + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: hris_v3.yml + inline: true + EmployeePayGroup: + discriminated: false + docs: The employee's pay group + union: + - type: string + validation: + format: uuid + - PayGroup + source: + openapi: hris_v3.yml + inline: true + EmployeeGender: + discriminated: false + docs: |- + The employee's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + union: + - GenderEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmployeeEthnicity: + discriminated: false + docs: >- + The employee's ethnicity. + + + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - AMERICAN_INDIAN_OR_ALASKA_NATIVE + + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `WHITE` - WHITE + + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + union: + - EthnicityEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmployeeMaritalStatus: + discriminated: false + docs: >- + The employee's filing status as related to marital status. + + + * `SINGLE` - SINGLE + + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - + QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + union: + - MaritalStatusEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmployeeEmploymentStatus: + discriminated: false + docs: |- + The employment status of the employee. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + union: + - EmploymentStatusEnum + - string + source: + openapi: hris_v3.yml + inline: true + Employee: + docs: >- + # The Employee Object + + ### Description + + The `Employee` object is used to represent any person who has been + employed by a company. By default, it returns all employees. To filter for + only active employees, set the `employment_status` query parameter to + `ACTIVE`. + + + ### Usage Example + + Fetch from the `LIST Employee` endpoint and filter by `ID` to show all + employees. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee_number: + type: optional + docs: >- + The employee's number that appears in the third-party integration's + UI. + company: + type: optional + docs: The ID of the employee's company. + first_name: + type: optional + docs: The employee's first name. + last_name: + type: optional + docs: The employee's last name. + preferred_name: + type: optional + docs: The employee's preferred first name. + display_full_name: + type: optional + docs: >- + The employee's full name, to use for display purposes. If a preferred + first name is available, the full name will include the preferred + first name. + username: + type: optional + docs: The employee's username that appears in the remote UI. + groups: optional>> + work_email: + type: optional + docs: The employee's work email. + validation: + format: email + maxLength: 254 + personal_email: + type: optional + docs: The employee's personal email. + validation: + format: email + maxLength: 254 + mobile_phone_number: + type: optional + docs: The employee's mobile phone number. + employments: + type: optional>> + docs: Array of `Employment` IDs for this Employee. + home_location: + type: optional + docs: The employee's home address. + work_location: + type: optional + docs: The employee's work address. + manager: + type: optional + docs: The employee ID of the employee's manager. + team: + type: optional + docs: The employee's team. + availability: deprecated + pay_group: + type: optional + docs: The employee's pay group + ssn: + type: optional + docs: The employee's social security number. + validation: + maxLength: 100 + gender: + type: optional + docs: |- + The employee's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + ethnicity: + type: optional + docs: >- + The employee's ethnicity. + + + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - + AMERICAN_INDIAN_OR_ALASKA_NATIVE + + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `WHITE` - WHITE + + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + marital_status: + type: optional + docs: >- + The employee's filing status as related to marital status. + + + * `SINGLE` - SINGLE + + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - + QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + date_of_birth: + type: optional + docs: The employee's date of birth. + hire_date: + type: optional + docs: >- + The date that the employee was hired, usually the day that an offer + letter is signed. If an employee has multiple hire dates from previous + employments, this represents the most recent hire date. Note: If + you're looking for the employee's start date, refer to the start_date + field. + availability: deprecated + start_date: + type: optional + docs: >- + The date that the employee started working. If an employee was + rehired, the most recent start date will be returned. + remote_created_at: + type: optional + docs: When the third party's employee was created. + employment_status: + type: optional + docs: |- + The employment status of the employee. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + termination_date: + type: optional + docs: The employee's termination date. + avatar: + type: optional + docs: The URL of the employee's avatar image. + validation: + format: uri + maxLength: 2000 + custom_fields: + type: optional> + docs: Custom fields configured for a given model. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + EmployeePayrollRunEmployee: + discriminated: false + docs: The employee whose payroll is being run. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + EmployeePayrollRunPayrollRun: + discriminated: false + docs: The payroll being run. + union: + - type: string + validation: + format: uuid + - PayrollRun + source: + openapi: hris_v3.yml + inline: true + EmployeePayrollRun: + docs: >- + # The EmployeePayrollRun Object + + ### Description + + The `EmployeePayrollRun` object is used to represent an employee's pay + statement for a specific payroll run. + + + ### Usage Example + + Fetch from the `LIST EmployeePayrollRun` endpoint and filter by `ID` to + show all employee payroll runs. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee whose payroll is being run. + payroll_run: + type: optional + docs: The payroll being run. + gross_pay: + type: optional + docs: >- + The total earnings throughout a given period for an employee before + any deductions are made. + net_pay: + type: optional + docs: >- + The take-home pay throughout a given period for an employee after + deductions are made. + start_date: + type: optional + docs: The day and time the payroll run started. + end_date: + type: optional + docs: The day and time the payroll run ended. + check_date: + type: optional + docs: The day and time the payroll run was checked. + earnings: + type: optional> + access: read-only + deductions: + type: optional> + access: read-only + taxes: + type: optional> + access: read-only + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + EmployeeRequestCompany: + discriminated: false + docs: The ID of the employee's company. + union: + - type: string + validation: + format: uuid + - Company + source: + openapi: hris_v3.yml + inline: true + EmployeeRequestGroupsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Group + source: + openapi: hris_v3.yml + inline: true + EmployeeRequestEmploymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Employment + source: + openapi: hris_v3.yml + inline: true + EmployeeRequestHomeLocation: + discriminated: false + docs: The employee's home address. + union: + - type: string + validation: + format: uuid + - Location + source: + openapi: hris_v3.yml + inline: true + EmployeeRequestWorkLocation: + discriminated: false + docs: The employee's work address. + union: + - type: string + validation: + format: uuid + - Location + source: + openapi: hris_v3.yml + inline: true + EmployeeRequestManager: + discriminated: false + docs: The employee ID of the employee's manager. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + EmployeeRequestTeam: + discriminated: false + docs: The employee's team. + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: hris_v3.yml + inline: true + EmployeeRequestPayGroup: + discriminated: false + docs: The employee's pay group + union: + - type: string + validation: + format: uuid + - PayGroup + source: + openapi: hris_v3.yml + inline: true + EmployeeRequestGender: + discriminated: false + docs: |- + The employee's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + union: + - GenderEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmployeeRequestEthnicity: + discriminated: false + docs: >- + The employee's ethnicity. + + + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - AMERICAN_INDIAN_OR_ALASKA_NATIVE + + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `WHITE` - WHITE + + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + union: + - EthnicityEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmployeeRequestMaritalStatus: + discriminated: false + docs: >- + The employee's filing status as related to marital status. + + + * `SINGLE` - SINGLE + + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - + QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + union: + - MaritalStatusEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmployeeRequestEmploymentStatus: + discriminated: false + docs: |- + The employment status of the employee. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + union: + - EmploymentStatusEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmployeeRequest: + docs: >- + # The Employee Object + + ### Description + + The `Employee` object is used to represent any person who has been + employed by a company. By default, it returns all employees. To filter for + only active employees, set the `employment_status` query parameter to + `ACTIVE`. + + + ### Usage Example + + Fetch from the `LIST Employee` endpoint and filter by `ID` to show all + employees. + properties: + employee_number: + type: optional + docs: >- + The employee's number that appears in the third-party integration's + UI. + company: + type: optional + docs: The ID of the employee's company. + first_name: + type: optional + docs: The employee's first name. + last_name: + type: optional + docs: The employee's last name. + preferred_name: + type: optional + docs: The employee's preferred first name. + display_full_name: + type: optional + docs: >- + The employee's full name, to use for display purposes. If a preferred + first name is available, the full name will include the preferred + first name. + username: + type: optional + docs: The employee's username that appears in the remote UI. + groups: optional>> + work_email: + type: optional + docs: The employee's work email. + validation: + format: email + maxLength: 254 + personal_email: + type: optional + docs: The employee's personal email. + validation: + format: email + maxLength: 254 + mobile_phone_number: + type: optional + docs: The employee's mobile phone number. + employments: + type: optional>> + docs: Array of `Employment` IDs for this Employee. + home_location: + type: optional + docs: The employee's home address. + work_location: + type: optional + docs: The employee's work address. + manager: + type: optional + docs: The employee ID of the employee's manager. + team: + type: optional + docs: The employee's team. + availability: deprecated + pay_group: + type: optional + docs: The employee's pay group + ssn: + type: optional + docs: The employee's social security number. + validation: + maxLength: 100 + gender: + type: optional + docs: |- + The employee's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + ethnicity: + type: optional + docs: >- + The employee's ethnicity. + + + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - + AMERICAN_INDIAN_OR_ALASKA_NATIVE + + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `WHITE` - WHITE + + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + marital_status: + type: optional + docs: >- + The employee's filing status as related to marital status. + + + * `SINGLE` - SINGLE + + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - + QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + date_of_birth: + type: optional + docs: The employee's date of birth. + hire_date: + type: optional + docs: >- + The date that the employee was hired, usually the day that an offer + letter is signed. If an employee has multiple hire dates from previous + employments, this represents the most recent hire date. Note: If + you're looking for the employee's start date, refer to the start_date + field. + availability: deprecated + start_date: + type: optional + docs: >- + The date that the employee started working. If an employee was + rehired, the most recent start date will be returned. + employment_status: + type: optional + docs: |- + The employment status of the employee. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + termination_date: + type: optional + docs: The employee's termination date. + avatar: + type: optional + docs: The URL of the employee's avatar image. + validation: + format: uri + maxLength: 2000 + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: hris_v3.yml + EmployeeResponse: + properties: + model: Employee + warnings: list + errors: list + logs: optional> + source: + openapi: hris_v3.yml + EmployerBenefitBenefitPlanType: + discriminated: false + docs: |- + The type of benefit plan. + + * `MEDICAL` - MEDICAL + * `HEALTH_SAVINGS` - HEALTH_SAVINGS + * `INSURANCE` - INSURANCE + * `RETIREMENT` - RETIREMENT + * `OTHER` - OTHER + union: + - BenefitPlanTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmployerBenefit: + docs: >- + # The EmployerBenefit Object + + ### Description + + The `Employer Benefit` object is used to represent a benefit plan offered + by a company. + + + ### Usage Example + + Fetch from the `LIST EmployerBenefits` endpoint and filter by `ID` to show + all EmployerBenefits. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + benefit_plan_type: + type: optional + docs: |- + The type of benefit plan. + + * `MEDICAL` - MEDICAL + * `HEALTH_SAVINGS` - HEALTH_SAVINGS + * `INSURANCE` - INSURANCE + * `RETIREMENT` - RETIREMENT + * `OTHER` - OTHER + name: + type: optional + docs: The employer benefit's name - typically the carrier or network name. + validation: + maxLength: 200 + description: + type: optional + docs: The employer benefit's description. + validation: + maxLength: 2000 + deduction_code: + type: optional + docs: The employer benefit's deduction code. + validation: + maxLength: 60 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + EmploymentEmployee: + discriminated: false + docs: The employee holding this position. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + EmploymentPayPeriod: + discriminated: false + docs: |- + The time period this pay rate encompasses. + + * `HOUR` - HOUR + * `DAY` - DAY + * `WEEK` - WEEK + * `EVERY_TWO_WEEKS` - EVERY_TWO_WEEKS + * `SEMIMONTHLY` - SEMIMONTHLY + * `MONTH` - MONTH + * `QUARTER` - QUARTER + * `EVERY_SIX_MONTHS` - EVERY_SIX_MONTHS + * `YEAR` - YEAR + union: + - PayPeriodEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmploymentPayFrequency: + discriminated: false + docs: |- + The position's pay frequency. + + * `WEEKLY` - WEEKLY + * `BIWEEKLY` - BIWEEKLY + * `MONTHLY` - MONTHLY + * `QUARTERLY` - QUARTERLY + * `SEMIANNUALLY` - SEMIANNUALLY + * `ANNUALLY` - ANNUALLY + * `THIRTEEN-MONTHLY` - THIRTEEN-MONTHLY + * `PRO_RATA` - PRO_RATA + * `SEMIMONTHLY` - SEMIMONTHLY + union: + - PayFrequencyEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmploymentPayCurrency: + discriminated: false + docs: >- + The position's currency code. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - PayCurrencyEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmploymentPayGroup: + discriminated: false + docs: The employment's pay group + union: + - type: string + validation: + format: uuid + - PayGroup + source: + openapi: hris_v3.yml + inline: true + EmploymentFlsaStatus: + discriminated: false + docs: |- + The position's FLSA status. + + * `EXEMPT` - EXEMPT + * `SALARIED_NONEXEMPT` - SALARIED_NONEXEMPT + * `NONEXEMPT` - NONEXEMPT + * `OWNER` - OWNER + union: + - FlsaStatusEnum + - string + source: + openapi: hris_v3.yml + inline: true + EmploymentEmploymentType: + discriminated: false + docs: |- + The position's type of employment. + + * `FULL_TIME` - FULL_TIME + * `PART_TIME` - PART_TIME + * `INTERN` - INTERN + * `CONTRACTOR` - CONTRACTOR + * `FREELANCE` - FREELANCE + union: + - EmploymentTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + Employment: + docs: >- + # The Employment Object + + ### Description + + The `Employment` object is used to represent a job position at a company. + + + If an integration supports historical tracking of employments, it will be + reflected in the data. If not, a new `Employment` object will be created + whenever there is a change in job title or pay. The `effective_date` field + should be used to order `Employment` objects, with the most recent date + corresponding to the latest employment record for an employee. + + + ### Usage Example + + Fetch from the `LIST Employments` endpoint and filter by `ID` to show all + employees. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee holding this position. + job_title: + type: optional + docs: The position's title. + pay_rate: + type: optional + docs: The position's pay rate. + pay_period: + type: optional + docs: |- + The time period this pay rate encompasses. + + * `HOUR` - HOUR + * `DAY` - DAY + * `WEEK` - WEEK + * `EVERY_TWO_WEEKS` - EVERY_TWO_WEEKS + * `SEMIMONTHLY` - SEMIMONTHLY + * `MONTH` - MONTH + * `QUARTER` - QUARTER + * `EVERY_SIX_MONTHS` - EVERY_SIX_MONTHS + * `YEAR` - YEAR + pay_frequency: + type: optional + docs: |- + The position's pay frequency. + + * `WEEKLY` - WEEKLY + * `BIWEEKLY` - BIWEEKLY + * `MONTHLY` - MONTHLY + * `QUARTERLY` - QUARTERLY + * `SEMIANNUALLY` - SEMIANNUALLY + * `ANNUALLY` - ANNUALLY + * `THIRTEEN-MONTHLY` - THIRTEEN-MONTHLY + * `PRO_RATA` - PRO_RATA + * `SEMIMONTHLY` - SEMIMONTHLY + pay_currency: + type: optional + docs: >- + The position's currency code. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + pay_group: + type: optional + docs: The employment's pay group + flsa_status: + type: optional + docs: |- + The position's FLSA status. + + * `EXEMPT` - EXEMPT + * `SALARIED_NONEXEMPT` - SALARIED_NONEXEMPT + * `NONEXEMPT` - NONEXEMPT + * `OWNER` - OWNER + effective_date: + type: optional + docs: The position's effective date. + employment_type: + type: optional + docs: |- + The position's type of employment. + + * `FULL_TIME` - FULL_TIME + * `PART_TIME` - PART_TIME + * `INTERN` - INTERN + * `CONTRACTOR` - CONTRACTOR + * `FREELANCE` - FREELANCE + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + EmploymentStatusEnum: + enum: + - ACTIVE + - PENDING + - INACTIVE + docs: |- + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + source: + openapi: hris_v3.yml + EmploymentTypeEnum: + enum: + - FULL_TIME + - PART_TIME + - INTERN + - CONTRACTOR + - FREELANCE + docs: |- + * `FULL_TIME` - FULL_TIME + * `PART_TIME` - PART_TIME + * `INTERN` - INTERN + * `CONTRACTOR` - CONTRACTOR + * `FREELANCE` - FREELANCE + source: + openapi: hris_v3.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: hris_v3.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: hris_v3.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: hris_v3.yml + EthnicityEnum: + enum: + - AMERICAN_INDIAN_OR_ALASKA_NATIVE + - ASIAN_OR_INDIAN_SUBCONTINENT + - BLACK_OR_AFRICAN_AMERICAN + - HISPANIC_OR_LATINO + - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + - TWO_OR_MORE_RACES + - WHITE + - PREFER_NOT_TO_DISCLOSE + docs: >- + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - AMERICAN_INDIAN_OR_ALASKA_NATIVE + + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `WHITE` - WHITE + + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + source: + openapi: hris_v3.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: hris_v3.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: hris_v3.yml + ExternalTargetFieldApiResponse: + properties: + Benefit: optional> + EmployerBenefit: optional> + Company: optional> + EmployeePayrollRun: optional> + Employee: optional> + Employment: optional> + Location: optional> + PayrollRun: optional> + Team: optional> + TimeOff: optional> + TimeOffBalance: optional> + BankInfo: optional> + PayGroup: optional> + Group: optional> + Dependent: optional> + TimesheetEntry: optional> + source: + openapi: hris_v3.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: hris_v3.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: hris_v3.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: hris_v3.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: hris_v3.yml + FieldMappingApiInstanceResponse: + properties: + Benefit: optional> + EmployerBenefit: optional> + Company: optional> + EmployeePayrollRun: optional> + Employee: optional> + Employment: optional> + Location: optional> + PayrollRun: optional> + Team: optional> + TimeOff: optional> + TimeOffBalance: optional> + BankInfo: optional> + PayGroup: optional> + Group: optional> + Dependent: optional> + TimesheetEntry: optional> + source: + openapi: hris_v3.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: hris_v3.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: hris_v3.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: hris_v3.yml + FlsaStatusEnum: + enum: + - EXEMPT + - SALARIED_NONEXEMPT + - NONEXEMPT + - OWNER + docs: |- + * `EXEMPT` - EXEMPT + * `SALARIED_NONEXEMPT` - SALARIED_NONEXEMPT + * `NONEXEMPT` - NONEXEMPT + * `OWNER` - OWNER + source: + openapi: hris_v3.yml + GenderEnum: + enum: + - MALE + - FEMALE + - value: NON-BINARY + name: NonBinary + - OTHER + - PREFER_NOT_TO_DISCLOSE + docs: |- + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + source: + openapi: hris_v3.yml + GroupType: + discriminated: false + docs: |- + The Group type returned directly from the third-party. + + * `TEAM` - TEAM + * `DEPARTMENT` - DEPARTMENT + * `COST_CENTER` - COST_CENTER + * `BUSINESS_UNIT` - BUSINESS_UNIT + * `GROUP` - GROUP + union: + - GroupTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + Group: + docs: >- + # The Group Object + + ### Description + + The `Group` object is used to represent any subset of employees across, + for example, `DEPARTMENT` or `TEAM`. Employees can be in multiple Groups. + + + ### Usage Example + + Fetch from the `LIST Employee` endpoint and expand groups to view an + employee's groups. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + parent_group: + type: optional + docs: The parent group for this group. + validation: + format: uuid + name: + type: optional + docs: The group name. + type: + type: optional + docs: |- + The Group type returned directly from the third-party. + + * `TEAM` - TEAM + * `DEPARTMENT` - DEPARTMENT + * `COST_CENTER` - COST_CENTER + * `BUSINESS_UNIT` - BUSINESS_UNIT + * `GROUP` - GROUP + is_commonly_used_as_team: + type: optional + docs: >- + Indicates whether the Group refers to a team in the third party + platform. Note that this is an opinionated view based on how Merge + observes most organizations representing teams in each third party + platform. If your customer uses a platform different from most, there + is a chance this will not be correct. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + GroupTypeEnum: + enum: + - TEAM + - DEPARTMENT + - COST_CENTER + - BUSINESS_UNIT + - GROUP + docs: |- + * `TEAM` - TEAM + * `DEPARTMENT` - DEPARTMENT + * `COST_CENTER` - COST_CENTER + * `BUSINESS_UNIT` - BUSINESS_UNIT + * `GROUP` - GROUP + source: + openapi: hris_v3.yml + IgnoreCommonModelRequestReason: + discriminated: false + union: + - ReasonEnum + - string + source: + openapi: hris_v3.yml + inline: true + IgnoreCommonModelRequest: + properties: + reason: IgnoreCommonModelRequestReason + message: + type: optional + validation: + minLength: 1 + maxLength: 256 + source: + openapi: hris_v3.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: hris_v3.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: hris_v3.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: hris_v3.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: hris_v3.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: hris_v3.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: hris_v3.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: hris_v3.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: hris_v3.yml + LocationCountry: + discriminated: false + docs: |- + The location's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + union: + - CountryEnum + - string + source: + openapi: hris_v3.yml + inline: true + LocationLocationType: + discriminated: false + docs: |- + The location's type. Can be either WORK or HOME + + * `HOME` - HOME + * `WORK` - WORK + union: + - LocationTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + Location: + docs: >- + # The Location Object + + ### Description + + The `Location` object is used to represent an address that can be + associated with an employee. + + + ### Usage Example + + Fetch from the `LIST Locations` endpoint and filter by `ID` to show all + office locations. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The location's name. + phone_number: + type: optional + docs: The location's phone number. + street_1: + type: optional + docs: Line 1 of the location's street address. + street_2: + type: optional + docs: Line 2 of the location's street address. + city: + type: optional + docs: The location's city. + state: + type: optional + docs: The location's state. Represents a region if outside of the US. + zip_code: + type: optional + docs: The location's zip code or postal code. + country: + type: optional + docs: |- + The location's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + location_type: + type: optional + docs: |- + The location's type. Can be either WORK or HOME + + * `HOME` - HOME + * `WORK` - WORK + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + LocationTypeEnum: + enum: + - HOME + - WORK + docs: |- + * `HOME` - HOME + * `WORK` - WORK + source: + openapi: hris_v3.yml + MaritalStatusEnum: + enum: + - SINGLE + - MARRIED_FILING_JOINTLY + - MARRIED_FILING_SEPARATELY + - HEAD_OF_HOUSEHOLD + - QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + docs: >- + * `SINGLE` - SINGLE + + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - + QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + source: + openapi: hris_v3.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: hris_v3.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: hris_v3.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: hris_v3.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: hris_v3.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: hris_v3.yml + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: hris_v3.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedBankInfoList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedBenefitList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedCompanyList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedDependentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedEmployeeList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedEmployeePayrollRunList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedEmployerBenefitList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedEmploymentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedGroupList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedLocationList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedPayGroupList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedPayrollRunList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedTeamList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedTimeOffBalanceList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedTimeOffList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PaginatedTimesheetEntryList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: hris_v3.yml + PayCurrencyEnum: + enum: + - XUA + - AFN + - AFA + - ALL + - ALK + - DZD + - ADP + - AOA + - AOK + - AON + - AOR + - ARA + - ARS + - ARM + - ARP + - ARL + - AMD + - AWG + - AUD + - ATS + - AZN + - AZM + - BSD + - BHD + - BDT + - BBD + - BYN + - BYB + - BYR + - BEF + - BEC + - BEL + - BZD + - BMD + - BTN + - BOB + - BOL + - BOV + - BOP + - BAM + - BAD + - BAN + - BWP + - BRC + - BRZ + - BRE + - BRR + - BRN + - BRB + - BRL + - GBP + - BND + - BGL + - BGN + - BGO + - BGM + - BUK + - BIF + - XPF + - KHR + - CAD + - CVE + - KYD + - XAF + - CLE + - CLP + - CLF + - CNX + - CNY + - CNH + - COP + - COU + - KMF + - CDF + - CRC + - HRD + - HRK + - CUC + - CUP + - CYP + - CZK + - CSK + - DKK + - DJF + - DOP + - NLG + - XCD + - DDM + - ECS + - ECV + - EGP + - GQE + - ERN + - EEK + - ETB + - EUR + - XBA + - XEU + - XBB + - XBC + - XBD + - FKP + - FJD + - FIM + - FRF + - XFO + - XFU + - GMD + - GEK + - GEL + - DEM + - GHS + - GHC + - GIP + - XAU + - GRD + - GTQ + - GWP + - GNF + - GNS + - GYD + - HTG + - HNL + - HKD + - HUF + - IMP + - ISK + - ISJ + - INR + - IDR + - IRR + - IQD + - IEP + - ILS + - ILP + - ILR + - ITL + - JMD + - JPY + - JOD + - KZT + - KES + - KWD + - KGS + - LAK + - LVL + - LVR + - LBP + - LSL + - LRD + - LYD + - LTL + - LTT + - LUL + - LUC + - LUF + - MOP + - MKD + - MKN + - MGA + - MGF + - MWK + - MYR + - MVR + - MVP + - MLF + - MTL + - MTP + - MRU + - MRO + - MUR + - MXV + - MXN + - MXP + - MDC + - MDL + - MCF + - MNT + - MAD + - MAF + - MZE + - MZN + - MZM + - MMK + - NAD + - NPR + - ANG + - TWD + - NZD + - NIO + - NIC + - NGN + - KPW + - NOK + - OMR + - PKR + - XPD + - PAB + - PGK + - PYG + - PEI + - PEN + - PES + - PHP + - XPT + - PLN + - PLZ + - PTE + - GWE + - QAR + - XRE + - RHD + - RON + - ROL + - RUB + - RUR + - RWF + - SVC + - WST + - SAR + - RSD + - CSD + - SCR + - SLL + - XAG + - SGD + - SKK + - SIT + - SBD + - SOS + - ZAR + - ZAL + - KRH + - KRW + - KRO + - SSP + - SUR + - ESP + - ESA + - ESB + - XDR + - LKR + - SHP + - XSU + - SDD + - SDG + - SDP + - SRD + - SRG + - SZL + - SEK + - CHF + - SYP + - STN + - STD + - TVD + - TJR + - TJS + - TZS + - XTS + - THB + - XXX + - TPE + - TOP + - TTD + - TND + - TRY + - TRL + - TMT + - TMM + - USD + - USN + - USS + - UGX + - UGS + - UAH + - UAK + - AED + - UYW + - UYU + - UYP + - UYI + - UZS + - VUV + - VES + - VEB + - VEF + - VND + - VNN + - CHE + - CHW + - XOF + - YDD + - YER + - YUN + - YUD + - YUM + - YUR + - ZWN + - ZRN + - ZRZ + - ZMW + - ZMK + - ZWD + - ZWR + - ZWL + docs: >- + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + source: + openapi: hris_v3.yml + PayFrequencyEnum: + enum: + - WEEKLY + - BIWEEKLY + - MONTHLY + - QUARTERLY + - SEMIANNUALLY + - ANNUALLY + - value: THIRTEEN-MONTHLY + name: ThirteenMonthly + - PRO_RATA + - SEMIMONTHLY + docs: |- + * `WEEKLY` - WEEKLY + * `BIWEEKLY` - BIWEEKLY + * `MONTHLY` - MONTHLY + * `QUARTERLY` - QUARTERLY + * `SEMIANNUALLY` - SEMIANNUALLY + * `ANNUALLY` - ANNUALLY + * `THIRTEEN-MONTHLY` - THIRTEEN-MONTHLY + * `PRO_RATA` - PRO_RATA + * `SEMIMONTHLY` - SEMIMONTHLY + source: + openapi: hris_v3.yml + PayGroup: + docs: >- + # The PayGroup Object + + ### Description + + The `PayGroup` object is used to represent a subset of employees that are + put together for payroll processing purposes. + + + ### Usage Example + + Fetch from the `LIST PayGroup` endpoint and filter by `ID` to show all pay + group information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + pay_group_name: + type: optional + docs: The pay group name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + PayPeriodEnum: + enum: + - HOUR + - DAY + - WEEK + - EVERY_TWO_WEEKS + - SEMIMONTHLY + - MONTH + - QUARTER + - EVERY_SIX_MONTHS + - YEAR + docs: |- + * `HOUR` - HOUR + * `DAY` - DAY + * `WEEK` - WEEK + * `EVERY_TWO_WEEKS` - EVERY_TWO_WEEKS + * `SEMIMONTHLY` - SEMIMONTHLY + * `MONTH` - MONTH + * `QUARTER` - QUARTER + * `EVERY_SIX_MONTHS` - EVERY_SIX_MONTHS + * `YEAR` - YEAR + source: + openapi: hris_v3.yml + PayrollRunRunState: + discriminated: false + docs: |- + The state of the payroll run + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `APPROVED` - APPROVED + * `FAILED` - FAILED + * `CLOSED` - CLOSED + union: + - RunStateEnum + - string + source: + openapi: hris_v3.yml + inline: true + PayrollRunRunType: + discriminated: false + docs: |- + The type of the payroll run + + * `REGULAR` - REGULAR + * `OFF_CYCLE` - OFF_CYCLE + * `CORRECTION` - CORRECTION + * `TERMINATION` - TERMINATION + * `SIGN_ON_BONUS` - SIGN_ON_BONUS + union: + - RunTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + PayrollRun: + docs: >- + # The PayrollRun Object + + ### Description + + The `PayrollRun` object is used to represent a group of pay statements for + a specific pay schedule. + + + ### Usage Example + + Fetch from the `LIST PayrollRuns` endpoint and filter by `ID` to show all + payroll runs. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + run_state: + type: optional + docs: |- + The state of the payroll run + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `APPROVED` - APPROVED + * `FAILED` - FAILED + * `CLOSED` - CLOSED + run_type: + type: optional + docs: |- + The type of the payroll run + + * `REGULAR` - REGULAR + * `OFF_CYCLE` - OFF_CYCLE + * `CORRECTION` - CORRECTION + * `TERMINATION` - TERMINATION + * `SIGN_ON_BONUS` - SIGN_ON_BONUS + start_date: + type: optional + docs: The day and time the payroll run started. + end_date: + type: optional + docs: The day and time the payroll run ended. + check_date: + type: optional + docs: The day and time the payroll run was checked. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + PolicyTypeEnum: + enum: + - VACATION + - SICK + - PERSONAL + - JURY_DUTY + - VOLUNTEER + - BEREAVEMENT + docs: |- + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + source: + openapi: hris_v3.yml + ReasonEnum: + enum: + - GENERAL_CUSTOMER_REQUEST + - GDPR + - OTHER + docs: |- + * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST + * `GDPR` - GDPR + * `OTHER` - OTHER + source: + openapi: hris_v3.yml + RelationshipEnum: + enum: + - CHILD + - SPOUSE + - DOMESTIC_PARTNER + docs: |- + * `CHILD` - CHILD + * `SPOUSE` - SPOUSE + * `DOMESTIC_PARTNER` - DOMESTIC_PARTNER + source: + openapi: hris_v3.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: hris_v3.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: hris_v3.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: hris_v3.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: hris_v3.yml + RemoteFieldApiResponse: + properties: + Benefit: optional> + EmployerBenefit: optional> + Company: optional> + EmployeePayrollRun: optional> + Employee: optional> + Employment: optional> + Location: optional> + PayrollRun: optional> + Team: optional> + TimeOff: optional> + TimeOffBalance: optional> + BankInfo: optional> + PayGroup: optional> + Group: optional> + Dependent: optional> + TimesheetEntry: optional> + source: + openapi: hris_v3.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: hris_v3.yml + RemoteResponseResponseType: + discriminated: false + union: + - ResponseTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: hris_v3.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: hris_v3.yml + RequestTypeEnum: + enum: + - VACATION + - SICK + - PERSONAL + - JURY_DUTY + - VOLUNTEER + - BEREAVEMENT + docs: |- + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + source: + openapi: hris_v3.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: hris_v3.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: hris_v3.yml + RunStateEnum: + enum: + - PAID + - DRAFT + - APPROVED + - FAILED + - CLOSED + docs: |- + * `PAID` - PAID + * `DRAFT` - DRAFT + * `APPROVED` - APPROVED + * `FAILED` - FAILED + * `CLOSED` - CLOSED + source: + openapi: hris_v3.yml + RunTypeEnum: + enum: + - REGULAR + - OFF_CYCLE + - CORRECTION + - TERMINATION + - SIGN_ON_BONUS + docs: |- + * `REGULAR` - REGULAR + * `OFF_CYCLE` - OFF_CYCLE + * `CORRECTION` - CORRECTION + * `TERMINATION` - TERMINATION + * `SIGN_ON_BONUS` - SIGN_ON_BONUS + source: + openapi: hris_v3.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: hris_v3.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: hris_v3.yml + SyncStatusLastSyncResult: + discriminated: false + union: + - LastSyncResultEnum + - string + source: + openapi: hris_v3.yml + inline: true + SyncStatusStatus: + discriminated: false + union: + - StatusFd5Enum + - string + source: + openapi: hris_v3.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: SyncStatusStatus + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: hris_v3.yml + Tax: + docs: >- + # The Tax Object + + ### Description + + The `Tax` object is used to represent an array of the tax deductions for a + given employee's payroll run. + + + ### Usage Example + + Fetch from the `LIST Taxes` endpoint and filter by `ID` to show all taxes. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee_payroll_run: + type: optional + validation: + format: uuid + name: + type: optional + docs: The tax's name. + amount: + type: optional + docs: The tax amount. + employer_tax: + type: optional + docs: Whether or not the employer is responsible for paying the tax. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + TeamParentTeam: + discriminated: false + docs: The team's parent team. + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: hris_v3.yml + inline: true + Team: + docs: >- + # The Team Object + + ### Description + + The `Team` object is used to represent a subdivision of the company, + usually a department. Each employee will be grouped into one specific + Team. + + + ### Usage Example + + If you're building a way to filter by `Team`, you'd hit the `GET Teams` + endpoint to fetch the `Teams`, and then use the `ID` of the team your user + selects to filter the `GET Employees` endpoint. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The team's name. + parent_team: + type: optional + docs: The team's parent team. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + TimeOffEmployee: + discriminated: false + docs: The employee requesting time off. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + TimeOffApprover: + discriminated: false + docs: >- + The Merge ID of the employee with the ability to approve the time off + request. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + TimeOffStatus: + discriminated: false + docs: |- + The status of this time off request. + + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + union: + - TimeOffStatusEnum + - string + source: + openapi: hris_v3.yml + inline: true + TimeOffUnits: + discriminated: false + docs: >- + The measurement that the third-party integration uses to count time + requested. + + + * `HOURS` - HOURS + + * `DAYS` - DAYS + union: + - UnitsEnum + - string + source: + openapi: hris_v3.yml + inline: true + TimeOffRequestType: + discriminated: false + docs: |- + The type of time off request. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + union: + - RequestTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + TimeOff: + docs: >- + # The TimeOff Object + + ### Description + + The `TimeOff` object is used to represent all employees' Time Off entries. + + + ### Usage Example + + Fetch from the `LIST TimeOffs` endpoint and filter by `ID` to show all + time off requests. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee requesting time off. + approver: + type: optional + docs: >- + The Merge ID of the employee with the ability to approve the time off + request. + status: + type: optional + docs: |- + The status of this time off request. + + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + employee_note: + type: optional + docs: The employee note for this time off request. + units: + type: optional + docs: >- + The measurement that the third-party integration uses to count time + requested. + + + * `HOURS` - HOURS + + * `DAYS` - DAYS + amount: + type: optional + docs: The time off quantity measured by the prescribed “units”. + request_type: + type: optional + docs: |- + The type of time off request. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + start_time: + type: optional + docs: The day and time of the start of the time requested off. + end_time: + type: optional + docs: The day and time of the end of the time requested off. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + TimeOffBalanceEmployee: + discriminated: false + docs: The employee the balance belongs to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + TimeOffBalancePolicyType: + discriminated: false + docs: |- + The policy type of this time off balance. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + union: + - PolicyTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + TimeOffBalance: + docs: >- + # The TimeOffBalance Object + + ### Description + + The `TimeOffBalance` object is used to represent current balances for an + employee's Time Off plan. + + + ### Usage Example + + Fetch from the `LIST TimeOffBalances` endpoint and filter by `ID` to show + all time off balances. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee the balance belongs to. + balance: + type: optional + docs: >- + The current remaining PTO balance, measured in hours. For integrations + that return this value in days, Merge multiplies by 8 to calculate + hours. + used: + type: optional + docs: >- + The amount of PTO used in terms of hours. For integrations that return + this value in days, Merge multiplies by 8 to calculate hours. + policy_type: + type: optional + docs: |- + The policy type of this time off balance. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + TimeOffRequestEmployee: + discriminated: false + docs: The employee requesting time off. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + TimeOffRequestApprover: + discriminated: false + docs: >- + The Merge ID of the employee with the ability to approve the time off + request. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + TimeOffRequestStatus: + discriminated: false + docs: |- + The status of this time off request. + + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + union: + - TimeOffStatusEnum + - string + source: + openapi: hris_v3.yml + inline: true + TimeOffRequestUnits: + discriminated: false + docs: >- + The measurement that the third-party integration uses to count time + requested. + + + * `HOURS` - HOURS + + * `DAYS` - DAYS + union: + - UnitsEnum + - string + source: + openapi: hris_v3.yml + inline: true + TimeOffRequestRequestType: + discriminated: false + docs: |- + The type of time off request. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + union: + - RequestTypeEnum + - string + source: + openapi: hris_v3.yml + inline: true + TimeOffRequest: + docs: >- + # The TimeOff Object + + ### Description + + The `TimeOff` object is used to represent all employees' Time Off entries. + + + ### Usage Example + + Fetch from the `LIST TimeOffs` endpoint and filter by `ID` to show all + time off requests. + properties: + employee: + type: optional + docs: The employee requesting time off. + approver: + type: optional + docs: >- + The Merge ID of the employee with the ability to approve the time off + request. + status: + type: optional + docs: |- + The status of this time off request. + + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + employee_note: + type: optional + docs: The employee note for this time off request. + units: + type: optional + docs: >- + The measurement that the third-party integration uses to count time + requested. + + + * `HOURS` - HOURS + + * `DAYS` - DAYS + amount: + type: optional + docs: The time off quantity measured by the prescribed “units”. + request_type: + type: optional + docs: |- + The type of time off request. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + start_time: + type: optional + docs: The day and time of the start of the time requested off. + end_time: + type: optional + docs: The day and time of the end of the time requested off. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: hris_v3.yml + TimeOffResponse: + properties: + model: TimeOff + warnings: list + errors: list + logs: optional> + source: + openapi: hris_v3.yml + TimeOffStatusEnum: + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + docs: |- + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + source: + openapi: hris_v3.yml + TimesheetEntryEmployee: + discriminated: false + docs: The employee the timesheet entry is for. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + TimesheetEntry: + docs: >- + # The Timesheet Entry Object + + ### Description + + The `Timesheet Entry` object is used to track coverage for hours worked by + an 'Employee'. + + + + ### Usage Example + + GET and POST Timesheet Entries + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee the timesheet entry is for. + hours_worked: + type: optional + docs: The number of hours logged by the employee. + start_time: + type: optional + docs: The time at which the employee started work. + end_time: + type: optional + docs: The time at which the employee ended work. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: hris_v3.yml + TimesheetEntryRequestEmployee: + discriminated: false + docs: The employee the timesheet entry is for. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: hris_v3.yml + inline: true + TimesheetEntryRequest: + docs: >- + # The Timesheet Entry Object + + ### Description + + The `Timesheet Entry` object is used to track coverage for hours worked by + an 'Employee'. + + + + ### Usage Example + + GET and POST Timesheet Entries + properties: + employee: + type: optional + docs: The employee the timesheet entry is for. + hours_worked: + type: optional + docs: The number of hours logged by the employee. + start_time: + type: optional + docs: The time at which the employee started work. + end_time: + type: optional + docs: The time at which the employee ended work. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: hris_v3.yml + TimesheetEntryResponse: + properties: + model: TimesheetEntry + warnings: list + errors: list + logs: optional> + source: + openapi: hris_v3.yml + UnitsEnum: + enum: + - HOURS + - DAYS + docs: |- + * `HOURS` - HOURS + * `DAYS` - DAYS + source: + openapi: hris_v3.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: hris_v3.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: hris_v3.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/accountDetails.yml b/.mock/definition/HRIS/accountDetails.yml new file mode 100644 index 00000000..2a54beef --- /dev/null +++ b/.mock/definition/HRIS/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /hris/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: hris_v3.yml + response: + docs: '' + type: hrisRoot.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/accountToken.yml b/.mock/definition/HRIS/accountToken.yml new file mode 100644 index 00000000..c36b7d20 --- /dev/null +++ b/.mock/definition/HRIS/accountToken.yml @@ -0,0 +1,44 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /hris/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: hris_v3.yml + path-parameters: + public_token: string + response: + docs: '' + type: hrisRoot.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/asyncPassthrough.yml b/.mock/definition/HRIS/asyncPassthrough.yml new file mode 100644 index 00000000..76795e18 --- /dev/null +++ b/.mock/definition/HRIS/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /hris/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: hris_v3.yml + request: + body: hrisRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: hrisRoot.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /hris/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: hris_v3.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: hris_v3.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - hrisRoot.RemoteResponse + - string + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/auditTrail.yml b/.mock/definition/HRIS/auditTrail.yml new file mode 100644 index 00000000..cd6b98fe --- /dev/null +++ b/.mock/definition/HRIS/auditTrail.yml @@ -0,0 +1,97 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, + `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: hrisRoot.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/availableActions.yml b/.mock/definition/HRIS/availableActions.yml new file mode 100644 index 00000000..8d00ce78 --- /dev/null +++ b/.mock/definition/HRIS/availableActions.yml @@ -0,0 +1,50 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /hris/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: hris_v3.yml + response: + docs: '' + type: hrisRoot.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/bankInfo.yml b/.mock/definition/HRIS/bankInfo.yml new file mode 100644 index 00000000..f1e2b2f0 --- /dev/null +++ b/.mock/definition/HRIS/bankInfo.yml @@ -0,0 +1,218 @@ +types: + BankInfoListRequestAccountType: + enum: + - CHECKING + - SAVINGS + source: + openapi: hris_v3.yml + BankInfoListRequestOrderBy: + enum: + - value: '-remote_created_at' + name: RemoteCreatedAtDescending + - value: remote_created_at + name: RemoteCreatedAtAscending + source: + openapi: hris_v3.yml +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/bank-info + method: GET + auth: true + docs: Returns a list of `BankInfo` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: BankInfoListRequest + query-parameters: + account_type: + type: optional + docs: >- + If provided, will only return BankInfo's with this account type. + Options: ('SAVINGS', 'CHECKING') + + + * `SAVINGS` - SAVINGS + + * `CHECKING` - CHECKING + bank_name: + type: optional + docs: If provided, will only return BankInfo's with this bank name. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: If provided, will only return bank accounts for this employee. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + order_by: + type: optional + docs: >- + Overrides the default ordering for this endpoint. Possible values + include: remote_created_at, -remote_created_at. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.PaginatedBankInfoList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: fd1e0fb5-8f92-4ec9-9f32-179cf732867d + remote_id: '123234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + account_number: '439291590' + routing_number: '089690059' + bank_name: Chase + account_type: SAVINGS + remote_created_at: '2021-12-06T10:11:26Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /bank-info + data: + - Varies by platform + retrieve: + path: /hris/v1/bank-info/{id} + method: GET + auth: true + docs: Returns a `BankInfo` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: BankInfoRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.BankInfo + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: fd1e0fb5-8f92-4ec9-9f32-179cf732867d + remote_id: '123234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + account_number: '439291590' + routing_number: '089690059' + bank_name: Chase + account_type: SAVINGS + remote_created_at: '2021-12-06T10:11:26Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /bank-info + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/benefits.yml b/.mock/definition/HRIS/benefits.yml new file mode 100644 index 00000000..0fe21249 --- /dev/null +++ b/.mock/definition/HRIS/benefits.yml @@ -0,0 +1,171 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/benefits + method: GET + auth: true + docs: Returns a list of `Benefit` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: BenefitsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: >- + If provided, will return the benefits associated with the + employee. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: hrisRoot.PaginatedBenefitList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fe5ae7a-f1ba-4529-b7af-84e86dc6d232 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + provider_name: Blue Shield of California + benefit_plan_type: benefit_plan_type + employee_contribution: 23.65 + company_contribution: 150 + start_date: '2020-11-15T00:59:25Z' + end_date: '2021-10-15T00:23:25Z' + remote_was_deleted: true + employer_benefit: 025fjlc6-6000-430a-848e-aafacbadf4fe + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /benefits + data: + - Varies by platform + retrieve: + path: /hris/v1/benefits/{id} + method: GET + auth: true + docs: Returns a `Benefit` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: BenefitsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: hrisRoot.Benefit + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 3fe5ae7a-f1ba-4529-b7af-84e86dc6d232 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + provider_name: Blue Shield of California + benefit_plan_type: benefit_plan_type + employee_contribution: 23.65 + company_contribution: 150 + start_date: '2020-11-15T00:59:25Z' + end_date: '2021-10-15T00:23:25Z' + remote_was_deleted: true + employer_benefit: 025fjlc6-6000-430a-848e-aafacbadf4fe + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /benefits + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/companies.yml b/.mock/definition/HRIS/companies.yml new file mode 100644 index 00000000..d9f940a6 --- /dev/null +++ b/.mock/definition/HRIS/companies.yml @@ -0,0 +1,150 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/companies + method: GET + auth: true + docs: Returns a list of `Company` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: CompaniesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: hrisRoot.PaginatedCompanyList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 1b998423-db0a-4037-a4cf-f79c60cb67b3 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + legal_name: Waystar Royco, Inc. + display_name: Waystar Royco + eins: + - 12-3456789 + - 12-3451111 + - 11-0011000 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /companies + data: + - Varies by platform + retrieve: + path: /hris/v1/companies/{id} + method: GET + auth: true + docs: Returns a `Company` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: CompaniesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: hrisRoot.Company + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 1b998423-db0a-4037-a4cf-f79c60cb67b3 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + legal_name: Waystar Royco, Inc. + display_name: Waystar Royco + eins: + - 12-3456789 + - 12-3451111 + - 11-0011000 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /companies + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/deleteAccount.yml b/.mock/definition/HRIS/deleteAccount.yml new file mode 100644 index 00000000..054b170e --- /dev/null +++ b/.mock/definition/HRIS/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /hris/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: hris_v3.yml + examples: + - headers: {} + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/dependents.yml b/.mock/definition/HRIS/dependents.yml new file mode 100644 index 00000000..673189f3 --- /dev/null +++ b/.mock/definition/HRIS/dependents.yml @@ -0,0 +1,170 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/dependents + method: GET + auth: true + docs: Returns a list of `Dependent` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: DependentsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_sensitive_fields: + type: optional + docs: >- + Whether to include sensitive fields (such as social security + numbers) in the response. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: hrisRoot.PaginatedDependentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 025fjlc6-6000-430a-848e-aafacbadf4fe + remote_id: '19202940' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Greg + middle_name: A + last_name: Hirsch + relationship: CHILD + employee: 0958cbc6-6040-430a-848e-aafacbadf4ae + date_of_birth: '1990-11-10T00:00:00Z' + gender: MALE + phone_number: '+1234567890' + home_location: d2f972d0-2526-434b-9409-4c3b468e08f0 + is_student: true + ssn: '1234567890' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /dependent + data: + - Varies by platform + retrieve: + path: /hris/v1/dependents/{id} + method: GET + auth: true + docs: Returns a `Dependent` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: DependentsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_sensitive_fields: + type: optional + docs: >- + Whether to include sensitive fields (such as social security + numbers) in the response. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: hrisRoot.Dependent + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 025fjlc6-6000-430a-848e-aafacbadf4fe + remote_id: '19202940' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Greg + middle_name: A + last_name: Hirsch + relationship: CHILD + employee: 0958cbc6-6040-430a-848e-aafacbadf4ae + date_of_birth: '1990-11-10T00:00:00Z' + gender: MALE + phone_number: '+1234567890' + home_location: d2f972d0-2526-434b-9409-4c3b468e08f0 + is_student: true + ssn: '1234567890' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /dependent + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/employeePayrollRuns.yml b/.mock/definition/HRIS/employeePayrollRuns.yml new file mode 100644 index 00000000..3a13002e --- /dev/null +++ b/.mock/definition/HRIS/employeePayrollRuns.yml @@ -0,0 +1,303 @@ +types: + EmployeePayrollRunsListRequestExpandItem: + enum: + - employee + - payroll_run + source: + openapi: hris_v3.yml + EmployeePayrollRunsRetrieveRequestExpandItem: + enum: + - employee + - payroll_run + source: + openapi: hris_v3.yml +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/employee-payroll-runs + method: GET + auth: true + docs: Returns a list of `EmployeePayrollRun` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: EmployeePayrollRunsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: >- + If provided, will only return employee payroll runs for this + employee. + ended_after: + type: optional + docs: >- + If provided, will only return employee payroll runs ended after + this datetime. + ended_before: + type: optional + docs: >- + If provided, will only return employee payroll runs ended before + this datetime. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + payroll_run_id: + type: optional + docs: >- + If provided, will only return employee payroll runs for this + employee. + remote_id: + type: optional + docs: The API provider's ID for the given object. + started_after: + type: optional + docs: >- + If provided, will only return employee payroll runs started after + this datetime. + started_before: + type: optional + docs: >- + If provided, will only return employee payroll runs started before + this datetime. + response: + docs: '' + type: hrisRoot.PaginatedEmployeePayrollRunList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + payroll_run: payroll_run + gross_pay: 1342.67 + net_pay: 865.78 + start_date: '2020-11-08T00:00:00Z' + end_date: '2020-11-09T00:00:00Z' + check_date: '2020-11-10T00:00:00Z' + earnings: + - id: babbced6-3a81-4775-8da2-490dc6385259 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + amount: 1002.34 + type: SALARY + - id: babbced6-3a81-4775-8da2-490dc6385259 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + amount: 8342.34 + type: OVERTIME + deductions: + - id: 5fd439fc-1b64-4755-b275-64918936c365 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: Social Security + employee_deduction: 34.54 + company_deduction: 78.78 + taxes: + - id: e3a825fd-c38d-4095-a717-df98c4cb9ebc + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: California State Income Tax + amount: 100.25 + employer_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /employee-payroll + data: + - Varies by platform + retrieve: + path: /hris/v1/employee-payroll-runs/{id} + method: GET + auth: true + docs: Returns an `EmployeePayrollRun` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: EmployeePayrollRunsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: hrisRoot.EmployeePayrollRun + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + payroll_run: payroll_run + gross_pay: 1342.67 + net_pay: 865.78 + start_date: '2020-11-08T00:00:00Z' + end_date: '2020-11-09T00:00:00Z' + check_date: '2020-11-10T00:00:00Z' + earnings: + - id: babbced6-3a81-4775-8da2-490dc6385259 + remote_id: '52802' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + amount: 1002.34 + type: SALARY + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + - id: babbced6-3a81-4775-8da2-490dc6385259 + remote_id: '52802' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + amount: 8342.34 + type: OVERTIME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + deductions: + - id: 5fd439fc-1b64-4755-b275-64918936c365 + remote_id: '93478612' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: Social Security + employee_deduction: 34.54 + company_deduction: 78.78 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /payroll-deduction + data: + - Varies by platform + taxes: + - id: e3a825fd-c38d-4095-a717-df98c4cb9ebc + remote_id: '26806834' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: California State Income Tax + amount: 100.25 + employer_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /employee-payroll + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/employees.yml b/.mock/definition/HRIS/employees.yml new file mode 100644 index 00000000..7c4da12d --- /dev/null +++ b/.mock/definition/HRIS/employees.yml @@ -0,0 +1,785 @@ +types: + EmployeesListRequestEmploymentStatus: + enum: + - ACTIVE + - INACTIVE + - PENDING + source: + openapi: hris_v3.yml + EmployeesListRequestExpandItem: + enum: + - company + - employments + - groups + - home_location + - manager + - pay_group + - team + - work_location + source: + openapi: hris_v3.yml + EmployeesListRequestRemoteFields: + enum: + - employment_status + - value: employment_status,ethnicity + name: EmploymentStatusEthnicity + - value: employment_status,ethnicity,gender + name: EmploymentStatusEthnicityGender + - value: employment_status,ethnicity,gender,marital_status + name: EmploymentStatusEthnicityGenderMaritalStatus + - value: employment_status,ethnicity,marital_status + name: EmploymentStatusEthnicityMaritalStatus + - value: employment_status,gender + name: EmploymentStatusGender + - value: employment_status,gender,marital_status + name: EmploymentStatusGenderMaritalStatus + - value: employment_status,marital_status + name: EmploymentStatusMaritalStatus + - ethnicity + - value: ethnicity,gender + name: EthnicityGender + - value: ethnicity,gender,marital_status + name: EthnicityGenderMaritalStatus + - value: ethnicity,marital_status + name: EthnicityMaritalStatus + - gender + - value: gender,marital_status + name: GenderMaritalStatus + - marital_status + source: + openapi: hris_v3.yml + EmployeesListRequestShowEnumOrigins: + enum: + - employment_status + - value: employment_status,ethnicity + name: EmploymentStatusEthnicity + - value: employment_status,ethnicity,gender + name: EmploymentStatusEthnicityGender + - value: employment_status,ethnicity,gender,marital_status + name: EmploymentStatusEthnicityGenderMaritalStatus + - value: employment_status,ethnicity,marital_status + name: EmploymentStatusEthnicityMaritalStatus + - value: employment_status,gender + name: EmploymentStatusGender + - value: employment_status,gender,marital_status + name: EmploymentStatusGenderMaritalStatus + - value: employment_status,marital_status + name: EmploymentStatusMaritalStatus + - ethnicity + - value: ethnicity,gender + name: EthnicityGender + - value: ethnicity,gender,marital_status + name: EthnicityGenderMaritalStatus + - value: ethnicity,marital_status + name: EthnicityMaritalStatus + - gender + - value: gender,marital_status + name: GenderMaritalStatus + - marital_status + source: + openapi: hris_v3.yml + EmployeesRetrieveRequestExpandItem: + enum: + - company + - employments + - groups + - home_location + - manager + - pay_group + - team + - work_location + source: + openapi: hris_v3.yml + EmployeesRetrieveRequestRemoteFields: + enum: + - employment_status + - value: employment_status,ethnicity + name: EmploymentStatusEthnicity + - value: employment_status,ethnicity,gender + name: EmploymentStatusEthnicityGender + - value: employment_status,ethnicity,gender,marital_status + name: EmploymentStatusEthnicityGenderMaritalStatus + - value: employment_status,ethnicity,marital_status + name: EmploymentStatusEthnicityMaritalStatus + - value: employment_status,gender + name: EmploymentStatusGender + - value: employment_status,gender,marital_status + name: EmploymentStatusGenderMaritalStatus + - value: employment_status,marital_status + name: EmploymentStatusMaritalStatus + - ethnicity + - value: ethnicity,gender + name: EthnicityGender + - value: ethnicity,gender,marital_status + name: EthnicityGenderMaritalStatus + - value: ethnicity,marital_status + name: EthnicityMaritalStatus + - gender + - value: gender,marital_status + name: GenderMaritalStatus + - marital_status + source: + openapi: hris_v3.yml + EmployeesRetrieveRequestShowEnumOrigins: + enum: + - employment_status + - value: employment_status,ethnicity + name: EmploymentStatusEthnicity + - value: employment_status,ethnicity,gender + name: EmploymentStatusEthnicityGender + - value: employment_status,ethnicity,gender,marital_status + name: EmploymentStatusEthnicityGenderMaritalStatus + - value: employment_status,ethnicity,marital_status + name: EmploymentStatusEthnicityMaritalStatus + - value: employment_status,gender + name: EmploymentStatusGender + - value: employment_status,gender,marital_status + name: EmploymentStatusGenderMaritalStatus + - value: employment_status,marital_status + name: EmploymentStatusMaritalStatus + - ethnicity + - value: ethnicity,gender + name: EthnicityGender + - value: ethnicity,gender,marital_status + name: EthnicityGenderMaritalStatus + - value: ethnicity,marital_status + name: EthnicityMaritalStatus + - gender + - value: gender,marital_status + name: GenderMaritalStatus + - marital_status + source: + openapi: hris_v3.yml +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/employees + method: GET + auth: true + docs: Returns a list of `Employee` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: EmployeesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return employees for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + display_full_name: + type: optional + docs: If provided, will only return employees with this display name. + employment_status: + type: optional + docs: >- + If provided, will only return employees with this employment + status. + + + * `ACTIVE` - ACTIVE + + * `PENDING` - PENDING + + * `INACTIVE` - INACTIVE + employment_type: + type: optional + docs: >- + If provided, will only return employees that have an employment of + the specified employment_type. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + first_name: + type: optional + docs: If provided, will only return employees with this first name. + groups: + type: optional + docs: >- + If provided, will only return employees matching the group ids; + multiple groups can be separated by commas. + home_location_id: + type: optional + docs: If provided, will only return employees for this home location. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_sensitive_fields: + type: optional + docs: >- + Whether to include sensitive fields (such as social security + numbers) in the response. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + job_title: + type: optional + docs: >- + If provided, will only return employees that have an employment of + the specified job_title. + last_name: + type: optional + docs: If provided, will only return employees with this last name. + manager_id: + type: optional + docs: If provided, will only return employees for this manager. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + pay_group_id: + type: optional + docs: If provided, will only return employees for this pay group + personal_email: + type: optional + docs: If provided, will only return Employees with this personal email + validation: + format: email + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + started_after: + type: optional + docs: >- + If provided, will only return employees that started after this + datetime. + started_before: + type: optional + docs: >- + If provided, will only return employees that started before this + datetime. + team_id: + type: optional + docs: If provided, will only return employees for this team. + terminated_after: + type: optional + docs: >- + If provided, will only return employees that were terminated after + this datetime. + terminated_before: + type: optional + docs: >- + If provided, will only return employees that were terminated + before this datetime. + work_email: + type: optional + docs: If provided, will only return Employees with this work email + validation: + format: email + work_location_id: + type: optional + docs: If provided, will only return employees for this location. + response: + docs: '' + type: hrisRoot.PaginatedEmployeeList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_number: '2' + company: company + first_name: Greg + last_name: Hirsch + preferred_name: Greg the egg + display_full_name: Cousin Greg Hirsch + username: cousingreg + groups: + - 21a54124-397f-494d-985e-3c5b330b8a68 + work_email: greg@merge.dev + personal_email: greg@gmail.com + mobile_phone_number: '+1234567890' + employments: + - 17a54124-287f-494d-965e-3c5b330c9a68 + home_location: home_location + work_location: work_location + manager: manager + team: team + pay_group: pay_group + ssn: '1234567890' + gender: MALE + ethnicity: AMERICAN_INDIAN_OR_ALASKA_NATIVE + marital_status: SINGLE + date_of_birth: '1990-11-10T00:00:00Z' + hire_date: '2020-10-10T00:00:00Z' + start_date: '2020-10-11T00:00:00Z' + remote_created_at: '2020-10-11T00:00:00Z' + employment_status: ACTIVE + termination_date: '2021-10-12T00:00:00Z' + avatar: http://alturl.com/h2h8m + custom_fields: + key: value + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /people + data: + - Varies by platform + create: + path: /hris/v1/employees + method: POST + auth: true + docs: Creates an `Employee` object with the given values. + source: + openapi: hris_v3.yml + request: + name: EmployeeEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: hrisRoot.EmployeeRequest + content-type: application/json + response: + docs: '' + type: hrisRoot.EmployeeResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_number: '2' + company: company + first_name: Greg + last_name: Hirsch + preferred_name: Greg the egg + display_full_name: Cousin Greg Hirsch + username: cousingreg + groups: + - 21a54124-397f-494d-985e-3c5b330b8a68 + work_email: greg@merge.dev + personal_email: greg@gmail.com + mobile_phone_number: '+1234567890' + employments: + - 17a54124-287f-494d-965e-3c5b330c9a68 + home_location: home_location + work_location: work_location + manager: manager + team: team + pay_group: pay_group + ssn: '1234567890' + gender: MALE + ethnicity: AMERICAN_INDIAN_OR_ALASKA_NATIVE + marital_status: SINGLE + date_of_birth: '1990-11-10T00:00:00Z' + hire_date: '2020-10-10T00:00:00Z' + start_date: '2020-10-11T00:00:00Z' + remote_created_at: '2020-10-11T00:00:00Z' + employment_status: ACTIVE + termination_date: '2021-10-12T00:00:00Z' + avatar: http://alturl.com/h2h8m + custom_fields: + key: value + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /people + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /hris/v1/employees/{id} + method: GET + auth: true + docs: Returns an `Employee` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: EmployeesRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_sensitive_fields: + type: optional + docs: >- + Whether to include sensitive fields (such as social security + numbers) in the response. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.Employee + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_number: '2' + company: company + first_name: Greg + last_name: Hirsch + preferred_name: Greg the egg + display_full_name: Cousin Greg Hirsch + username: cousingreg + groups: + - 21a54124-397f-494d-985e-3c5b330b8a68 + work_email: greg@merge.dev + personal_email: greg@gmail.com + mobile_phone_number: '+1234567890' + employments: + - 17a54124-287f-494d-965e-3c5b330c9a68 + home_location: home_location + work_location: work_location + manager: manager + team: team + pay_group: pay_group + ssn: '1234567890' + gender: MALE + ethnicity: AMERICAN_INDIAN_OR_ALASKA_NATIVE + marital_status: SINGLE + date_of_birth: '1990-11-10T00:00:00Z' + hire_date: '2020-10-10T00:00:00Z' + start_date: '2020-10-11T00:00:00Z' + remote_created_at: '2020-10-11T00:00:00Z' + employment_status: ACTIVE + termination_date: '2021-10-12T00:00:00Z' + avatar: http://alturl.com/h2h8m + custom_fields: + key: value + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /people + data: + - Varies by platform + ignoreCreate: + path: /hris/v1/employees/ignore/{model_id} + method: POST + auth: true + docs: >- + Ignores a specific row based on the `model_id` in the url. These records + will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will + be stored for audit purposes. + source: + openapi: hris_v3.yml + path-parameters: + model_id: string + request: + body: hrisRoot.IgnoreCommonModelRequest + content-type: application/json + examples: + - path-parameters: + model_id: model_id + headers: {} + request: + reason: GENERAL_CUSTOMER_REQUEST + metaPostRetrieve: + path: /hris/v1/employees/meta/post + method: GET + auth: true + docs: Returns metadata for `Employee` POSTs. + source: + openapi: hris_v3.yml + response: + docs: '' + type: hrisRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/employerBenefits.yml b/.mock/definition/HRIS/employerBenefits.yml new file mode 100644 index 00000000..5eea679b --- /dev/null +++ b/.mock/definition/HRIS/employerBenefits.yml @@ -0,0 +1,144 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/employer-benefits + method: GET + auth: true + docs: Returns a list of `EmployerBenefit` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: EmployerBenefitsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: hrisRoot.PaginatedEmployerBenefitList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 025fjlc6-6000-430a-848e-aafacbadf4fele + remote_id: '19202939' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + benefit_plan_type: MEDICAL + name: Kaiser Permanente Medical Plan + description: HDHP Silver Plan + deduction_code: COL + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /hris/v1/employer-benefits/{id} + method: GET + auth: true + docs: Returns an `EmployerBenefit` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: EmployerBenefitsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: hrisRoot.EmployerBenefit + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 025fjlc6-6000-430a-848e-aafacbadf4fele + remote_id: '19202939' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + benefit_plan_type: MEDICAL + name: Kaiser Permanente Medical Plan + description: HDHP Silver Plan + deduction_code: COL + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/employments.yml b/.mock/definition/HRIS/employments.yml new file mode 100644 index 00000000..f474c690 --- /dev/null +++ b/.mock/definition/HRIS/employments.yml @@ -0,0 +1,339 @@ +types: + EmploymentsListRequestExpandItem: + enum: + - employee + - pay_group + source: + openapi: hris_v3.yml + EmploymentsListRequestOrderBy: + enum: + - value: '-effective_date' + name: EffectiveDateDescending + - value: effective_date + name: EffectiveDateAscending + source: + openapi: hris_v3.yml + EmploymentsListRequestRemoteFields: + enum: + - employment_type + - value: employment_type,flsa_status + name: EmploymentTypeFlsaStatus + - value: employment_type,flsa_status,pay_frequency + name: EmploymentTypeFlsaStatusPayFrequency + - value: employment_type,flsa_status,pay_frequency,pay_period + name: EmploymentTypeFlsaStatusPayFrequencyPayPeriod + - value: employment_type,flsa_status,pay_period + name: EmploymentTypeFlsaStatusPayPeriod + - value: employment_type,pay_frequency + name: EmploymentTypePayFrequency + - value: employment_type,pay_frequency,pay_period + name: EmploymentTypePayFrequencyPayPeriod + - value: employment_type,pay_period + name: EmploymentTypePayPeriod + - flsa_status + - value: flsa_status,pay_frequency + name: FlsaStatusPayFrequency + - value: flsa_status,pay_frequency,pay_period + name: FlsaStatusPayFrequencyPayPeriod + - value: flsa_status,pay_period + name: FlsaStatusPayPeriod + - pay_frequency + - value: pay_frequency,pay_period + name: PayFrequencyPayPeriod + - pay_period + source: + openapi: hris_v3.yml + EmploymentsListRequestShowEnumOrigins: + enum: + - employment_type + - value: employment_type,flsa_status + name: EmploymentTypeFlsaStatus + - value: employment_type,flsa_status,pay_frequency + name: EmploymentTypeFlsaStatusPayFrequency + - value: employment_type,flsa_status,pay_frequency,pay_period + name: EmploymentTypeFlsaStatusPayFrequencyPayPeriod + - value: employment_type,flsa_status,pay_period + name: EmploymentTypeFlsaStatusPayPeriod + - value: employment_type,pay_frequency + name: EmploymentTypePayFrequency + - value: employment_type,pay_frequency,pay_period + name: EmploymentTypePayFrequencyPayPeriod + - value: employment_type,pay_period + name: EmploymentTypePayPeriod + - flsa_status + - value: flsa_status,pay_frequency + name: FlsaStatusPayFrequency + - value: flsa_status,pay_frequency,pay_period + name: FlsaStatusPayFrequencyPayPeriod + - value: flsa_status,pay_period + name: FlsaStatusPayPeriod + - pay_frequency + - value: pay_frequency,pay_period + name: PayFrequencyPayPeriod + - pay_period + source: + openapi: hris_v3.yml + EmploymentsRetrieveRequestExpandItem: + enum: + - employee + - pay_group + source: + openapi: hris_v3.yml + EmploymentsRetrieveRequestRemoteFields: + enum: + - employment_type + - value: employment_type,flsa_status + name: EmploymentTypeFlsaStatus + - value: employment_type,flsa_status,pay_frequency + name: EmploymentTypeFlsaStatusPayFrequency + - value: employment_type,flsa_status,pay_frequency,pay_period + name: EmploymentTypeFlsaStatusPayFrequencyPayPeriod + - value: employment_type,flsa_status,pay_period + name: EmploymentTypeFlsaStatusPayPeriod + - value: employment_type,pay_frequency + name: EmploymentTypePayFrequency + - value: employment_type,pay_frequency,pay_period + name: EmploymentTypePayFrequencyPayPeriod + - value: employment_type,pay_period + name: EmploymentTypePayPeriod + - flsa_status + - value: flsa_status,pay_frequency + name: FlsaStatusPayFrequency + - value: flsa_status,pay_frequency,pay_period + name: FlsaStatusPayFrequencyPayPeriod + - value: flsa_status,pay_period + name: FlsaStatusPayPeriod + - pay_frequency + - value: pay_frequency,pay_period + name: PayFrequencyPayPeriod + - pay_period + source: + openapi: hris_v3.yml + EmploymentsRetrieveRequestShowEnumOrigins: + enum: + - employment_type + - value: employment_type,flsa_status + name: EmploymentTypeFlsaStatus + - value: employment_type,flsa_status,pay_frequency + name: EmploymentTypeFlsaStatusPayFrequency + - value: employment_type,flsa_status,pay_frequency,pay_period + name: EmploymentTypeFlsaStatusPayFrequencyPayPeriod + - value: employment_type,flsa_status,pay_period + name: EmploymentTypeFlsaStatusPayPeriod + - value: employment_type,pay_frequency + name: EmploymentTypePayFrequency + - value: employment_type,pay_frequency,pay_period + name: EmploymentTypePayFrequencyPayPeriod + - value: employment_type,pay_period + name: EmploymentTypePayPeriod + - flsa_status + - value: flsa_status,pay_frequency + name: FlsaStatusPayFrequency + - value: flsa_status,pay_frequency,pay_period + name: FlsaStatusPayFrequencyPayPeriod + - value: flsa_status,pay_period + name: FlsaStatusPayPeriod + - pay_frequency + - value: pay_frequency,pay_period + name: PayFrequencyPayPeriod + - pay_period + source: + openapi: hris_v3.yml +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/employments + method: GET + auth: true + docs: Returns a list of `Employment` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: EmploymentsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: If provided, will only return employments for this employee. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + order_by: + type: optional + docs: >- + Overrides the default ordering for this endpoint. Possible values + include: effective_date, -effective_date. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.PaginatedEmploymentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 65d8ffd0-211b-4ba4-b85a-fbe2ce220982 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + job_title: Executive Assistant to Tom Wambsgans + pay_rate: 1.1 + pay_period: HOUR + pay_frequency: WEEKLY + pay_currency: XUA + pay_group: pay_group + flsa_status: EXEMPT + effective_date: '2023-10-06T18:42:34Z' + employment_type: FULL_TIME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /jobs + data: + - Varies by platform + retrieve: + path: /hris/v1/employments/{id} + method: GET + auth: true + docs: Returns an `Employment` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: EmploymentsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.Employment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 65d8ffd0-211b-4ba4-b85a-fbe2ce220982 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + job_title: Executive Assistant to Tom Wambsgans + pay_rate: 1.1 + pay_period: HOUR + pay_frequency: WEEKLY + pay_currency: XUA + pay_group: pay_group + flsa_status: EXEMPT + effective_date: '2023-10-06T18:42:34Z' + employment_type: FULL_TIME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /jobs + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/fieldMapping.yml b/.mock/definition/HRIS/fieldMapping.yml new file mode 100644 index 00000000..6e110a16 --- /dev/null +++ b/.mock/definition/HRIS/fieldMapping.yml @@ -0,0 +1,892 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /hris/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: hris_v3.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: hrisRoot.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Benefit: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + EmployerBenefit: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Company: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + EmployeePayrollRun: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Employee: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Employment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Location: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + PayrollRun: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Team: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + TimeOff: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + TimeOffBalance: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + BankInfo: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + PayGroup: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Group: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Dependent: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + TimesheetEntry: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /hris/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: hris_v3.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: hrisRoot.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /hris/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: hris_v3.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: hrisRoot.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /hris/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: hris_v3.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: hrisRoot.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /hris/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: hris_v3.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: hrisRoot.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Benefit: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + EmployerBenefit: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Company: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + EmployeePayrollRun: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Employee: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Employment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Location: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + PayrollRun: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Team: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + TimeOff: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + TimeOffBalance: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + BankInfo: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + PayGroup: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Group: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Dependent: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + TimesheetEntry: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /hris/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: hris_v3.yml + response: + docs: '' + type: hrisRoot.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Benefit: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + EmployerBenefit: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Company: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + EmployeePayrollRun: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Employee: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Employment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Location: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + PayrollRun: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Team: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + TimeOff: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + TimeOffBalance: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + BankInfo: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + PayGroup: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Group: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Dependent: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + TimesheetEntry: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/forceResync.yml b/.mock/definition/HRIS/forceResync.yml new file mode 100644 index 00000000..a423b5b7 --- /dev/null +++ b/.mock/definition/HRIS/forceResync.yml @@ -0,0 +1,37 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /hris/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: hris_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: Employee + model_id: hris.Employee + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/generateKey.yml b/.mock/definition/HRIS/generateKey.yml new file mode 100644 index 00000000..6fd6d39b --- /dev/null +++ b/.mock/definition/HRIS/generateKey.yml @@ -0,0 +1,36 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /hris/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: hris_v3.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: hrisRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/groups.yml b/.mock/definition/HRIS/groups.yml new file mode 100644 index 00000000..f7012824 --- /dev/null +++ b/.mock/definition/HRIS/groups.yml @@ -0,0 +1,183 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/groups + method: GET + auth: true + docs: Returns a list of `Group` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: GroupsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_commonly_used_as_team: + type: optional + docs: >- + If provided, specifies whether to return only Group objects which + refer to a team in the third party platform. Note that this is an + opinionated view based on how a team may be represented in the + third party platform. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + names: + type: optional + docs: >- + If provided, will only return groups with these names. Multiple + values can be separated by commas. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + types: + type: optional + docs: >- + If provided, will only return groups of these types. Multiple + values can be separated by commas. + response: + docs: '' + type: hrisRoot.PaginatedGroupList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 134e0111-0f67-44f6-98f0-597000290bb3 + remote_id: '800293' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + parent_group: 2ef51b11-2c4e-4b02-8d1d-50592d9e96ef + name: COST_CENTER_US + type: TEAM + is_commonly_used_as_team: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /group + data: + - Varies by platform + retrieve: + path: /hris/v1/groups/{id} + method: GET + auth: true + docs: Returns a `Group` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: GroupsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.Group + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 134e0111-0f67-44f6-98f0-597000290bb3 + remote_id: '800293' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + parent_group: 2ef51b11-2c4e-4b02-8d1d-50592d9e96ef + name: COST_CENTER_US + type: TEAM + is_commonly_used_as_team: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /group + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/issues.yml b/.mock/definition/HRIS/issues.yml new file mode 100644 index 00000000..aec1474d --- /dev/null +++ b/.mock/definition/HRIS/issues.yml @@ -0,0 +1,133 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: hris_v3.yml +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: hrisRoot.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /hris/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: hris_v3.yml + path-parameters: + id: string + response: + docs: '' + type: hrisRoot.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/linkToken.yml b/.mock/definition/HRIS/linkToken.yml new file mode 100644 index 00000000..48c7cf14 --- /dev/null +++ b/.mock/definition/HRIS/linkToken.yml @@ -0,0 +1,152 @@ +imports: + hrisRoot: __package__.yml +types: + EndUserDetailsRequestLanguage: + discriminated: false + docs: >- + The following subset of IETF language tags can be used to configure + localization. + + + * `en` - en + + * `de` - de + union: + - hrisRoot.LanguageEnum + - string + source: + openapi: hris_v3.yml + inline: true +service: + auth: false + base-path: '' + endpoints: + create: + path: /hris/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: hris_v3.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: hrisRoot.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/linkedAccounts.yml b/.mock/definition/HRIS/linkedAccounts.yml new file mode 100644 index 00000000..ee1648c7 --- /dev/null +++ b/.mock/definition/HRIS/linkedAccounts.yml @@ -0,0 +1,152 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: hris_v3.yml +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: hrisRoot.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/locations.yml b/.mock/definition/HRIS/locations.yml new file mode 100644 index 00000000..e758c05c --- /dev/null +++ b/.mock/definition/HRIS/locations.yml @@ -0,0 +1,222 @@ +types: + LocationsListRequestLocationType: + enum: + - HOME + - WORK + source: + openapi: hris_v3.yml + LocationsListRequestRemoteFields: + enum: + - country + - value: country,location_type + name: CountryLocationType + - location_type + source: + openapi: hris_v3.yml + LocationsListRequestShowEnumOrigins: + enum: + - country + - value: country,location_type + name: CountryLocationType + - location_type + source: + openapi: hris_v3.yml + LocationsRetrieveRequestRemoteFields: + enum: + - country + - value: country,location_type + name: CountryLocationType + - location_type + source: + openapi: hris_v3.yml + LocationsRetrieveRequestShowEnumOrigins: + enum: + - country + - value: country,location_type + name: CountryLocationType + - location_type + source: + openapi: hris_v3.yml +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/locations + method: GET + auth: true + docs: Returns a list of `Location` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: LocationsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + location_type: + type: optional + docs: |- + If provided, will only return locations with this location_type + + * `HOME` - HOME + * `WORK` - WORK + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.PaginatedLocationList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: f5e6a151-f44e-449a-afb1-8fd781905958 + remote_id: '93018402' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: NYC Office + phone_number: '+1111111111' + street_1: 2920 Broadway + street_2: 2nd Floor + city: 'New York ' + state: NY + zip_code: '10027' + country: AF + location_type: HOME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /locations + data: + - Varies by platform + retrieve: + path: /hris/v1/locations/{id} + method: GET + auth: true + docs: Returns a `Location` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: LocationsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.Location + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: f5e6a151-f44e-449a-afb1-8fd781905958 + remote_id: '93018402' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: NYC Office + phone_number: '+1111111111' + street_1: 2920 Broadway + street_2: 2nd Floor + city: 'New York ' + state: NY + zip_code: '10027' + country: AF + location_type: HOME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /locations + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/passthrough.yml b/.mock/definition/HRIS/passthrough.yml new file mode 100644 index 00000000..7ab71e68 --- /dev/null +++ b/.mock/definition/HRIS/passthrough.yml @@ -0,0 +1,40 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /hris/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: hris_v3.yml + request: + body: hrisRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: hrisRoot.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/payGroups.yml b/.mock/definition/HRIS/payGroups.yml new file mode 100644 index 00000000..5c0d321b --- /dev/null +++ b/.mock/definition/HRIS/payGroups.yml @@ -0,0 +1,140 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/pay-groups + method: GET + auth: true + docs: Returns a list of `PayGroup` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: PayGroupsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: hrisRoot.PaginatedPayGroupList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: fd1e0fb5-8f92-4ec9-9f32-179cf732867d + remote_id: '800293' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + pay_group_name: contractor + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /pay-group + data: + - Varies by platform + retrieve: + path: /hris/v1/pay-groups/{id} + method: GET + auth: true + docs: Returns a `PayGroup` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: PayGroupsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: hrisRoot.PayGroup + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: fd1e0fb5-8f92-4ec9-9f32-179cf732867d + remote_id: '800293' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + pay_group_name: contractor + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /pay-group + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/payrollRuns.yml b/.mock/definition/HRIS/payrollRuns.yml new file mode 100644 index 00000000..e21ebb97 --- /dev/null +++ b/.mock/definition/HRIS/payrollRuns.yml @@ -0,0 +1,247 @@ +types: + PayrollRunsListRequestRemoteFields: + enum: + - run_state + - value: run_state,run_type + name: RunStateRunType + - run_type + source: + openapi: hris_v3.yml + PayrollRunsListRequestRunType: + enum: + - CORRECTION + - OFF_CYCLE + - REGULAR + - SIGN_ON_BONUS + - TERMINATION + source: + openapi: hris_v3.yml + PayrollRunsListRequestShowEnumOrigins: + enum: + - run_state + - value: run_state,run_type + name: RunStateRunType + - run_type + source: + openapi: hris_v3.yml + PayrollRunsRetrieveRequestRemoteFields: + enum: + - run_state + - value: run_state,run_type + name: RunStateRunType + - run_type + source: + openapi: hris_v3.yml + PayrollRunsRetrieveRequestShowEnumOrigins: + enum: + - run_state + - value: run_state,run_type + name: RunStateRunType + - run_type + source: + openapi: hris_v3.yml +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/payroll-runs + method: GET + auth: true + docs: Returns a list of `PayrollRun` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: PayrollRunsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + ended_after: + type: optional + docs: >- + If provided, will only return payroll runs ended after this + datetime. + ended_before: + type: optional + docs: >- + If provided, will only return payroll runs ended before this + datetime. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + run_type: + type: optional + docs: >- + If provided, will only return PayrollRun's with this status. + Options: ('REGULAR', 'OFF_CYCLE', 'CORRECTION', 'TERMINATION', + 'SIGN_ON_BONUS') + + + * `REGULAR` - REGULAR + + * `OFF_CYCLE` - OFF_CYCLE + + * `CORRECTION` - CORRECTION + + * `TERMINATION` - TERMINATION + + * `SIGN_ON_BONUS` - SIGN_ON_BONUS + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + started_after: + type: optional + docs: >- + If provided, will only return payroll runs started after this + datetime. + started_before: + type: optional + docs: >- + If provided, will only return payroll runs started before this + datetime. + response: + docs: '' + type: hrisRoot.PaginatedPayrollRunList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 37336947-b3d4-4a4c-a310-ab6ab510e079 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + run_state: PAID + run_type: REGULAR + start_date: '2020-11-08T00:00:00Z' + end_date: '2020-11-15T00:00:00Z' + check_date: '2020-11-15T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /payroll + data: + - Varies by platform + retrieve: + path: /hris/v1/payroll-runs/{id} + method: GET + auth: true + docs: Returns a `PayrollRun` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: PayrollRunsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.PayrollRun + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 37336947-b3d4-4a4c-a310-ab6ab510e079 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + run_state: PAID + run_type: REGULAR + start_date: '2020-11-08T00:00:00Z' + end_date: '2020-11-15T00:00:00Z' + check_date: '2020-11-15T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /payroll + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/regenerateKey.yml b/.mock/definition/HRIS/regenerateKey.yml new file mode 100644 index 00000000..77a18e6f --- /dev/null +++ b/.mock/definition/HRIS/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /hris/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: hris_v3.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: hrisRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/scopes.yml b/.mock/definition/HRIS/scopes.yml new file mode 100644 index 00000000..221a7324 --- /dev/null +++ b/.mock/definition/HRIS/scopes.yml @@ -0,0 +1,160 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /hris/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: hris_v3.yml + response: + docs: '' + type: hrisRoot.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /hris/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: hris_v3.yml + response: + docs: '' + type: hrisRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /hris/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: hris_v3.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + content-type: application/json + response: + docs: '' + type: hrisRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/syncStatus.yml b/.mock/definition/HRIS/syncStatus.yml new file mode 100644 index 00000000..f31c2907 --- /dev/null +++ b/.mock/definition/HRIS/syncStatus.yml @@ -0,0 +1,59 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: hrisRoot.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: Employee + model_id: hris.Employee + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/teams.yml b/.mock/definition/HRIS/teams.yml new file mode 100644 index 00000000..87d7ed50 --- /dev/null +++ b/.mock/definition/HRIS/teams.yml @@ -0,0 +1,157 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/teams + method: GET + auth: true + docs: Returns a list of `Team` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: TeamsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + parent_team_id: + type: optional + docs: If provided, will only return teams with this parent team. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: hrisRoot.PaginatedTeamList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 13a72919-9fae-4f54-81ca-ddfd8712a1ba + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Engineering + parent_team: parent_team + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /teams + data: + - Varies by platform + retrieve: + path: /hris/v1/teams/{id} + method: GET + auth: true + docs: Returns a `Team` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: TeamsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: hrisRoot.Team + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 13a72919-9fae-4f54-81ca-ddfd8712a1ba + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Engineering + parent_team: parent_team + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /teams + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/timeOff.yml b/.mock/definition/HRIS/timeOff.yml new file mode 100644 index 00000000..e15ac99e --- /dev/null +++ b/.mock/definition/HRIS/timeOff.yml @@ -0,0 +1,601 @@ +types: + TimeOffListRequestExpandItem: + enum: + - approver + - employee + source: + openapi: hris_v3.yml + TimeOffListRequestRemoteFields: + enum: + - request_type + - value: request_type,status + name: RequestTypeStatus + - value: request_type,status,units + name: RequestTypeStatusUnits + - value: request_type,units + name: RequestTypeUnits + - status + - value: status,units + name: StatusUnits + - units + source: + openapi: hris_v3.yml + TimeOffListRequestRequestType: + enum: + - BEREAVEMENT + - JURY_DUTY + - PERSONAL + - SICK + - VACATION + - VOLUNTEER + source: + openapi: hris_v3.yml + TimeOffListRequestShowEnumOrigins: + enum: + - request_type + - value: request_type,status + name: RequestTypeStatus + - value: request_type,status,units + name: RequestTypeStatusUnits + - value: request_type,units + name: RequestTypeUnits + - status + - value: status,units + name: StatusUnits + - units + source: + openapi: hris_v3.yml + TimeOffListRequestStatus: + enum: + - APPROVED + - CANCELLED + - DECLINED + - DELETED + - REQUESTED + source: + openapi: hris_v3.yml + TimeOffRetrieveRequestExpandItem: + enum: + - approver + - employee + source: + openapi: hris_v3.yml + TimeOffRetrieveRequestRemoteFields: + enum: + - request_type + - value: request_type,status + name: RequestTypeStatus + - value: request_type,status,units + name: RequestTypeStatusUnits + - value: request_type,units + name: RequestTypeUnits + - status + - value: status,units + name: StatusUnits + - units + source: + openapi: hris_v3.yml + TimeOffRetrieveRequestShowEnumOrigins: + enum: + - request_type + - value: request_type,status + name: RequestTypeStatus + - value: request_type,status,units + name: RequestTypeStatusUnits + - value: request_type,units + name: RequestTypeUnits + - status + - value: status,units + name: StatusUnits + - units + source: + openapi: hris_v3.yml +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/time-off + method: GET + auth: true + docs: Returns a list of `TimeOff` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: TimeOffListRequest + query-parameters: + approver_id: + type: optional + docs: If provided, will only return time off for this approver. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: If provided, will only return time off for this employee. + ended_after: + type: optional + docs: >- + If provided, will only return employees that ended after this + datetime. + ended_before: + type: optional + docs: >- + If provided, will only return time-offs that ended before this + datetime. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + request_type: + type: optional + docs: >- + If provided, will only return TimeOff with this request type. + Options: ('VACATION', 'SICK', 'PERSONAL', 'JURY_DUTY', + 'VOLUNTEER', 'BEREAVEMENT') + + + * `VACATION` - VACATION + + * `SICK` - SICK + + * `PERSONAL` - PERSONAL + + * `JURY_DUTY` - JURY_DUTY + + * `VOLUNTEER` - VOLUNTEER + + * `BEREAVEMENT` - BEREAVEMENT + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + started_after: + type: optional + docs: >- + If provided, will only return time-offs that started after this + datetime. + started_before: + type: optional + docs: >- + If provided, will only return time-offs that started before this + datetime. + status: + type: optional + docs: >- + If provided, will only return TimeOff with this status. Options: + ('REQUESTED', 'APPROVED', 'DECLINED', 'CANCELLED', 'DELETED') + + + * `REQUESTED` - REQUESTED + + * `APPROVED` - APPROVED + + * `DECLINED` - DECLINED + + * `CANCELLED` - CANCELLED + + * `DELETED` - DELETED + response: + docs: '' + type: hrisRoot.PaginatedTimeOffList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + approver: approver + status: REQUESTED + employee_note: Moving into the new apartment Kendall Roy gave me! + units: HOURS + amount: 3 + request_type: VACATION + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-17T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leave + data: + - Varies by platform + create: + path: /hris/v1/time-off + method: POST + auth: true + docs: Creates a `TimeOff` object with the given values. + source: + openapi: hris_v3.yml + request: + name: TimeOffEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: hrisRoot.TimeOffRequest + content-type: application/json + response: + docs: '' + type: hrisRoot.TimeOffResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + approver: approver + status: REQUESTED + employee_note: Moving into the new apartment Kendall Roy gave me! + units: HOURS + amount: 3 + request_type: VACATION + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-17T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leave + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /hris/v1/time-off/{id} + method: GET + auth: true + docs: Returns a `TimeOff` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: TimeOffRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.TimeOff + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + approver: approver + status: REQUESTED + employee_note: Moving into the new apartment Kendall Roy gave me! + units: HOURS + amount: 3 + request_type: VACATION + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-17T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leave + data: + - Varies by platform + metaPostRetrieve: + path: /hris/v1/time-off/meta/post + method: GET + auth: true + docs: Returns metadata for `TimeOff` POSTs. + source: + openapi: hris_v3.yml + response: + docs: '' + type: hrisRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/timeOffBalances.yml b/.mock/definition/HRIS/timeOffBalances.yml new file mode 100644 index 00000000..7df0df8b --- /dev/null +++ b/.mock/definition/HRIS/timeOffBalances.yml @@ -0,0 +1,211 @@ +types: + TimeOffBalancesListRequestPolicyType: + enum: + - BEREAVEMENT + - JURY_DUTY + - PERSONAL + - SICK + - VACATION + - VOLUNTEER + source: + openapi: hris_v3.yml +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/time-off-balances + method: GET + auth: true + docs: Returns a list of `TimeOffBalance` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: TimeOffBalancesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: If provided, will only return time off balances for this employee. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + policy_type: + type: optional + docs: >- + If provided, will only return TimeOffBalance with this policy + type. Options: ('VACATION', 'SICK', 'PERSONAL', 'JURY_DUTY', + 'VOLUNTEER', 'BEREAVEMENT') + + + * `VACATION` - VACATION + + * `SICK` - SICK + + * `PERSONAL` - PERSONAL + + * `JURY_DUTY` - JURY_DUTY + + * `VOLUNTEER` - VOLUNTEER + + * `BEREAVEMENT` - BEREAVEMENT + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.PaginatedTimeOffBalanceList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + balance: 1.1 + used: 1.1 + policy_type: VACATION + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leave + data: + - Varies by platform + retrieve: + path: /hris/v1/time-off-balances/{id} + method: GET + auth: true + docs: Returns a `TimeOffBalance` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: TimeOffBalancesRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: hrisRoot.TimeOffBalance + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + balance: 1.1 + used: 1.1 + policy_type: VACATION + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leave + data: + - Varies by platform + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/timesheetEntries.yml b/.mock/definition/HRIS/timesheetEntries.yml new file mode 100644 index 00000000..1fd61a78 --- /dev/null +++ b/.mock/definition/HRIS/timesheetEntries.yml @@ -0,0 +1,450 @@ +types: + TimesheetEntriesListRequestOrderBy: + enum: + - value: '-start_time' + name: StartTimeDescending + - value: start_time + name: StartTimeAscending + source: + openapi: hris_v3.yml +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/timesheet-entries + method: GET + auth: true + docs: Returns a list of `TimesheetEntry` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: hris_v3.yml + request: + name: TimesheetEntriesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: If provided, will only return timesheet entries for this employee. + ended_after: + type: optional + docs: >- + If provided, will only return timesheet entries ended after this + datetime. + ended_before: + type: optional + docs: >- + If provided, will only return timesheet entries ended before this + datetime. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + order_by: + type: optional + docs: >- + Overrides the default ordering for this endpoint. Possible values + include: start_time, -start_time. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + started_after: + type: optional + docs: >- + If provided, will only return timesheet entries started after this + datetime. + started_before: + type: optional + docs: >- + If provided, will only return timesheet entries started before + this datetime. + response: + docs: '' + type: hrisRoot.PaginatedTimesheetEntryList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + hours_worked: 10 + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-10T00:10:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /dependent + data: + - Varies by platform + create: + path: /hris/v1/timesheet-entries + method: POST + auth: true + docs: Creates a `TimesheetEntry` object with the given values. + source: + openapi: hris_v3.yml + request: + name: TimesheetEntryEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: hrisRoot.TimesheetEntryRequest + content-type: application/json + response: + docs: '' + type: hrisRoot.TimesheetEntryResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + hours_worked: 10 + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-10T00:10:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /dependent + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /hris/v1/timesheet-entries/{id} + method: GET + auth: true + docs: Returns a `TimesheetEntry` object with the given `id`. + source: + openapi: hris_v3.yml + path-parameters: + id: string + request: + name: TimesheetEntriesRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: hrisRoot.TimesheetEntry + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + hours_worked: 10 + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-10T00:10:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /dependent + data: + - Varies by platform + metaPostRetrieve: + path: /hris/v1/timesheet-entries/meta/post + method: GET + auth: true + docs: Returns metadata for `TimesheetEntry` POSTs. + source: + openapi: hris_v3.yml + response: + docs: '' + type: hrisRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: hris_v3.yml diff --git a/.mock/definition/HRIS/webhookReceivers.yml b/.mock/definition/HRIS/webhookReceivers.yml new file mode 100644 index 00000000..e0b95263 --- /dev/null +++ b/.mock/definition/HRIS/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + hrisRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: hris_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /hris/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: hris_v3.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: hrisRoot.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: hris_v3.yml diff --git a/.mock/definition/Ticketing/__package__.yml b/.mock/definition/Ticketing/__package__.yml new file mode 100644 index 00000000..29c34058 --- /dev/null +++ b/.mock/definition/Ticketing/__package__.yml @@ -0,0 +1,3392 @@ +types: + Account: + docs: >- + # The Account Object + + ### Description + + The `Account` object is used to represent the account that a ticket is + associated with. + + + The account is a company that may be a customer. This does not represent + the company that is receiving the ticket. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The account's name. + domains: + type: optional>> + docs: The account's domain names. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + AccountDetailsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: ticketing_v3.yml + AccountDetailsAndActionsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + AccountDetailsAndActionsStatus: + discriminated: false + union: + - AccountDetailsAndActionsStatusEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatus + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + source: + openapi: ticketing_v3.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: ticketing_v3.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: ticketing_v3.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: ticketing_v3.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: ticketing_v3.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: ticketing_v3.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: ticketing_v3.yml + AttachmentTicket: + discriminated: false + docs: The ticket associated with the attachment. + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: ticketing_v3.yml + inline: true + Attachment: + docs: |- + # The Attachment Object + ### Description + The `Attachment` object is used to represent an attachment for a ticket. + + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + file_name: + type: optional + docs: >- + The attachment's name. It is required to include the file extension in + the attachment's name. + ticket: + type: optional + docs: The ticket associated with the attachment. + file_url: + type: optional + docs: >- + The attachment's url. It is required to include the file extension in + the file's URL. + content_type: + type: optional + docs: The attachment's file format. + uploaded_by: + type: optional + docs: The user who uploaded the attachment. + validation: + format: uuid + remote_created_at: + type: optional + docs: When the third party's attachment was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + AttachmentRequestTicket: + discriminated: false + docs: The ticket associated with the attachment. + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: ticketing_v3.yml + inline: true + AttachmentRequest: + docs: |- + # The Attachment Object + ### Description + The `Attachment` object is used to represent an attachment for a ticket. + + ### Usage Example + TODO + properties: + file_name: + type: optional + docs: >- + The attachment's name. It is required to include the file extension in + the attachment's name. + ticket: + type: optional + docs: The ticket associated with the attachment. + file_url: + type: optional + docs: >- + The attachment's url. It is required to include the file extension in + the file's URL. + content_type: + type: optional + docs: The attachment's file format. + uploaded_by: + type: optional + docs: The user who uploaded the attachment. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ticketing_v3.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: ticketing_v3.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: ticketing_v3.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: ticketing_v3.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: ticketing_v3.yml + CollectionAccessLevel: + discriminated: false + docs: |- + The level of access a User has to the Collection and its sub-objects. + + * `PRIVATE` - PRIVATE + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PARENT_COLLECTION` - PARENT_COLLECTION + union: + - CollectionAccessLevelEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + CollectionParentCollection: + discriminated: false + docs: The parent collection for this collection. + union: + - type: string + validation: + format: uuid + - Collection + source: + openapi: ticketing_v3.yml + inline: true + Collection: + docs: >- + # The Collection Object + + ### Description + + The `Collection` object is used to represent one or more `Tickets`. There + can be a hierarchy of `Collections`, in which a sub-collection belongs to + a parent-collection. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The collection's name. + description: + type: optional + docs: The collection's description. + access_level: + type: optional + docs: |- + The level of access a User has to the Collection and its sub-objects. + + * `PRIVATE` - PRIVATE + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PARENT_COLLECTION` - PARENT_COLLECTION + collection_type: + type: optional + docs: |- + The collection's type. + + * `LIST` - LIST + * `PROJECT` - PROJECT + parent_collection: + type: optional + docs: The parent collection for this collection. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + CollectionAccessLevelEnum: + enum: + - PRIVATE + - COMPANY + - PUBLIC + - PARENT_COLLECTION + docs: |- + * `PRIVATE` - PRIVATE + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PARENT_COLLECTION` - PARENT_COLLECTION + source: + openapi: ticketing_v3.yml + CollectionTypeEnum: + enum: + - LIST + - PROJECT + docs: |- + * `LIST` - LIST + * `PROJECT` - PROJECT + source: + openapi: ticketing_v3.yml + CommentUser: + discriminated: false + docs: >- + The author of the Comment, if the author is a User. If the third party + does not support specifying an author, we will append "[Posted on behalf + of {name}]" to the comment. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: ticketing_v3.yml + inline: true + CommentContact: + discriminated: false + docs: >- + The author of the Comment, if the author is a Contact.If the third party + does not support specifying an author, we will append "[Posted on behalf + of {name}]" to the comment. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: ticketing_v3.yml + inline: true + CommentTicket: + discriminated: false + docs: 'The ticket associated with the comment. ' + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: ticketing_v3.yml + inline: true + Comment: + docs: |- + # The Comment Object + ### Description + The `Comment` object is used to represent a comment on a ticket. + + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + user: + type: optional + docs: >- + The author of the Comment, if the author is a User. If the third party + does not support specifying an author, we will append "[Posted on + behalf of {name}]" to the comment. + contact: + type: optional + docs: >- + The author of the Comment, if the author is a Contact.If the third + party does not support specifying an author, we will append "[Posted + on behalf of {name}]" to the comment. + body: + type: optional + docs: The comment's text body. + html_body: + type: optional + docs: The comment's text body formatted as html. + ticket: + type: optional + docs: 'The ticket associated with the comment. ' + is_private: + type: optional + docs: Whether or not the comment is internal. + remote_created_at: + type: optional + docs: When the third party's comment was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + CommentRequestUser: + discriminated: false + docs: >- + The author of the Comment, if the author is a User. If the third party + does not support specifying an author, we will append "[Posted on behalf + of {name}]" to the comment. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: ticketing_v3.yml + inline: true + CommentRequestContact: + discriminated: false + docs: >- + The author of the Comment, if the author is a Contact.If the third party + does not support specifying an author, we will append "[Posted on behalf + of {name}]" to the comment. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: ticketing_v3.yml + inline: true + CommentRequestTicket: + discriminated: false + docs: 'The ticket associated with the comment. ' + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: ticketing_v3.yml + inline: true + CommentRequest: + docs: |- + # The Comment Object + ### Description + The `Comment` object is used to represent a comment on a ticket. + + ### Usage Example + TODO + properties: + user: + type: optional + docs: >- + The author of the Comment, if the author is a User. If the third party + does not support specifying an author, we will append "[Posted on + behalf of {name}]" to the comment. + contact: + type: optional + docs: >- + The author of the Comment, if the author is a Contact.If the third + party does not support specifying an author, we will append "[Posted + on behalf of {name}]" to the comment. + body: + type: optional + docs: The comment's text body. + html_body: + type: optional + docs: The comment's text body formatted as html. + ticket: + type: optional + docs: 'The ticket associated with the comment. ' + is_private: + type: optional + docs: Whether or not the comment is internal. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ticketing_v3.yml + CommentResponse: + properties: + model: Comment + warnings: list + errors: list + logs: optional> + source: + openapi: ticketing_v3.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: ticketing_v3.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: ticketing_v3.yml + ContactAccount: + discriminated: false + docs: The contact's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: ticketing_v3.yml + inline: true + Contact: + docs: >- + # The Contact Object + + ### Description + + The `Contact` object is used to represent the customer, lead, or external + user that a ticket is associated with. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The contact's name. + email_address: + type: optional + docs: The contact's email address. + phone_number: + type: optional + docs: The contact's phone number. + details: + type: optional + docs: The contact's details. + account: + type: optional + docs: The contact's account. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + ContactRequestAccount: + discriminated: false + docs: The contact's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: ticketing_v3.yml + inline: true + ContactRequest: + docs: >- + # The Contact Object + + ### Description + + The `Contact` object is used to represent the customer, lead, or external + user that a ticket is associated with. + + + ### Usage Example + + TODO + properties: + name: + type: optional + docs: The contact's name. + email_address: + type: optional + docs: The contact's email address. + phone_number: + type: optional + docs: The contact's phone number. + details: + type: optional + docs: The contact's details. + account: + type: optional + docs: The contact's account. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: ticketing_v3.yml + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: MethodEnum + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: ticketing_v3.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: ticketing_v3.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: ticketing_v3.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: ticketing_v3.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: ticketing_v3.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: ticketing_v3.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: ticketing_v3.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: ticketing_v3.yml + ExternalTargetFieldApiResponse: + properties: + Ticket: optional> + Comment: optional> + Project: optional> + Collection: optional> + User: optional> + Role: optional> + Account: optional> + Team: optional> + Attachment: optional> + Tag: optional> + Contact: optional> + source: + openapi: ticketing_v3.yml + FieldFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: ticketing_v3.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: ticketing_v3.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: ticketing_v3.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: ticketing_v3.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: ticketing_v3.yml + FieldMappingApiInstanceResponse: + properties: + Ticket: optional> + Comment: optional> + Project: optional> + Collection: optional> + User: optional> + Role: optional> + Account: optional> + Team: optional> + Attachment: optional> + Tag: optional> + Contact: optional> + source: + openapi: ticketing_v3.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: ticketing_v3.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: ticketing_v3.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: ticketing_v3.yml + FieldTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: ticketing_v3.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: ticketing_v3.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: ticketing_v3.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: ticketing_v3.yml + ItemFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - uuid + * `number` - url + * `date` - email + * `datetime` - phone + * `bool` - currency + * `list` - decimal + source: + openapi: ticketing_v3.yml + ItemSchema: + properties: + item_type: optional + item_format: optional + item_choices: optional> + source: + openapi: ticketing_v3.yml + ItemTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: ticketing_v3.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: ticketing_v3.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: ticketing_v3.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: ticketing_v3.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: ticketing_v3.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: ticketing_v3.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: ticketing_v3.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: ticketing_v3.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: ticketing_v3.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: ticketing_v3.yml + MultipartFormFieldRequestEncoding: + discriminated: false + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + union: + - EncodingEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: ticketing_v3.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedAccountList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedAttachmentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedCollectionList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedCommentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedContactList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedProjectList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedRemoteFieldClassList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedRoleList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedTagList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedTeamList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedTicketList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedUserList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PaginatedViewerList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: ticketing_v3.yml + PatchedTicketRequestStatus: + discriminated: false + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + union: + - TicketStatusEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + PatchedTicketRequestAccessLevel: + discriminated: false + docs: >- + The description of who is able to access a given ticket, or where access + is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + union: + - TicketAccessLevelEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + PatchedTicketRequest: + docs: |- + # The Ticket Object + ### Description + The `Ticket` object is used to represent a ticket, issue, task or case. + ### Usage Example + TODO + properties: + name: + type: optional + docs: The ticket's name. + assignees: + type: optional>> + docs: >- + The individual `Users` who are assigned to this ticket. This does not + include `Users` who just have view access to this ticket. To fetch all + `Users` and `Teams` that can access the ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + assigned_teams: + type: optional>> + docs: >- + The `Teams` that are assigned to this ticket. This does not include + `Teams` who just have view access to this ticket. To fetch all `Users` + and `Teams` that can access this ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + creator: + type: optional + docs: The user who created this ticket. + validation: + format: uuid + due_date: + type: optional + docs: The ticket's due date. + status: + type: optional + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + description: + type: optional + docs: >- + The ticket’s description. HTML version of description is mapped if + supported by the third-party platform. + collections: + type: optional>> + docs: The `Collections` that this `Ticket` is included in. + ticket_type: + type: optional + docs: >- + The sub category of the ticket within the 3rd party system. Examples + include incident, task, subtask or to-do. + account: + type: optional + docs: The account associated with the ticket. + validation: + format: uuid + contact: + type: optional + docs: The contact associated with the ticket. + validation: + format: uuid + parent_ticket: + type: optional + docs: The ticket's parent ticket. + validation: + format: uuid + access_level: + type: optional + docs: >- + The description of who is able to access a given ticket, or where + access is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + tags: optional>> + roles: optional>> + completed_at: + type: optional + docs: When the ticket was completed. + ticket_url: + type: optional + docs: The 3rd party url of the Ticket. + validation: + format: uri + maxLength: 2000 + priority: + type: optional + docs: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: ticketing_v3.yml + PriorityEnum: + enum: + - URGENT + - HIGH + - NORMAL + - LOW + docs: |- + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + source: + openapi: ticketing_v3.yml + Project: + docs: >- + # The Project Object + + ### Description + + Please use the `Collection` model. This model will be fully deprecated on + 3/30/2024. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: 'The project''s name. ' + description: + type: optional + docs: The project's description. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: ticketing_v3.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: ticketing_v3.yml + RemoteFieldRemoteFieldClass: + discriminated: false + union: + - string + - RemoteFieldClass + source: + openapi: ticketing_v3.yml + inline: true + RemoteField: + properties: + remote_field_class: RemoteFieldRemoteFieldClass + value: optional + source: + openapi: ticketing_v3.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: ticketing_v3.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: ticketing_v3.yml + RemoteFieldApiResponse: + properties: + Ticket: optional> + Comment: optional> + Project: optional> + Collection: optional> + User: optional> + Role: optional> + Account: optional> + Team: optional> + Attachment: optional> + Tag: optional> + Contact: optional> + source: + openapi: ticketing_v3.yml + RemoteFieldClassFieldChoicesItem: + properties: + value: optional + display_name: optional + source: + openapi: ticketing_v3.yml + inline: true + RemoteFieldClass: + properties: + id: optional + display_name: optional + remote_key_name: optional + description: optional + is_custom: optional + is_required: optional + field_type: optional + field_format: optional + field_choices: + type: optional> + access: read-only + item_schema: optional + source: + openapi: ticketing_v3.yml + RemoteFieldRequestRemoteFieldClass: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteFieldClass + source: + openapi: ticketing_v3.yml + inline: true + RemoteFieldRequest: + properties: + remote_field_class: RemoteFieldRequestRemoteFieldClass + value: optional + source: + openapi: ticketing_v3.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: ticketing_v3.yml + RemoteResponseResponseType: + discriminated: false + union: + - ResponseTypeEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: ticketing_v3.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: ticketing_v3.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: ticketing_v3.yml + RoleTicketActionsItem: + discriminated: false + union: + - TicketActionsEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + RoleTicketAccess: + discriminated: false + docs: |- + The level of Ticket access that a User with this Role can perform. + + * `ALL` - ALL + * `ASSIGNED_ONLY` - ASSIGNED_ONLY + * `TEAM_ONLY` - TEAM_ONLY + union: + - TicketAccessEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + Role: + docs: >- + # The Role Object + + ### Description + + The `Role` object is used to represent the set of actions & access that a + user with this role is allowed to perform. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The name of the Role. + ticket_actions: + type: optional>> + docs: >- + The set of actions that a User with this Role can perform. Possible + enum values include: `VIEW`, `CREATE`, `EDIT`, `DELETE`, `CLOSE`, and + `ASSIGN`. + ticket_access: + type: optional + docs: |- + The level of Ticket access that a User with this Role can perform. + + * `ALL` - ALL + * `ASSIGNED_ONLY` - ASSIGNED_ONLY + * `TEAM_ONLY` - TEAM_ONLY + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: ticketing_v3.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: ticketing_v3.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: ticketing_v3.yml + SyncStatusLastSyncResult: + discriminated: false + union: + - LastSyncResultEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + SyncStatusStatus: + discriminated: false + union: + - StatusFd5Enum + - string + source: + openapi: ticketing_v3.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: SyncStatusStatus + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: ticketing_v3.yml + Tag: + docs: |- + # The Tag Object + ### Description + The `Tag` object is used to represent a tag or label for a ticket. + + ### Usage Example + TODO + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + id: + type: optional + validation: + format: uuid + access: read-only + name: + type: optional + docs: The tag's name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + Team: + docs: >- + # The Team Object + + ### Description + + The `Team` object is used to represent one or more `Users` within the + company receiving the ticket. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The team's name. + description: + type: optional + docs: The team's description. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + TicketAssigneesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - User + source: + openapi: ticketing_v3.yml + inline: true + TicketAssignedTeamsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: ticketing_v3.yml + inline: true + TicketCreator: + discriminated: false + docs: The user who created this ticket. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: ticketing_v3.yml + inline: true + TicketStatus: + discriminated: false + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + union: + - TicketStatusEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + TicketCollectionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Collection + source: + openapi: ticketing_v3.yml + inline: true + TicketAccount: + discriminated: false + docs: The account associated with the ticket. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: ticketing_v3.yml + inline: true + TicketContact: + discriminated: false + docs: The contact associated with the ticket. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: ticketing_v3.yml + inline: true + TicketParentTicket: + discriminated: false + docs: The ticket's parent ticket. + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: ticketing_v3.yml + inline: true + TicketAttachmentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Attachment + source: + openapi: ticketing_v3.yml + inline: true + TicketAccessLevel: + discriminated: false + docs: >- + The description of who is able to access a given ticket, or where access + is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + union: + - TicketAccessLevelEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + TicketPriority: + discriminated: false + docs: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + union: + - PriorityEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + Ticket: + docs: |- + # The Ticket Object + ### Description + The `Ticket` object is used to represent a ticket, issue, task or case. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The ticket's name. + assignees: + type: optional>> + docs: >- + The individual `Users` who are assigned to this ticket. This does not + include `Users` who just have view access to this ticket. To fetch all + `Users` and `Teams` that can access the ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + assigned_teams: + type: optional>> + docs: >- + The `Teams` that are assigned to this ticket. This does not include + `Teams` who just have view access to this ticket. To fetch all `Users` + and `Teams` that can access this ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + creator: + type: optional + docs: The user who created this ticket. + due_date: + type: optional + docs: The ticket's due date. + status: + type: optional + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + description: + type: optional + docs: >- + The ticket’s description. HTML version of description is mapped if + supported by the third-party platform. + collections: + type: optional>> + docs: The `Collections` that this `Ticket` is included in. + ticket_type: + type: optional + docs: >- + The sub category of the ticket within the 3rd party system. Examples + include incident, task, subtask or to-do. + account: + type: optional + docs: The account associated with the ticket. + contact: + type: optional + docs: The contact associated with the ticket. + parent_ticket: + type: optional + docs: The ticket's parent ticket. + attachments: optional>> + access_level: + type: optional + docs: >- + The description of who is able to access a given ticket, or where + access is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + tags: optional>> + roles: optional>> + ticket_url: + type: optional + docs: The 3rd party url of the Ticket. + validation: + format: uri + maxLength: 2000 + priority: + type: optional + docs: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + remote_created_at: + type: optional + docs: When the third party's ticket was created. + remote_updated_at: + type: optional + docs: When the third party's ticket was updated. + completed_at: + type: optional + docs: When the ticket was completed. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + TicketAccessEnum: + enum: + - ALL + - ASSIGNED_ONLY + - TEAM_ONLY + docs: |- + * `ALL` - ALL + * `ASSIGNED_ONLY` - ASSIGNED_ONLY + * `TEAM_ONLY` - TEAM_ONLY + source: + openapi: ticketing_v3.yml + TicketAccessLevelEnum: + enum: + - COMPANY + - PUBLIC + - PRIVATE + - COLLECTION + docs: |- + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + * `COLLECTION` - COLLECTION + source: + openapi: ticketing_v3.yml + TicketActionsEnum: + enum: + - VIEW + - CREATE + - EDIT + - DELETE + - CLOSE + - ASSIGN + docs: |- + * `VIEW` - VIEW + * `CREATE` - CREATE + * `EDIT` - EDIT + * `DELETE` - DELETE + * `CLOSE` - CLOSE + * `ASSIGN` - ASSIGN + source: + openapi: ticketing_v3.yml + TicketRequestAssigneesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - User + source: + openapi: ticketing_v3.yml + inline: true + TicketRequestAssignedTeamsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: ticketing_v3.yml + inline: true + TicketRequestCreator: + discriminated: false + docs: The user who created this ticket. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: ticketing_v3.yml + inline: true + TicketRequestStatus: + discriminated: false + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + union: + - TicketStatusEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + TicketRequestCollectionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Collection + source: + openapi: ticketing_v3.yml + inline: true + TicketRequestAccount: + discriminated: false + docs: The account associated with the ticket. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: ticketing_v3.yml + inline: true + TicketRequestContact: + discriminated: false + docs: The contact associated with the ticket. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: ticketing_v3.yml + inline: true + TicketRequestParentTicket: + discriminated: false + docs: The ticket's parent ticket. + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: ticketing_v3.yml + inline: true + TicketRequestAttachmentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Attachment + source: + openapi: ticketing_v3.yml + inline: true + TicketRequestAccessLevel: + discriminated: false + docs: >- + The description of who is able to access a given ticket, or where access + is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + union: + - TicketAccessLevelEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + TicketRequestPriority: + discriminated: false + docs: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + union: + - PriorityEnum + - string + source: + openapi: ticketing_v3.yml + inline: true + TicketRequest: + docs: |- + # The Ticket Object + ### Description + The `Ticket` object is used to represent a ticket, issue, task or case. + ### Usage Example + TODO + properties: + name: + type: optional + docs: The ticket's name. + assignees: + type: optional>> + docs: >- + The individual `Users` who are assigned to this ticket. This does not + include `Users` who just have view access to this ticket. To fetch all + `Users` and `Teams` that can access the ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + assigned_teams: + type: optional>> + docs: >- + The `Teams` that are assigned to this ticket. This does not include + `Teams` who just have view access to this ticket. To fetch all `Users` + and `Teams` that can access this ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + creator: + type: optional + docs: The user who created this ticket. + due_date: + type: optional + docs: The ticket's due date. + status: + type: optional + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + description: + type: optional + docs: >- + The ticket’s description. HTML version of description is mapped if + supported by the third-party platform. + collections: + type: optional>> + docs: The `Collections` that this `Ticket` is included in. + ticket_type: + type: optional + docs: >- + The sub category of the ticket within the 3rd party system. Examples + include incident, task, subtask or to-do. + account: + type: optional + docs: The account associated with the ticket. + contact: + type: optional + docs: The contact associated with the ticket. + parent_ticket: + type: optional + docs: The ticket's parent ticket. + attachments: optional>> + access_level: + type: optional + docs: >- + The description of who is able to access a given ticket, or where + access is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + tags: optional>> + roles: optional>> + completed_at: + type: optional + docs: When the ticket was completed. + ticket_url: + type: optional + docs: The 3rd party url of the Ticket. + validation: + format: uri + maxLength: 2000 + priority: + type: optional + docs: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: ticketing_v3.yml + TicketResponse: + properties: + model: Ticket + warnings: list + errors: list + logs: optional> + source: + openapi: ticketing_v3.yml + TicketStatusEnum: + enum: + - OPEN + - CLOSED + - IN_PROGRESS + - ON_HOLD + docs: |- + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + source: + openapi: ticketing_v3.yml + TicketingAttachmentResponse: + properties: + model: Attachment + warnings: list + errors: list + logs: optional> + source: + openapi: ticketing_v3.yml + TicketingContactResponse: + properties: + model: Contact + warnings: list + errors: list + logs: optional> + source: + openapi: ticketing_v3.yml + UserTeamsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: ticketing_v3.yml + inline: true + UserRolesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Role + source: + openapi: ticketing_v3.yml + inline: true + User: + docs: >- + # The User Object + + ### Description + + The `User` object is used to represent a user with a login to the + ticketing system. + + Users are either assignees who are directly responsible or a viewer on a + `Ticket`/ `Collection`. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The user's name. + email_address: + type: optional + docs: The user's email address. + is_active: + type: optional + docs: Whether or not the user is active. + teams: optional>> + roles: optional>> + avatar: + type: optional + docs: The user's avatar picture. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: ticketing_v3.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: ticketing_v3.yml + ViewerTeam: + discriminated: false + docs: The Team this Viewer belongs to. + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: ticketing_v3.yml + inline: true + ViewerUser: + discriminated: false + docs: The User this Viewer belongs to. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: ticketing_v3.yml + inline: true + Viewer: + docs: |- + # The Viewer Object + ### Description + The `Viewer` object is used to represent a User or Team within a company. + + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + team: + type: optional + docs: The Team this Viewer belongs to. + user: + type: optional + docs: The User this Viewer belongs to. + source: + openapi: ticketing_v3.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: ticketing_v3.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/accountDetails.yml b/.mock/definition/Ticketing/accountDetails.yml new file mode 100644 index 00000000..48a7a292 --- /dev/null +++ b/.mock/definition/Ticketing/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ticketing/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: ticketing_v3.yml + response: + docs: '' + type: ticketingRoot.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/accountToken.yml b/.mock/definition/Ticketing/accountToken.yml new file mode 100644 index 00000000..8bf45723 --- /dev/null +++ b/.mock/definition/Ticketing/accountToken.yml @@ -0,0 +1,44 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ticketing/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: ticketing_v3.yml + path-parameters: + public_token: string + response: + docs: '' + type: ticketingRoot.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/accounts.yml b/.mock/definition/Ticketing/accounts.yml new file mode 100644 index 00000000..cfcde4a4 --- /dev/null +++ b/.mock/definition/Ticketing/accounts.yml @@ -0,0 +1,146 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/accounts + method: GET + auth: true + docs: Returns a list of `Account` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: AccountsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: ticketingRoot.PaginatedAccountList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Waystar Royco + domains: + - waystar-royco.com + - royco.com + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /ticketing/v1/accounts/{id} + method: GET + auth: true + docs: Returns an `Account` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: AccountsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: ticketingRoot.Account + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Waystar Royco + domains: + - waystar-royco.com + - royco.com + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/asyncPassthrough.yml b/.mock/definition/Ticketing/asyncPassthrough.yml new file mode 100644 index 00000000..bf2a6d70 --- /dev/null +++ b/.mock/definition/Ticketing/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ticketing/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: ticketing_v3.yml + request: + body: ticketingRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: ticketingRoot.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /ticketing/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: ticketing_v3.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: ticketing_v3.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - ticketingRoot.RemoteResponse + - string + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/attachments.yml b/.mock/definition/Ticketing/attachments.yml new file mode 100644 index 00000000..dff8552a --- /dev/null +++ b/.mock/definition/Ticketing/attachments.yml @@ -0,0 +1,452 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/attachments + method: GET + auth: true + docs: Returns a list of `Attachment` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: AttachmentsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_created_after: + type: optional + docs: >- + If provided, will only return attachments created in the third + party platform after this datetime. + remote_id: + type: optional + docs: The API provider's ID for the given object. + ticket_id: + type: optional + docs: If provided, will only return comments for this ticket. + response: + docs: '' + type: ticketingRoot.PaginatedAttachmentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Screenshot.png + ticket: ticket + file_url: http://alturl.com/p749b + content_type: jpeg + uploaded_by: 28b54125-287f-494d-965e-3c5b330c9a68 + remote_created_at: '2022-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + create: + path: /ticketing/v1/attachments + method: POST + auth: true + docs: Creates an `Attachment` object with the given values. + source: + openapi: ticketing_v3.yml + request: + name: TicketingAttachmentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: ticketingRoot.AttachmentRequest + content-type: application/json + response: + docs: '' + type: ticketingRoot.TicketingAttachmentResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Screenshot.png + ticket: ticket + file_url: http://alturl.com/p749b + content_type: jpeg + uploaded_by: 28b54125-287f-494d-965e-3c5b330c9a68 + remote_created_at: '2022-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ticketing/v1/attachments/{id} + method: GET + auth: true + docs: Returns an `Attachment` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: AttachmentsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: ticketingRoot.Attachment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Screenshot.png + ticket: ticket + file_url: http://alturl.com/p749b + content_type: jpeg + uploaded_by: 28b54125-287f-494d-965e-3c5b330c9a68 + remote_created_at: '2022-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + downloadRetrieve: + path: /ticketing/v1/attachments/{id}/download + method: GET + auth: true + docs: Returns the `File` content with the given `id` as a stream of bytes. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: AttachmentsDownloadRetrieveRequest + query-parameters: + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + mime_type: + type: optional + docs: >- + If provided, specifies the export format of the file to be + downloaded. For information on supported export formats, please + refer to our export format help center article. + response: + docs: '' + type: file + status-code: 200 + metaPostRetrieve: + path: /ticketing/v1/attachments/meta/post + method: GET + auth: true + docs: Returns metadata for `TicketingAttachment` POSTs. + source: + openapi: ticketing_v3.yml + response: + docs: '' + type: ticketingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/auditTrail.yml b/.mock/definition/Ticketing/auditTrail.yml new file mode 100644 index 00000000..0c68bdad --- /dev/null +++ b/.mock/definition/Ticketing/auditTrail.yml @@ -0,0 +1,98 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, + `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, + `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: ticketingRoot.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/availableActions.yml b/.mock/definition/Ticketing/availableActions.yml new file mode 100644 index 00000000..bfca9de5 --- /dev/null +++ b/.mock/definition/Ticketing/availableActions.yml @@ -0,0 +1,50 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ticketing/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: ticketing_v3.yml + response: + docs: '' + type: ticketingRoot.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/collections.yml b/.mock/definition/Ticketing/collections.yml new file mode 100644 index 00000000..8e47ee01 --- /dev/null +++ b/.mock/definition/Ticketing/collections.yml @@ -0,0 +1,262 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/collections + method: GET + auth: true + docs: Returns a list of `Collection` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: CollectionsListRequest + query-parameters: + collection_type: + type: optional + docs: If provided, will only return collections of the given type. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + parent_collection_id: + type: optional + docs: >- + If provided, will only return collections whose parent collection + matches the given id. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: ticketingRoot.PaginatedCollectionList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Q1 Platform + description: For tracking all tasks related to Platform for Q1 + access_level: PRIVATE + collection_type: LIST + parent_collection: parent_collection + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + viewersList: + path: /ticketing/v1/collections/{collection_id}/viewers + method: GET + auth: true + docs: >- + Returns a list of `Viewer` objects that point to a User id or Team id + that is either an assignee or viewer on a `Collection` with the given + id. [Learn + more.](https://help.merge.dev/en/articles/10333658-ticketing-access-control-list-acls) + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + path-parameters: + collection_id: string + request: + name: CollectionsViewersListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: ticketingRoot.PaginatedViewerList + status-code: 200 + examples: + - path-parameters: + collection_id: collection_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + team: team + user: user + retrieve: + path: /ticketing/v1/collections/{id} + method: GET + auth: true + docs: Returns a `Collection` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: CollectionsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: ticketingRoot.Collection + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Q1 Platform + description: For tracking all tasks related to Platform for Q1 + access_level: PRIVATE + collection_type: LIST + parent_collection: parent_collection + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: ticketing_v3.yml +types: + CollectionsViewersListRequestExpandItem: + enum: + - team + - user + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/comments.yml b/.mock/definition/Ticketing/comments.yml new file mode 100644 index 00000000..cecddc38 --- /dev/null +++ b/.mock/definition/Ticketing/comments.yml @@ -0,0 +1,451 @@ +types: + CommentsListRequestExpandItem: + enum: + - contact + - ticket + - user + source: + openapi: ticketing_v3.yml + CommentsRetrieveRequestExpandItem: + enum: + - contact + - ticket + - user + source: + openapi: ticketing_v3.yml +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/comments + method: GET + auth: true + docs: Returns a list of `Comment` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: CommentsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_created_after: + type: optional + docs: >- + If provided, will only return Comments created in the third party + platform after this datetime. + remote_id: + type: optional + docs: The API provider's ID for the given object. + ticket_id: + type: optional + docs: If provided, will only return comments for this ticket. + response: + docs: '' + type: ticketingRoot.PaginatedCommentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + contact: contact + body: >- + When will these integrations be done? You all should use + Merge. + html_body: >- + When will these integrations be done? You all should use + Merge. + ticket: ticket + is_private: true + remote_created_at: '1990-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + create: + path: /ticketing/v1/comments + method: POST + auth: true + docs: Creates a `Comment` object with the given values. + source: + openapi: ticketing_v3.yml + request: + name: CommentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: ticketingRoot.CommentRequest + content-type: application/json + response: + docs: '' + type: ticketingRoot.CommentResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + contact: contact + body: >- + When will these integrations be done? You all should use + Merge. + html_body: >- + When will these integrations be done? You all should use + Merge. + ticket: ticket + is_private: true + remote_created_at: '1990-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ticketing/v1/comments/{id} + method: GET + auth: true + docs: Returns a `Comment` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: CommentsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: ticketingRoot.Comment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + contact: contact + body: When will these integrations be done? You all should use Merge. + html_body: >- + When will these integrations be done? You all should use + Merge. + ticket: ticket + is_private: true + remote_created_at: '1990-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + metaPostRetrieve: + path: /ticketing/v1/comments/meta/post + method: GET + auth: true + docs: Returns metadata for `Comment` POSTs. + source: + openapi: ticketing_v3.yml + response: + docs: '' + type: ticketingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/contacts.yml b/.mock/definition/Ticketing/contacts.yml new file mode 100644 index 00000000..e0fd3ff7 --- /dev/null +++ b/.mock/definition/Ticketing/contacts.yml @@ -0,0 +1,412 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/contacts + method: GET + auth: true + docs: Returns a list of `Contact` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: ContactsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: ticketingRoot.PaginatedContactList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cousin Greg + email_address: greg@waystar-royco.com + phone_number: '5108890293' + details: Executive Assistant to Tom Wambsgans + account: account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + create: + path: /ticketing/v1/contacts + method: POST + auth: true + docs: Creates a `Contact` object with the given values. + source: + openapi: ticketing_v3.yml + request: + name: TicketingContactEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: ticketingRoot.ContactRequest + content-type: application/json + response: + docs: '' + type: ticketingRoot.TicketingContactResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cousin Greg + email_address: greg@waystar-royco.com + phone_number: '5108890293' + details: Executive Assistant to Tom Wambsgans + account: account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ticketing/v1/contacts/{id} + method: GET + auth: true + docs: Returns a `Contact` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: ContactsRetrieveRequest + query-parameters: + expand: + type: optional> + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: ticketingRoot.Contact + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cousin Greg + email_address: greg@waystar-royco.com + phone_number: '5108890293' + details: Executive Assistant to Tom Wambsgans + account: account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + metaPostRetrieve: + path: /ticketing/v1/contacts/meta/post + method: GET + auth: true + docs: Returns metadata for `TicketingContact` POSTs. + source: + openapi: ticketing_v3.yml + response: + docs: '' + type: ticketingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/deleteAccount.yml b/.mock/definition/Ticketing/deleteAccount.yml new file mode 100644 index 00000000..42a1724a --- /dev/null +++ b/.mock/definition/Ticketing/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /ticketing/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: ticketing_v3.yml + examples: + - headers: {} + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/fieldMapping.yml b/.mock/definition/Ticketing/fieldMapping.yml new file mode 100644 index 00000000..f62911c5 --- /dev/null +++ b/.mock/definition/Ticketing/fieldMapping.yml @@ -0,0 +1,722 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /ticketing/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: ticketing_v3.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: ticketingRoot.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Ticket: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Comment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Project: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Collection: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + User: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Role: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Account: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Team: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Attachment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Tag: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Contact: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /ticketing/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: ticketing_v3.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: ticketingRoot.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /ticketing/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: ticketing_v3.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: ticketingRoot.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /ticketing/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: ticketing_v3.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: ticketingRoot.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /ticketing/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: ticketing_v3.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: ticketingRoot.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Ticket: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Comment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Project: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Collection: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + User: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Role: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Account: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Team: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Attachment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Tag: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Contact: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /ticketing/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: ticketing_v3.yml + response: + docs: '' + type: ticketingRoot.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Ticket: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Comment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Project: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Collection: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + User: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Role: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Account: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Team: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Attachment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Tag: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Contact: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/forceResync.yml b/.mock/definition/Ticketing/forceResync.yml new file mode 100644 index 00000000..cd2b747a --- /dev/null +++ b/.mock/definition/Ticketing/forceResync.yml @@ -0,0 +1,37 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /ticketing/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: ticketing_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: Ticket + model_id: ticketing.Ticket + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/generateKey.yml b/.mock/definition/Ticketing/generateKey.yml new file mode 100644 index 00000000..713f090d --- /dev/null +++ b/.mock/definition/Ticketing/generateKey.yml @@ -0,0 +1,36 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ticketing/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: ticketing_v3.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: ticketingRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/issues.yml b/.mock/definition/Ticketing/issues.yml new file mode 100644 index 00000000..f96e9100 --- /dev/null +++ b/.mock/definition/Ticketing/issues.yml @@ -0,0 +1,133 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: ticketing_v3.yml +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: ticketingRoot.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /ticketing/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + response: + docs: '' + type: ticketingRoot.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/linkToken.yml b/.mock/definition/Ticketing/linkToken.yml new file mode 100644 index 00000000..121fae94 --- /dev/null +++ b/.mock/definition/Ticketing/linkToken.yml @@ -0,0 +1,152 @@ +imports: + ticketingRoot: __package__.yml +types: + EndUserDetailsRequestLanguage: + discriminated: false + docs: >- + The following subset of IETF language tags can be used to configure + localization. + + + * `en` - en + + * `de` - de + union: + - ticketingRoot.LanguageEnum + - string + source: + openapi: ticketing_v3.yml + inline: true +service: + auth: false + base-path: '' + endpoints: + create: + path: /ticketing/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: ticketing_v3.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: ticketingRoot.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/linkedAccounts.yml b/.mock/definition/Ticketing/linkedAccounts.yml new file mode 100644 index 00000000..cde7bb73 --- /dev/null +++ b/.mock/definition/Ticketing/linkedAccounts.yml @@ -0,0 +1,152 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: ticketing_v3.yml +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: ticketingRoot.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/passthrough.yml b/.mock/definition/Ticketing/passthrough.yml new file mode 100644 index 00000000..f8de1a3c --- /dev/null +++ b/.mock/definition/Ticketing/passthrough.yml @@ -0,0 +1,40 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ticketing/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: ticketing_v3.yml + request: + body: ticketingRoot.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: ticketingRoot.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/projects.yml b/.mock/definition/Ticketing/projects.yml new file mode 100644 index 00000000..531e496f --- /dev/null +++ b/.mock/definition/Ticketing/projects.yml @@ -0,0 +1,227 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/projects + method: GET + auth: true + docs: Returns a list of `Project` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: ProjectsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: ticketingRoot.PaginatedProjectList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Q1 Platform + description: For tracking all tasks related to Platform for Q1 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /ticketing/v1/projects/{id} + method: GET + auth: true + docs: Returns a `Project` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: ProjectsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: ticketingRoot.Project + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Q1 Platform + description: For tracking all tasks related to Platform for Q1 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + usersList: + path: /ticketing/v1/projects/{parent_id}/users + method: GET + auth: true + docs: Returns a list of `User` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + path-parameters: + parent_id: string + request: + name: ProjectsUsersListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: ticketingRoot.PaginatedUserList + status-code: 200 + examples: + - path-parameters: + parent_id: parent_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email_address: help@merge.dev + is_active: true + teams: + - 28b54125-287f-494d-965e-3c5b330c9a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + roles: + - 23454124-387f-494d-265e-345b330c9123 + avatar: https://merge.dev/user_profile_pic.png + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + source: + openapi: ticketing_v3.yml +types: + ProjectsUsersListRequestExpandItem: + enum: + - roles + - teams + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/regenerateKey.yml b/.mock/definition/Ticketing/regenerateKey.yml new file mode 100644 index 00000000..eafa7c63 --- /dev/null +++ b/.mock/definition/Ticketing/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ticketing/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: ticketing_v3.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: ticketingRoot.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/roles.yml b/.mock/definition/Ticketing/roles.yml new file mode 100644 index 00000000..396ae69f --- /dev/null +++ b/.mock/definition/Ticketing/roles.yml @@ -0,0 +1,148 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/roles + method: GET + auth: true + docs: Returns a list of `Role` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: RolesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: ticketingRoot.PaginatedRoleList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 23454124-387f-494d-265e-345b330c9123 + remote_id: '123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Member + ticket_actions: + - VIEW + - EDIT + - CREATE + ticket_access: ALL + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /ticketing/v1/roles/{id} + method: GET + auth: true + docs: Returns a `Role` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: RolesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: ticketingRoot.Role + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 23454124-387f-494d-265e-345b330c9123 + remote_id: '123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Member + ticket_actions: + - VIEW + - EDIT + - CREATE + ticket_access: ALL + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/scopes.yml b/.mock/definition/Ticketing/scopes.yml new file mode 100644 index 00000000..e0fe30d6 --- /dev/null +++ b/.mock/definition/Ticketing/scopes.yml @@ -0,0 +1,161 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /ticketing/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: ticketing_v3.yml + response: + docs: '' + type: ticketingRoot.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /ticketing/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: ticketing_v3.yml + response: + docs: '' + type: ticketingRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /ticketing/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: ticketing_v3.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: >- + list + content-type: application/json + response: + docs: '' + type: ticketingRoot.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/syncStatus.yml b/.mock/definition/Ticketing/syncStatus.yml new file mode 100644 index 00000000..52775950 --- /dev/null +++ b/.mock/definition/Ticketing/syncStatus.yml @@ -0,0 +1,59 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: ticketingRoot.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: Ticket + model_id: ticketing.Ticket + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/tags.yml b/.mock/definition/Ticketing/tags.yml new file mode 100644 index 00000000..ada3d420 --- /dev/null +++ b/.mock/definition/Ticketing/tags.yml @@ -0,0 +1,138 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/tags + method: GET + auth: true + docs: Returns a list of `Tag` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: TagsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: ticketingRoot.PaginatedTagList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + id: 17a54124-287f-494d-965e-3c5b330c9a68 + name: Ticketing API + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /ticketing/v1/tags/{id} + method: GET + auth: true + docs: Returns a `Tag` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: TagsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: ticketingRoot.Tag + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + id: 17a54124-287f-494d-965e-3c5b330c9a68 + name: Ticketing API + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/teams.yml b/.mock/definition/Ticketing/teams.yml new file mode 100644 index 00000000..9b9cf315 --- /dev/null +++ b/.mock/definition/Ticketing/teams.yml @@ -0,0 +1,140 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/teams + method: GET + auth: true + docs: Returns a list of `Team` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: TeamsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: ticketingRoot.PaginatedTeamList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Platform + description: Platform and Integrations Team + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /ticketing/v1/teams/{id} + method: GET + auth: true + docs: Returns a `Team` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: TeamsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: ticketingRoot.Team + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Platform + description: Platform and Integrations Team + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/tickets.yml b/.mock/definition/Ticketing/tickets.yml new file mode 100644 index 00000000..f6b39b81 --- /dev/null +++ b/.mock/definition/Ticketing/tickets.yml @@ -0,0 +1,1159 @@ +types: + TicketsListRequestExpandItem: + enum: + - account + - assigned_teams + - assignees + - attachments + - collections + - contact + - creator + - parent_ticket + source: + openapi: ticketing_v3.yml + TicketsListRequestPriority: + enum: + - HIGH + - LOW + - NORMAL + - URGENT + source: + openapi: ticketing_v3.yml + TicketsListRequestRemoteFields: + enum: + - priority + - value: priority,status + name: PriorityStatus + - value: priority,status,ticket_type + name: PriorityStatusTicketType + - value: priority,ticket_type + name: PriorityTicketType + - status + - value: status,ticket_type + name: StatusTicketType + - ticket_type + source: + openapi: ticketing_v3.yml + TicketsListRequestShowEnumOrigins: + enum: + - priority + - value: priority,status + name: PriorityStatus + - value: priority,status,ticket_type + name: PriorityStatusTicketType + - value: priority,ticket_type + name: PriorityTicketType + - status + - value: status,ticket_type + name: StatusTicketType + - ticket_type + source: + openapi: ticketing_v3.yml + TicketsRetrieveRequestExpandItem: + enum: + - account + - assigned_teams + - assignees + - attachments + - collections + - contact + - creator + - parent_ticket + source: + openapi: ticketing_v3.yml + TicketsRetrieveRequestRemoteFields: + enum: + - priority + - value: priority,status + name: PriorityStatus + - value: priority,status,ticket_type + name: PriorityStatusTicketType + - value: priority,ticket_type + name: PriorityTicketType + - status + - value: status,ticket_type + name: StatusTicketType + - ticket_type + source: + openapi: ticketing_v3.yml + TicketsRetrieveRequestShowEnumOrigins: + enum: + - priority + - value: priority,status + name: PriorityStatus + - value: priority,status,ticket_type + name: PriorityStatusTicketType + - value: priority,ticket_type + name: PriorityTicketType + - status + - value: status,ticket_type + name: StatusTicketType + - ticket_type + source: + openapi: ticketing_v3.yml + TicketsViewersListRequestExpandItem: + enum: + - team + - user + source: + openapi: ticketing_v3.yml +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/tickets + method: GET + auth: true + docs: Returns a list of `Ticket` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: TicketsListRequest + query-parameters: + account_id: + type: optional + docs: If provided, will only return tickets for this account. + assignee_ids: + type: optional + docs: >- + If provided, will only return tickets assigned to the + assignee_ids; multiple assignee_ids can be separated by commas. + collection_ids: + type: optional + docs: >- + If provided, will only return tickets assigned to the + collection_ids; multiple collection_ids can be separated by + commas. + completed_after: + type: optional + docs: >- + If provided, will only return tickets completed after this + datetime. + completed_before: + type: optional + docs: >- + If provided, will only return tickets completed before this + datetime. + contact_id: + type: optional + docs: If provided, will only return tickets for this contact. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + creator_id: + type: optional + docs: If provided, will only return tickets created by this creator_id. + cursor: + type: optional + docs: The pagination cursor value. + due_after: + type: optional + docs: If provided, will only return tickets due after this datetime. + due_before: + type: optional + docs: If provided, will only return tickets due before this datetime. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + parent_ticket_id: + type: optional + docs: If provided, will only return sub tickets of the parent_ticket_id. + priority: + type: optional + docs: |- + If provided, will only return tickets of this priority. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + remote_created_after: + type: optional + docs: >- + If provided, will only return tickets created in the third party + platform after this datetime. + remote_created_before: + type: optional + docs: >- + If provided, will only return tickets created in the third party + platform before this datetime. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + remote_updated_after: + type: optional + docs: >- + If provided, will only return tickets updated in the third party + platform after this datetime. + remote_updated_before: + type: optional + docs: >- + If provided, will only return tickets updated in the third party + platform before this datetime. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: If provided, will only return tickets of this status. + tags: + type: optional + docs: >- + If provided, will only return tickets matching the tags; multiple + tags can be separated by commas. + ticket_type: + type: optional + docs: If provided, will only return tickets of this type. + ticket_url: + type: optional + docs: >- + If provided, will only return tickets where the URL matches or + contains the substring + validation: + format: uri + response: + docs: '' + type: ticketingRoot.PaginatedTicketList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Please add more integrations + assignees: + - 17a54124-287f-494d-965e-3c5b330c9a68 + assigned_teams: + - 4857c306-c1f9-489e-a6b6-90902f736dfe + creator: creator + due_date: '2022-10-11T00:00:00Z' + status: OPEN + description: >- + Can you please add more integrations? It'll make syncing + data much easier! + collections: + - fb8c55b6-1cb8-4b4c-9fb6-17924231619d + ticket_type: incident + account: account + contact: contact + parent_ticket: parent_ticket + attachments: + - 42747df1-95e7-46e2-93cc-66f1191edca5 + - 92f972d0-2526-434b-9409-4c3b468e08f0 + access_level: COMPANY + tags: + - enterprise + - other-tag + roles: + - 21a54124-397f-494d-985e-3c5b330b8a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + ticket_url: https://thirdpartysoftware.com/project/3/issue/1 + priority: URGENT + remote_created_at: '2021-11-10T00:00:00Z' + remote_updated_at: '2021-12-09T00:00:00Z' + completed_at: '2021-12-09T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + remote_fields: + - remote_field_class: remote_field_class + create: + path: /ticketing/v1/tickets + method: POST + auth: true + docs: Creates a `Ticket` object with the given values. + source: + openapi: ticketing_v3.yml + request: + name: TicketEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: ticketingRoot.TicketRequest + content-type: application/json + response: + docs: '' + type: ticketingRoot.TicketResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Please add more integrations + assignees: + - 17a54124-287f-494d-965e-3c5b330c9a68 + assigned_teams: + - 4857c306-c1f9-489e-a6b6-90902f736dfe + creator: creator + due_date: '2022-10-11T00:00:00Z' + status: OPEN + description: >- + Can you please add more integrations? It'll make syncing data + much easier! + collections: + - fb8c55b6-1cb8-4b4c-9fb6-17924231619d + ticket_type: incident + account: account + contact: contact + parent_ticket: parent_ticket + attachments: + - 42747df1-95e7-46e2-93cc-66f1191edca5 + - 92f972d0-2526-434b-9409-4c3b468e08f0 + access_level: COMPANY + tags: + - enterprise + - other-tag + roles: + - 21a54124-397f-494d-985e-3c5b330b8a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + ticket_url: https://thirdpartysoftware.com/project/3/issue/1 + priority: URGENT + remote_created_at: '2021-11-10T00:00:00Z' + remote_updated_at: '2021-12-09T00:00:00Z' + completed_at: '2021-12-09T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ticketing/v1/tickets/{id} + method: GET + auth: true + docs: Returns a `Ticket` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: TicketsRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: ticketingRoot.Ticket + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Please add more integrations + assignees: + - 17a54124-287f-494d-965e-3c5b330c9a68 + assigned_teams: + - 4857c306-c1f9-489e-a6b6-90902f736dfe + creator: creator + due_date: '2022-10-11T00:00:00Z' + status: OPEN + description: >- + Can you please add more integrations? It'll make syncing data + much easier! + collections: + - fb8c55b6-1cb8-4b4c-9fb6-17924231619d + ticket_type: incident + account: account + contact: contact + parent_ticket: parent_ticket + attachments: + - 42747df1-95e7-46e2-93cc-66f1191edca5 + - 92f972d0-2526-434b-9409-4c3b468e08f0 + access_level: COMPANY + tags: + - enterprise + - other-tag + roles: + - 21a54124-397f-494d-985e-3c5b330b8a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + ticket_url: https://thirdpartysoftware.com/project/3/issue/1 + priority: URGENT + remote_created_at: '2021-11-10T00:00:00Z' + remote_updated_at: '2021-12-09T00:00:00Z' + completed_at: '2021-12-09T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /ticketing/v1/tickets/{id} + method: PATCH + auth: true + docs: Updates a `Ticket` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: PatchedTicketEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: ticketingRoot.PatchedTicketRequest + content-type: application/json + response: + docs: '' + type: ticketingRoot.TicketResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Please add more integrations + assignees: + - 17a54124-287f-494d-965e-3c5b330c9a68 + assigned_teams: + - 4857c306-c1f9-489e-a6b6-90902f736dfe + creator: creator + due_date: '2022-10-11T00:00:00Z' + status: OPEN + description: >- + Can you please add more integrations? It'll make syncing data + much easier! + collections: + - fb8c55b6-1cb8-4b4c-9fb6-17924231619d + ticket_type: incident + account: account + contact: contact + parent_ticket: parent_ticket + attachments: + - 42747df1-95e7-46e2-93cc-66f1191edca5 + - 92f972d0-2526-434b-9409-4c3b468e08f0 + access_level: COMPANY + tags: + - enterprise + - other-tag + roles: + - 21a54124-397f-494d-985e-3c5b330b8a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + ticket_url: https://thirdpartysoftware.com/project/3/issue/1 + priority: URGENT + remote_created_at: '2021-11-10T00:00:00Z' + remote_updated_at: '2021-12-09T00:00:00Z' + completed_at: '2021-12-09T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + viewersList: + path: /ticketing/v1/tickets/{ticket_id}/viewers + method: GET + auth: true + docs: >- + Returns a list of `Viewer` objects that point to a User id or Team id + that is either an assignee or viewer on a `Ticket` with the given id. + [Learn + more.](https://help.merge.dev/en/articles/10333658-ticketing-access-control-list-acls) + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + path-parameters: + ticket_id: string + request: + name: TicketsViewersListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: ticketingRoot.PaginatedViewerList + status-code: 200 + examples: + - path-parameters: + ticket_id: ticket_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + team: team + user: user + metaPatchRetrieve: + path: /ticketing/v1/tickets/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Ticket` PATCHs. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + response: + docs: '' + type: ticketingRoot.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /ticketing/v1/tickets/meta/post + method: GET + auth: true + docs: Returns metadata for `Ticket` POSTs. + source: + openapi: ticketing_v3.yml + request: + name: TicketsMetaPostRetrieveRequest + query-parameters: + collection_id: + type: optional + docs: If provided, will only return tickets for this collection. + ticket_type: + type: optional + docs: If provided, will only return tickets for this ticket type. + response: + docs: '' + type: ticketingRoot.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /ticketing/v1/tickets/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: TicketsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + ids: + type: optional + docs: >- + If provided, will only return remote field classes with the `ids` + in this list + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: ticketingRoot.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/users.yml b/.mock/definition/Ticketing/users.yml new file mode 100644 index 00000000..d4881606 --- /dev/null +++ b/.mock/definition/Ticketing/users.yml @@ -0,0 +1,187 @@ +types: + UsersListRequestExpandItem: + enum: + - roles + - teams + source: + openapi: ticketing_v3.yml + UsersRetrieveRequestExpandItem: + enum: + - roles + - teams + source: + openapi: ticketing_v3.yml +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/users + method: GET + auth: true + docs: Returns a list of `User` objects. + pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + source: + openapi: ticketing_v3.yml + request: + name: UsersListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email_address: + type: optional + docs: >- + If provided, will only return users with emails equal to this + value (case insensitive). + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + team: + type: optional + docs: If provided, will only return users matching in this team. + response: + docs: '' + type: ticketingRoot.PaginatedUserList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email_address: help@merge.dev + is_active: true + teams: + - 28b54125-287f-494d-965e-3c5b330c9a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + roles: + - 23454124-387f-494d-265e-345b330c9123 + avatar: https://merge.dev/user_profile_pic.png + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /ticketing/v1/users/{id} + method: GET + auth: true + docs: Returns a `User` object with the given `id`. + source: + openapi: ticketing_v3.yml + path-parameters: + id: string + request: + name: UsersRetrieveRequest + query-parameters: + expand: + type: optional + allow-multiple: true + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: ticketingRoot.User + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email_address: help@merge.dev + is_active: true + teams: + - 28b54125-287f-494d-965e-3c5b330c9a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + roles: + - 23454124-387f-494d-265e-345b330c9123 + avatar: https://merge.dev/user_profile_pic.png + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/Ticketing/webhookReceivers.yml b/.mock/definition/Ticketing/webhookReceivers.yml new file mode 100644 index 00000000..38154a43 --- /dev/null +++ b/.mock/definition/Ticketing/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + ticketingRoot: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: ticketing_v3.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /ticketing/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: ticketing_v3.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: ticketingRoot.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: ticketing_v3.yml diff --git a/.mock/definition/__package__.yml b/.mock/definition/__package__.yml new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/.mock/definition/__package__.yml @@ -0,0 +1 @@ +{} diff --git a/.mock/definition/api.yml b/.mock/definition/api.yml new file mode 100644 index 00000000..062482b6 --- /dev/null +++ b/.mock/definition/api.yml @@ -0,0 +1,21 @@ +name: api +error-discrimination: + strategy: status-code +display-name: Merge Accounting API +environments: + Production: https://api.merge.dev/api + Production_EU: https://api-eu.merge.dev/api + Sandbox: https://api-sandbox.merge.dev/api +default-environment: Production +default-url: api +headers: + X-Account-Token: + type: optional + name: accountToken + docs: Token identifying the end user. +auth-schemes: + BearerAuthScheme: + scheme: bearer + token: + name: api_key +auth: BearerAuthScheme diff --git a/.mock/fern.config.json b/.mock/fern.config.json new file mode 100644 index 00000000..c4faf103 --- /dev/null +++ b/.mock/fern.config.json @@ -0,0 +1,4 @@ +{ + "organization" : "merge", + "version" : "0.63.28" +} \ No newline at end of file diff --git a/.mock/filestorage_v3.yml b/.mock/filestorage_v3.yml new file mode 100644 index 00000000..8ccd8e84 --- /dev/null +++ b/.mock/filestorage_v3.yml @@ -0,0 +1,5574 @@ +openapi: 3.0.3 +info: + title: Merge File Storage API + version: '1.0' + description: The unified API for building rich integrations with multiple File Storage + platforms. + contact: + name: Merge Team + url: https://www.merge.dev/ + email: hello@merge.dev +paths: + /filestorage/v1/account-details: + get: + operationId: account_details_retrieve + description: Get details for a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - account-details + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountDetails' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/account-token/{public_token}: + get: + operationId: account_token_retrieve + description: Returns the account token for the end user with the provided public + token. + parameters: + - in: path + name: public_token + schema: + type: string + required: true + tags: + - account-token + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/async-passthrough: + post: + operationId: async_passthrough_create + description: Asynchronously pull data from an endpoint not currently supported + by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - async-passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncPassthroughReciept' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/async-passthrough/{async_passthrough_receipt_id}: + get: + operationId: async_passthrough_retrieve + description: Retrieves data from earlier async-passthrough POST request + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: async_passthrough_receipt_id + schema: + type: string + format: uuid + required: true + tags: + - async-passthrough + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/RemoteResponse' + - type: string + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/audit-trail: + get: + operationId: audit_trail_list + description: Gets a list of audit trail events. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include audit trail events that occurred + before this time + - in: query + name: event_type + schema: + type: string + description: 'If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, + `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, + `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, + `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, + `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, + `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, + `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED`' + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include audit trail events that occurred + after this time + - in: query + name: user_email + schema: + type: string + description: If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's email + at the time of the event, and may not be their current email. + tags: + - audit-trail + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAuditLogEventList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/available-actions: + get: + operationId: available_actions_retrieve + description: Returns a list of models and actions available for an account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - available-actions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AvailableActions' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/default-scopes: + get: + operationId: default_scopes_retrieve + description: Get the default permissions for Merge Common Models and fields + across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/delete-account: + post: + operationId: delete_account_delete + description: Delete a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - delete-account + security: + - tokenAuth: [] + responses: + '200': + description: No response body + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/drives: + get: + operationId: drives_list + description: Returns a list of `Drive` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: name + schema: + type: string + nullable: true + description: If provided, will only return drives with this name. This performs + an exact match. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - drives + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDriveList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/drives/{id}: + get: + operationId: drives_retrieve + description: Returns a `Drive` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - drives + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Drive' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/field-mappings: + get: + operationId: field_mappings_retrieve + description: Get all Field Mappings for this Linked Account. Field Mappings + are mappings between third-party Remote Fields and user defined Merge fields. + [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingApiInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: field_mappings_create + description: Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to sync + **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/field-mappings/{field_mapping_id}: + patch: + operationId: field_mappings_partial_update + description: Create or update existing Field Mappings for a Linked Account. + Changes will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + delete: + operationId: field_mappings_destroy + description: Deletes Field Mappings for a Linked Account. All data related to + this Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked Account + to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '204': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/files: + get: + operationId: files_list + description: Returns a list of `File` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: drive_id + schema: + type: string + description: Specifying a drive id returns only the files in that drive. Specifying + null returns only the files outside the top-level drive. + examples: + DriveId: + summary: drive_id + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - drive + - folder + - permissions + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandPermissions,Folder,Drive: + value: permissions,folder,drive + summary: Expand Permissions, Folder, Drive + explode: false + - in: query + name: folder_id + schema: + type: string + description: Specifying a folder id returns only the files in that folder. + Specifying null returns only the files in root directory. + examples: + FolderId: + summary: folder_id + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: mime_type + schema: + type: string + description: If provided, will only return files with these mime_types. Multiple + values can be separated by commas. + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: name + schema: + type: string + nullable: true + description: If provided, will only return files with this name. This performs + an exact match. + - in: query + name: order_by + schema: + type: string + enum: + - -created_at + - -modified_at + - created_at + - modified_at + x-fern-enum: + -created_at: + name: CreatedAtDescending + created_at: + name: CreatedAtAscending + -modified_at: + name: ModifiedAtDescending + modified_at: + name: ModifiedAtAscending + description: 'Overrides the default ordering for this endpoint. Possible values + include: created_at, -created_at, modified_at, -modified_at.' + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - files + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFileList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: files_create + description: Creates a `File` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - files + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FileStorageFileEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FileStorageFileEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/FileStorageFileEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/FileStorageFileResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /filestorage/v1/files/{id}: + get: + operationId: files_retrieve + description: Returns a `File` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - drive + - folder + - permissions + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandPermissions,Folder,Drive: + value: permissions,folder,drive + summary: Expand Permissions, Folder, Drive + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - files + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/File' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/files/{id}/download: + get: + operationId: files_download_retrieve + description: Returns the `File` content with the given `id` as a stream of bytes. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: mime_type + schema: + type: string + description: If provided, specifies the export format of the file to be downloaded. + For information on supported export formats, please refer to our export format help center article. + tags: + - files + security: + - tokenAuth: [] + responses: + '200': + content: + application/octet-stream: + schema: + type: string + format: binary + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/files/{id}/download/request-meta: + get: + operationId: files_download_request_meta_retrieve + description: Returns metadata to construct an authenticated file download request + for a singular file, allowing you to download file directly from the third-party. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: mime_type + schema: + type: string + description: If provided, specifies the export format of the file to be downloaded. + For information on supported export formats, please refer to our export format help center article. + tags: + - files + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DownloadRequestMeta' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/files/download/request-meta: + get: + operationId: files_download_request_meta_list + description: Returns metadata to construct authenticated file download requests, + allowing you to download files directly from the third-party. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: mime_types + schema: + type: string + description: A comma-separated list of preferred MIME types in order of priority. + If supported by the third-party provider, the file(s) will be returned in + the first supported MIME type from the list. The default MIME type is PDF. + To see supported MIME types by file type, refer to our export format help center article. + - in: query + name: modified_after + schema: + type: string + description: If provided, will only return objects modified after this datetime. + - in: query + name: modified_before + schema: + type: string + description: If provided, will only return objects modified before this datetime. + - in: query + name: order_by + schema: + type: string + enum: + - -created_at + - -modified_at + - created_at + - modified_at + x-fern-enum: + -created_at: + name: CreatedAtDescending + created_at: + name: CreatedAtAscending + -modified_at: + name: ModifiedAtDescending + modified_at: + name: ModifiedAtAscending + description: 'Overrides the default ordering for this endpoint. Possible values + include: created_at, -created_at, modified_at, -modified_at.' + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - files + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDownloadRequestMetaList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/files/meta/post: + get: + operationId: files_meta_post_retrieve + description: Returns metadata for `FileStorageFile` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - files + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/folders: + get: + operationId: folders_list + description: Returns a list of `Folder` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: drive_id + schema: + type: string + description: If provided, will only return folders in this drive. + examples: + DriveId: + summary: drive_id + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - drive + - parent_folder + - permissions + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandPermissions,ParentFolder,Drive: + value: permissions,parent_folder,drive + summary: Expand Permissions, Parent_folder, Drive + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: name + schema: + type: string + nullable: true + description: If provided, will only return folders with this name. This performs + an exact match. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: parent_folder_id + schema: + type: string + description: If provided, will only return folders in this parent folder. + If null, will return folders in root directory. + examples: + ParentFolderId: + summary: parent_folder_id + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - folders + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedFolderList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: folders_create + description: Creates a `Folder` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - folders + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FileStorageFolderEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FileStorageFolderEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/FileStorageFolderEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/FileStorageFolderResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /filestorage/v1/folders/{id}: + get: + operationId: folders_retrieve + description: Returns a `Folder` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - drive + - parent_folder + - permissions + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandPermissions,ParentFolder,Drive: + value: permissions,parent_folder,drive + summary: Expand Permissions, Parent_folder, Drive + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - folders + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/folders/meta/post: + get: + operationId: folders_meta_post_retrieve + description: Returns metadata for `FileStorageFolder` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - folders + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/generate-key: + post: + operationId: generate_key_create + description: Create a remote key. + tags: + - generate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/groups: + get: + operationId: groups_list + description: Returns a list of `Group` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - child_groups + - users + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandChildGroups: + value: child_groups + summary: Expand Child_groups + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - groups + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedGroupList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/groups/{id}: + get: + operationId: groups_retrieve + description: Returns a `Group` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - child_groups + - users + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandChildGroups: + value: child_groups + summary: Expand Child_groups + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - groups + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/issues: + get: + operationId: issues_list + description: Gets all issues for Organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: account_token + schema: + type: string + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred before this time + - in: query + name: end_user_organization_name + schema: + type: string + - in: query + name: first_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was after this datetime. + - in: query + name: first_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was before this datetime. + - in: query + name: include_muted + schema: + type: string + description: If true, will include muted issues + - in: query + name: integration_name + schema: + type: string + - in: query + name: last_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was after this datetime. + - in: query + name: last_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was before this datetime. + - in: query + name: linked_account_id + schema: + type: string + description: If provided, will only include issues pertaining to the linked + account passed in. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred after this time + - in: query + name: status + schema: + type: string + enum: + - ONGOING + - RESOLVED + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedIssueList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/issues/{id}: + get: + operationId: issues_retrieve + description: Get a specific issue. + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Issue' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/link-token: + post: + operationId: link_token_create + description: Creates a link token to be used when linking a new end user. + tags: + - link-token + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LinkToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/linked-account-scopes: + get: + operationId: linked_account_scopes_retrieve + description: Get all available permissions for Merge Common Models and fields + for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: linked_account_scopes_create + description: Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the default + Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /filestorage/v1/linked-accounts: + get: + operationId: linked_accounts_list + description: List linked accounts for your organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: category + schema: + type: string + nullable: true + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + description: |- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `mktg`, `ticketing` + + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_user_email_address + schema: + type: string + description: If provided, will only return linked accounts associated with + the given email address. + - in: query + name: end_user_organization_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given organization name. + - in: query + name: end_user_origin_id + schema: + type: string + description: If provided, will only return linked accounts associated with + the given origin ID. + - in: query + name: end_user_origin_ids + schema: + type: string + description: Comma-separated list of EndUser origin IDs, making it possible + to specify multiple EndUsers at once. + - in: query + name: id + schema: + type: string + format: uuid + - in: query + name: ids + schema: + type: string + description: Comma-separated list of LinkedAccount IDs, making it possible + to specify multiple LinkedAccounts at once. + - in: query + name: include_duplicates + schema: + type: boolean + description: If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. `id` must + be for a complete production linked account. + - in: query + name: integration_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given integration name. + - in: query + name: is_test_account + schema: + type: string + description: If included, will only include test linked accounts. If not included, + will only include non-test linked accounts. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: status + schema: + type: string + description: 'Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED`' + tags: + - linked-accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAccountDetailsAndActionsList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/passthrough: + post: + operationId: passthrough_create + description: Pull data from an endpoint not currently supported by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/regenerate-key: + post: + operationId: regenerate_key_create + description: Exchange remote keys. + tags: + - regenerate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/remote-fields: + get: + operationId: remote_fields_retrieve + description: Get all remote fields for a Linked Account. Remote fields are third-party + fields that are accessible after initial sync if remote_data is enabled. You + can use remote fields to override existing Merge fields or map a new Merge + field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: common_models + schema: + type: string + description: A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + - in: query + name: include_example_values + schema: + type: string + description: If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active data from + your customers. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/sync-status: + get: + operationId: sync_status_list + description: Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` + represents the most recent time any sync completed. These timestamps may correspond + to different sync instances which may result in a sync start time being later + than a separate sync completed time. To ensure you are retrieving the latest + available data reference the `last_sync_finished` timestamp where `last_sync_result` + is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about + sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - sync-status + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSyncStatusList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/sync-status/resync: + post: + operationId: sync_status_resync_create + description: Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or Enterprise + plans. Doing so will consume a sync credit for the relevant linked account. + Force re-syncs can also be triggered manually in the Merge Dashboard and is + available for all customers. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - force-resync + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/target-fields: + get: + operationId: target_fields_retrieve + description: Get all organization-wide Target Fields, this will not include + any Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked Accounts + in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExternalTargetFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/users: + get: + operationId: users_list + description: Returns a list of `User` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_me + schema: + type: string + description: If provided, will only return the user object for requestor. + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - users + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/users/{id}: + get: + operationId: users_retrieve + description: Returns a `User` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - users + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/User' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /filestorage/v1/webhook-receivers: + get: + operationId: webhook_receivers_list + description: Returns a list of `WebhookReceiver` objects. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: webhook_receivers_create + description: Creates a `WebhookReceiver` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC +components: + schemas: + AccountDetails: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: + type: string + readOnly: true + example: BambooHR + integration_slug: + type: string + readOnly: true + example: bamboohr + category: + oneOf: + - $ref: '#/components/schemas/CategoryEnum' + - type: string + nullable: true + example: hris + end_user_origin_id: + type: string + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: + type: string + readOnly: true + example: Waystar Royco + end_user_email_address: + type: string + format: email + readOnly: true + example: kendall.roy@waystar-royco.com + status: + type: string + readOnly: true + example: COMPLETE + webhook_listener_url: + type: string + format: uri + readOnly: true + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + readOnly: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + account_type: + type: string + readOnly: true + example: PRODUCTION + completed_at: + type: string + format: date-time + nullable: true + description: The time at which account completes the linking flow. + example: '2024-08-26T20:11:19.277118Z' + x-merge-category: filestorage + AccountDetailsAndActions: + type: object + description: |- + # The LinkedAccount Object + ### Description + The `LinkedAccount` object is used to represent an end user's link with a specific integration. + + ### Usage Example + View a list of your organization's `LinkedAccount` objects. + properties: + id: + type: string + example: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: + oneOf: + - $ref: '#/components/schemas/CategoryEnum' + - type: string + example: hris + status: + oneOf: + - $ref: '#/components/schemas/AccountDetailsAndActionsStatusEnum' + - type: string + example: INCOMPLETE + status_detail: + type: string + example: Invalid login credentials + end_user_origin_id: + type: string + example: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: + type: string + example: Foo Bar, LLC + end_user_email_address: + type: string + example: hradmin@foobar.dev + subdomain: + type: string + description: The tenant or domain the customer has provided access to. + example: foobar + webhook_listener_url: + type: string + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + integration: + $ref: '#/components/schemas/AccountDetailsAndActionsIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: + type: string + example: PRODUCTION + completed_at: + type: string + format: date-time + example: '2024-08-26T20:11:19.277118Z' + required: + - account_type + - completed_at + - end_user_email_address + - end_user_organization_name + - id + - status + - webhook_listener_url + x-merge-sample-json: '{"id": "e59b1821-f85c-4e28-a6b3-1804156f3563", "category": + "hris", "status": "INCOMPLETE", "status_detail": "Invalid login credentials", + "end_user_origin_id": "3ac95cde-6c7f-4eef-afec-be710b42308d", "end_user_organization_name": + "Foo Bar, LLC", "end_user_email_address": "hradmin@foobar.dev", "webhook_listener_url": + "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + "is_duplicate": true, "integration": {"name": "SAP SuccessFactors", "categories": + ["hris", "ats"], "image": "https://cdn.merge.dev/SuccessFactors_Logo.png", + "square_image": "https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg", "color": + "#F6A704", "slug": "sap-successfactors", "passthrough_available": true, "available_model_operations": + [{"model_name": "Candidate", "available_operations": ["FETCH", "CREATE"], + "required_post_parameters": ["remote_user_id"], "supported_fields": ["first_name", + "last_name", "company", "title"]}]}}' + x-merge-category: filestorage + AccountDetailsAndActionsIntegration: + type: object + properties: + name: + type: string + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + image: + type: string + square_image: + type: string + color: + type: string + slug: + type: string + passthrough_available: + type: boolean + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + required: + - categories + - color + - name + - passthrough_available + - slug + x-merge-category: filestorage + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + type: string + description: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + x-merge-category: filestorage + AccountIntegration: + type: object + properties: + name: + type: string + description: Company name. + abbreviated_name: + type: string + nullable: true + description: "Optional. This shortened name appears in places with limited + space, usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce Now), + SuccessFactors (in lieu of SAP SuccessFactors)" + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + readOnly: true + image: + type: string + format: uri + nullable: true + description: Company logo in rectangular shape. + square_image: + type: string + format: uri + nullable: true + description: Company logo in square shape. + color: + type: string + description: The color of this integration used for buttons and text throughout + the app and landing pages. Choose a darker, saturated color. + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: string + readOnly: true + api_endpoints_to_documentation_urls: + type: object + additionalProperties: {} + description: "Mapping of API endpoints to documentation urls for support. + Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []}" + webhook_setup_guide_url: + type: string + nullable: true + description: Setup guide URL for third party webhook creation. Exposed in + Merge Docs. + category_beta_status: + type: object + description: Category or categories this integration is in beta status for. + readOnly: true + required: + - name + x-merge-category: filestorage + AccountToken: + type: object + properties: + account_token: + type: string + example: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + id: + type: string + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + required: + - account_token + - id + - integration + x-merge-category: filestorage + AdvancedMetadata: + type: object + properties: + id: + type: string + format: uuid + display_name: + type: string + description: + type: string + is_required: + type: boolean + is_custom: + type: boolean + field_choices: + type: array + items: {} + required: + - id + x-merge-category: filestorage + AsyncPassthroughReciept: + type: object + properties: + async_passthrough_receipt_id: + type: string + format: uuid + example: fd29020f-2695-445e-922e-dcd5e81903fd + required: + - async_passthrough_receipt_id + x-merge-category: filestorage + AuditLogEvent: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: + type: string + nullable: true + description: The User's full name at the time of this Event occurring. + maxLength: 200 + example: Gil Feig + user_email: + type: string + format: email + nullable: true + description: The User's email at the time of this Event occurring. + maxLength: 254 + example: hello@merge.dev + role: + oneOf: + - $ref: '#/components/schemas/RoleEnum' + - type: string + description: |- + Designates the role of the user (or SYSTEM/API if action not taken by a user) at the time of this Event occurring. + + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + example: ADMIN + ip_address: + type: string + maxLength: 45 + example: 192.0.2.123 + event_type: + oneOf: + - $ref: '#/components/schemas/EventTypeEnum' + - type: string + description: |- + Designates the type of event that occurred. + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + example: CHANGED_SCOPES + event_description: + type: string + example: Organization-wide Scopes for model hris.Employee updated from Read + to Read+Write + created_at: + type: string + format: date-time + readOnly: true + required: + - event_description + - event_type + - ip_address + - role + x-merge-category: filestorage + AvailableActions: + type: object + description: |- + # The AvailableActions Object + ### Description + The `Activity` object is used to see all available model/operation combinations for an integration. + + ### Usage Example + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: Lever + categories: + - ats + image: https://merge-api-production.s3.amazonaws.com/media/Lever_Logo.png + square_image: https://merge-api-production.s3.amazonaws.com/media/Lever_Square_Logo.png + color: '#262A34' + is_in_beta: 'true' + api_endpoints_to_documentation_urls: "{'GET': [('/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve')], + 'POST': []}" + passthrough_available: + type: boolean + example: true + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + example: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + required: + - integration + - passthrough_available + x-merge-category: filestorage + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: filestorage + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: filestorage + CommonModelScopeAPI: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializer' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + required: + - common_models + x-merge-category: filestorage + CommonModelScopesBodyRequest: + type: object + properties: + model_id: + type: string + minLength: 1 + example: hris.Employee + enabled_actions: + type: array + items: + $ref: '#/components/schemas/EnabledActionsEnum' + example: + - READ + - WRITE + disabled_fields: + type: array + items: + type: string + minLength: 1 + example: + - first_name + required: + - disabled_fields + - enabled_actions + - model_id + x-merge-category: filestorage + CreateFieldMappingRequest: + type: object + properties: + target_field_name: + type: string + minLength: 1 + description: The name of the target field you want this remote field to + map to. + example: example_target_field_name + target_field_description: + type: string + minLength: 1 + description: The description of the target field you want this remote field + to map to. + example: this is a example description of the target field + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + common_model_name: + type: string + minLength: 1 + description: The name of the Common Model that the remote field corresponds + to in a given category. + example: ExampleCommonModel + required: + - common_model_name + - remote_field_traversal_path + - remote_method + - remote_url_path + - target_field_description + - target_field_name + x-merge-category: filestorage + DataPassthroughRequest: + type: object + description: |- + # The DataPassthrough Object + ### Description + The `DataPassthrough` object is used to send information to an otherwise-unsupported third-party endpoint. + + ### Usage Example + Create a `DataPassthrough` to get team hierarchies from your Rippling integration. + properties: + method: + allOf: + - $ref: '#/components/schemas/MethodEnum' + example: POST + path: + type: string + minLength: 1 + description: The path of the request in the third party's platform. + example: /scooters + base_url_override: + type: string + nullable: true + minLength: 1 + description: An optional override of the third party's base url for the + request. + example: https://api.example.com + data: + type: string + nullable: true + minLength: 1 + description: The data with the request. You must include a `request_format` + parameter matching the data's format + example: '{"company": "Lime", "model": "Gen 2.5"}' + multipart_form_data: + type: array + items: + $ref: '#/components/schemas/MultipartFormFieldRequest' + nullable: true + description: Pass an array of `MultipartFormField` objects in here instead + of using the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: object + additionalProperties: {} + nullable: true + description: The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for passthrough. + Choose content type corresponding to expected format of receiving server. + example: + EXTRA-HEADER: value + request_format: + allOf: + - $ref: '#/components/schemas/RequestFormatEnum' + nullable: true + example: JSON + normalize_response: + type: boolean + description: 'Optional. If true, the response will always be an object of + the form `{"type": T, "value": ...}` where `T` will be one of `string, + boolean, number, null, array, object`.' + required: + - method + - path + x-merge-category: filestorage + DebugModeLog: + type: object + properties: + log_id: + type: string + example: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: + type: string + example: https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + $ref: '#/components/schemas/DebugModelLogSummary' + example: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + required: + - dashboard_view + - log_id + - log_summary + x-merge-sample-json: '{"log_id": "99433219-8017-4acd-bb3c-ceb23d663832", "dashboard_view": + "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", "log_summary": + {"url": "www.exampleintegration.com/api/v1/exampleapi", "method": "POST", + "status_code": 200}}' + x-merge-category: filestorage + DebugModelLogSummary: + type: object + properties: + url: + type: string + example: www.exampleintegration.com/api/v1/exampleapi + method: + type: string + example: POST + status_code: + type: integer + example: 200 + required: + - method + - status_code + - url + x-merge-sample-json: '{"url": "www.exampleintegration.com/api/v1/exampleapi", + "method": "POST", "status_code": 200}' + x-merge-category: filestorage + DownloadRequestMeta: + type: object + properties: + id: + type: string + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + url: + type: string + example: https://www.googleapis.com/drive/v3/files/234?alt=media + method: + type: string + example: GET + headers: + type: object + additionalProperties: {} + example: + Authorization: Bearer 1234 + required: + - headers + - id + - method + - url + x-merge-category: filestorage + Drive: + type: object + description: |- + # The Drive Object + ### Description + The `Drive` object is used to represent a drive that contains the folders and files in the user's workspace. + ### Usage Example + Fetch from the `GET /api/filestorage/v1/drives` endpoint and view their drives. + properties: + id: + type: string + format: uuid + readOnly: true + example: f9e3d315-d6c2-458e-85c4-fa773d6ff4a6 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '2039348' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The drive's name. + maxLength: 254 + example: My Drive + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's drive was created. + drive_url: + type: string + nullable: true + description: The drive's url. + maxLength: 2000 + example: https://drive.com/drives/2039349 + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /drives + data: + - Varies by platform + x-merge-category: filestorage + EnabledActionsEnum: + enum: + - READ + - WRITE + type: string + description: |- + * `READ` - READ + * `WRITE` - WRITE + x-merge-category: filestorage + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + type: string + description: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + x-merge-category: filestorage + EndUserDetailsRequest: + type: object + properties: + end_user_email_address: + type: string + minLength: 1 + description: Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be sent. + maxLength: 100 + example: example@gmail.com + end_user_organization_name: + type: string + minLength: 1 + description: Your end user's organization. + maxLength: 100 + example: Test Organization + end_user_origin_id: + type: string + minLength: 1 + description: This unique identifier typically represents the ID for your + end user in your product's database. This value must be distinct from + other Linked Accounts' unique identifiers. + maxLength: 100 + example: '12345' + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: The integration categories to show in Merge Link. + example: + - hris + - ats + integration: + type: string + nullable: true + minLength: 1 + description: The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see https://docs.merge.dev/guides/merge-link/single-integration/. + example: bamboohr + link_expiry_mins: + type: integer + maximum: 10080 + minimum: 30 + default: 30 + description: An integer number of minutes between [30, 720 or 10080 if for + a Magic Link URL] for how long this token is valid. Defaults to 30. + should_create_magic_link_url: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + hide_admin_magic_link: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information on Magic + Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + common_models: + type: array + items: + $ref: '#/components/schemas/CommonModelScopesBodyRequest' + nullable: true + description: An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses model_id, enabled_actions, + and disabled_fields to specify the model, method, and fields that are + scoped for a given Linked Account. + category_common_model_scopes: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + nullable: true + description: When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be linked. Any + model or field not specified in link token payload will default to existing + settings. + example: + hris: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - first_name + - last_name + - personal_email + disabled_fields: + - preferred_name + - model_name: Employment + model_permissions: + READ: + is_enabled: false + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - effective_date + ats: + - model_name: Job + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - name + disabled_fields: + - description + - model_name: Department + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + language: + oneOf: + - $ref: '#/components/schemas/LanguageEnum' + - type: string + nullable: true + description: |- + The following subset of IETF language tags can be used to configure localization. + + * `en` - en + * `de` - de + example: en + are_syncs_disabled: + type: boolean + nullable: true + default: false + description: The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + integration_specific_config: + type: object + additionalProperties: {} + nullable: true + description: A JSON object containing integration-specific configuration + options. + example: + rippling: + oauth_code: 3h1jj8ssdf31dfji3o1jjdfjasd + required: + - categories + - end_user_email_address + - end_user_organization_name + - end_user_origin_id + x-merge-category: filestorage + ErrorValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /model/custom_fields + title: + type: string + example: Missing Required Field + detail: + type: string + example: custom_fields is a required field on model. + problem_type: + type: string + example: MISSING_REQUIRED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: filestorage + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + type: string + description: |- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + x-merge-category: filestorage + ExternalTargetFieldAPI: + type: object + properties: + name: + type: string + nullable: true + readOnly: true + example: example_target_field_name + description: + type: string + nullable: true + readOnly: true + example: this is a example description of a target field + is_mapped: + type: string + nullable: true + readOnly: true + example: true + x-merge-category: filestorage + ExternalTargetFieldAPIResponse: + type: object + properties: + File: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Folder: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Drive: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Group: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + User: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + x-merge-category: filestorage + FieldMappingApiInstance: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: + type: boolean + readOnly: true + target_field: + type: object + properties: + name: + type: string + description: + type: string + is_organization_wide: + type: boolean + required: + - description + - is_organization_wide + - name + nullable: true + readOnly: true + example: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + type: object + properties: + remote_key_name: + type: string + nullable: true + schema: + type: object + additionalProperties: {} + nullable: true + remote_endpoint_info: + type: object + properties: + method: + type: string + nullable: true + url_path: + type: string + nullable: true + field_traversal_path: + type: array + items: + type: string + nullable: true + required: + - field_traversal_path + - method + - url_path + required: + - remote_endpoint_info + - remote_key_name + - schema + nullable: true + readOnly: true + example: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + x-merge-category: filestorage + FieldMappingApiInstanceResponse: + type: object + properties: + File: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Folder: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Drive: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Group: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + User: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + x-merge-category: filestorage + FieldMappingInstanceResponse: + type: object + properties: + model: + $ref: '#/components/schemas/FieldMappingApiInstance' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: filestorage + FieldPermissionDeserializer: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: filestorage + FieldPermissionDeserializerRequest: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: filestorage + File: + type: object + description: |- + # The File Object + ### Description + The `File` object is used to represent a file in the workspace. The Object typically exists under a folder or drive, if it exists. + ### Usage Example + Fetch from the `GET /api/filestorage/v1/files` endpoint and view their files. + properties: + id: + type: string + format: uuid + readOnly: true + example: 45ce474c-dhcj-43a6-754r-629f799f7d68 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '12' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The file's name. + maxLength: 254 + example: merge_file_storage_launch.docx + file_url: + type: string + nullable: true + description: The URL to access the file. + maxLength: 2000 + example: https://drive.com/1234 + file_thumbnail_url: + type: string + nullable: true + description: The URL that produces a thumbnail preview of the file. Typically + an image. + maxLength: 2000 + example: https://drive.com/1234/thumbnail.png + size: + type: integer + maximum: 9223372036854776000 + minimum: -9223372036854776000 + format: int64 + nullable: true + description: The file's size, in bytes. + example: 254 + mime_type: + type: string + nullable: true + description: The file's mime type. + maxLength: 128 + example: application/vnd.openxmlformats-officedocument.wordprocessingml.document + description: + type: string + nullable: true + description: The file's description. + maxLength: 2000 + example: Use common model scopes to redact data returned in Merge's Common + Models! + folder: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Folder' + nullable: true + description: The folder that the file belongs to. + example: 8e889422-e086-42dc-b99e-24d732039b0b + x-merge-expands-to: Folder + checksum: + type: object + additionalProperties: {} + nullable: true + description: This field stores file checksum data. 'type' indicates the + algorithm (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' + is the unique hash used to verify file integrity and detect alterations. + example: + type: sha256 + content_hash: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + permissions: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Permission' + - type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Permission' + description: The Permission object is used to represent a user's or group's + access to a File or Folder. Permissions are unexpanded by default. Use + the query param `expand=permissions` to see more details under `GET /files`. + example: + - id: 31ce489c-asdf-68b1-754r-629f799f7123 + remote_id: '102895' + created_at: '2020-03-31T00:00:00Z' + modified_at: '2020-06-20T00:00:00Z' + user: 21ce474c-asdf-34a2-754r-629f799f7d12 + group: + type: USER + roles: + - OWNER + remote_data: + - id: 2ea7db93-1ae9-4686-82c9-35c768000736 + remote_id: + created_at: '2020-03-31T00:00:00Z' + modified_at: '2020-06-20T00:00:00Z' + user: + group: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + type: GROUP + roles: + - READ + remote_data: + x-merge-expands-to: Permission + drive: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Drive' + nullable: true + description: The drive that the file belongs to. + example: 204ca79c-0c86-4f6c-9ca6-61b946a4708a + x-merge-expands-to: Drive + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's file was created. + example: '2022-02-02T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's file was updated. + example: '2022-02-03T00:00:00Z' + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /files + data: + - Varies by platform + x-merge-sdk-classname-alias: FileStorageFile + x-merge-sdk-classname-original: File + x-merge-expands: '{"drive": "Drive", "folder": "Folder", "permissions": "Permission"}' + x-merge-category: filestorage + FileRequest: + type: object + description: |- + # The File Object + ### Description + The `File` object is used to represent a file in the workspace. The Object typically exists under a folder or drive, if it exists. + ### Usage Example + Fetch from the `GET /api/filestorage/v1/files` endpoint and view their files. + properties: + name: + type: string + nullable: true + description: The file's name. + maxLength: 254 + example: merge_file_storage_launch.docx + file_url: + type: string + nullable: true + description: The URL to access the file. + maxLength: 2000 + example: https://drive.com/1234 + file_thumbnail_url: + type: string + nullable: true + description: The URL that produces a thumbnail preview of the file. Typically + an image. + maxLength: 2000 + example: https://drive.com/1234/thumbnail.png + size: + type: integer + maximum: 9223372036854776000 + minimum: -9223372036854776000 + format: int64 + nullable: true + description: The file's size, in bytes. + example: 254 + mime_type: + type: string + nullable: true + description: The file's mime type. + maxLength: 128 + example: application/vnd.openxmlformats-officedocument.wordprocessingml.document + description: + type: string + nullable: true + description: The file's description. + maxLength: 2000 + example: Use common model scopes to redact data returned in Merge's Common + Models! + folder: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Folder' + nullable: true + description: The folder that the file belongs to. + example: 8e889422-e086-42dc-b99e-24d732039b0b + x-merge-expands-to: Folder + checksum: + type: object + additionalProperties: {} + nullable: true + description: This field stores file checksum data. 'type' indicates the + algorithm (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' + is the unique hash used to verify file integrity and detect alterations. + example: + type: sha256 + content_hash: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + permissions: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PermissionRequest' + - type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PermissionRequest' + description: The Permission object is used to represent a user's or group's + access to a File or Folder. Permissions are unexpanded by default. Use + the query param `expand=permissions` to see more details under `GET /files`. + example: + - id: 31ce489c-asdf-68b1-754r-629f799f7123 + remote_id: '102895' + created_at: '2020-03-31T00:00:00Z' + modified_at: '2020-06-20T00:00:00Z' + user: 21ce474c-asdf-34a2-754r-629f799f7d12 + group: + type: USER + roles: + - OWNER + remote_data: + - id: 2ea7db93-1ae9-4686-82c9-35c768000736 + remote_id: + created_at: '2020-03-31T00:00:00Z' + modified_at: '2020-06-20T00:00:00Z' + user: + group: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + type: GROUP + roles: + - READ + remote_data: + x-merge-expands-to: Permission + drive: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Drive' + nullable: true + description: The drive that the file belongs to. + example: 204ca79c-0c86-4f6c-9ca6-61b946a4708a + x-merge-expands-to: Drive + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-sdk-classname-alias: FileStorageFile + x-merge-sdk-classname-original: File + x-merge-expands: '{"drive": "Drive", "folder": "Folder", "permissions": "Permission"}' + x-merge-category: filestorage + FileStorageFileEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/FileRequest' + required: + - model + x-merge-category: filestorage + FileStorageFileResponse: + type: object + properties: + model: + $ref: '#/components/schemas/File' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: filestorage + FileStorageFolderEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/FolderRequest' + required: + - model + x-merge-category: filestorage + FileStorageFolderResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Folder' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: filestorage + Folder: + type: object + description: |- + # The Folder Object + ### Description + The `Folder` object is used to represent a collection of files and/or folders in the workspace. Could be within a drive, if it exists. + ### Usage Example + Fetch from the `GET /api/filestorage/v1/folders` endpoint and view their folders. + properties: + id: + type: string + format: uuid + readOnly: true + example: e021f7a7-74fc-4487-8e12-14180c92d3b7 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '14' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The folder's name. + maxLength: 254 + example: R&D + folder_url: + type: string + nullable: true + description: The URL to access the folder. + maxLength: 2000 + example: https://drive.com/1234 + size: + type: integer + maximum: 9223372036854776000 + minimum: -9223372036854776000 + format: int64 + nullable: true + description: The folder's size, in bytes. + example: 2738000 + description: + type: string + nullable: true + description: The folder's description. + maxLength: 2000 + example: All things R&D related at Merge! + parent_folder: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Folder' + nullable: true + description: The folder that the folder belongs to. + example: 47ce474c-asdf-34a2-754r-629f799f7d31 + x-merge-expands-to: Folder + drive: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Drive' + nullable: true + description: The drive that the folder belongs to. + example: 31ce474c-asdf-34a2-754r-629f799f7d12 + x-merge-expands-to: Drive + permissions: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Permission' + - type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Permission' + description: The Permission object is used to represent a user's or group's + access to a File or Folder. Permissions are unexpanded by default. Use + the query param `expand=permissions` to see more details under `GET /folders`. + example: + - id: 105b9265-0d52-4e5c-bb88-0cb681ec77f6 + remote_id: '102895' + created_at: '2020-03-31T00:00:00Z' + modified_at: '2020-06-20T00:00:00Z' + user: 21ce474c-asdf-34a2-754r-629f799f7d12 + group: + type: USER + roles: + - OWNER + remote_data: + - id: a77ac1b4-a04f-4baa-a388-de3c0c173e1c + remote_id: + created_at: '2020-03-31T00:00:00Z' + modified_at: '2020-06-20T00:00:00Z' + user: + group: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + type: GROUP + roles: + - READ + remote_data: + x-merge-expands-to: Permission + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's folder was created. + example: '2024-02-02T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's folder was updated. + example: '2024-06-10T00:00:00Z' + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /folders + data: + - Varies by platform + x-merge-expands: '{"drive": "Drive", "parent_folder": "Folder", "permissions": + "Permission"}' + x-merge-category: filestorage + FolderRequest: + type: object + description: |- + # The Folder Object + ### Description + The `Folder` object is used to represent a collection of files and/or folders in the workspace. Could be within a drive, if it exists. + ### Usage Example + Fetch from the `GET /api/filestorage/v1/folders` endpoint and view their folders. + properties: + name: + type: string + nullable: true + description: The folder's name. + maxLength: 254 + example: R&D + folder_url: + type: string + nullable: true + description: The URL to access the folder. + maxLength: 2000 + example: https://drive.com/1234 + size: + type: integer + maximum: 9223372036854776000 + minimum: -9223372036854776000 + format: int64 + nullable: true + description: The folder's size, in bytes. + example: 2738000 + description: + type: string + nullable: true + description: The folder's description. + maxLength: 2000 + example: All things R&D related at Merge! + parent_folder: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Folder' + nullable: true + description: The folder that the folder belongs to. + example: 47ce474c-asdf-34a2-754r-629f799f7d31 + x-merge-expands-to: Folder + drive: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Drive' + nullable: true + description: The drive that the folder belongs to. + example: 31ce474c-asdf-34a2-754r-629f799f7d12 + x-merge-expands-to: Drive + permissions: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PermissionRequest' + - type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PermissionRequest' + description: The Permission object is used to represent a user's or group's + access to a File or Folder. Permissions are unexpanded by default. Use + the query param `expand=permissions` to see more details under `GET /folders`. + example: + - id: 105b9265-0d52-4e5c-bb88-0cb681ec77f6 + remote_id: '102895' + created_at: '2020-03-31T00:00:00Z' + modified_at: '2020-06-20T00:00:00Z' + user: 21ce474c-asdf-34a2-754r-629f799f7d12 + group: + type: USER + roles: + - OWNER + remote_data: + - id: a77ac1b4-a04f-4baa-a388-de3c0c173e1c + remote_id: + created_at: '2020-03-31T00:00:00Z' + modified_at: '2020-06-20T00:00:00Z' + user: + group: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + type: GROUP + roles: + - READ + remote_data: + x-merge-expands-to: Permission + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"drive": "Drive", "parent_folder": "Folder", "permissions": + "Permission"}' + x-merge-category: filestorage + GenerateRemoteKeyRequest: + type: object + description: |- + # The GenerateRemoteKey Object + ### Description + The `GenerateRemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to create a new remote key. + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: filestorage + Group: + type: object + description: |- + # The Group Object + ### Description + The `Group` object is used to represent any subset of `Users`. This can extend to company domains as well. + ### Usage Example + Fetch from the `GET /api/filestorage/v1/groups` endpoint and view their groups. + properties: + id: + type: string + format: uuid + readOnly: true + example: 5624aceb-0ea2-4864-ba08-354ac56b9884 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The group's name. + maxLength: 254 + example: Administrators + users: + type: array + items: + type: string + format: uuid + description: The users that belong in the group. If null, this typically + means it's either a domain or the third-party platform does not surface + this information. + example: + - 6e93361b-8ae7-444b-bfa2-71206cbbee24 + child_groups: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Group' + readOnly: true + description: Groups that inherit the permissions of the parent group. + example: + - a1f90b3c-633d-404e-a696-05cd54808676 + x-merge-expands-to: Group + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /groups + data: + - Varies by platform + required: + - users + x-merge-expands: '{"child_groups": "Group"}' + x-merge-category: filestorage + IndividualCommonModelScopeDeserializer: + type: object + properties: + model_name: + type: string + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializer' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializer' + required: + - model_name + x-merge-category: filestorage + IndividualCommonModelScopeDeserializerRequest: + type: object + properties: + model_name: + type: string + minLength: 1 + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializerRequest' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializerRequest' + required: + - model_name + x-merge-category: filestorage + Issue: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: + oneOf: + - $ref: '#/components/schemas/IssueStatusEnum' + - type: string + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + example: ONGOING + error_description: + type: string + example: Missing Permissions + end_user: + type: object + additionalProperties: {} + readOnly: true + example: b82302de-852e-4e60-b050-edf9da3b7c02 + first_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + last_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + is_muted: + type: boolean + readOnly: true + example: true + error_details: + type: array + items: + type: string + readOnly: true + example: + - Missing employee permissions. + - Missing time off permissions. + required: + - error_description + x-merge-category: filestorage + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + type: string + description: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + x-merge-category: filestorage + LanguageEnum: + enum: + - en + - de + type: string + description: |- + * `en` - en + * `de` - de + x-merge-category: filestorage + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: filestorage + LinkToken: + type: object + properties: + link_token: + type: string + example: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: + type: string + example: Lever + magic_link_url: + type: string + example: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + required: + - link_token + x-merge-category: filestorage + LinkedAccountCommonModelScopeDeserializerRequest: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + required: + - common_models + x-merge-category: filestorage + LinkedAccountStatus: + type: object + properties: + linked_account_status: + type: string + can_make_request: + type: boolean + required: + - can_make_request + - linked_account_status + x-merge-category: filestorage + MetaResponse: + type: object + properties: + request_schema: + type: object + additionalProperties: {} + example: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + type: object + additionalProperties: {} + status: + $ref: '#/components/schemas/LinkedAccountStatus' + example: + linked_account_status: COMPLETE + can_make_request: true + has_conditional_params: + type: boolean + has_required_linked_account_params: + type: boolean + required: + - has_conditional_params + - has_required_linked_account_params + - request_schema + x-merge-category: filestorage + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + type: string + description: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + x-merge-category: filestorage + ModelOperation: + type: object + description: |- + # The ModelOperation Object + ### Description + The `ModelOperation` object is used to represent the operations that are currently supported for a given model. + + ### Usage Example + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: + type: string + example: Candidate + available_operations: + type: array + items: + type: string + example: + - FETCH + - CREATE + required_post_parameters: + type: array + items: + type: string + example: + - remote_user_id + supported_fields: + type: array + items: + type: string + example: + - first_name + - last_name + - company + - title + required: + - available_operations + - model_name + - required_post_parameters + - supported_fields + x-merge-category: filestorage + ModelPermissionDeserializer: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: filestorage + ModelPermissionDeserializerRequest: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: filestorage + MultipartFormFieldRequest: + type: object + description: |- + # The MultipartFormField Object + ### Description + The `MultipartFormField` object is used to represent fields in an HTTP request using `multipart/form-data`. + + ### Usage Example + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + minLength: 1 + description: The name of the form field + example: resume + data: + type: string + minLength: 1 + description: The data for the form field. + example: SW50ZWdyYXRlIGZhc3QKSW50ZWdyYXRlIG9uY2U= + encoding: + oneOf: + - $ref: '#/components/schemas/EncodingEnum' + - type: string + nullable: true + default: RAW + description: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + example: BASE64 + file_name: + type: string + nullable: true + minLength: 1 + description: The file name of the form field, if the field is for a file. + example: resume.pdf + content_type: + type: string + nullable: true + minLength: 1 + description: The MIME type of the file, if the field is for a file. + example: application/pdf + required: + - data + - name + x-merge-category: filestorage + PaginatedAccountDetailsAndActionsList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AccountDetailsAndActions' + x-merge-category: filestorage + PaginatedAuditLogEventList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AuditLogEvent' + x-merge-category: filestorage + PaginatedDownloadRequestMetaList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/DownloadRequestMeta' + x-merge-category: filestorage + PaginatedDriveList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Drive' + x-merge-category: filestorage + PaginatedFileList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/File' + x-merge-category: filestorage + PaginatedFolderList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Folder' + x-merge-category: filestorage + PaginatedGroupList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Group' + x-merge-category: filestorage + PaginatedIssueList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Issue' + x-merge-category: filestorage + PaginatedSyncStatusList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + x-merge-category: filestorage + PaginatedUserList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/User' + x-merge-category: filestorage + PatchedEditFieldMappingRequest: + type: object + properties: + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field_name + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + x-merge-category: filestorage + Permission: + type: object + description: |- + # The Permission Object + ### Description + The Permission object is used to represent a user's or group's access to a File or Folder. Permissions are unexpanded by default. + + ### Usage Example + Fetch from the `GET Files` or `GET Folders` endpoint. Permissions are unexpanded by default. Use the query param `expand=permissions` to see more details. + properties: + id: + type: string + format: uuid + readOnly: true + example: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '340' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + user: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The user that is granted this permission. This will only be + populated if the type is `USER`. + example: 755e0a8e-1c04-444b-980f-51b1c0bdde8a + x-merge-expands-to: User + group: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Group' + nullable: true + description: The group that is granted this permission. This will only be + populated if the type is `GROUP`. + x-merge-expands-to: Group + type: + oneOf: + - $ref: '#/components/schemas/TypeEnum' + - type: string + nullable: true + description: |- + Denotes what type of people have access to the file. + + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + example: USER + roles: + type: array + items: + oneOf: + - $ref: '#/components/schemas/RolesEnum' + - type: string + nullable: true + description: |- + The permissions that the user or group has for the File or Folder. + + * `READ` - READ + * `WRITE` - WRITE + * `OWNER` - OWNER + nullable: true + description: 'The permissions that the user or group has for the File or + Folder. It is possible for a user or group to have multiple roles, such + as viewing & uploading. Possible values include: `READ`, `WRITE`, `OWNER`. + In cases where there is no clear mapping, the original value passed through + will be returned.' + example: + - OWNER + x-merge-nested-write-allowed: true + x-merge-expands: '{"group": "Group", "primary_file": "File", "primary_folder": + "Folder", "user": "User"}' + x-merge-category: filestorage + PermissionRequest: + type: object + description: |- + # The Permission Object + ### Description + The Permission object is used to represent a user's or group's access to a File or Folder. Permissions are unexpanded by default. + + ### Usage Example + Fetch from the `GET Files` or `GET Folders` endpoint. Permissions are unexpanded by default. Use the query param `expand=permissions` to see more details. + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '340' + user: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The user that is granted this permission. This will only be + populated if the type is `USER`. + example: 755e0a8e-1c04-444b-980f-51b1c0bdde8a + x-merge-expands-to: User + group: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Group' + nullable: true + description: The group that is granted this permission. This will only be + populated if the type is `GROUP`. + x-merge-expands-to: Group + type: + oneOf: + - $ref: '#/components/schemas/TypeEnum' + - type: string + nullable: true + description: |- + Denotes what type of people have access to the file. + + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + example: USER + roles: + type: array + items: + oneOf: + - $ref: '#/components/schemas/RolesEnum' + - type: string + nullable: true + description: |- + The permissions that the user or group has for the File or Folder. + + * `READ` - READ + * `WRITE` - WRITE + * `OWNER` - OWNER + nullable: true + description: 'The permissions that the user or group has for the File or + Folder. It is possible for a user or group to have multiple roles, such + as viewing & uploading. Possible values include: `READ`, `WRITE`, `OWNER`. + In cases where there is no clear mapping, the original value passed through + will be returned.' + example: + - OWNER + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"group": "Group", "primary_file": "File", "primary_folder": + "Folder", "user": "User"}' + x-merge-category: filestorage + RemoteData: + type: object + description: |- + # The RemoteData Object + ### Description + The `RemoteData` object is used to represent the full data pulled from the third-party API for an object. + + ### Usage Example + TODO + properties: + path: + type: string + description: The third-party API path that is being called. + example: /platform-endpoint + data: + readOnly: true + description: The data returned from the third-party for this object in its + original, unnormalized format. + example: + - Varies by platform + required: + - path + x-merge-category: filestorage + RemoteEndpointInfo: + type: object + properties: + method: + type: string + example: GET + url_path: + type: string + example: /example-url-path + field_traversal_path: + type: array + items: {} + example: + - example_key_name + required: + - field_traversal_path + - method + - url_path + x-merge-category: filestorage + RemoteFieldAPI: + type: object + properties: + schema: + type: object + additionalProperties: {} + example: + type: string + remote_key_name: + type: string + example: example_remote_key_name + remote_endpoint_info: + $ref: '#/components/schemas/RemoteEndpointInfo' + example: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + type: array + items: {} + nullable: true + example: + - example + advanced_metadata: + allOf: + - $ref: '#/components/schemas/AdvancedMetadata' + nullable: true + coverage: + oneOf: + - type: integer + - type: number + format: double + nullable: true + readOnly: true + example: 0.33 + required: + - advanced_metadata + - remote_endpoint_info + - remote_key_name + - schema + x-merge-category: filestorage + RemoteFieldAPIResponse: + type: object + properties: + File: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Folder: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Drive: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Group: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + User: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + x-merge-category: filestorage + RemoteKey: + type: object + description: |- + # The RemoteKey Object + ### Description + The `RemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: + type: string + example: Remote Deployment Key 1 + key: + type: string + example: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + required: + - key + - name + x-merge-category: filestorage + RemoteKeyForRegenerationRequest: + type: object + description: |- + # The RemoteKeyForRegeneration Object + ### Description + The `RemoteKeyForRegeneration` object is used to exchange an old remote key for a new one + + ### Usage Example + Post a `RemoteKeyForRegeneration` to swap out an old remote key for a new one + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: filestorage + RemoteResponse: + type: object + description: |- + # The RemoteResponse Object + ### Description + The `RemoteResponse` object is used to represent information returned from a third-party endpoint. + + ### Usage Example + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: + type: string + example: GET + path: + type: string + example: /scooters + status: + type: integer + example: 200 + response: + example: + scooters: + - company: Lime + model: Gen 2.5 + - company: Bird + model: Bird Zero + response_headers: + type: object + additionalProperties: {} + example: + X-Page-Token: value + response_type: + oneOf: + - $ref: '#/components/schemas/ResponseTypeEnum' + - type: string + example: JSON + headers: + type: object + additionalProperties: {} + example: + EXTRA-HEADER: value + Authorization: + required: + - method + - path + - response + - status + x-merge-category: filestorage + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + type: string + description: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + x-merge-category: filestorage + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + type: string + description: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + x-merge-category: filestorage + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + type: string + description: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + x-merge-category: filestorage + RolesEnum: + enum: + - READ + - WRITE + - OWNER + type: string + description: |- + * `READ` - READ + * `WRITE` - WRITE + * `OWNER` - OWNER + x-merge-category: filestorage + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + type: string + description: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + x-merge-category: filestorage + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: filestorage + SyncStatus: + type: object + description: |- + # The SyncStatus Object + ### Description + The `SyncStatus` object is used to represent the syncing state of an account + + ### Usage Example + View the `SyncStatus` for an account to see how recently its models were synced. + properties: + model_name: + type: string + example: File + model_id: + type: string + example: filestorage.FileStorageFile + last_sync_start: + type: string + format: date-time + example: '2021-03-30T19:44:18.695973Z' + next_sync_start: + type: string + format: date-time + example: '2021-03-30T20:44:18.662942Z' + last_sync_result: + oneOf: + - $ref: '#/components/schemas/LastSyncResultEnum' + - type: string + example: DONE + last_sync_finished: + type: string + format: date-time + example: '2021-03-30T19:55:18.695973Z' + status: + oneOf: + - $ref: '#/components/schemas/StatusFd5Enum' + - type: string + example: SYNCING + is_initial_sync: + type: boolean + example: true + selective_sync_configurations_usage: + $ref: '#/components/schemas/SelectiveSyncConfigurationsUsageEnum' + required: + - is_initial_sync + - model_id + - model_name + - status + x-merge-sample-json: '{"model_name": "Candidate", "model_id": "ats.Candidate", + "last_sync_start": "2021-03-30T19:44:18.695973Z", "next_sync_start": "2021-03-30T20:44:18.662942Z", + "status": "SYNCING", "is_initial_sync": true}' + x-merge-category: filestorage + TypeEnum: + enum: + - USER + - GROUP + - COMPANY + - ANYONE + type: string + description: |- + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + x-merge-category: filestorage + User: + type: object + description: |- + # The User Object + ### Description + The `User` object is used to represent a user within the File Storage account. + ### Usage Example + Fetch from the `GET /api/filestorage/v1/users` endpoint and view their users. + properties: + id: + type: string + format: uuid + readOnly: true + example: 83902e75-4362-4803-b76c-a7d6be292cbd + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '2039349' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The user's name. + maxLength: 254 + example: Gil Feig + email_address: + type: string + nullable: true + description: The user's email address. This is typically used to identify + a user across linked accounts. + maxLength: 2000 + example: hello@merge.dev + is_me: + type: boolean + description: Whether the user is the one who linked this account. + example: true + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /users + data: + - Varies by platform + x-merge-expands: '{"roles": "Role", "teams": "Team"}' + x-merge-category: filestorage + ValidationProblemSource: + type: object + properties: + pointer: + type: string + required: + - pointer + x-merge-category: filestorage + WarningValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /age + title: + type: string + example: Unrecognized Field + detail: + type: string + example: An unrecognized field, age, was passed in with request data. + problem_type: + type: string + example: UNRECOGNIZED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: filestorage + WebhookReceiver: + type: object + properties: + event: + type: string + is_active: + type: boolean + key: + type: string + required: + - event + - is_active + x-merge-category: filestorage + WebhookReceiverRequest: + type: object + properties: + event: + type: string + minLength: 1 + is_active: + type: boolean + key: + type: string + minLength: 1 + required: + - event + - is_active + x-merge-category: filestorage + securitySchemes: + tokenAuth: + type: http + scheme: bearer + description: Token-based authentication with required prefix "Bearer" + x-fern-token-variable-name: api_key +servers: +- url: https://api.merge.dev/api/filestorage/v1 + description: Production + x-fern-server-name: Production +- url: https://api-sandbox.merge.dev/api/filestorage/v1 + description: Sandbox + x-fern-server-name: Sandbox +- url: https://api-eu.merge.dev/api/filestorage/v1 + description: Production EU + x-fern-server-name: ProductionEU +- url: https://api-ap.merge.dev/api/filestorage/v1 + description: Production APSE1 + x-fern-server-name: ProductionAPSE1 diff --git a/.mock/hris_v3.yml b/.mock/hris_v3.yml new file mode 100644 index 00000000..0efa7fe6 --- /dev/null +++ b/.mock/hris_v3.yml @@ -0,0 +1,12079 @@ +openapi: 3.0.3 +info: + title: Merge HRIS API + version: '1.0' + description: The unified API for building rich integrations with multiple HR Information + System platforms. + contact: + name: Merge Team + url: https://www.merge.dev/ + email: hello@merge.dev +paths: + /hris/v1/account-details: + get: + operationId: account_details_retrieve + description: Get details for a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - account-details + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountDetails' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/account-token/{public_token}: + get: + operationId: account_token_retrieve + description: Returns the account token for the end user with the provided public + token. + parameters: + - in: path + name: public_token + schema: + type: string + required: true + tags: + - account-token + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/async-passthrough: + post: + operationId: async_passthrough_create + description: Asynchronously pull data from an endpoint not currently supported + by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - async-passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncPassthroughReciept' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/async-passthrough/{async_passthrough_receipt_id}: + get: + operationId: async_passthrough_retrieve + description: Retrieves data from earlier async-passthrough POST request + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: async_passthrough_receipt_id + schema: + type: string + format: uuid + required: true + tags: + - async-passthrough + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/RemoteResponse' + - type: string + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/audit-trail: + get: + operationId: audit_trail_list + description: Gets a list of audit trail events. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include audit trail events that occurred + before this time + - in: query + name: event_type + schema: + type: string + description: 'If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, + `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, + `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, + `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, + `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, + `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED`' + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include audit trail events that occurred + after this time + - in: query + name: user_email + schema: + type: string + description: If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's email + at the time of the event, and may not be their current email. + tags: + - audit-trail + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAuditLogEventList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/available-actions: + get: + operationId: available_actions_retrieve + description: Returns a list of models and actions available for an account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - available-actions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AvailableActions' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/bank-info: + get: + operationId: bank_info_list + description: Returns a list of `BankInfo` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: account_type + schema: + type: string + nullable: true + enum: + - CHECKING + - SAVINGS + description: |- + If provided, will only return BankInfo's with this account type. Options: ('SAVINGS', 'CHECKING') + + * `SAVINGS` - SAVINGS + * `CHECKING` - CHECKING + - in: query + name: bank_name + schema: + type: string + nullable: true + description: If provided, will only return BankInfo's with this bank name. + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: employee_id + schema: + type: string + description: If provided, will only return bank accounts for this employee. + examples: + EmployeeId: + summary: employee_id + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee: + value: employee + summary: Expand Employee + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: order_by + schema: + type: string + enum: + - -remote_created_at + - remote_created_at + x-fern-enum: + -remote_created_at: + name: RemoteCreatedAtDescending + remote_created_at: + name: RemoteCreatedAtAscending + description: 'Overrides the default ordering for this endpoint. Possible values + include: remote_created_at, -remote_created_at.' + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - account_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesAccountType: + value: account_type + summary: Original Enum Values Account_type + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - account_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesAccountType: + value: account_type + summary: Original Enum Values Account_type + tags: + - bank-info + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBankInfoList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/bank-info/{id}: + get: + operationId: bank_info_retrieve + description: Returns a `BankInfo` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee: + value: employee + summary: Expand Employee + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - account_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesAccountType: + value: account_type + summary: Original Enum Values Account_type + - in: query + name: show_enum_origins + schema: + type: string + enum: + - account_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesAccountType: + value: account_type + summary: Original Enum Values Account_type + tags: + - bank-info + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BankInfo' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/benefits: + get: + operationId: benefits_list + description: Returns a list of `Benefit` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: employee_id + schema: + type: string + description: If provided, will return the benefits associated with the employee. + examples: + EmployeeId: + summary: employee_id + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee: + value: employee + summary: Expand Employee + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - benefits + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedBenefitList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/benefits/{id}: + get: + operationId: benefits_retrieve + description: Returns a `Benefit` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee: + value: employee + summary: Expand Employee + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - benefits + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Benefit' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/companies: + get: + operationId: companies_list + description: Returns a list of `Company` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - companies + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCompanyList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/companies/{id}: + get: + operationId: companies_retrieve + description: Returns a `Company` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - companies + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/default-scopes: + get: + operationId: default_scopes_retrieve + description: Get the default permissions for Merge Common Models and fields + across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/delete-account: + post: + operationId: delete_account_delete + description: Delete a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - delete-account + security: + - tokenAuth: [] + responses: + '200': + description: No response body + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/dependents: + get: + operationId: dependents_list + description: Returns a list of `Dependent` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_sensitive_fields + schema: + type: boolean + description: Whether to include sensitive fields (such as social security + numbers) in the response. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - dependents + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDependentList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /hris/v1/dependents/{id}: + get: + operationId: dependents_retrieve + description: Returns a `Dependent` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_sensitive_fields + schema: + type: boolean + description: Whether to include sensitive fields (such as social security + numbers) in the response. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - dependents + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Dependent' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /hris/v1/employee-payroll-runs: + get: + operationId: employee_payroll_runs_list + description: Returns a list of `EmployeePayrollRun` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: employee_id + schema: + type: string + description: If provided, will only return employee payroll runs for this + employee. + examples: + EmployeeId: + summary: employee_id + - in: query + name: ended_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return employee payroll runs ended after + this datetime. + - in: query + name: ended_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return employee payroll runs ended before + this datetime. + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + - payroll_run + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee,PayrollRun: + value: employee,payroll_run + summary: Expand Employee, Payroll_run + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: payroll_run_id + schema: + type: string + description: If provided, will only return employee payroll runs for this + employee. + examples: + PayrollRunId: + summary: payroll_run_id + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: started_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return employee payroll runs started after + this datetime. + - in: query + name: started_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return employee payroll runs started before + this datetime. + tags: + - employee-payroll-runs + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEmployeePayrollRunList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /hris/v1/employee-payroll-runs/{id}: + get: + operationId: employee_payroll_runs_retrieve + description: Returns an `EmployeePayrollRun` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + - payroll_run + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee,PayrollRun: + value: employee,payroll_run + summary: Expand Employee, Payroll_run + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - employee-payroll-runs + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/EmployeePayrollRun' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /hris/v1/employees: + get: + operationId: employees_list + description: Returns a list of `Employee` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: company_id + schema: + type: string + description: If provided, will only return employees for this company. + examples: + CompanyId: + summary: company_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: display_full_name + schema: + type: string + nullable: true + description: If provided, will only return employees with this display name. + - in: query + name: employment_status + schema: + type: string + nullable: true + enum: + - ACTIVE + - INACTIVE + - PENDING + description: |- + If provided, will only return employees with this employment status. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + - in: query + name: employment_type + schema: + type: string + description: If provided, will only return employees that have an employment + of the specified employment_type. + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + - employments + - groups + - home_location + - manager + - pay_group + - team + - work_location + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployments,Groups,HomeLocation,WorkLocation,Manager,Team,Company,PayGroup: + value: employments,groups,home_location,work_location,manager,team,company,pay_group + summary: Expand Employments, Groups, Home_location, Work_location, Manager, + Team, Company, Pay_group + explode: false + - in: query + name: first_name + schema: + type: string + nullable: true + description: If provided, will only return employees with this first name. + - in: query + name: groups + schema: + type: string + description: If provided, will only return employees matching the group ids; + multiple groups can be separated by commas. + - in: query + name: home_location_id + schema: + type: string + description: If provided, will only return employees for this home location. + examples: + HomeLocationId: + summary: home_location_id + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_sensitive_fields + schema: + type: boolean + description: Whether to include sensitive fields (such as social security + numbers) in the response. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: job_title + schema: + type: string + description: If provided, will only return employees that have an employment + of the specified job_title. + - in: query + name: last_name + schema: + type: string + nullable: true + description: If provided, will only return employees with this last name. + - in: query + name: manager_id + schema: + type: string + description: If provided, will only return employees for this manager. + examples: + ManagerId: + summary: manager_id + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: pay_group_id + schema: + type: string + description: If provided, will only return employees for this pay group + examples: + PayGroupId: + summary: pay_group_id + - in: query + name: personal_email + schema: + type: string + format: email + nullable: true + description: If provided, will only return Employees with this personal email + - in: query + name: remote_fields + schema: + type: string + enum: + - employment_status + - employment_status,ethnicity + - employment_status,ethnicity,gender + - employment_status,ethnicity,gender,marital_status + - employment_status,ethnicity,marital_status + - employment_status,gender + - employment_status,gender,marital_status + - employment_status,marital_status + - ethnicity + - ethnicity,gender + - ethnicity,gender,marital_status + - ethnicity,marital_status + - gender + - gender,marital_status + - marital_status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesEmploymentStatus,Ethnicity,Gender,MaritalStatus: + value: employment_status,ethnicity,gender,marital_status + summary: Original Enum Values Employment_status, Ethnicity, Gender, Marital_status + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - employment_status + - employment_status,ethnicity + - employment_status,ethnicity,gender + - employment_status,ethnicity,gender,marital_status + - employment_status,ethnicity,marital_status + - employment_status,gender + - employment_status,gender,marital_status + - employment_status,marital_status + - ethnicity + - ethnicity,gender + - ethnicity,gender,marital_status + - ethnicity,marital_status + - gender + - gender,marital_status + - marital_status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesEmploymentStatus,Ethnicity,Gender,MaritalStatus: + value: employment_status,ethnicity,gender,marital_status + summary: Original Enum Values Employment_status, Ethnicity, Gender, Marital_status + - in: query + name: started_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return employees that started after this + datetime. + - in: query + name: started_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return employees that started before this + datetime. + - in: query + name: team_id + schema: + type: string + description: If provided, will only return employees for this team. + examples: + TeamId: + summary: team_id + - in: query + name: terminated_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return employees that were terminated + after this datetime. + - in: query + name: terminated_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return employees that were terminated + before this datetime. + - in: query + name: work_email + schema: + type: string + format: email + nullable: true + description: If provided, will only return Employees with this work email + - in: query + name: work_location_id + schema: + type: string + description: If provided, will only return employees for this location. + examples: + WorkLocationId: + summary: work_location_id + tags: + - employees + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEmployeeList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: employees_create + description: Creates an `Employee` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - employees + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EmployeeEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EmployeeEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/EmployeeEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/EmployeeResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /hris/v1/employees/{id}: + get: + operationId: employees_retrieve + description: Returns an `Employee` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - company + - employments + - groups + - home_location + - manager + - pay_group + - team + - work_location + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployments,Groups,HomeLocation,WorkLocation,Manager,Team,Company,PayGroup: + value: employments,groups,home_location,work_location,manager,team,company,pay_group + summary: Expand Employments, Groups, Home_location, Work_location, Manager, + Team, Company, Pay_group + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_sensitive_fields + schema: + type: boolean + description: Whether to include sensitive fields (such as social security + numbers) in the response. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - employment_status + - employment_status,ethnicity + - employment_status,ethnicity,gender + - employment_status,ethnicity,gender,marital_status + - employment_status,ethnicity,marital_status + - employment_status,gender + - employment_status,gender,marital_status + - employment_status,marital_status + - ethnicity + - ethnicity,gender + - ethnicity,gender,marital_status + - ethnicity,marital_status + - gender + - gender,marital_status + - marital_status + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesEmploymentStatus,Ethnicity,Gender,MaritalStatus: + value: employment_status,ethnicity,gender,marital_status + summary: Original Enum Values Employment_status, Ethnicity, Gender, Marital_status + - in: query + name: show_enum_origins + schema: + type: string + enum: + - employment_status + - employment_status,ethnicity + - employment_status,ethnicity,gender + - employment_status,ethnicity,gender,marital_status + - employment_status,ethnicity,marital_status + - employment_status,gender + - employment_status,gender,marital_status + - employment_status,marital_status + - ethnicity + - ethnicity,gender + - ethnicity,gender,marital_status + - ethnicity,marital_status + - gender + - gender,marital_status + - marital_status + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesEmploymentStatus,Ethnicity,Gender,MaritalStatus: + value: employment_status,ethnicity,gender,marital_status + summary: Original Enum Values Employment_status, Ethnicity, Gender, Marital_status + tags: + - employees + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Employee' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/employees/ignore/{model_id}: + post: + operationId: employees_ignore_create + description: Ignores a specific row based on the `model_id` in the url. These + records will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will be + stored for audit purposes. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: model_id + schema: + type: string + format: uuid + required: true + tags: + - employees + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/IgnoreCommonModelRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + description: No response body + x-extra-tags: + - ignore-model + /hris/v1/employees/meta/post: + get: + operationId: employees_meta_post_retrieve + description: Returns metadata for `Employee` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - employees + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/employer-benefits: + get: + operationId: employer_benefits_list + description: Returns a list of `EmployerBenefit` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - employer-benefits + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEmployerBenefitList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /hris/v1/employer-benefits/{id}: + get: + operationId: employer_benefits_retrieve + description: Returns an `EmployerBenefit` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - employer-benefits + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/EmployerBenefit' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /hris/v1/employments: + get: + operationId: employments_list + description: Returns a list of `Employment` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: employee_id + schema: + type: string + description: If provided, will only return employments for this employee. + examples: + EmployeeId: + summary: employee_id + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + - pay_group + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee,PayGroup: + value: employee,pay_group + summary: Expand Employee, Pay_group + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: order_by + schema: + type: string + enum: + - -effective_date + - effective_date + x-fern-enum: + -effective_date: + name: EffectiveDateDescending + effective_date: + name: EffectiveDateAscending + description: 'Overrides the default ordering for this endpoint. Possible values + include: effective_date, -effective_date.' + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - employment_type + - employment_type,flsa_status + - employment_type,flsa_status,pay_frequency + - employment_type,flsa_status,pay_frequency,pay_period + - employment_type,flsa_status,pay_period + - employment_type,pay_frequency + - employment_type,pay_frequency,pay_period + - employment_type,pay_period + - flsa_status + - flsa_status,pay_frequency + - flsa_status,pay_frequency,pay_period + - flsa_status,pay_period + - pay_frequency + - pay_frequency,pay_period + - pay_period + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesEmploymentType,FlsaStatus,PayFrequency,PayPeriod: + value: employment_type,flsa_status,pay_frequency,pay_period + summary: Original Enum Values Employment_type, Flsa_status, Pay_frequency, + Pay_period + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - employment_type + - employment_type,flsa_status + - employment_type,flsa_status,pay_frequency + - employment_type,flsa_status,pay_frequency,pay_period + - employment_type,flsa_status,pay_period + - employment_type,pay_frequency + - employment_type,pay_frequency,pay_period + - employment_type,pay_period + - flsa_status + - flsa_status,pay_frequency + - flsa_status,pay_frequency,pay_period + - flsa_status,pay_period + - pay_frequency + - pay_frequency,pay_period + - pay_period + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesEmploymentType,FlsaStatus,PayFrequency,PayPeriod: + value: employment_type,flsa_status,pay_frequency,pay_period + summary: Original Enum Values Employment_type, Flsa_status, Pay_frequency, + Pay_period + tags: + - employments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEmploymentList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/employments/{id}: + get: + operationId: employments_retrieve + description: Returns an `Employment` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + - pay_group + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee,PayGroup: + value: employee,pay_group + summary: Expand Employee, Pay_group + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - employment_type + - employment_type,flsa_status + - employment_type,flsa_status,pay_frequency + - employment_type,flsa_status,pay_frequency,pay_period + - employment_type,flsa_status,pay_period + - employment_type,pay_frequency + - employment_type,pay_frequency,pay_period + - employment_type,pay_period + - flsa_status + - flsa_status,pay_frequency + - flsa_status,pay_frequency,pay_period + - flsa_status,pay_period + - pay_frequency + - pay_frequency,pay_period + - pay_period + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesEmploymentType,FlsaStatus,PayFrequency,PayPeriod: + value: employment_type,flsa_status,pay_frequency,pay_period + summary: Original Enum Values Employment_type, Flsa_status, Pay_frequency, + Pay_period + - in: query + name: show_enum_origins + schema: + type: string + enum: + - employment_type + - employment_type,flsa_status + - employment_type,flsa_status,pay_frequency + - employment_type,flsa_status,pay_frequency,pay_period + - employment_type,flsa_status,pay_period + - employment_type,pay_frequency + - employment_type,pay_frequency,pay_period + - employment_type,pay_period + - flsa_status + - flsa_status,pay_frequency + - flsa_status,pay_frequency,pay_period + - flsa_status,pay_period + - pay_frequency + - pay_frequency,pay_period + - pay_period + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesEmploymentType,FlsaStatus,PayFrequency,PayPeriod: + value: employment_type,flsa_status,pay_frequency,pay_period + summary: Original Enum Values Employment_type, Flsa_status, Pay_frequency, + Pay_period + tags: + - employments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Employment' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/field-mappings: + get: + operationId: field_mappings_retrieve + description: Get all Field Mappings for this Linked Account. Field Mappings + are mappings between third-party Remote Fields and user defined Merge fields. + [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingApiInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: field_mappings_create + description: Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to sync + **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/field-mappings/{field_mapping_id}: + patch: + operationId: field_mappings_partial_update + description: Create or update existing Field Mappings for a Linked Account. + Changes will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + delete: + operationId: field_mappings_destroy + description: Deletes Field Mappings for a Linked Account. All data related to + this Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked Account + to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '204': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/generate-key: + post: + operationId: generate_key_create + description: Create a remote key. + tags: + - generate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/groups: + get: + operationId: groups_list + description: Returns a list of `Group` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_commonly_used_as_team + schema: + type: string + description: If provided, specifies whether to return only Group objects which + refer to a team in the third party platform. Note that this is an opinionated + view based on how a team may be represented in the third party platform. + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: names + schema: + type: string + description: If provided, will only return groups with these names. Multiple + values can be separated by commas. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesType: + value: type + summary: Original Enum Values Type + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesType: + value: type + summary: Original Enum Values Type + - in: query + name: types + schema: + type: string + description: If provided, will only return groups of these types. Multiple + values can be separated by commas. + tags: + - groups + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedGroupList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/groups/{id}: + get: + operationId: groups_retrieve + description: Returns a `Group` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesType: + value: type + summary: Original Enum Values Type + - in: query + name: show_enum_origins + schema: + type: string + enum: + - type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesType: + value: type + summary: Original Enum Values Type + tags: + - groups + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Group' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/issues: + get: + operationId: issues_list + description: Gets all issues for Organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: account_token + schema: + type: string + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred before this time + - in: query + name: end_user_organization_name + schema: + type: string + - in: query + name: first_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was after this datetime. + - in: query + name: first_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was before this datetime. + - in: query + name: include_muted + schema: + type: string + description: If true, will include muted issues + - in: query + name: integration_name + schema: + type: string + - in: query + name: last_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was after this datetime. + - in: query + name: last_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was before this datetime. + - in: query + name: linked_account_id + schema: + type: string + description: If provided, will only include issues pertaining to the linked + account passed in. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred after this time + - in: query + name: status + schema: + type: string + enum: + - ONGOING + - RESOLVED + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedIssueList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/issues/{id}: + get: + operationId: issues_retrieve + description: Get a specific issue. + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Issue' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/link-token: + post: + operationId: link_token_create + description: Creates a link token to be used when linking a new end user. + tags: + - link-token + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LinkToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/linked-account-scopes: + get: + operationId: linked_account_scopes_retrieve + description: Get all available permissions for Merge Common Models and fields + for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: linked_account_scopes_create + description: Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the default + Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/linked-accounts: + get: + operationId: linked_accounts_list + description: List linked accounts for your organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: category + schema: + type: string + nullable: true + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + description: |- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `mktg`, `ticketing` + + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_user_email_address + schema: + type: string + description: If provided, will only return linked accounts associated with + the given email address. + - in: query + name: end_user_organization_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given organization name. + - in: query + name: end_user_origin_id + schema: + type: string + description: If provided, will only return linked accounts associated with + the given origin ID. + - in: query + name: end_user_origin_ids + schema: + type: string + description: Comma-separated list of EndUser origin IDs, making it possible + to specify multiple EndUsers at once. + - in: query + name: id + schema: + type: string + format: uuid + - in: query + name: ids + schema: + type: string + description: Comma-separated list of LinkedAccount IDs, making it possible + to specify multiple LinkedAccounts at once. + - in: query + name: include_duplicates + schema: + type: boolean + description: If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. `id` must + be for a complete production linked account. + - in: query + name: integration_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given integration name. + - in: query + name: is_test_account + schema: + type: string + description: If included, will only include test linked accounts. If not included, + will only include non-test linked accounts. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: status + schema: + type: string + description: 'Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED`' + tags: + - linked-accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAccountDetailsAndActionsList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/locations: + get: + operationId: locations_list + description: Returns a list of `Location` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: location_type + schema: + type: string + nullable: true + enum: + - HOME + - WORK + description: |- + If provided, will only return locations with this location_type + + * `HOME` - HOME + * `WORK` - WORK + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - country + - country,location_type + - location_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesCountry,LocationType: + value: country,location_type + summary: Original Enum Values Country, Location_type + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - country + - country,location_type + - location_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesCountry,LocationType: + value: country,location_type + summary: Original Enum Values Country, Location_type + tags: + - locations + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLocationList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/locations/{id}: + get: + operationId: locations_retrieve + description: Returns a `Location` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - country + - country,location_type + - location_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesCountry,LocationType: + value: country,location_type + summary: Original Enum Values Country, Location_type + - in: query + name: show_enum_origins + schema: + type: string + enum: + - country + - country,location_type + - location_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesCountry,LocationType: + value: country,location_type + summary: Original Enum Values Country, Location_type + tags: + - locations + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/passthrough: + post: + operationId: passthrough_create + description: Pull data from an endpoint not currently supported by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/pay-groups: + get: + operationId: pay_groups_list + description: Returns a list of `PayGroup` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - pay-groups + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPayGroupList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/pay-groups/{id}: + get: + operationId: pay_groups_retrieve + description: Returns a `PayGroup` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - pay-groups + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PayGroup' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/payroll-runs: + get: + operationId: payroll_runs_list + description: Returns a list of `PayrollRun` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: ended_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return payroll runs ended after this datetime. + - in: query + name: ended_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return payroll runs ended before this + datetime. + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - run_state + - run_state,run_type + - run_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesRunState,RunType: + value: run_state,run_type + summary: Original Enum Values Run_state, Run_type + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: run_type + schema: + type: string + nullable: true + enum: + - CORRECTION + - OFF_CYCLE + - REGULAR + - SIGN_ON_BONUS + - TERMINATION + description: |- + If provided, will only return PayrollRun's with this status. Options: ('REGULAR', 'OFF_CYCLE', 'CORRECTION', 'TERMINATION', 'SIGN_ON_BONUS') + + * `REGULAR` - REGULAR + * `OFF_CYCLE` - OFF_CYCLE + * `CORRECTION` - CORRECTION + * `TERMINATION` - TERMINATION + * `SIGN_ON_BONUS` - SIGN_ON_BONUS + - in: query + name: show_enum_origins + schema: + type: string + enum: + - run_state + - run_state,run_type + - run_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesRunState,RunType: + value: run_state,run_type + summary: Original Enum Values Run_state, Run_type + - in: query + name: started_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return payroll runs started after this + datetime. + - in: query + name: started_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return payroll runs started before this + datetime. + tags: + - payroll-runs + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedPayrollRunList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /hris/v1/payroll-runs/{id}: + get: + operationId: payroll_runs_retrieve + description: Returns a `PayrollRun` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - run_state + - run_state,run_type + - run_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesRunState,RunType: + value: run_state,run_type + summary: Original Enum Values Run_state, Run_type + - in: query + name: show_enum_origins + schema: + type: string + enum: + - run_state + - run_state,run_type + - run_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesRunState,RunType: + value: run_state,run_type + summary: Original Enum Values Run_state, Run_type + tags: + - payroll-runs + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PayrollRun' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /hris/v1/regenerate-key: + post: + operationId: regenerate_key_create + description: Exchange remote keys. + tags: + - regenerate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/remote-fields: + get: + operationId: remote_fields_retrieve + description: Get all remote fields for a Linked Account. Remote fields are third-party + fields that are accessible after initial sync if remote_data is enabled. You + can use remote fields to override existing Merge fields or map a new Merge + field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: common_models + schema: + type: string + description: A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + - in: query + name: include_example_values + schema: + type: string + description: If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active data from + your customers. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/sync-status: + get: + operationId: sync_status_list + description: Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` + represents the most recent time any sync completed. These timestamps may correspond + to different sync instances which may result in a sync start time being later + than a separate sync completed time. To ensure you are retrieving the latest + available data reference the `last_sync_finished` timestamp where `last_sync_result` + is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about + sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - sync-status + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSyncStatusList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/sync-status/resync: + post: + operationId: sync_status_resync_create + description: Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or Enterprise + plans. Doing so will consume a sync credit for the relevant linked account. + Force re-syncs can also be triggered manually in the Merge Dashboard and is + available for all customers. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - force-resync + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/target-fields: + get: + operationId: target_fields_retrieve + description: Get all organization-wide Target Fields, this will not include + any Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked Accounts + in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExternalTargetFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/teams: + get: + operationId: teams_list + description: Returns a list of `Team` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - parent_team + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandParentTeam: + value: parent_team + summary: Expand Parent_team + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: parent_team_id + schema: + type: string + description: If provided, will only return teams with this parent team. + examples: + ParentTeamId: + summary: parent_team_id + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - teams + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTeamList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/teams/{id}: + get: + operationId: teams_retrieve + description: Returns a `Team` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - parent_team + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandParentTeam: + value: parent_team + summary: Expand Parent_team + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - teams + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Team' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/time-off: + get: + operationId: time_off_list + description: Returns a list of `TimeOff` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: approver_id + schema: + type: string + description: If provided, will only return time off for this approver. + examples: + ApproverId: + summary: approver_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: employee_id + schema: + type: string + description: If provided, will only return time off for this employee. + examples: + EmployeeId: + summary: employee_id + - in: query + name: ended_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return employees that ended after this + datetime. + - in: query + name: ended_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return time-offs that ended before this + datetime. + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - approver + - employee + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee,Approver: + value: employee,approver + summary: Expand Employee, Approver + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_fields + schema: + type: string + enum: + - request_type + - request_type,status + - request_type,status,units + - request_type,units + - status + - status,units + - units + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesRequestType,Status,Units: + value: request_type,status,units + summary: Original Enum Values Request_type, Status, Units + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: request_type + schema: + type: string + nullable: true + enum: + - BEREAVEMENT + - JURY_DUTY + - PERSONAL + - SICK + - VACATION + - VOLUNTEER + description: |- + If provided, will only return TimeOff with this request type. Options: ('VACATION', 'SICK', 'PERSONAL', 'JURY_DUTY', 'VOLUNTEER', 'BEREAVEMENT') + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + - in: query + name: show_enum_origins + schema: + type: string + enum: + - request_type + - request_type,status + - request_type,status,units + - request_type,units + - status + - status,units + - units + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesRequestType,Status,Units: + value: request_type,status,units + summary: Original Enum Values Request_type, Status, Units + - in: query + name: started_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return time-offs that started after this + datetime. + - in: query + name: started_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return time-offs that started before this + datetime. + - in: query + name: status + schema: + type: string + nullable: true + enum: + - APPROVED + - CANCELLED + - DECLINED + - DELETED + - REQUESTED + description: |- + If provided, will only return TimeOff with this status. Options: ('REQUESTED', 'APPROVED', 'DECLINED', 'CANCELLED', 'DELETED') + + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + tags: + - time-off + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTimeOffList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: time_off_create + description: Creates a `TimeOff` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - time-off + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TimeOffEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TimeOffEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TimeOffEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TimeOffResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /hris/v1/time-off-balances: + get: + operationId: time_off_balances_list + description: Returns a list of `TimeOffBalance` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: employee_id + schema: + type: string + description: If provided, will only return time off balances for this employee. + examples: + EmployeeId: + summary: employee_id + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee: + value: employee + summary: Expand Employee + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: policy_type + schema: + type: string + nullable: true + enum: + - BEREAVEMENT + - JURY_DUTY + - PERSONAL + - SICK + - VACATION + - VOLUNTEER + description: |- + If provided, will only return TimeOffBalance with this policy type. Options: ('VACATION', 'SICK', 'PERSONAL', 'JURY_DUTY', 'VOLUNTEER', 'BEREAVEMENT') + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + - in: query + name: remote_fields + schema: + type: string + enum: + - policy_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesPolicyType: + value: policy_type + summary: Original Enum Values Policy_type + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - policy_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesPolicyType: + value: policy_type + summary: Original Enum Values Policy_type + tags: + - time-off-balances + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTimeOffBalanceList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/time-off-balances/{id}: + get: + operationId: time_off_balances_retrieve + description: Returns a `TimeOffBalance` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee: + value: employee + summary: Expand Employee + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - policy_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesPolicyType: + value: policy_type + summary: Original Enum Values Policy_type + - in: query + name: show_enum_origins + schema: + type: string + enum: + - policy_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesPolicyType: + value: policy_type + summary: Original Enum Values Policy_type + tags: + - time-off-balances + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TimeOffBalance' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/time-off/{id}: + get: + operationId: time_off_retrieve + description: Returns a `TimeOff` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - approver + - employee + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee,Approver: + value: employee,approver + summary: Expand Employee, Approver + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - request_type + - request_type,status + - request_type,status,units + - request_type,units + - status + - status,units + - units + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesRequestType,Status,Units: + value: request_type,status,units + summary: Original Enum Values Request_type, Status, Units + - in: query + name: show_enum_origins + schema: + type: string + enum: + - request_type + - request_type,status + - request_type,status,units + - request_type,units + - status + - status,units + - units + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesRequestType,Status,Units: + value: request_type,status,units + summary: Original Enum Values Request_type, Status, Units + tags: + - time-off + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TimeOff' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/time-off/meta/post: + get: + operationId: time_off_meta_post_retrieve + description: Returns metadata for `TimeOff` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - time-off + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/timesheet-entries: + get: + operationId: timesheet_entries_list + description: Returns a list of `TimesheetEntry` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: employee_id + schema: + type: string + description: If provided, will only return timesheet entries for this employee. + examples: + EmployeeId: + summary: employee_id + - in: query + name: ended_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return timesheet entries ended after this + datetime. + - in: query + name: ended_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return timesheet entries ended before + this datetime. + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee: + value: employee + summary: Expand Employee + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - in: query + name: order_by + schema: + type: string + enum: + - -start_time + - start_time + x-fern-enum: + -start_time: + name: StartTimeDescending + start_time: + name: StartTimeAscending + description: 'Overrides the default ordering for this endpoint. Possible values + include: start_time, -start_time.' + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: started_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return timesheet entries started after + this datetime. + - in: query + name: started_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return timesheet entries started before + this datetime. + tags: + - timesheet-entries + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTimesheetEntryList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: timesheet_entries_create + description: Creates a `TimesheetEntry` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - timesheet-entries + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TimesheetEntryEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TimesheetEntryEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TimesheetEntryEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TimesheetEntryResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/timesheet-entries/{id}: + get: + operationId: timesheet_entries_retrieve + description: Returns a `TimesheetEntry` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - employee + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandEmployee: + value: employee + summary: Expand Employee + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - timesheet-entries + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TimesheetEntry' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/timesheet-entries/meta/post: + get: + operationId: timesheet_entries_meta_post_retrieve + description: Returns metadata for `TimesheetEntry` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - timesheet-entries + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /hris/v1/webhook-receivers: + get: + operationId: webhook_receivers_list + description: Returns a list of `WebhookReceiver` objects. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: webhook_receivers_create + description: Creates a `WebhookReceiver` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC +components: + schemas: + AccountDetails: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: + type: string + readOnly: true + example: BambooHR + integration_slug: + type: string + readOnly: true + example: bamboohr + category: + oneOf: + - $ref: '#/components/schemas/CategoryEnum' + - type: string + nullable: true + example: hris + end_user_origin_id: + type: string + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: + type: string + readOnly: true + example: Waystar Royco + end_user_email_address: + type: string + format: email + readOnly: true + example: kendall.roy@waystar-royco.com + status: + type: string + readOnly: true + example: COMPLETE + webhook_listener_url: + type: string + format: uri + readOnly: true + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + readOnly: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + account_type: + type: string + readOnly: true + example: PRODUCTION + completed_at: + type: string + format: date-time + nullable: true + description: The time at which account completes the linking flow. + example: '2024-08-26T20:11:19.277118Z' + x-merge-category: hris + AccountDetailsAndActions: + type: object + description: |- + # The LinkedAccount Object + ### Description + The `LinkedAccount` object is used to represent an end user's link with a specific integration. + + ### Usage Example + View a list of your organization's `LinkedAccount` objects. + properties: + id: + type: string + example: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: + oneOf: + - $ref: '#/components/schemas/CategoryEnum' + - type: string + example: hris + status: + oneOf: + - $ref: '#/components/schemas/AccountDetailsAndActionsStatusEnum' + - type: string + example: INCOMPLETE + status_detail: + type: string + example: Invalid login credentials + end_user_origin_id: + type: string + example: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: + type: string + example: Foo Bar, LLC + end_user_email_address: + type: string + example: hradmin@foobar.dev + subdomain: + type: string + description: The tenant or domain the customer has provided access to. + example: foobar + webhook_listener_url: + type: string + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + integration: + $ref: '#/components/schemas/AccountDetailsAndActionsIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: + type: string + example: PRODUCTION + completed_at: + type: string + format: date-time + example: '2024-08-26T20:11:19.277118Z' + required: + - account_type + - completed_at + - end_user_email_address + - end_user_organization_name + - id + - status + - webhook_listener_url + x-merge-sample-json: '{"id": "e59b1821-f85c-4e28-a6b3-1804156f3563", "category": + "hris", "status": "INCOMPLETE", "status_detail": "Invalid login credentials", + "end_user_origin_id": "3ac95cde-6c7f-4eef-afec-be710b42308d", "end_user_organization_name": + "Foo Bar, LLC", "end_user_email_address": "hradmin@foobar.dev", "webhook_listener_url": + "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + "is_duplicate": true, "integration": {"name": "SAP SuccessFactors", "categories": + ["hris", "ats"], "image": "https://cdn.merge.dev/SuccessFactors_Logo.png", + "square_image": "https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg", "color": + "#F6A704", "slug": "sap-successfactors", "passthrough_available": true, "available_model_operations": + [{"model_name": "Candidate", "available_operations": ["FETCH", "CREATE"], + "required_post_parameters": ["remote_user_id"], "supported_fields": ["first_name", + "last_name", "company", "title"]}]}}' + x-merge-category: hris + AccountDetailsAndActionsIntegration: + type: object + properties: + name: + type: string + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + image: + type: string + square_image: + type: string + color: + type: string + slug: + type: string + passthrough_available: + type: boolean + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + required: + - categories + - color + - name + - passthrough_available + - slug + x-merge-category: hris + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + type: string + description: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + x-merge-category: hris + AccountIntegration: + type: object + properties: + name: + type: string + description: Company name. + abbreviated_name: + type: string + nullable: true + description: "Optional. This shortened name appears in places with limited + space, usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce Now), + SuccessFactors (in lieu of SAP SuccessFactors)" + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + readOnly: true + image: + type: string + format: uri + nullable: true + description: Company logo in rectangular shape. + square_image: + type: string + format: uri + nullable: true + description: Company logo in square shape. + color: + type: string + description: The color of this integration used for buttons and text throughout + the app and landing pages. Choose a darker, saturated color. + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: string + readOnly: true + api_endpoints_to_documentation_urls: + type: object + additionalProperties: {} + description: "Mapping of API endpoints to documentation urls for support. + Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []}" + webhook_setup_guide_url: + type: string + nullable: true + description: Setup guide URL for third party webhook creation. Exposed in + Merge Docs. + category_beta_status: + type: object + description: Category or categories this integration is in beta status for. + readOnly: true + required: + - name + x-merge-category: hris + AccountToken: + type: object + properties: + account_token: + type: string + example: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + id: + type: string + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + required: + - account_token + - id + - integration + x-merge-category: hris + AccountTypeEnum: + enum: + - SAVINGS + - CHECKING + type: string + description: |- + * `SAVINGS` - SAVINGS + * `CHECKING` - CHECKING + x-merge-category: hris + AdvancedMetadata: + type: object + properties: + id: + type: string + format: uuid + display_name: + type: string + description: + type: string + is_required: + type: boolean + is_custom: + type: boolean + field_choices: + type: array + items: {} + required: + - id + x-merge-category: hris + AsyncPassthroughReciept: + type: object + properties: + async_passthrough_receipt_id: + type: string + format: uuid + example: fd29020f-2695-445e-922e-dcd5e81903fd + required: + - async_passthrough_receipt_id + x-merge-category: hris + AuditLogEvent: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: + type: string + nullable: true + description: The User's full name at the time of this Event occurring. + maxLength: 200 + example: Gil Feig + user_email: + type: string + format: email + nullable: true + description: The User's email at the time of this Event occurring. + maxLength: 254 + example: hello@merge.dev + role: + oneOf: + - $ref: '#/components/schemas/RoleEnum' + - type: string + description: |- + Designates the role of the user (or SYSTEM/API if action not taken by a user) at the time of this Event occurring. + + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + example: ADMIN + ip_address: + type: string + maxLength: 45 + example: 192.0.2.123 + event_type: + oneOf: + - $ref: '#/components/schemas/EventTypeEnum' + - type: string + description: |- + Designates the type of event that occurred. + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + example: CHANGED_SCOPES + event_description: + type: string + example: Organization-wide Scopes for model hris.Employee updated from Read + to Read+Write + created_at: + type: string + format: date-time + readOnly: true + required: + - event_description + - event_type + - ip_address + - role + x-merge-category: hris + AvailableActions: + type: object + description: |- + # The AvailableActions Object + ### Description + The `Activity` object is used to see all available model/operation combinations for an integration. + + ### Usage Example + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: Lever + categories: + - ats + image: https://merge-api-production.s3.amazonaws.com/media/Lever_Logo.png + square_image: https://merge-api-production.s3.amazonaws.com/media/Lever_Square_Logo.png + color: '#262A34' + is_in_beta: 'true' + api_endpoints_to_documentation_urls: "{'GET': [('/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve')], + 'POST': []}" + passthrough_available: + type: boolean + example: true + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + example: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + required: + - integration + - passthrough_available + x-merge-category: hris + BankInfo: + type: object + description: |- + # The BankInfo Object + ### Description + The `BankInfo` object is used to represent the Bank Account information for an Employee. + + ### Usage Example + Fetch from the `LIST BankInfo` endpoint and filter by `ID` to show all bank information. + properties: + id: + type: string + format: uuid + readOnly: true + example: fd1e0fb5-8f92-4ec9-9f32-179cf732867d + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '123234' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee with this bank account. + example: a3617eb4-dfe3-426f-921e-a65fc1661e10 + x-merge-expands-to: Employee + account_number: + type: string + nullable: true + description: The account number. + maxLength: 100 + example: '439291590' + routing_number: + type: string + nullable: true + description: The routing number. + example: '089690059' + bank_name: + type: string + nullable: true + description: The bank name. + example: Chase + account_type: + oneOf: + - $ref: '#/components/schemas/AccountTypeEnum' + - type: string + nullable: true + description: |- + The bank account type + + * `SAVINGS` - SAVINGS + * `CHECKING` - CHECKING + example: CHECKING + remote_created_at: + type: string + format: date-time + nullable: true + description: When the matching bank object was created in the third party + system. + example: '2021-12-06T10:11:26Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /bank-info + data: + - Varies by platform + x-merge-expands: '{"employee": "Employee"}' + x-merge-category: hris + Benefit: + type: object + description: |- + # The Benefit Object + ### Description + The `Benefit` object is used to represent a benefit that an employee has enrolled in. + + ### Usage Example + Fetch from the `LIST Benefits` endpoint and filter by `ID` to show all benefits. + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fe5ae7a-f1ba-4529-b7af-84e86dc6d232 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee on the plan. + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: Employee + provider_name: + type: string + nullable: true + description: The name of the benefit provider. + example: Blue Shield of California + benefit_plan_type: + type: string + nullable: true + description: The type of benefit plan + deprecated: true + employee_contribution: + type: number + format: double + nullable: true + description: The employee's contribution. + example: 23.65 + company_contribution: + type: number + format: double + nullable: true + description: The company's contribution. + example: 150 + start_date: + type: string + format: date-time + nullable: true + description: The day and time the benefit started. + example: '2020-11-15 00:59:25.309761+00:00' + end_date: + type: string + format: date-time + nullable: true + description: The day and time the benefit ended. + example: '2021-10-15 00:23:25.309761+00:00' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + employer_benefit: + type: string + format: uuid + nullable: true + description: The employer benefit plan the employee is enrolled in. + example: 025fjlc6-6000-430a-848e-aafacbadf4fe + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /benefits + data: + - Varies by platform + x-merge-expands: '{"employee": "Employee"}' + x-merge-category: hris + BenefitPlanTypeEnum: + enum: + - MEDICAL + - HEALTH_SAVINGS + - INSURANCE + - RETIREMENT + - OTHER + type: string + description: |- + * `MEDICAL` - MEDICAL + * `HEALTH_SAVINGS` - HEALTH_SAVINGS + * `INSURANCE` - INSURANCE + * `RETIREMENT` - RETIREMENT + * `OTHER` - OTHER + x-merge-category: hris + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: hris + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: hris + CommonModelScopeAPI: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializer' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + required: + - common_models + x-merge-category: hris + CommonModelScopesBodyRequest: + type: object + properties: + model_id: + type: string + minLength: 1 + example: hris.Employee + enabled_actions: + type: array + items: + $ref: '#/components/schemas/EnabledActionsEnum' + example: + - READ + - WRITE + disabled_fields: + type: array + items: + type: string + minLength: 1 + example: + - first_name + required: + - disabled_fields + - enabled_actions + - model_id + x-merge-category: hris + Company: + type: object + description: |- + # The Company Object + ### Description + The `Company` object is used to represent a company within the HRIS / Payroll system. + + ### Usage Example + Fetch from the `LIST Companies` endpoint and filter by `ID` to show all companies. + properties: + id: + type: string + format: uuid + readOnly: true + example: 1b998423-db0a-4037-a4cf-f79c60cb67b3 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + legal_name: + type: string + nullable: true + description: The company's legal name. + example: Waystar Royco, Inc. + display_name: + type: string + nullable: true + description: The company's display name. + example: Waystar Royco + eins: + type: array + items: + type: string + nullable: true + nullable: true + description: The company's Employer Identification Numbers. + example: + - 12-3456789 + - 12-3451111 + - 11-0011000 + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /companies + data: + - Varies by platform + x-merge-category: hris + CountryEnum: + enum: + - AF + - AX + - AL + - DZ + - AS + - AD + - AO + - AI + - AQ + - AG + - AR + - AM + - AW + - AU + - AT + - AZ + - BS + - BH + - BD + - BB + - BY + - BE + - BZ + - BJ + - BM + - BT + - BO + - BQ + - BA + - BW + - BV + - BR + - IO + - BN + - BG + - BF + - BI + - CV + - KH + - CM + - CA + - KY + - CF + - TD + - CL + - CN + - CX + - CC + - CO + - KM + - CG + - CD + - CK + - CR + - CI + - HR + - CU + - CW + - CY + - CZ + - DK + - DJ + - DM + - DO + - EC + - EG + - SV + - GQ + - ER + - EE + - SZ + - ET + - FK + - FO + - FJ + - FI + - FR + - GF + - PF + - TF + - GA + - GM + - GE + - DE + - GH + - GI + - GR + - GL + - GD + - GP + - GU + - GT + - GG + - GN + - GW + - GY + - HT + - HM + - VA + - HN + - HK + - HU + - IS + - IN + - ID + - IR + - IQ + - IE + - IM + - IL + - IT + - JM + - JP + - JE + - JO + - KZ + - KE + - KI + - KW + - KG + - LA + - LV + - LB + - LS + - LR + - LY + - LI + - LT + - LU + - MO + - MG + - MW + - MY + - MV + - ML + - MT + - MH + - MQ + - MR + - MU + - YT + - MX + - FM + - MD + - MC + - MN + - ME + - MS + - MA + - MZ + - MM + - NA + - NR + - NP + - NL + - NC + - NZ + - NI + - NE + - NG + - NU + - NF + - KP + - MK + - MP + - NO + - OM + - PK + - PW + - PS + - PA + - PG + - PY + - PE + - PH + - PN + - PL + - PT + - PR + - QA + - RE + - RO + - RU + - RW + - BL + - SH + - KN + - LC + - MF + - PM + - VC + - WS + - SM + - ST + - SA + - SN + - RS + - SC + - SL + - SG + - SX + - SK + - SI + - SB + - SO + - ZA + - GS + - KR + - SS + - ES + - LK + - SD + - SR + - SJ + - SE + - CH + - SY + - TW + - TJ + - TZ + - TH + - TL + - TG + - TK + - TO + - TT + - TN + - TR + - TM + - TC + - TV + - UG + - UA + - AE + - GB + - UM + - US + - UY + - UZ + - VU + - VE + - VN + - VG + - VI + - WF + - EH + - YE + - ZM + - ZW + type: string + description: |- + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + x-merge-category: hris + CreateFieldMappingRequest: + type: object + properties: + target_field_name: + type: string + minLength: 1 + description: The name of the target field you want this remote field to + map to. + example: example_target_field_name + target_field_description: + type: string + minLength: 1 + description: The description of the target field you want this remote field + to map to. + example: this is a example description of the target field + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + common_model_name: + type: string + minLength: 1 + description: The name of the Common Model that the remote field corresponds + to in a given category. + example: ExampleCommonModel + required: + - common_model_name + - remote_field_traversal_path + - remote_method + - remote_url_path + - target_field_description + - target_field_name + x-merge-category: hris + DataPassthroughRequest: + type: object + description: |- + # The DataPassthrough Object + ### Description + The `DataPassthrough` object is used to send information to an otherwise-unsupported third-party endpoint. + + ### Usage Example + Create a `DataPassthrough` to get team hierarchies from your Rippling integration. + properties: + method: + allOf: + - $ref: '#/components/schemas/MethodEnum' + example: POST + path: + type: string + minLength: 1 + description: The path of the request in the third party's platform. + example: /scooters + base_url_override: + type: string + nullable: true + minLength: 1 + description: An optional override of the third party's base url for the + request. + example: https://api.example.com + data: + type: string + nullable: true + minLength: 1 + description: The data with the request. You must include a `request_format` + parameter matching the data's format + example: '{"company": "Lime", "model": "Gen 2.5"}' + multipart_form_data: + type: array + items: + $ref: '#/components/schemas/MultipartFormFieldRequest' + nullable: true + description: Pass an array of `MultipartFormField` objects in here instead + of using the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: object + additionalProperties: {} + nullable: true + description: The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for passthrough. + Choose content type corresponding to expected format of receiving server. + example: + EXTRA-HEADER: value + request_format: + allOf: + - $ref: '#/components/schemas/RequestFormatEnum' + nullable: true + example: JSON + normalize_response: + type: boolean + description: 'Optional. If true, the response will always be an object of + the form `{"type": T, "value": ...}` where `T` will be one of `string, + boolean, number, null, array, object`.' + required: + - method + - path + x-merge-category: hris + DebugModeLog: + type: object + properties: + log_id: + type: string + example: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: + type: string + example: https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + $ref: '#/components/schemas/DebugModelLogSummary' + example: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + required: + - dashboard_view + - log_id + - log_summary + x-merge-sample-json: '{"log_id": "99433219-8017-4acd-bb3c-ceb23d663832", "dashboard_view": + "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", "log_summary": + {"url": "www.exampleintegration.com/api/v1/exampleapi", "method": "POST", + "status_code": 200}}' + x-merge-category: hris + DebugModelLogSummary: + type: object + properties: + url: + type: string + example: www.exampleintegration.com/api/v1/exampleapi + method: + type: string + example: POST + status_code: + type: integer + example: 200 + required: + - method + - status_code + - url + x-merge-sample-json: '{"url": "www.exampleintegration.com/api/v1/exampleapi", + "method": "POST", "status_code": 200}' + x-merge-category: hris + Deduction: + type: object + description: |- + # The Deduction Object + ### Description + The `Deduction` object is used to represent an array of the wages withheld from total earnings for the purpose of paying taxes. + + ### Usage Example + Fetch from the `LIST Deductions` endpoint and filter by `ID` to show all deductions. + properties: + id: + type: string + format: uuid + readOnly: true + example: 5fd439fc-1b64-4755-b275-64918936c365 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '93478612' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + employee_payroll_run: + type: string + format: uuid + nullable: true + example: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: + type: string + nullable: true + description: The deduction's name. + example: Social Security + employee_deduction: + type: number + format: double + nullable: true + description: The amount of money that is withheld from an employee's gross + pay by the employee. + example: 34.54 + company_deduction: + type: number + format: double + nullable: true + description: The amount of money that is withheld on behalf of an employee + by the company. + example: 78.78 + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /payroll-deduction + data: + - Varies by platform + x-merge-nested-write-allowed: true + x-merge-category: hris + Dependent: + type: object + description: |- + # The Dependent Object + ### Description + The `Dependent` object is used to represent a dependent (e.g. child, spouse, domestic partner, etc) of an `Employee` + + ### Usage Example + Fetch from the `LIST Dependents` endpoint and filter by `ID` to show all dependents. + properties: + id: + type: string + format: uuid + readOnly: true + example: 025fjlc6-6000-430a-848e-aafacbadf4fe + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202940' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + first_name: + type: string + nullable: true + description: The dependents's first name. + maxLength: 60 + example: Greg + middle_name: + type: string + nullable: true + description: The dependents's middle name. + maxLength: 60 + example: A + last_name: + type: string + nullable: true + description: The dependents's last name. + maxLength: 60 + example: Hirsch + relationship: + oneOf: + - $ref: '#/components/schemas/RelationshipEnum' + - type: string + nullable: true + description: |- + The dependent's relationship to the employee. + + * `CHILD` - CHILD + * `SPOUSE` - SPOUSE + * `DOMESTIC_PARTNER` - DOMESTIC_PARTNER + example: CHILD + employee: + type: string + format: uuid + nullable: true + description: The employee this person is a dependent of. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + date_of_birth: + type: string + format: date-time + nullable: true + description: The dependent's date of birth. + example: '1990-11-10T00:00:00Z' + gender: + oneOf: + - $ref: '#/components/schemas/GenderEnum' + - type: string + nullable: true + description: |- + The dependent's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + example: MALE + phone_number: + type: string + nullable: true + description: The dependent's phone number. + maxLength: 50 + example: '+1234567890' + home_location: + type: string + format: uuid + nullable: true + description: The dependents's home address. + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + is_student: + type: boolean + nullable: true + description: Whether or not the dependent is a student + ssn: + type: string + nullable: true + description: The dependents's social security number. + maxLength: 50 + example: '1234567890' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /dependent + data: + - Varies by platform + x-merge-category: hris + Earning: + type: object + description: |- + # The Earning Object + ### Description + The `Earning` object is used to represent an array of different compensations that an employee receives within specific wage categories. + + ### Usage Example + Fetch from the `LIST Earnings` endpoint and filter by `ID` to show all earnings. + properties: + id: + type: string + format: uuid + readOnly: true + example: babbced6-3a81-4775-8da2-490dc6385259 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '52802' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + employee_payroll_run: + type: string + format: uuid + nullable: true + example: 35347df1-95e7-46e2-93cc-66f1191edca5 + amount: + type: number + format: double + nullable: true + description: The amount earned. + example: 1002.34 + type: + oneOf: + - $ref: '#/components/schemas/EarningTypeEnum' + - type: string + nullable: true + description: |- + The type of earning. + + * `SALARY` - SALARY + * `REIMBURSEMENT` - REIMBURSEMENT + * `OVERTIME` - OVERTIME + * `BONUS` - BONUS + example: SALARY + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-nested-write-allowed: true + x-merge-category: hris + EarningTypeEnum: + enum: + - SALARY + - REIMBURSEMENT + - OVERTIME + - BONUS + type: string + description: |- + * `SALARY` - SALARY + * `REIMBURSEMENT` - REIMBURSEMENT + * `OVERTIME` - OVERTIME + * `BONUS` - BONUS + x-merge-category: hris + Employee: + type: object + description: |- + # The Employee Object + ### Description + The `Employee` object is used to represent any person who has been employed by a company. By default, it returns all employees. To filter for only active employees, set the `employment_status` query parameter to `ACTIVE`. + + ### Usage Example + Fetch from the `LIST Employee` endpoint and filter by `ID` to show all employees. + properties: + id: + type: string + format: uuid + readOnly: true + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + employee_number: + type: string + nullable: true + description: The employee's number that appears in the third-party integration's + UI. + example: '2' + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Company' + nullable: true + description: The ID of the employee's company. + example: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + x-merge-expands-to: Company + first_name: + type: string + nullable: true + description: The employee's first name. + example: Greg + last_name: + type: string + nullable: true + description: The employee's last name. + example: Hirsch + preferred_name: + type: string + nullable: true + description: The employee's preferred first name. + example: Greg the egg + display_full_name: + type: string + nullable: true + description: The employee's full name, to use for display purposes. If a + preferred first name is available, the full name will include the preferred + first name. + example: Cousin Greg Hirsch + username: + type: string + nullable: true + description: The employee's username that appears in the remote UI. + example: cousingreg + groups: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Group' + nullable: true + example: + - 21a54124-397f-494d-985e-3c5b330b8a68 + x-merge-expands-to: Group + work_email: + type: string + format: email + nullable: true + description: The employee's work email. + maxLength: 254 + example: greg@merge.dev + personal_email: + type: string + format: email + nullable: true + description: The employee's personal email. + maxLength: 254 + example: greg@gmail.com + mobile_phone_number: + type: string + nullable: true + description: The employee's mobile phone number. + example: '+1234567890' + employments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employment' + nullable: true + example: + - 17a54124-287f-494d-965e-3c5b330c9a68 + description: Array of `Employment` IDs for this Employee. + x-merge-expands-to: Employment + home_location: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Location' + nullable: true + description: The employee's home address. + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: Location + work_location: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Location' + nullable: true + description: The employee's work address. + example: 9efbc633-3387-4306-aa55-e2c635e6bb4f + x-merge-expands-to: Location + manager: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee ID of the employee's manager. + example: 0048ea5b-911e-4dff-9364-92070dea62ff + x-merge-expands-to: Employee + team: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Team' + nullable: true + description: The employee's team. + deprecated: true + x-merge-expands-to: Team + pay_group: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PayGroup' + nullable: true + description: The employee's pay group + example: ad1264e2-39be-4787-b749-f1aade9e3405 + x-merge-expands-to: PayGroup + ssn: + type: string + nullable: true + description: The employee's social security number. + maxLength: 100 + example: '1234567890' + gender: + oneOf: + - $ref: '#/components/schemas/GenderEnum' + - type: string + nullable: true + description: |- + The employee's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + example: MALE + ethnicity: + oneOf: + - $ref: '#/components/schemas/EthnicityEnum' + - type: string + nullable: true + description: |- + The employee's ethnicity. + + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - AMERICAN_INDIAN_OR_ALASKA_NATIVE + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + * `WHITE` - WHITE + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + example: WHITE + marital_status: + oneOf: + - $ref: '#/components/schemas/MaritalStatusEnum' + - type: string + nullable: true + description: |- + The employee's filing status as related to marital status. + + * `SINGLE` - SINGLE + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + example: SINGLE + date_of_birth: + type: string + format: date-time + nullable: true + description: The employee's date of birth. + example: '1990-11-10T00:00:00Z' + hire_date: + type: string + format: date-time + nullable: true + description: "The date that the employee was hired, usually the day that + an offer letter is signed. If an employee has multiple hire dates from + previous employments, this represents the most recent hire date. Note: + If you're looking for the employee's start date, refer to the start_date + field." + deprecated: true + example: '2020-10-10T00:00:00Z' + start_date: + type: string + format: date-time + nullable: true + description: The date that the employee started working. If an employee + was rehired, the most recent start date will be returned. + example: '2020-10-11T00:00:00Z' + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's employee was created. + example: '2020-10-11T00:00:00Z' + employment_status: + oneOf: + - $ref: '#/components/schemas/EmploymentStatusEnum' + - type: string + nullable: true + description: |- + The employment status of the employee. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + example: INACTIVE + termination_date: + type: string + format: date-time + nullable: true + description: The employee's termination date. + example: '2021-10-12T00:00:00Z' + avatar: + type: string + format: uri + nullable: true + maxLength: 2000 + example: http://alturl.com/h2h8m + description: The URL of the employee's avatar image. + custom_fields: + type: object + additionalProperties: {} + nullable: true + description: Custom fields configured for a given model. + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /people + data: + - Varies by platform + x-merge-expands: '{"company": "Company", "employments": "Employment", "groups": + "Group", "home_location": "Location", "manager": "Employee", "pay_group": + "PayGroup", "team": "Team", "work_location": "Location"}' + x-merge-category: hris + EmployeeEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/EmployeeRequest' + required: + - model + x-merge-category: hris + EmployeePayrollRun: + type: object + description: |- + # The EmployeePayrollRun Object + ### Description + The `EmployeePayrollRun` object is used to represent an employee's pay statement for a specific payroll run. + + ### Usage Example + Fetch from the `LIST EmployeePayrollRun` endpoint and filter by `ID` to show all employee payroll runs. + properties: + id: + type: string + format: uuid + readOnly: true + example: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee whose payroll is being run. + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: Employee + payroll_run: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PayrollRun' + nullable: true + description: The payroll being run. + example: 35347df1-95e7-46e2-93cc-66f1191edca5 + x-merge-expands-to: PayrollRun + gross_pay: + type: number + format: double + nullable: true + description: The total earnings throughout a given period for an employee + before any deductions are made. + example: 1342.67 + net_pay: + type: number + format: double + nullable: true + description: The take-home pay throughout a given period for an employee + after deductions are made. + example: 865.78 + start_date: + type: string + format: date-time + nullable: true + description: The day and time the payroll run started. + example: '2020-11-08T00:00:00Z' + end_date: + type: string + format: date-time + nullable: true + description: The day and time the payroll run ended. + example: '2020-11-09T00:00:00Z' + check_date: + type: string + format: date-time + nullable: true + description: The day and time the payroll run was checked. + example: '2020-11-10T00:00:00Z' + earnings: + type: array + items: + $ref: '#/components/schemas/Earning' + readOnly: true + example: + - employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + amount: 1002.34 + type: SALARY + - employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + amount: 8342.34 + type: OVERTIME + deductions: + type: array + items: + $ref: '#/components/schemas/Deduction' + readOnly: true + example: + - employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: Social Security + employee_deduction: 34.54 + company_deduction: 78.78 + taxes: + type: array + items: + $ref: '#/components/schemas/Tax' + readOnly: true + example: + - employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: California State Income Tax + amount: 100.25 + employer_tax: 'False' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /employee-payroll + data: + - Varies by platform + x-merge-expands: '{"employee": "Employee", "payroll_run": "PayrollRun"}' + x-merge-category: hris + EmployeeRequest: + type: object + description: |- + # The Employee Object + ### Description + The `Employee` object is used to represent any person who has been employed by a company. By default, it returns all employees. To filter for only active employees, set the `employment_status` query parameter to `ACTIVE`. + + ### Usage Example + Fetch from the `LIST Employee` endpoint and filter by `ID` to show all employees. + properties: + employee_number: + type: string + nullable: true + description: The employee's number that appears in the third-party integration's + UI. + example: '2' + company: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Company' + nullable: true + description: The ID of the employee's company. + example: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + x-merge-expands-to: Company + first_name: + type: string + nullable: true + description: The employee's first name. + example: Greg + last_name: + type: string + nullable: true + description: The employee's last name. + example: Hirsch + preferred_name: + type: string + nullable: true + description: The employee's preferred first name. + example: Greg the egg + display_full_name: + type: string + nullable: true + description: The employee's full name, to use for display purposes. If a + preferred first name is available, the full name will include the preferred + first name. + example: Cousin Greg Hirsch + username: + type: string + nullable: true + description: The employee's username that appears in the remote UI. + example: cousingreg + groups: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Group' + nullable: true + example: + - 21a54124-397f-494d-985e-3c5b330b8a68 + x-merge-expands-to: Group + work_email: + type: string + format: email + nullable: true + description: The employee's work email. + maxLength: 254 + example: greg@merge.dev + personal_email: + type: string + format: email + nullable: true + description: The employee's personal email. + maxLength: 254 + example: greg@gmail.com + mobile_phone_number: + type: string + nullable: true + description: The employee's mobile phone number. + example: '+1234567890' + employments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employment' + nullable: true + example: + - 17a54124-287f-494d-965e-3c5b330c9a68 + description: Array of `Employment` IDs for this Employee. + x-merge-expands-to: Employment + home_location: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Location' + nullable: true + description: The employee's home address. + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: Location + work_location: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Location' + nullable: true + description: The employee's work address. + example: 9efbc633-3387-4306-aa55-e2c635e6bb4f + x-merge-expands-to: Location + manager: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee ID of the employee's manager. + example: 0048ea5b-911e-4dff-9364-92070dea62ff + x-merge-expands-to: Employee + team: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Team' + nullable: true + description: The employee's team. + deprecated: true + x-merge-expands-to: Team + pay_group: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PayGroup' + nullable: true + description: The employee's pay group + example: ad1264e2-39be-4787-b749-f1aade9e3405 + x-merge-expands-to: PayGroup + ssn: + type: string + nullable: true + description: The employee's social security number. + maxLength: 100 + example: '1234567890' + gender: + oneOf: + - $ref: '#/components/schemas/GenderEnum' + - type: string + nullable: true + description: |- + The employee's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + example: MALE + ethnicity: + oneOf: + - $ref: '#/components/schemas/EthnicityEnum' + - type: string + nullable: true + description: |- + The employee's ethnicity. + + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - AMERICAN_INDIAN_OR_ALASKA_NATIVE + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + * `WHITE` - WHITE + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + example: WHITE + marital_status: + oneOf: + - $ref: '#/components/schemas/MaritalStatusEnum' + - type: string + nullable: true + description: |- + The employee's filing status as related to marital status. + + * `SINGLE` - SINGLE + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + example: SINGLE + date_of_birth: + type: string + format: date-time + nullable: true + description: The employee's date of birth. + example: '1990-11-10T00:00:00Z' + hire_date: + type: string + format: date-time + nullable: true + description: "The date that the employee was hired, usually the day that + an offer letter is signed. If an employee has multiple hire dates from + previous employments, this represents the most recent hire date. Note: + If you're looking for the employee's start date, refer to the start_date + field." + deprecated: true + example: '2020-10-10T00:00:00Z' + start_date: + type: string + format: date-time + nullable: true + description: The date that the employee started working. If an employee + was rehired, the most recent start date will be returned. + example: '2020-10-11T00:00:00Z' + employment_status: + oneOf: + - $ref: '#/components/schemas/EmploymentStatusEnum' + - type: string + nullable: true + description: |- + The employment status of the employee. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + example: INACTIVE + termination_date: + type: string + format: date-time + nullable: true + description: The employee's termination date. + example: '2021-10-12T00:00:00Z' + avatar: + type: string + format: uri + nullable: true + maxLength: 2000 + example: http://alturl.com/h2h8m + description: The URL of the employee's avatar image. + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"company": "Company", "employments": "Employment", "groups": + "Group", "home_location": "Location", "manager": "Employee", "pay_group": + "PayGroup", "team": "Team", "work_location": "Location"}' + x-merge-category: hris + EmployeeResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Employee' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: hris + EmployerBenefit: + type: object + description: |- + # The EmployerBenefit Object + ### Description + The `Employer Benefit` object is used to represent a benefit plan offered by a company. + + ### Usage Example + Fetch from the `LIST EmployerBenefits` endpoint and filter by `ID` to show all EmployerBenefits. + properties: + id: + type: string + format: uuid + readOnly: true + example: 025fjlc6-6000-430a-848e-aafacbadf4fele + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202939' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + benefit_plan_type: + oneOf: + - $ref: '#/components/schemas/BenefitPlanTypeEnum' + - type: string + nullable: true + description: |- + The type of benefit plan. + + * `MEDICAL` - MEDICAL + * `HEALTH_SAVINGS` - HEALTH_SAVINGS + * `INSURANCE` - INSURANCE + * `RETIREMENT` - RETIREMENT + * `OTHER` - OTHER + example: MEDICAL + name: + type: string + nullable: true + description: The employer benefit's name - typically the carrier or network + name. + maxLength: 200 + example: Kaiser Permanente Medical Plan + description: + type: string + nullable: true + description: The employer benefit's description. + maxLength: 2000 + example: HDHP Silver Plan + deduction_code: + type: string + nullable: true + description: The employer benefit's deduction code. + maxLength: 60 + example: COL + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-category: hris + Employment: + type: object + description: |- + # The Employment Object + ### Description + The `Employment` object is used to represent a job position at a company. + + If an integration supports historical tracking of employments, it will be reflected in the data. If not, a new `Employment` object will be created whenever there is a change in job title or pay. The `effective_date` field should be used to order `Employment` objects, with the most recent date corresponding to the latest employment record for an employee. + + ### Usage Example + Fetch from the `LIST Employments` endpoint and filter by `ID` to show all employees. + properties: + id: + type: string + format: uuid + readOnly: true + example: 65d8ffd0-211b-4ba4-b85a-fbe2ce220982 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee holding this position. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Employee + job_title: + type: string + nullable: true + description: The position's title. + example: Executive Assistant to Tom Wambsgans + pay_rate: + type: number + format: double + nullable: true + description: The position's pay rate. + example: '50000.00' + pay_period: + oneOf: + - $ref: '#/components/schemas/PayPeriodEnum' + - type: string + nullable: true + description: |- + The time period this pay rate encompasses. + + * `HOUR` - HOUR + * `DAY` - DAY + * `WEEK` - WEEK + * `EVERY_TWO_WEEKS` - EVERY_TWO_WEEKS + * `SEMIMONTHLY` - SEMIMONTHLY + * `MONTH` - MONTH + * `QUARTER` - QUARTER + * `EVERY_SIX_MONTHS` - EVERY_SIX_MONTHS + * `YEAR` - YEAR + example: YEAR + pay_frequency: + oneOf: + - $ref: '#/components/schemas/PayFrequencyEnum' + - type: string + nullable: true + description: |- + The position's pay frequency. + + * `WEEKLY` - WEEKLY + * `BIWEEKLY` - BIWEEKLY + * `MONTHLY` - MONTHLY + * `QUARTERLY` - QUARTERLY + * `SEMIANNUALLY` - SEMIANNUALLY + * `ANNUALLY` - ANNUALLY + * `THIRTEEN-MONTHLY` - THIRTEEN-MONTHLY + * `PRO_RATA` - PRO_RATA + * `SEMIMONTHLY` - SEMIMONTHLY + example: BIWEEKLY + pay_currency: + oneOf: + - $ref: '#/components/schemas/PayCurrencyEnum' + - type: string + nullable: true + description: |- + The position's currency code. + + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + example: USD + pay_group: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/PayGroup' + nullable: true + description: The employment's pay group + example: d4e4837f-9900-484c-ac40-528365bb08ef + x-merge-expands-to: PayGroup + flsa_status: + oneOf: + - $ref: '#/components/schemas/FlsaStatusEnum' + - type: string + nullable: true + description: |- + The position's FLSA status. + + * `EXEMPT` - EXEMPT + * `SALARIED_NONEXEMPT` - SALARIED_NONEXEMPT + * `NONEXEMPT` - NONEXEMPT + * `OWNER` - OWNER + example: EXEMPT + effective_date: + type: string + format: date-time + nullable: true + description: The position's effective date. + example: '2023-10-06T18:42:34Z' + employment_type: + oneOf: + - $ref: '#/components/schemas/EmploymentTypeEnum' + - type: string + nullable: true + description: |- + The position's type of employment. + + * `FULL_TIME` - FULL_TIME + * `PART_TIME` - PART_TIME + * `INTERN` - INTERN + * `CONTRACTOR` - CONTRACTOR + * `FREELANCE` - FREELANCE + example: FULL TIME + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /jobs + data: + - Varies by platform + x-merge-nested-write-allowed: true + x-merge-expands: '{"employee": "Employee", "pay_group": "PayGroup"}' + x-merge-category: hris + EmploymentStatusEnum: + enum: + - ACTIVE + - PENDING + - INACTIVE + type: string + description: |- + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + x-merge-category: hris + EmploymentTypeEnum: + enum: + - FULL_TIME + - PART_TIME + - INTERN + - CONTRACTOR + - FREELANCE + type: string + description: |- + * `FULL_TIME` - FULL_TIME + * `PART_TIME` - PART_TIME + * `INTERN` - INTERN + * `CONTRACTOR` - CONTRACTOR + * `FREELANCE` - FREELANCE + x-merge-category: hris + EnabledActionsEnum: + enum: + - READ + - WRITE + type: string + description: |- + * `READ` - READ + * `WRITE` - WRITE + x-merge-category: hris + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + type: string + description: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + x-merge-category: hris + EndUserDetailsRequest: + type: object + properties: + end_user_email_address: + type: string + minLength: 1 + description: Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be sent. + maxLength: 100 + example: example@gmail.com + end_user_organization_name: + type: string + minLength: 1 + description: Your end user's organization. + maxLength: 100 + example: Test Organization + end_user_origin_id: + type: string + minLength: 1 + description: This unique identifier typically represents the ID for your + end user in your product's database. This value must be distinct from + other Linked Accounts' unique identifiers. + maxLength: 100 + example: '12345' + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: The integration categories to show in Merge Link. + example: + - hris + - ats + integration: + type: string + nullable: true + minLength: 1 + description: The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see https://docs.merge.dev/guides/merge-link/single-integration/. + example: bamboohr + link_expiry_mins: + type: integer + maximum: 10080 + minimum: 30 + default: 30 + description: An integer number of minutes between [30, 720 or 10080 if for + a Magic Link URL] for how long this token is valid. Defaults to 30. + should_create_magic_link_url: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + hide_admin_magic_link: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information on Magic + Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + common_models: + type: array + items: + $ref: '#/components/schemas/CommonModelScopesBodyRequest' + nullable: true + description: An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses model_id, enabled_actions, + and disabled_fields to specify the model, method, and fields that are + scoped for a given Linked Account. + category_common_model_scopes: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + nullable: true + description: When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be linked. Any + model or field not specified in link token payload will default to existing + settings. + example: + hris: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - first_name + - last_name + - personal_email + disabled_fields: + - preferred_name + - model_name: Employment + model_permissions: + READ: + is_enabled: false + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - effective_date + ats: + - model_name: Job + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - name + disabled_fields: + - description + - model_name: Department + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + language: + oneOf: + - $ref: '#/components/schemas/LanguageEnum' + - type: string + nullable: true + description: |- + The following subset of IETF language tags can be used to configure localization. + + * `en` - en + * `de` - de + example: en + are_syncs_disabled: + type: boolean + nullable: true + default: false + description: The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + integration_specific_config: + type: object + additionalProperties: {} + nullable: true + description: A JSON object containing integration-specific configuration + options. + example: + rippling: + oauth_code: 3h1jj8ssdf31dfji3o1jjdfjasd + required: + - categories + - end_user_email_address + - end_user_organization_name + - end_user_origin_id + x-merge-category: hris + ErrorValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /model/custom_fields + title: + type: string + example: Missing Required Field + detail: + type: string + example: custom_fields is a required field on model. + problem_type: + type: string + example: MISSING_REQUIRED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: hris + EthnicityEnum: + enum: + - AMERICAN_INDIAN_OR_ALASKA_NATIVE + - ASIAN_OR_INDIAN_SUBCONTINENT + - BLACK_OR_AFRICAN_AMERICAN + - HISPANIC_OR_LATINO + - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + - TWO_OR_MORE_RACES + - WHITE + - PREFER_NOT_TO_DISCLOSE + type: string + description: |- + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - AMERICAN_INDIAN_OR_ALASKA_NATIVE + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + * `WHITE` - WHITE + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + x-merge-category: hris + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + type: string + description: |- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + x-merge-category: hris + ExternalTargetFieldAPI: + type: object + properties: + name: + type: string + nullable: true + readOnly: true + example: example_target_field_name + description: + type: string + nullable: true + readOnly: true + example: this is a example description of a target field + is_mapped: + type: string + nullable: true + readOnly: true + example: true + x-merge-category: hris + ExternalTargetFieldAPIResponse: + type: object + properties: + Benefit: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + EmployerBenefit: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Company: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + EmployeePayrollRun: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Employee: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Employment: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Location: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + PayrollRun: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Team: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + TimeOff: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + TimeOffBalance: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + BankInfo: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + PayGroup: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Group: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Dependent: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + TimesheetEntry: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + x-merge-category: hris + FieldMappingApiInstance: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: + type: boolean + readOnly: true + target_field: + type: object + properties: + name: + type: string + description: + type: string + is_organization_wide: + type: boolean + required: + - description + - is_organization_wide + - name + nullable: true + readOnly: true + example: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + type: object + properties: + remote_key_name: + type: string + nullable: true + schema: + type: object + additionalProperties: {} + nullable: true + remote_endpoint_info: + type: object + properties: + method: + type: string + nullable: true + url_path: + type: string + nullable: true + field_traversal_path: + type: array + items: + type: string + nullable: true + required: + - field_traversal_path + - method + - url_path + required: + - remote_endpoint_info + - remote_key_name + - schema + nullable: true + readOnly: true + example: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + x-merge-category: hris + FieldMappingApiInstanceResponse: + type: object + properties: + Benefit: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + EmployerBenefit: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Company: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + EmployeePayrollRun: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Employee: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Employment: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Location: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + PayrollRun: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Team: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + TimeOff: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + TimeOffBalance: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + BankInfo: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + PayGroup: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Group: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Dependent: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + TimesheetEntry: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + x-merge-category: hris + FieldMappingInstanceResponse: + type: object + properties: + model: + $ref: '#/components/schemas/FieldMappingApiInstance' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: hris + FieldPermissionDeserializer: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: hris + FieldPermissionDeserializerRequest: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: hris + FlsaStatusEnum: + enum: + - EXEMPT + - SALARIED_NONEXEMPT + - NONEXEMPT + - OWNER + type: string + description: |- + * `EXEMPT` - EXEMPT + * `SALARIED_NONEXEMPT` - SALARIED_NONEXEMPT + * `NONEXEMPT` - NONEXEMPT + * `OWNER` - OWNER + x-merge-category: hris + GenderEnum: + enum: + - MALE + - FEMALE + - NON-BINARY + - OTHER + - PREFER_NOT_TO_DISCLOSE + type: string + description: |- + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + x-merge-category: hris + GenerateRemoteKeyRequest: + type: object + description: |- + # The GenerateRemoteKey Object + ### Description + The `GenerateRemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to create a new remote key. + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: hris + Group: + type: object + description: |- + # The Group Object + ### Description + The `Group` object is used to represent any subset of employees across, for example, `DEPARTMENT` or `TEAM`. Employees can be in multiple Groups. + + ### Usage Example + Fetch from the `LIST Employee` endpoint and expand groups to view an employee's groups. + properties: + id: + type: string + format: uuid + readOnly: true + example: 134e0111-0f67-44f6-98f0-597000290bb3 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '800293' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + parent_group: + type: string + format: uuid + nullable: true + description: The parent group for this group. + example: 2ef51b11-2c4e-4b02-8d1d-50592d9e96ef + name: + type: string + nullable: true + description: The group name. + example: COST_CENTER_US + type: + oneOf: + - $ref: '#/components/schemas/GroupTypeEnum' + - type: string + nullable: true + description: |- + The Group type returned directly from the third-party. + + * `TEAM` - TEAM + * `DEPARTMENT` - DEPARTMENT + * `COST_CENTER` - COST_CENTER + * `BUSINESS_UNIT` - BUSINESS_UNIT + * `GROUP` - GROUP + example: COST_CENTER + is_commonly_used_as_team: + type: boolean + nullable: true + description: Indicates whether the Group refers to a team in the third party + platform. Note that this is an opinionated view based on how Merge observes + most organizations representing teams in each third party platform. If + your customer uses a platform different from most, there is a chance this + will not be correct. + example: true + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /group + data: + - Varies by platform + x-merge-expands: '{"child_groups": "Group"}' + x-merge-category: hris + GroupTypeEnum: + enum: + - TEAM + - DEPARTMENT + - COST_CENTER + - BUSINESS_UNIT + - GROUP + type: string + description: |- + * `TEAM` - TEAM + * `DEPARTMENT` - DEPARTMENT + * `COST_CENTER` - COST_CENTER + * `BUSINESS_UNIT` - BUSINESS_UNIT + * `GROUP` - GROUP + x-merge-category: hris + IgnoreCommonModelRequest: + type: object + properties: + reason: + oneOf: + - $ref: '#/components/schemas/ReasonEnum' + - type: string + example: GENERAL_CUSTOMER_REQUEST + message: + type: string + minLength: 1 + maxLength: 256 + example: deletion request by user id 51903790-7dfe-4053-8d63-5a10cc4ffd39 + required: + - reason + x-merge-category: hris + IndividualCommonModelScopeDeserializer: + type: object + properties: + model_name: + type: string + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializer' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializer' + required: + - model_name + x-merge-category: hris + IndividualCommonModelScopeDeserializerRequest: + type: object + properties: + model_name: + type: string + minLength: 1 + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializerRequest' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializerRequest' + required: + - model_name + x-merge-category: hris + Issue: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: + oneOf: + - $ref: '#/components/schemas/IssueStatusEnum' + - type: string + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + example: ONGOING + error_description: + type: string + example: Missing Permissions + end_user: + type: object + additionalProperties: {} + readOnly: true + example: b82302de-852e-4e60-b050-edf9da3b7c02 + first_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + last_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + is_muted: + type: boolean + readOnly: true + example: true + error_details: + type: array + items: + type: string + readOnly: true + example: + - Missing employee permissions. + - Missing time off permissions. + required: + - error_description + x-merge-category: hris + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + type: string + description: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + x-merge-category: hris + LanguageEnum: + enum: + - en + - de + type: string + description: |- + * `en` - en + * `de` - de + x-merge-category: hris + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: hris + LinkToken: + type: object + properties: + link_token: + type: string + example: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: + type: string + example: Lever + magic_link_url: + type: string + example: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + required: + - link_token + x-merge-category: hris + LinkedAccountCommonModelScopeDeserializerRequest: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + required: + - common_models + x-merge-category: hris + LinkedAccountStatus: + type: object + properties: + linked_account_status: + type: string + can_make_request: + type: boolean + required: + - can_make_request + - linked_account_status + x-merge-category: hris + Location: + type: object + description: |- + # The Location Object + ### Description + The `Location` object is used to represent an address that can be associated with an employee. + + ### Usage Example + Fetch from the `LIST Locations` endpoint and filter by `ID` to show all office locations. + properties: + id: + type: string + format: uuid + readOnly: true + example: f5e6a151-f44e-449a-afb1-8fd781905958 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '93018402' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The location's name. + example: NYC Office + phone_number: + type: string + nullable: true + description: The location's phone number. + example: '+1111111111' + street_1: + type: string + nullable: true + description: Line 1 of the location's street address. + example: 2920 Broadway + street_2: + type: string + nullable: true + description: Line 2 of the location's street address. + example: 2nd Floor + city: + type: string + nullable: true + description: The location's city. + example: 'New York ' + state: + type: string + nullable: true + description: The location's state. Represents a region if outside of the + US. + example: NY + zip_code: + type: string + nullable: true + description: The location's zip code or postal code. + example: '10027' + country: + oneOf: + - $ref: '#/components/schemas/CountryEnum' + - type: string + nullable: true + description: |- + The location's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + example: US + location_type: + oneOf: + - $ref: '#/components/schemas/LocationTypeEnum' + - type: string + nullable: true + description: |- + The location's type. Can be either WORK or HOME + + * `HOME` - HOME + * `WORK` - WORK + example: WORK + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /locations + data: + - Varies by platform + x-merge-category: hris + LocationTypeEnum: + enum: + - HOME + - WORK + type: string + description: |- + * `HOME` - HOME + * `WORK` - WORK + x-merge-category: hris + MaritalStatusEnum: + enum: + - SINGLE + - MARRIED_FILING_JOINTLY + - MARRIED_FILING_SEPARATELY + - HEAD_OF_HOUSEHOLD + - QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + type: string + description: |- + * `SINGLE` - SINGLE + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + x-merge-category: hris + MetaResponse: + type: object + properties: + request_schema: + type: object + additionalProperties: {} + example: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + type: object + additionalProperties: {} + status: + $ref: '#/components/schemas/LinkedAccountStatus' + example: + linked_account_status: COMPLETE + can_make_request: true + has_conditional_params: + type: boolean + has_required_linked_account_params: + type: boolean + required: + - has_conditional_params + - has_required_linked_account_params + - request_schema + x-merge-category: hris + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + type: string + description: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + x-merge-category: hris + ModelOperation: + type: object + description: |- + # The ModelOperation Object + ### Description + The `ModelOperation` object is used to represent the operations that are currently supported for a given model. + + ### Usage Example + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: + type: string + example: Candidate + available_operations: + type: array + items: + type: string + example: + - FETCH + - CREATE + required_post_parameters: + type: array + items: + type: string + example: + - remote_user_id + supported_fields: + type: array + items: + type: string + example: + - first_name + - last_name + - company + - title + required: + - available_operations + - model_name + - required_post_parameters + - supported_fields + x-merge-category: hris + ModelPermissionDeserializer: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: hris + ModelPermissionDeserializerRequest: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: hris + MultipartFormFieldRequest: + type: object + description: |- + # The MultipartFormField Object + ### Description + The `MultipartFormField` object is used to represent fields in an HTTP request using `multipart/form-data`. + + ### Usage Example + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + minLength: 1 + description: The name of the form field + example: resume + data: + type: string + minLength: 1 + description: The data for the form field. + example: SW50ZWdyYXRlIGZhc3QKSW50ZWdyYXRlIG9uY2U= + encoding: + oneOf: + - $ref: '#/components/schemas/EncodingEnum' + - type: string + nullable: true + default: RAW + description: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + example: BASE64 + $ref: '#/components/schemas/EncodingEnum' + file_name: + type: string + nullable: true + minLength: 1 + description: The file name of the form field, if the field is for a file. + example: resume.pdf + content_type: + type: string + nullable: true + minLength: 1 + description: The MIME type of the file, if the field is for a file. + example: application/pdf + required: + - data + - name + x-merge-category: hris + PaginatedAccountDetailsAndActionsList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AccountDetailsAndActions' + x-merge-category: hris + PaginatedAuditLogEventList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AuditLogEvent' + x-merge-category: hris + PaginatedBankInfoList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/BankInfo' + x-merge-category: hris + PaginatedBenefitList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Benefit' + x-merge-category: hris + PaginatedCompanyList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Company' + x-merge-category: hris + PaginatedDependentList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Dependent' + x-merge-category: hris + PaginatedEmployeeList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Employee' + x-merge-category: hris + PaginatedEmployeePayrollRunList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/EmployeePayrollRun' + x-merge-category: hris + PaginatedEmployerBenefitList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/EmployerBenefit' + x-merge-category: hris + PaginatedEmploymentList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Employment' + x-merge-category: hris + PaginatedGroupList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Group' + x-merge-category: hris + PaginatedIssueList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Issue' + x-merge-category: hris + PaginatedLocationList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Location' + x-merge-category: hris + PaginatedPayGroupList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/PayGroup' + x-merge-category: hris + PaginatedPayrollRunList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/PayrollRun' + x-merge-category: hris + PaginatedSyncStatusList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + x-merge-category: hris + PaginatedTeamList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Team' + x-merge-category: hris + PaginatedTimeOffBalanceList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/TimeOffBalance' + x-merge-category: hris + PaginatedTimeOffList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/TimeOff' + x-merge-category: hris + PaginatedTimesheetEntryList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/TimesheetEntry' + x-merge-category: hris + PatchedEditFieldMappingRequest: + type: object + properties: + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field_name + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + x-merge-category: hris + PayCurrencyEnum: + enum: + - XUA + - AFN + - AFA + - ALL + - ALK + - DZD + - ADP + - AOA + - AOK + - AON + - AOR + - ARA + - ARS + - ARM + - ARP + - ARL + - AMD + - AWG + - AUD + - ATS + - AZN + - AZM + - BSD + - BHD + - BDT + - BBD + - BYN + - BYB + - BYR + - BEF + - BEC + - BEL + - BZD + - BMD + - BTN + - BOB + - BOL + - BOV + - BOP + - BAM + - BAD + - BAN + - BWP + - BRC + - BRZ + - BRE + - BRR + - BRN + - BRB + - BRL + - GBP + - BND + - BGL + - BGN + - BGO + - BGM + - BUK + - BIF + - XPF + - KHR + - CAD + - CVE + - KYD + - XAF + - CLE + - CLP + - CLF + - CNX + - CNY + - CNH + - COP + - COU + - KMF + - CDF + - CRC + - HRD + - HRK + - CUC + - CUP + - CYP + - CZK + - CSK + - DKK + - DJF + - DOP + - NLG + - XCD + - DDM + - ECS + - ECV + - EGP + - GQE + - ERN + - EEK + - ETB + - EUR + - XBA + - XEU + - XBB + - XBC + - XBD + - FKP + - FJD + - FIM + - FRF + - XFO + - XFU + - GMD + - GEK + - GEL + - DEM + - GHS + - GHC + - GIP + - XAU + - GRD + - GTQ + - GWP + - GNF + - GNS + - GYD + - HTG + - HNL + - HKD + - HUF + - IMP + - ISK + - ISJ + - INR + - IDR + - IRR + - IQD + - IEP + - ILS + - ILP + - ILR + - ITL + - JMD + - JPY + - JOD + - KZT + - KES + - KWD + - KGS + - LAK + - LVL + - LVR + - LBP + - LSL + - LRD + - LYD + - LTL + - LTT + - LUL + - LUC + - LUF + - MOP + - MKD + - MKN + - MGA + - MGF + - MWK + - MYR + - MVR + - MVP + - MLF + - MTL + - MTP + - MRU + - MRO + - MUR + - MXV + - MXN + - MXP + - MDC + - MDL + - MCF + - MNT + - MAD + - MAF + - MZE + - MZN + - MZM + - MMK + - NAD + - NPR + - ANG + - TWD + - NZD + - NIO + - NIC + - NGN + - KPW + - NOK + - OMR + - PKR + - XPD + - PAB + - PGK + - PYG + - PEI + - PEN + - PES + - PHP + - XPT + - PLN + - PLZ + - PTE + - GWE + - QAR + - XRE + - RHD + - RON + - ROL + - RUB + - RUR + - RWF + - SVC + - WST + - SAR + - RSD + - CSD + - SCR + - SLL + - XAG + - SGD + - SKK + - SIT + - SBD + - SOS + - ZAR + - ZAL + - KRH + - KRW + - KRO + - SSP + - SUR + - ESP + - ESA + - ESB + - XDR + - LKR + - SHP + - XSU + - SDD + - SDG + - SDP + - SRD + - SRG + - SZL + - SEK + - CHF + - SYP + - STN + - STD + - TVD + - TJR + - TJS + - TZS + - XTS + - THB + - XXX + - TPE + - TOP + - TTD + - TND + - TRY + - TRL + - TMT + - TMM + - USD + - USN + - USS + - UGX + - UGS + - UAH + - UAK + - AED + - UYW + - UYU + - UYP + - UYI + - UZS + - VUV + - VES + - VEB + - VEF + - VND + - VNN + - CHE + - CHW + - XOF + - YDD + - YER + - YUN + - YUD + - YUM + - YUR + - ZWN + - ZRN + - ZRZ + - ZMW + - ZMK + - ZWD + - ZWR + - ZWL + type: string + description: |- + * `XUA` - ADB Unit of Account + * `AFN` - Afghan Afghani + * `AFA` - Afghan Afghani (1927–2002) + * `ALL` - Albanian Lek + * `ALK` - Albanian Lek (1946–1965) + * `DZD` - Algerian Dinar + * `ADP` - Andorran Peseta + * `AOA` - Angolan Kwanza + * `AOK` - Angolan Kwanza (1977–1991) + * `AON` - Angolan New Kwanza (1990–2000) + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + * `ARA` - Argentine Austral + * `ARS` - Argentine Peso + * `ARM` - Argentine Peso (1881–1970) + * `ARP` - Argentine Peso (1983–1985) + * `ARL` - Argentine Peso Ley (1970–1983) + * `AMD` - Armenian Dram + * `AWG` - Aruban Florin + * `AUD` - Australian Dollar + * `ATS` - Austrian Schilling + * `AZN` - Azerbaijani Manat + * `AZM` - Azerbaijani Manat (1993–2006) + * `BSD` - Bahamian Dollar + * `BHD` - Bahraini Dinar + * `BDT` - Bangladeshi Taka + * `BBD` - Barbadian Dollar + * `BYN` - Belarusian Ruble + * `BYB` - Belarusian Ruble (1994–1999) + * `BYR` - Belarusian Ruble (2000–2016) + * `BEF` - Belgian Franc + * `BEC` - Belgian Franc (convertible) + * `BEL` - Belgian Franc (financial) + * `BZD` - Belize Dollar + * `BMD` - Bermudan Dollar + * `BTN` - Bhutanese Ngultrum + * `BOB` - Bolivian Boliviano + * `BOL` - Bolivian Boliviano (1863–1963) + * `BOV` - Bolivian Mvdol + * `BOP` - Bolivian Peso + * `BAM` - Bosnia-Herzegovina Convertible Mark + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + * `BWP` - Botswanan Pula + * `BRC` - Brazilian Cruzado (1986–1989) + * `BRZ` - Brazilian Cruzeiro (1942–1967) + * `BRE` - Brazilian Cruzeiro (1990–1993) + * `BRR` - Brazilian Cruzeiro (1993–1994) + * `BRN` - Brazilian New Cruzado (1989–1990) + * `BRB` - Brazilian New Cruzeiro (1967–1986) + * `BRL` - Brazilian Real + * `GBP` - British Pound + * `BND` - Brunei Dollar + * `BGL` - Bulgarian Hard Lev + * `BGN` - Bulgarian Lev + * `BGO` - Bulgarian Lev (1879–1952) + * `BGM` - Bulgarian Socialist Lev + * `BUK` - Burmese Kyat + * `BIF` - Burundian Franc + * `XPF` - CFP Franc + * `KHR` - Cambodian Riel + * `CAD` - Canadian Dollar + * `CVE` - Cape Verdean Escudo + * `KYD` - Cayman Islands Dollar + * `XAF` - Central African CFA Franc + * `CLE` - Chilean Escudo + * `CLP` - Chilean Peso + * `CLF` - Chilean Unit of Account (UF) + * `CNX` - Chinese People’s Bank Dollar + * `CNY` - Chinese Yuan + * `CNH` - Chinese Yuan (offshore) + * `COP` - Colombian Peso + * `COU` - Colombian Real Value Unit + * `KMF` - Comorian Franc + * `CDF` - Congolese Franc + * `CRC` - Costa Rican Colón + * `HRD` - Croatian Dinar + * `HRK` - Croatian Kuna + * `CUC` - Cuban Convertible Peso + * `CUP` - Cuban Peso + * `CYP` - Cypriot Pound + * `CZK` - Czech Koruna + * `CSK` - Czechoslovak Hard Koruna + * `DKK` - Danish Krone + * `DJF` - Djiboutian Franc + * `DOP` - Dominican Peso + * `NLG` - Dutch Guilder + * `XCD` - East Caribbean Dollar + * `DDM` - East German Mark + * `ECS` - Ecuadorian Sucre + * `ECV` - Ecuadorian Unit of Constant Value + * `EGP` - Egyptian Pound + * `GQE` - Equatorial Guinean Ekwele + * `ERN` - Eritrean Nakfa + * `EEK` - Estonian Kroon + * `ETB` - Ethiopian Birr + * `EUR` - Euro + * `XBA` - European Composite Unit + * `XEU` - European Currency Unit + * `XBB` - European Monetary Unit + * `XBC` - European Unit of Account (XBC) + * `XBD` - European Unit of Account (XBD) + * `FKP` - Falkland Islands Pound + * `FJD` - Fijian Dollar + * `FIM` - Finnish Markka + * `FRF` - French Franc + * `XFO` - French Gold Franc + * `XFU` - French UIC-Franc + * `GMD` - Gambian Dalasi + * `GEK` - Georgian Kupon Larit + * `GEL` - Georgian Lari + * `DEM` - German Mark + * `GHS` - Ghanaian Cedi + * `GHC` - Ghanaian Cedi (1979–2007) + * `GIP` - Gibraltar Pound + * `XAU` - Gold + * `GRD` - Greek Drachma + * `GTQ` - Guatemalan Quetzal + * `GWP` - Guinea-Bissau Peso + * `GNF` - Guinean Franc + * `GNS` - Guinean Syli + * `GYD` - Guyanaese Dollar + * `HTG` - Haitian Gourde + * `HNL` - Honduran Lempira + * `HKD` - Hong Kong Dollar + * `HUF` - Hungarian Forint + * `IMP` - IMP + * `ISK` - Icelandic Króna + * `ISJ` - Icelandic Króna (1918–1981) + * `INR` - Indian Rupee + * `IDR` - Indonesian Rupiah + * `IRR` - Iranian Rial + * `IQD` - Iraqi Dinar + * `IEP` - Irish Pound + * `ILS` - Israeli New Shekel + * `ILP` - Israeli Pound + * `ILR` - Israeli Shekel (1980–1985) + * `ITL` - Italian Lira + * `JMD` - Jamaican Dollar + * `JPY` - Japanese Yen + * `JOD` - Jordanian Dinar + * `KZT` - Kazakhstani Tenge + * `KES` - Kenyan Shilling + * `KWD` - Kuwaiti Dinar + * `KGS` - Kyrgystani Som + * `LAK` - Laotian Kip + * `LVL` - Latvian Lats + * `LVR` - Latvian Ruble + * `LBP` - Lebanese Pound + * `LSL` - Lesotho Loti + * `LRD` - Liberian Dollar + * `LYD` - Libyan Dinar + * `LTL` - Lithuanian Litas + * `LTT` - Lithuanian Talonas + * `LUL` - Luxembourg Financial Franc + * `LUC` - Luxembourgian Convertible Franc + * `LUF` - Luxembourgian Franc + * `MOP` - Macanese Pataca + * `MKD` - Macedonian Denar + * `MKN` - Macedonian Denar (1992–1993) + * `MGA` - Malagasy Ariary + * `MGF` - Malagasy Franc + * `MWK` - Malawian Kwacha + * `MYR` - Malaysian Ringgit + * `MVR` - Maldivian Rufiyaa + * `MVP` - Maldivian Rupee (1947–1981) + * `MLF` - Malian Franc + * `MTL` - Maltese Lira + * `MTP` - Maltese Pound + * `MRU` - Mauritanian Ouguiya + * `MRO` - Mauritanian Ouguiya (1973–2017) + * `MUR` - Mauritian Rupee + * `MXV` - Mexican Investment Unit + * `MXN` - Mexican Peso + * `MXP` - Mexican Silver Peso (1861–1992) + * `MDC` - Moldovan Cupon + * `MDL` - Moldovan Leu + * `MCF` - Monegasque Franc + * `MNT` - Mongolian Tugrik + * `MAD` - Moroccan Dirham + * `MAF` - Moroccan Franc + * `MZE` - Mozambican Escudo + * `MZN` - Mozambican Metical + * `MZM` - Mozambican Metical (1980–2006) + * `MMK` - Myanmar Kyat + * `NAD` - Namibian Dollar + * `NPR` - Nepalese Rupee + * `ANG` - Netherlands Antillean Guilder + * `TWD` - New Taiwan Dollar + * `NZD` - New Zealand Dollar + * `NIO` - Nicaraguan Córdoba + * `NIC` - Nicaraguan Córdoba (1988–1991) + * `NGN` - Nigerian Naira + * `KPW` - North Korean Won + * `NOK` - Norwegian Krone + * `OMR` - Omani Rial + * `PKR` - Pakistani Rupee + * `XPD` - Palladium + * `PAB` - Panamanian Balboa + * `PGK` - Papua New Guinean Kina + * `PYG` - Paraguayan Guarani + * `PEI` - Peruvian Inti + * `PEN` - Peruvian Sol + * `PES` - Peruvian Sol (1863–1965) + * `PHP` - Philippine Peso + * `XPT` - Platinum + * `PLN` - Polish Zloty + * `PLZ` - Polish Zloty (1950–1995) + * `PTE` - Portuguese Escudo + * `GWE` - Portuguese Guinea Escudo + * `QAR` - Qatari Rial + * `XRE` - RINET Funds + * `RHD` - Rhodesian Dollar + * `RON` - Romanian Leu + * `ROL` - Romanian Leu (1952–2006) + * `RUB` - Russian Ruble + * `RUR` - Russian Ruble (1991–1998) + * `RWF` - Rwandan Franc + * `SVC` - Salvadoran Colón + * `WST` - Samoan Tala + * `SAR` - Saudi Riyal + * `RSD` - Serbian Dinar + * `CSD` - Serbian Dinar (2002–2006) + * `SCR` - Seychellois Rupee + * `SLL` - Sierra Leonean Leone + * `XAG` - Silver + * `SGD` - Singapore Dollar + * `SKK` - Slovak Koruna + * `SIT` - Slovenian Tolar + * `SBD` - Solomon Islands Dollar + * `SOS` - Somali Shilling + * `ZAR` - South African Rand + * `ZAL` - South African Rand (financial) + * `KRH` - South Korean Hwan (1953–1962) + * `KRW` - South Korean Won + * `KRO` - South Korean Won (1945–1953) + * `SSP` - South Sudanese Pound + * `SUR` - Soviet Rouble + * `ESP` - Spanish Peseta + * `ESA` - Spanish Peseta (A account) + * `ESB` - Spanish Peseta (convertible account) + * `XDR` - Special Drawing Rights + * `LKR` - Sri Lankan Rupee + * `SHP` - St. Helena Pound + * `XSU` - Sucre + * `SDD` - Sudanese Dinar (1992–2007) + * `SDG` - Sudanese Pound + * `SDP` - Sudanese Pound (1957–1998) + * `SRD` - Surinamese Dollar + * `SRG` - Surinamese Guilder + * `SZL` - Swazi Lilangeni + * `SEK` - Swedish Krona + * `CHF` - Swiss Franc + * `SYP` - Syrian Pound + * `STN` - São Tomé & Príncipe Dobra + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + * `TVD` - TVD + * `TJR` - Tajikistani Ruble + * `TJS` - Tajikistani Somoni + * `TZS` - Tanzanian Shilling + * `XTS` - Testing Currency Code + * `THB` - Thai Baht + * `XXX` - The codes assigned for transactions where no currency is involved + * `TPE` - Timorese Escudo + * `TOP` - Tongan Paʻanga + * `TTD` - Trinidad & Tobago Dollar + * `TND` - Tunisian Dinar + * `TRY` - Turkish Lira + * `TRL` - Turkish Lira (1922–2005) + * `TMT` - Turkmenistani Manat + * `TMM` - Turkmenistani Manat (1993–2009) + * `USD` - US Dollar + * `USN` - US Dollar (Next day) + * `USS` - US Dollar (Same day) + * `UGX` - Ugandan Shilling + * `UGS` - Ugandan Shilling (1966–1987) + * `UAH` - Ukrainian Hryvnia + * `UAK` - Ukrainian Karbovanets + * `AED` - United Arab Emirates Dirham + * `UYW` - Uruguayan Nominal Wage Index Unit + * `UYU` - Uruguayan Peso + * `UYP` - Uruguayan Peso (1975–1993) + * `UYI` - Uruguayan Peso (Indexed Units) + * `UZS` - Uzbekistani Som + * `VUV` - Vanuatu Vatu + * `VES` - Venezuelan Bolívar + * `VEB` - Venezuelan Bolívar (1871–2008) + * `VEF` - Venezuelan Bolívar (2008–2018) + * `VND` - Vietnamese Dong + * `VNN` - Vietnamese Dong (1978–1985) + * `CHE` - WIR Euro + * `CHW` - WIR Franc + * `XOF` - West African CFA Franc + * `YDD` - Yemeni Dinar + * `YER` - Yemeni Rial + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + * `YUM` - Yugoslavian New Dinar (1994–2002) + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + * `ZWN` - ZWN + * `ZRN` - Zairean New Zaire (1993–1998) + * `ZRZ` - Zairean Zaire (1971–1993) + * `ZMW` - Zambian Kwacha + * `ZMK` - Zambian Kwacha (1968–2012) + * `ZWD` - Zimbabwean Dollar (1980–2008) + * `ZWR` - Zimbabwean Dollar (2008) + * `ZWL` - Zimbabwean Dollar (2009) + x-merge-category: hris + PayFrequencyEnum: + enum: + - WEEKLY + - BIWEEKLY + - MONTHLY + - QUARTERLY + - SEMIANNUALLY + - ANNUALLY + - THIRTEEN-MONTHLY + - PRO_RATA + - SEMIMONTHLY + type: string + description: |- + * `WEEKLY` - WEEKLY + * `BIWEEKLY` - BIWEEKLY + * `MONTHLY` - MONTHLY + * `QUARTERLY` - QUARTERLY + * `SEMIANNUALLY` - SEMIANNUALLY + * `ANNUALLY` - ANNUALLY + * `THIRTEEN-MONTHLY` - THIRTEEN-MONTHLY + * `PRO_RATA` - PRO_RATA + * `SEMIMONTHLY` - SEMIMONTHLY + x-merge-category: hris + PayGroup: + type: object + description: |- + # The PayGroup Object + ### Description + The `PayGroup` object is used to represent a subset of employees that are put together for payroll processing purposes. + + ### Usage Example + Fetch from the `LIST PayGroup` endpoint and filter by `ID` to show all pay group information. + properties: + id: + type: string + format: uuid + readOnly: true + example: fd1e0fb5-8f92-4ec9-9f32-179cf732867d + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '800293' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + pay_group_name: + type: string + nullable: true + description: The pay group name. + example: contractor + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /pay-group + data: + - Varies by platform + x-merge-category: hris + PayPeriodEnum: + enum: + - HOUR + - DAY + - WEEK + - EVERY_TWO_WEEKS + - SEMIMONTHLY + - MONTH + - QUARTER + - EVERY_SIX_MONTHS + - YEAR + type: string + description: |- + * `HOUR` - HOUR + * `DAY` - DAY + * `WEEK` - WEEK + * `EVERY_TWO_WEEKS` - EVERY_TWO_WEEKS + * `SEMIMONTHLY` - SEMIMONTHLY + * `MONTH` - MONTH + * `QUARTER` - QUARTER + * `EVERY_SIX_MONTHS` - EVERY_SIX_MONTHS + * `YEAR` - YEAR + x-merge-category: hris + PayrollRun: + type: object + description: |- + # The PayrollRun Object + ### Description + The `PayrollRun` object is used to represent a group of pay statements for a specific pay schedule. + + ### Usage Example + Fetch from the `LIST PayrollRuns` endpoint and filter by `ID` to show all payroll runs. + properties: + id: + type: string + format: uuid + readOnly: true + example: 37336947-b3d4-4a4c-a310-ab6ab510e079 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + run_state: + oneOf: + - $ref: '#/components/schemas/RunStateEnum' + - type: string + nullable: true + description: |- + The state of the payroll run + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `APPROVED` - APPROVED + * `FAILED` - FAILED + * `CLOSED` - CLOSED + example: PAID + run_type: + oneOf: + - $ref: '#/components/schemas/RunTypeEnum' + - type: string + nullable: true + description: |- + The type of the payroll run + + * `REGULAR` - REGULAR + * `OFF_CYCLE` - OFF_CYCLE + * `CORRECTION` - CORRECTION + * `TERMINATION` - TERMINATION + * `SIGN_ON_BONUS` - SIGN_ON_BONUS + example: REGULAR + start_date: + type: string + format: date-time + nullable: true + description: The day and time the payroll run started. + example: '2020-11-08T00:00:00Z' + end_date: + type: string + format: date-time + nullable: true + description: The day and time the payroll run ended. + example: '2020-11-15T00:00:00Z' + check_date: + type: string + format: date-time + nullable: true + description: The day and time the payroll run was checked. + example: '2020-11-15T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /payroll + data: + - Varies by platform + x-merge-category: hris + PolicyTypeEnum: + enum: + - VACATION + - SICK + - PERSONAL + - JURY_DUTY + - VOLUNTEER + - BEREAVEMENT + type: string + description: |- + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + x-merge-category: hris + ReasonEnum: + enum: + - GENERAL_CUSTOMER_REQUEST + - GDPR + - OTHER + type: string + description: |- + * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST + * `GDPR` - GDPR + * `OTHER` - OTHER + x-merge-category: hris + RelationshipEnum: + enum: + - CHILD + - SPOUSE + - DOMESTIC_PARTNER + type: string + description: |- + * `CHILD` - CHILD + * `SPOUSE` - SPOUSE + * `DOMESTIC_PARTNER` - DOMESTIC_PARTNER + x-merge-category: hris + RemoteData: + type: object + description: |- + # The RemoteData Object + ### Description + The `RemoteData` object is used to represent the full data pulled from the third-party API for an object. + + ### Usage Example + TODO + properties: + path: + type: string + description: The third-party API path that is being called. + example: /platform-endpoint + data: + readOnly: true + description: The data returned from the third-party for this object in its + original, unnormalized format. + example: + - Varies by platform + required: + - path + x-merge-category: hris + RemoteEndpointInfo: + type: object + properties: + method: + type: string + example: GET + url_path: + type: string + example: /example-url-path + field_traversal_path: + type: array + items: {} + example: + - example_key_name + required: + - field_traversal_path + - method + - url_path + x-merge-category: hris + RemoteFieldAPI: + type: object + properties: + schema: + type: object + additionalProperties: {} + example: + type: string + remote_key_name: + type: string + example: example_remote_key_name + remote_endpoint_info: + $ref: '#/components/schemas/RemoteEndpointInfo' + example: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + type: array + items: {} + nullable: true + example: + - example + advanced_metadata: + allOf: + - $ref: '#/components/schemas/AdvancedMetadata' + nullable: true + coverage: + oneOf: + - type: integer + - type: number + format: double + nullable: true + readOnly: true + example: 0.33 + required: + - advanced_metadata + - remote_endpoint_info + - remote_key_name + - schema + x-merge-category: hris + RemoteFieldAPIResponse: + type: object + properties: + Benefit: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + EmployerBenefit: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Company: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + EmployeePayrollRun: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Employee: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Employment: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Location: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + PayrollRun: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Team: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + TimeOff: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + TimeOffBalance: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + BankInfo: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + PayGroup: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Group: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Dependent: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + TimesheetEntry: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + x-merge-category: hris + RemoteKey: + type: object + description: |- + # The RemoteKey Object + ### Description + The `RemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: + type: string + example: Remote Deployment Key 1 + key: + type: string + example: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + required: + - key + - name + x-merge-category: hris + RemoteKeyForRegenerationRequest: + type: object + description: |- + # The RemoteKeyForRegeneration Object + ### Description + The `RemoteKeyForRegeneration` object is used to exchange an old remote key for a new one + + ### Usage Example + Post a `RemoteKeyForRegeneration` to swap out an old remote key for a new one + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: hris + RemoteResponse: + type: object + description: |- + # The RemoteResponse Object + ### Description + The `RemoteResponse` object is used to represent information returned from a third-party endpoint. + + ### Usage Example + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: + type: string + example: GET + path: + type: string + example: /scooters + status: + type: integer + example: 200 + response: + example: + scooters: + - company: Lime + model: Gen 2.5 + - company: Bird + model: Bird Zero + response_headers: + type: object + additionalProperties: {} + example: + X-Page-Token: value + response_type: + oneOf: + - $ref: '#/components/schemas/ResponseTypeEnum' + - type: string + example: JSON + headers: + type: object + additionalProperties: {} + example: + EXTRA-HEADER: value + Authorization: + required: + - method + - path + - response + - status + x-merge-category: hris + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + type: string + description: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + x-merge-category: hris + RequestTypeEnum: + enum: + - VACATION + - SICK + - PERSONAL + - JURY_DUTY + - VOLUNTEER + - BEREAVEMENT + type: string + description: |- + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + x-merge-category: hris + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + type: string + description: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + x-merge-category: hris + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + type: string + description: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + x-merge-category: hris + RunStateEnum: + enum: + - PAID + - DRAFT + - APPROVED + - FAILED + - CLOSED + type: string + description: |- + * `PAID` - PAID + * `DRAFT` - DRAFT + * `APPROVED` - APPROVED + * `FAILED` - FAILED + * `CLOSED` - CLOSED + x-merge-category: hris + RunTypeEnum: + enum: + - REGULAR + - OFF_CYCLE + - CORRECTION + - TERMINATION + - SIGN_ON_BONUS + type: string + description: |- + * `REGULAR` - REGULAR + * `OFF_CYCLE` - OFF_CYCLE + * `CORRECTION` - CORRECTION + * `TERMINATION` - TERMINATION + * `SIGN_ON_BONUS` - SIGN_ON_BONUS + x-merge-category: hris + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + type: string + description: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + x-merge-category: hris + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: hris + SyncStatus: + type: object + description: |- + # The SyncStatus Object + ### Description + The `SyncStatus` object is used to represent the syncing state of an account + + ### Usage Example + View the `SyncStatus` for an account to see how recently its models were synced. + properties: + model_name: + type: string + example: Employee + model_id: + type: string + example: hris.Employee + last_sync_start: + type: string + format: date-time + example: '2021-03-30T19:44:18.695973Z' + next_sync_start: + type: string + format: date-time + example: '2021-03-30T20:44:18.662942Z' + last_sync_result: + oneOf: + - $ref: '#/components/schemas/LastSyncResultEnum' + - type: string + example: DONE + last_sync_finished: + type: string + format: date-time + example: '2021-03-30T19:55:18.695973Z' + status: + oneOf: + - $ref: '#/components/schemas/StatusFd5Enum' + - type: string + example: SYNCING + is_initial_sync: + type: boolean + example: true + selective_sync_configurations_usage: + $ref: '#/components/schemas/SelectiveSyncConfigurationsUsageEnum' + required: + - is_initial_sync + - model_id + - model_name + - status + x-merge-sample-json: '{"model_name": "Candidate", "model_id": "ats.Candidate", + "last_sync_start": "2021-03-30T19:44:18.695973Z", "next_sync_start": "2021-03-30T20:44:18.662942Z", + "status": "SYNCING", "is_initial_sync": true}' + x-merge-category: hris + Tax: + type: object + description: |- + # The Tax Object + ### Description + The `Tax` object is used to represent an array of the tax deductions for a given employee's payroll run. + + ### Usage Example + Fetch from the `LIST Taxes` endpoint and filter by `ID` to show all taxes. + properties: + id: + type: string + format: uuid + readOnly: true + example: e3a825fd-c38d-4095-a717-df98c4cb9ebc + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '26806834' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + employee_payroll_run: + type: string + format: uuid + nullable: true + example: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: + type: string + nullable: true + description: The tax's name. + example: California State Income Tax + amount: + type: number + format: double + nullable: true + description: The tax amount. + example: 100.25 + employer_tax: + type: boolean + nullable: true + description: Whether or not the employer is responsible for paying the tax. + example: 'False' + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-nested-write-allowed: true + x-merge-category: hris + Team: + type: object + description: |- + # The Team Object + ### Description + The `Team` object is used to represent a subdivision of the company, usually a department. Each employee will be grouped into one specific Team. + + ### Usage Example + If you're building a way to filter by `Team`, you'd hit the `GET Teams` endpoint to fetch the `Teams`, and then use the `ID` of the team your user selects to filter the `GET Employees` endpoint. + properties: + id: + type: string + format: uuid + readOnly: true + example: 13a72919-9fae-4f54-81ca-ddfd8712a1ba + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The team's name. + example: Engineering + parent_team: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Team' + nullable: true + description: The team's parent team. + example: 1b998423-db0a-4037-a4cf-f79c60cb67b3 + x-merge-expands-to: Team + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /teams + data: + - Varies by platform + x-merge-expands: '{"parent_team": "Team"}' + x-merge-category: hris + TimeOff: + type: object + description: |- + # The TimeOff Object + ### Description + The `TimeOff` object is used to represent all employees' Time Off entries. + + ### Usage Example + Fetch from the `LIST TimeOffs` endpoint and filter by `ID` to show all time off requests. + properties: + id: + type: string + format: uuid + readOnly: true + example: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee requesting time off. + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: Employee + approver: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The Merge ID of the employee with the ability to approve the + time off request. + example: 9efbc633-3387-4306-aa55-e2c635e6bb4f + x-merge-expands-to: Employee + status: + oneOf: + - $ref: '#/components/schemas/TimeOffStatusEnum' + - type: string + nullable: true + description: |- + The status of this time off request. + + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + example: APPROVED + employee_note: + type: string + nullable: true + description: The employee note for this time off request. + example: Moving into the new apartment Kendall Roy gave me! + units: + oneOf: + - $ref: '#/components/schemas/UnitsEnum' + - type: string + nullable: true + description: |- + The measurement that the third-party integration uses to count time requested. + + * `HOURS` - HOURS + * `DAYS` - DAYS + example: DAYS + amount: + type: number + format: double + nullable: true + description: The time off quantity measured by the prescribed “units”. + example: 3 + request_type: + oneOf: + - $ref: '#/components/schemas/RequestTypeEnum' + - type: string + nullable: true + description: |- + The type of time off request. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + example: VACATION + start_time: + type: string + format: date-time + nullable: true + description: The day and time of the start of the time requested off. + example: '2020-11-10T00:00:00Z' + end_time: + type: string + format: date-time + nullable: true + description: The day and time of the end of the time requested off. + example: '2020-11-17T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /leave + data: + - Varies by platform + x-merge-expands: '{"approver": "Employee", "employee": "Employee"}' + x-merge-category: hris + TimeOffBalance: + type: object + description: |- + # The TimeOffBalance Object + ### Description + The `TimeOffBalance` object is used to represent current balances for an employee's Time Off plan. + + ### Usage Example + Fetch from the `LIST TimeOffBalances` endpoint and filter by `ID` to show all time off balances. + properties: + id: + type: string + format: uuid + readOnly: true + example: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee the balance belongs to. + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: Employee + balance: + type: number + format: double + nullable: true + description: The current remaining PTO balance, measured in hours. For integrations + that return this value in days, Merge multiplies by 8 to calculate hours. + example: '60.0' + used: + type: number + format: double + nullable: true + description: The amount of PTO used in terms of hours. For integrations + that return this value in days, Merge multiplies by 8 to calculate hours. + example: '45.0' + policy_type: + oneOf: + - $ref: '#/components/schemas/PolicyTypeEnum' + - type: string + nullable: true + description: |- + The policy type of this time off balance. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + example: VACATION + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /leave + data: + - Varies by platform + x-merge-expands: '{"employee": "Employee"}' + x-merge-category: hris + TimeOffEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/TimeOffRequest' + required: + - model + x-merge-category: hris + TimeOffRequest: + type: object + description: |- + # The TimeOff Object + ### Description + The `TimeOff` object is used to represent all employees' Time Off entries. + + ### Usage Example + Fetch from the `LIST TimeOffs` endpoint and filter by `ID` to show all time off requests. + properties: + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee requesting time off. + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: Employee + approver: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The Merge ID of the employee with the ability to approve the + time off request. + example: 9efbc633-3387-4306-aa55-e2c635e6bb4f + x-merge-expands-to: Employee + status: + oneOf: + - $ref: '#/components/schemas/TimeOffStatusEnum' + - type: string + nullable: true + description: |- + The status of this time off request. + + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + example: APPROVED + employee_note: + type: string + nullable: true + description: The employee note for this time off request. + example: Moving into the new apartment Kendall Roy gave me! + units: + oneOf: + - $ref: '#/components/schemas/UnitsEnum' + - type: string + nullable: true + description: |- + The measurement that the third-party integration uses to count time requested. + + * `HOURS` - HOURS + * `DAYS` - DAYS + example: DAYS + amount: + type: number + format: double + nullable: true + description: The time off quantity measured by the prescribed “units”. + example: 3 + request_type: + oneOf: + - $ref: '#/components/schemas/RequestTypeEnum' + - type: string + nullable: true + description: |- + The type of time off request. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + example: VACATION + start_time: + type: string + format: date-time + nullable: true + description: The day and time of the start of the time requested off. + example: '2020-11-10T00:00:00Z' + end_time: + type: string + format: date-time + nullable: true + description: The day and time of the end of the time requested off. + example: '2020-11-17T00:00:00Z' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"approver": "Employee", "employee": "Employee"}' + x-merge-category: hris + TimeOffResponse: + type: object + properties: + model: + $ref: '#/components/schemas/TimeOff' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: hris + TimeOffStatusEnum: + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + type: string + description: |- + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + x-merge-category: hris + TimesheetEntry: + type: object + description: |- + # The Timesheet Entry Object + ### Description + The `Timesheet Entry` object is used to track coverage for hours worked by an 'Employee'. + + + ### Usage Example + GET and POST Timesheet Entries + properties: + id: + type: string + format: uuid + readOnly: true + example: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee the timesheet entry is for. + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: Employee + hours_worked: + type: number + format: double + nullable: true + description: The number of hours logged by the employee. + example: 10 + start_time: + type: string + format: date-time + nullable: true + description: The time at which the employee started work. + example: '2020-11-10T00:00:00Z' + end_time: + type: string + format: date-time + nullable: true + description: The time at which the employee ended work. + example: '2020-11-10T00:10:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /dependent + data: + - Varies by platform + x-merge-expands: '{"employee": "Employee"}' + x-merge-category: hris + TimesheetEntryEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/TimesheetEntryRequest' + required: + - model + x-merge-category: hris + TimesheetEntryRequest: + type: object + description: |- + # The Timesheet Entry Object + ### Description + The `Timesheet Entry` object is used to track coverage for hours worked by an 'Employee'. + + + ### Usage Example + GET and POST Timesheet Entries + properties: + employee: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Employee' + nullable: true + description: The employee the timesheet entry is for. + example: d2f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: Employee + hours_worked: + type: number + format: double + nullable: true + description: The number of hours logged by the employee. + example: 10 + start_time: + type: string + format: date-time + nullable: true + description: The time at which the employee started work. + example: '2020-11-10T00:00:00Z' + end_time: + type: string + format: date-time + nullable: true + description: The time at which the employee ended work. + example: '2020-11-10T00:10:00Z' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"employee": "Employee"}' + x-merge-category: hris + TimesheetEntryResponse: + type: object + properties: + model: + $ref: '#/components/schemas/TimesheetEntry' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: hris + UnitsEnum: + enum: + - HOURS + - DAYS + type: string + description: |- + * `HOURS` - HOURS + * `DAYS` - DAYS + x-merge-category: hris + ValidationProblemSource: + type: object + properties: + pointer: + type: string + required: + - pointer + x-merge-category: hris + WarningValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /age + title: + type: string + example: Unrecognized Field + detail: + type: string + example: An unrecognized field, age, was passed in with request data. + problem_type: + type: string + example: UNRECOGNIZED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: hris + WebhookReceiver: + type: object + properties: + event: + type: string + is_active: + type: boolean + key: + type: string + required: + - event + - is_active + x-merge-category: hris + WebhookReceiverRequest: + type: object + properties: + event: + type: string + minLength: 1 + is_active: + type: boolean + key: + type: string + minLength: 1 + required: + - event + - is_active + x-merge-category: hris + securitySchemes: + tokenAuth: + type: http + scheme: bearer + description: Token-based authentication with required prefix "Bearer" + x-fern-token-variable-name: api_key +servers: +- url: https://api.merge.dev/api/hris/v1 + description: Production + x-fern-server-name: Production +- url: https://api-sandbox.merge.dev/api/hris/v1 + description: Sandbox + x-fern-server-name: Sandbox +- url: https://api-eu.merge.dev/api/hris/v1 + description: Production EU + x-fern-server-name: ProductionEU +- url: https://api-ap.merge.dev/api/hris/v1 + description: Production APSE1 + x-fern-server-name: ProductionAPSE1 diff --git a/.mock/ticketing_v3.yml b/.mock/ticketing_v3.yml new file mode 100644 index 00000000..95deeb5f --- /dev/null +++ b/.mock/ticketing_v3.yml @@ -0,0 +1,8382 @@ +openapi: 3.0.3 +info: + title: Merge Ticketing API + version: '1.0' + description: The unified API for building rich integrations with multiple Ticketing + platforms. + contact: + name: Merge Team + url: https://www.merge.dev/ + email: hello@merge.dev +paths: + /ticketing/v1/account-details: + get: + operationId: account_details_retrieve + description: Get details for a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - account-details + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountDetails' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/account-token/{public_token}: + get: + operationId: account_token_retrieve + description: Returns the account token for the end user with the provided public + token. + parameters: + - in: path + name: public_token + schema: + type: string + required: true + tags: + - account-token + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AccountToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/accounts: + get: + operationId: accounts_list + description: Returns a list of `Account` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAccountList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/accounts/{id}: + get: + operationId: accounts_retrieve + description: Returns an `Account` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Account' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/async-passthrough: + post: + operationId: async_passthrough_create + description: Asynchronously pull data from an endpoint not currently supported + by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - async-passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncPassthroughReciept' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/async-passthrough/{async_passthrough_receipt_id}: + get: + operationId: async_passthrough_retrieve + description: Retrieves data from earlier async-passthrough POST request + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: async_passthrough_receipt_id + schema: + type: string + format: uuid + required: true + tags: + - async-passthrough + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/RemoteResponse' + - type: string + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/attachments: + get: + operationId: attachments_list + description: Returns a list of `Attachment` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - ticket + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTicket: + value: ticket + summary: Expand Ticket + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_created_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return attachments created in the third + party platform after this datetime. + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: ticket_id + schema: + type: string + description: If provided, will only return comments for this ticket. + examples: + TicketId: + summary: ticket_id + tags: + - attachments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAttachmentList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: attachments_create + description: Creates an `Attachment` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - attachments + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TicketingAttachmentEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TicketingAttachmentEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TicketingAttachmentEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TicketingAttachmentResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/attachments/{id}: + get: + operationId: attachments_retrieve + description: Returns an `Attachment` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - ticket + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTicket: + value: ticket + summary: Expand Ticket + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - attachments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Attachment' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/attachments/{id}/download: + get: + operationId: attachments_download_retrieve + description: Returns the `File` content with the given `id` as a stream of bytes. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: mime_type + schema: + type: string + description: If provided, specifies the export format of the file to be downloaded. + For information on supported export formats, please refer to our export format help center article. + tags: + - attachments + security: + - tokenAuth: [] + responses: + '200': + content: + application/octet-stream: + schema: + type: string + format: binary + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/attachments/meta/post: + get: + operationId: attachments_meta_post_retrieve + description: Returns metadata for `TicketingAttachment` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - attachments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/audit-trail: + get: + operationId: audit_trail_list + description: Gets a list of audit trail events. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include audit trail events that occurred + before this time + - in: query + name: event_type + schema: + type: string + description: 'If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, + `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, + `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, + `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, + `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, + `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, + `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED`' + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include audit trail events that occurred + after this time + - in: query + name: user_email + schema: + type: string + description: If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's email + at the time of the event, and may not be their current email. + tags: + - audit-trail + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAuditLogEventList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/available-actions: + get: + operationId: available_actions_retrieve + description: Returns a list of models and actions available for an account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - available-actions + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AvailableActions' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/collections: + get: + operationId: collections_list + description: Returns a list of `Collection` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: collection_type + schema: + type: string + nullable: true + enum: + - '' + - LIST + - + - PROJECT + description: If provided, will only return collections of the given type. + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - parent_collection + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandParentCollection: + value: parent_collection + summary: Expand Parent_collection + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: parent_collection_id + schema: + type: string + description: If provided, will only return collections whose parent collection + matches the given id. + examples: + ParentCollectionId: + summary: parent_collection_id + - in: query + name: remote_fields + schema: + type: string + enum: + - collection_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesCollectionType: + value: collection_type + summary: Original Enum Values Collection_type + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - collection_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesCollectionType: + value: collection_type + summary: Original Enum Values Collection_type + tags: + - collections + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCollectionList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/collections/{collection_id}/viewers: + get: + operationId: collections_viewers_list + description: Returns a list of `Viewer` objects that point to a User id or Team + id that is either an assignee or viewer on a `Collection` with the given id. + [Learn + more.](https://help.merge.dev/en/articles/10333658-ticketing-access-control-list-acls) + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: collection_id + schema: + type: string + format: uuid + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - team + - user + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandUser,Team: + value: user,team + summary: Expand User, Team + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - collections + - viewers + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedViewerList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /ticketing/v1/collections/{id}: + get: + operationId: collections_retrieve + description: Returns a `Collection` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - parent_collection + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandParentCollection: + value: parent_collection + summary: Expand Parent_collection + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - collection_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesCollectionType: + value: collection_type + summary: Original Enum Values Collection_type + - in: query + name: show_enum_origins + schema: + type: string + enum: + - collection_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesCollectionType: + value: collection_type + summary: Original Enum Values Collection_type + tags: + - collections + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Collection' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/comments: + get: + operationId: comments_list + description: Returns a list of `Comment` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - contact + - ticket + - user + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandUser,Contact,Ticket: + value: user,contact,ticket + summary: Expand User, Contact, Ticket + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_created_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return Comments created in the third party + platform after this datetime. + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: ticket_id + schema: + type: string + description: If provided, will only return comments for this ticket. + examples: + TicketId: + summary: ticket_id + tags: + - comments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedCommentList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: comments_create + description: Creates a `Comment` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - comments + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CommentEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CommentEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CommentEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CommentResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/comments/{id}: + get: + operationId: comments_retrieve + description: Returns a `Comment` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - contact + - ticket + - user + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandUser,Contact,Ticket: + value: user,contact,ticket + summary: Expand User, Contact, Ticket + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - comments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Comment' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/comments/meta/post: + get: + operationId: comments_meta_post_retrieve + description: Returns metadata for `Comment` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - comments + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/contacts: + get: + operationId: contacts_list + description: Returns a list of `Contact` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandAccount: + value: account + summary: Expand Account + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedContactList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: contacts_create + description: Creates a `Contact` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - contacts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TicketingContactEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TicketingContactEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TicketingContactEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TicketingContactResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/contacts/{id}: + get: + operationId: contacts_retrieve + description: Returns a `Contact` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandAccount: + value: account + summary: Expand Account + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/contacts/meta/post: + get: + operationId: contacts_meta_post_retrieve + description: Returns metadata for `TicketingContact` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - contacts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/default-scopes: + get: + operationId: default_scopes_retrieve + description: Get the default permissions for Merge Common Models and fields + across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/delete-account: + post: + operationId: delete_account_delete + description: Delete a linked account. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - delete-account + security: + - tokenAuth: [] + responses: + '200': + description: No response body + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/field-mappings: + get: + operationId: field_mappings_retrieve + description: Get all Field Mappings for this Linked Account. Field Mappings + are mappings between third-party Remote Fields and user defined Merge fields. + [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingApiInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: field_mappings_create + description: Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to sync + **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: exclude_remote_field_metadata + schema: + type: boolean + description: If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` + will be null). This will increase the speed of the request since these fields + require some calculations. + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreateFieldMappingRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/field-mappings/{field_mapping_id}: + patch: + operationId: field_mappings_partial_update + description: Create or update existing Field Mappings for a Linked Account. + Changes will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedEditFieldMappingRequest' + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + delete: + operationId: field_mappings_destroy + description: Deletes Field Mappings for a Linked Account. All data related to + this Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked Account + to sync **ALL** data from start. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: field_mapping_id + schema: + type: string + format: uuid + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '204': + content: + application/json: + schema: + $ref: '#/components/schemas/FieldMappingInstanceResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/generate-key: + post: + operationId: generate_key_create + description: Create a remote key. + tags: + - generate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/GenerateRemoteKeyRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/issues: + get: + operationId: issues_list + description: Gets all issues for Organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: account_token + schema: + type: string + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred before this time + - in: query + name: end_user_organization_name + schema: + type: string + - in: query + name: first_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was after this datetime. + - in: query + name: first_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose first incident time + was before this datetime. + - in: query + name: include_muted + schema: + type: string + description: If true, will include muted issues + - in: query + name: integration_name + schema: + type: string + - in: query + name: last_incident_time_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was after this datetime. + - in: query + name: last_incident_time_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return issues whose last incident time + was before this datetime. + - in: query + name: linked_account_id + schema: + type: string + description: If provided, will only include issues pertaining to the linked + account passed in. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: start_date + schema: + type: string + description: If included, will only include issues whose most recent action + occurred after this time + - in: query + name: status + schema: + type: string + enum: + - ONGOING + - RESOLVED + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedIssueList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/issues/{id}: + get: + operationId: issues_retrieve + description: Get a specific issue. + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - issues + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Issue' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/link-token: + post: + operationId: link_token_create + description: Creates a link token to be used when linking a new end user. + tags: + - link-token + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/EndUserDetailsRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LinkToken' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/linked-account-scopes: + get: + operationId: linked_account_scopes_retrieve + description: Get all available permissions for Merge Common Models and fields + for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: linked_account_scopes_create + description: Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the default + Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - scopes + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/LinkedAccountCommonModelScopeDeserializerRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CommonModelScopeAPI' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/linked-accounts: + get: + operationId: linked_accounts_list + description: List linked accounts for your organization. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: query + name: category + schema: + type: string + nullable: true + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + description: |- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `mktg`, `ticketing` + + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: end_user_email_address + schema: + type: string + description: If provided, will only return linked accounts associated with + the given email address. + - in: query + name: end_user_organization_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given organization name. + - in: query + name: end_user_origin_id + schema: + type: string + description: If provided, will only return linked accounts associated with + the given origin ID. + - in: query + name: end_user_origin_ids + schema: + type: string + description: Comma-separated list of EndUser origin IDs, making it possible + to specify multiple EndUsers at once. + - in: query + name: id + schema: + type: string + format: uuid + - in: query + name: ids + schema: + type: string + description: Comma-separated list of LinkedAccount IDs, making it possible + to specify multiple LinkedAccounts at once. + - in: query + name: include_duplicates + schema: + type: boolean + description: If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. `id` must + be for a complete production linked account. + - in: query + name: integration_name + schema: + type: string + description: If provided, will only return linked accounts associated with + the given integration name. + - in: query + name: is_test_account + schema: + type: string + description: If included, will only include test linked accounts. If not included, + will only include non-test linked accounts. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: status + schema: + type: string + description: 'Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED`' + tags: + - linked-accounts + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedAccountDetailsAndActionsList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/passthrough: + post: + operationId: passthrough_create + description: Pull data from an endpoint not currently supported by Merge. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - passthrough + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/DataPassthroughRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/projects: + get: + operationId: projects_list + description: Returns a list of `Project` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - projects + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedProjectList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/projects/{id}: + get: + operationId: projects_retrieve + description: Returns a `Project` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - projects + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Project' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/projects/{parent_id}/users: + get: + operationId: projects_users_list + description: Returns a list of `User` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - roles + - teams + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTeams,Roles: + value: teams,roles + summary: Expand Teams, Roles + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: path + name: parent_id + schema: + type: string + format: uuid + required: true + tags: + - projects + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/regenerate-key: + post: + operationId: regenerate_key_create + description: Exchange remote keys. + tags: + - regenerate-key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/RemoteKeyForRegenerationRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteKey' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/remote-fields: + get: + operationId: remote_fields_retrieve + description: Get all remote fields for a Linked Account. Remote fields are third-party + fields that are accessible after initial sync if remote_data is enabled. You + can use remote fields to override existing Merge fields or map a new Merge + field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: common_models + schema: + type: string + description: A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + - in: query + name: include_example_values + schema: + type: string + description: If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active data from + your customers. + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/roles: + get: + operationId: roles_list + description: Returns a list of `Role` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - roles + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRoleList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/roles/{id}: + get: + operationId: roles_retrieve + description: Returns a `Role` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - roles + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Role' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/sync-status: + get: + operationId: sync_status_list + description: Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` + represents the most recent time any sync completed. These timestamps may correspond + to different sync instances which may result in a sync start time being later + than a separate sync completed time. To ensure you are retrieving the latest + available data reference the `last_sync_finished` timestamp where `last_sync_result` + is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about + sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - sync-status + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedSyncStatusList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/sync-status/resync: + post: + operationId: sync_status_resync_create + description: Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or Enterprise + plans. Doing so will consume a sync credit for the relevant linked account. + Force re-syncs can also be triggered manually in the Merge Dashboard and is + available for all customers. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - force-resync + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/tags: + get: + operationId: tags_list + description: Returns a list of `Tag` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - tags + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTagList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/tags/{id}: + get: + operationId: tags_retrieve + description: Returns a `Tag` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - tags + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Tag' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/target-fields: + get: + operationId: target_fields_retrieve + description: Get all organization-wide Target Fields, this will not include + any Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked Accounts + in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - field-mapping + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ExternalTargetFieldAPIResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/teams: + get: + operationId: teams_list + description: Returns a list of `Team` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + tags: + - teams + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTeamList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/teams/{id}: + get: + operationId: teams_retrieve + description: Returns a `Team` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - teams + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Team' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/tickets: + get: + operationId: tickets_list + description: Returns a list of `Ticket` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: account_id + schema: + type: string + description: If provided, will only return tickets for this account. + examples: + AccountId: + summary: account_id + - in: query + name: assignee_ids + schema: + type: string + description: If provided, will only return tickets assigned to the assignee_ids; + multiple assignee_ids can be separated by commas. + - in: query + name: collection_ids + schema: + type: string + description: If provided, will only return tickets assigned to the collection_ids; + multiple collection_ids can be separated by commas. + - in: query + name: completed_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return tickets completed after this datetime. + - in: query + name: completed_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return tickets completed before this datetime. + - in: query + name: contact_id + schema: + type: string + description: If provided, will only return tickets for this contact. + examples: + ContactId: + summary: contact_id + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: creator_id + schema: + type: string + description: If provided, will only return tickets created by this creator_id. + examples: + CreatorId: + summary: creator_id + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: due_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return tickets due after this datetime. + - in: query + name: due_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return tickets due before this datetime. + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - assigned_teams + - assignees + - attachments + - collections + - contact + - creator + - parent_ticket + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandAttachments,Assignees,Collections,AssignedTeams,Account,Contact,Creator,ParentTicket: + value: + attachments,assignees,collections,assigned_teams,account,contact,creator,parent_ticket + summary: Expand Attachments, Assignees, Collections, Assigned_teams, Account, + Contact, Creator, Parent_ticket + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: parent_ticket_id + schema: + type: string + description: If provided, will only return sub tickets of the parent_ticket_id. + examples: + ParentTicketId: + summary: parent_ticket_id + - in: query + name: priority + schema: + type: string + nullable: true + enum: + - HIGH + - LOW + - NORMAL + - URGENT + description: |- + If provided, will only return tickets of this priority. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + - in: query + name: remote_created_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return tickets created in the third party + platform after this datetime. + - in: query + name: remote_created_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return tickets created in the third party + platform before this datetime. + - in: query + name: remote_fields + schema: + type: string + enum: + - priority + - priority,status + - priority,status,ticket_type + - priority,ticket_type + - status + - status,ticket_type + - ticket_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesPriority,Status,TicketType: + value: priority,status,ticket_type + summary: Original Enum Values Priority, Status, Ticket_type + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: remote_updated_after + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return tickets updated in the third party + platform after this datetime. + - in: query + name: remote_updated_before + schema: + type: string + format: date-time + nullable: true + description: If provided, will only return tickets updated in the third party + platform before this datetime. + - in: query + name: show_enum_origins + schema: + type: string + enum: + - priority + - priority,status + - priority,status,ticket_type + - priority,ticket_type + - status + - status,ticket_type + - ticket_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesPriority,Status,TicketType: + value: priority,status,ticket_type + summary: Original Enum Values Priority, Status, Ticket_type + - in: query + name: status + schema: + type: string + nullable: true + enum: + - '' + - CLOSED + - IN_PROGRESS + - + - ON_HOLD + - OPEN + description: If provided, will only return tickets of this status. + - in: query + name: tags + schema: + type: string + description: If provided, will only return tickets matching the tags; multiple + tags can be separated by commas. + - in: query + name: ticket_type + schema: + type: string + nullable: true + description: If provided, will only return tickets of this type. + - in: query + name: ticket_url + schema: + type: string + format: uri + nullable: true + description: If provided, will only return tickets where the URL matches or + contains the substring + tags: + - tickets + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedTicketList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: tickets_create + description: Creates a `Ticket` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - tickets + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TicketEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TicketEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/TicketEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/TicketResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/tickets/{id}: + get: + operationId: tickets_retrieve + description: Returns a `Ticket` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - account + - assigned_teams + - assignees + - attachments + - collections + - contact + - creator + - parent_ticket + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandAttachments,Assignees,Collections,AssignedTeams,Account,Contact,Creator,ParentTicket: + value: + attachments,assignees,collections,assigned_teams,account,contact,creator,parent_ticket + summary: Expand Attachments, Assignees, Collections, Assigned_teams, Account, + Contact, Creator, Parent_ticket + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_remote_fields + schema: + type: boolean + description: Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: remote_fields + schema: + type: string + enum: + - priority + - priority,status + - priority,status,ticket_type + - priority,ticket_type + - status + - status,ticket_type + - ticket_type + description: Deprecated. Use show_enum_origins. + examples: + OriginalEnumValuesPriority,Status,TicketType: + value: priority,status,ticket_type + summary: Original Enum Values Priority, Status, Ticket_type + - in: query + name: show_enum_origins + schema: + type: string + enum: + - priority + - priority,status + - priority,status,ticket_type + - priority,ticket_type + - status + - status,ticket_type + - ticket_type + description: A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized enum values. + [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + examples: + OriginalEnumValuesPriority,Status,TicketType: + value: priority,status,ticket_type + summary: Original Enum Values Priority, Status, Ticket_type + tags: + - tickets + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Ticket' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + patch: + operationId: tickets_partial_update + description: Updates a `Ticket` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: is_debug_mode + schema: + type: boolean + description: Whether to include debug fields (such as log file links) in the + response. + - in: query + name: run_async + schema: + type: boolean + description: Whether or not third-party updates should be run asynchronously. + tags: + - tickets + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedTicketEndpointRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedTicketEndpointRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedTicketEndpointRequest' + required: true + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TicketResponse' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/tickets/{ticket_id}/viewers: + get: + operationId: tickets_viewers_list + description: Returns a list of `Viewer` objects that point to a User id or Team + id that is either an assignee or viewer on a `Ticket` with the given id. [Learn + more.](https://help.merge.dev/en/articles/10333658-ticketing-access-control-list-acls) + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - team + - user + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandUser,Team: + value: user,team + summary: Expand User, Team + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: path + name: ticket_id + schema: + type: string + format: uuid + required: true + tags: + - tickets + - viewers + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedViewerList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /ticketing/v1/tickets/meta/patch/{id}: + get: + operationId: tickets_meta_patch_retrieve + description: Returns metadata for `Ticket` PATCHs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: path + name: id + schema: + type: string + format: uuid + required: true + tags: + - tickets + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-patch: META_PATCH + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/tickets/meta/post: + get: + operationId: tickets_meta_post_retrieve + description: Returns metadata for `Ticket` POSTs. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: collection_id + schema: + type: string + description: If provided, will only return tickets for this collection. + - in: query + name: ticket_type + schema: + type: string + description: If provided, will only return tickets for this ticket type. + tags: + - tickets + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MetaResponse' + description: '' + x-merge-meta-post: META_POST + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/tickets/remote-field-classes: + get: + operationId: tickets_remote_field_classes_list + description: Returns a list of `RemoteFieldClass` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: ids + schema: + type: string + description: If provided, will only return remote field classes with the `ids` + in this list + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: is_common_model_field + schema: + type: boolean + nullable: true + description: If provided, will only return remote field classes with this + is_common_model_field value + - in: query + name: is_custom + schema: + type: boolean + nullable: true + description: If provided, will only return remote fields classes with this + is_custom value + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + tags: + - tickets + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedRemoteFieldClassList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC_BETA + /ticketing/v1/users: + get: + operationId: users_list + description: Returns a list of `User` objects. + x-fern-pagination: + cursor: $request.cursor + next_cursor: $response.next + results: $response.results + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: created_after + schema: + type: string + format: date-time + description: If provided, will only return objects created after this datetime. + - in: query + name: created_before + schema: + type: string + format: date-time + description: If provided, will only return objects created before this datetime. + - in: query + name: cursor + schema: + type: string + description: The pagination cursor value. + examples: + CursorExample: + value: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + summary: Cursor Example + - in: query + name: email_address + schema: + type: string + nullable: true + description: If provided, will only return users with emails equal to this + value (case insensitive). + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - roles + - teams + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTeams,Roles: + value: teams,roles + summary: Expand Teams, Roles + explode: false + - in: query + name: include_deleted_data + schema: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + - in: query + name: modified_after + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge after this date time + will be returned. + - in: query + name: modified_before + schema: + type: string + format: date-time + description: If provided, only objects synced by Merge before this date time + will be returned. + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: remote_id + schema: + type: string + nullable: true + description: The API provider's ID for the given object. + - in: query + name: team + schema: + type: string + description: If provided, will only return users matching in this team. + tags: + - users + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedUserList' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/users/{id}: + get: + operationId: users_retrieve + description: Returns a `User` object with the given `id`. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + - in: query + name: expand + schema: + type: array + items: + type: string + enum: + - roles + - teams + description: Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + examples: + ExpandTeams,Roles: + value: teams,roles + summary: Expand Teams, Roles + explode: false + - in: path + name: id + schema: + type: string + format: uuid + required: true + - in: query + name: include_remote_data + schema: + type: boolean + description: Whether to include the original data Merge fetched from the third-party + to produce these models. + - in: query + name: include_shell_data + schema: + type: boolean + description: Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + tags: + - users + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/User' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + /ticketing/v1/webhook-receivers: + get: + operationId: webhook_receivers_list + description: Returns a list of `WebhookReceiver` objects. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + security: + - tokenAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC + post: + operationId: webhook_receivers_create + description: Creates a `WebhookReceiver` object with the given values. + parameters: + - in: header + name: X-Account-Token + schema: + type: string + description: Token identifying the end user. + required: true + tags: + - webhook-receivers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/WebhookReceiverRequest' + required: true + security: + - tokenAuth: [] + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookReceiver' + description: '' + x-endpoint-availability: ENDPOINT_AVAILABILITY_PUBLIC +components: + schemas: + Account: + type: object + description: |- + # The Account Object + ### Description + The `Account` object is used to represent the account that a ticket is associated with. + + The account is a company that may be a customer. This does not represent the company that is receiving the ticket. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The account's name. + example: Waystar Royco + domains: + type: array + items: + type: string + nullable: true + nullable: true + description: The account's domain names. + example: + - waystar-royco.com + - royco.com + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + example: + - path: /actions + data: + - Varies by platform + x-merge-expands: '{"owner": "User"}' + x-merge-category: ticketing + AccountDetails: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: + type: string + readOnly: true + example: BambooHR + integration_slug: + type: string + readOnly: true + example: bamboohr + category: + oneOf: + - $ref: '#/components/schemas/CategoryEnum' + - type: string + nullable: true + example: hris + end_user_origin_id: + type: string + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: + type: string + readOnly: true + example: Waystar Royco + end_user_email_address: + type: string + format: email + readOnly: true + example: kendall.roy@waystar-royco.com + status: + type: string + readOnly: true + example: COMPLETE + webhook_listener_url: + type: string + format: uri + readOnly: true + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + readOnly: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + account_type: + type: string + readOnly: true + example: PRODUCTION + completed_at: + type: string + format: date-time + nullable: true + description: The time at which account completes the linking flow. + example: '2024-08-26T20:11:19.277118Z' + x-merge-category: ticketing + AccountDetailsAndActions: + type: object + description: |- + # The LinkedAccount Object + ### Description + The `LinkedAccount` object is used to represent an end user's link with a specific integration. + + ### Usage Example + View a list of your organization's `LinkedAccount` objects. + properties: + id: + type: string + example: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: + oneOf: + - $ref: '#/components/schemas/CategoryEnum' + - type: string + example: hris + status: + oneOf: + - $ref: '#/components/schemas/AccountDetailsAndActionsStatusEnum' + - type: string + example: INCOMPLETE + status_detail: + type: string + example: Invalid login credentials + end_user_origin_id: + type: string + example: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: + type: string + example: Foo Bar, LLC + end_user_email_address: + type: string + example: hradmin@foobar.dev + subdomain: + type: string + description: The tenant or domain the customer has provided access to. + example: foobar + webhook_listener_url: + type: string + example: https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: + type: boolean + nullable: true + description: Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test Linked + Accounts, incomplete Production Linked Accounts, and ignored duplicate + Production Linked Account sets. + example: true + integration: + $ref: '#/components/schemas/AccountDetailsAndActionsIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: + type: string + example: PRODUCTION + completed_at: + type: string + format: date-time + example: '2024-08-26T20:11:19.277118Z' + required: + - account_type + - completed_at + - end_user_email_address + - end_user_organization_name + - id + - status + - webhook_listener_url + x-merge-sample-json: '{"id": "e59b1821-f85c-4e28-a6b3-1804156f3563", "category": + "hris", "status": "INCOMPLETE", "status_detail": "Invalid login credentials", + "end_user_origin_id": "3ac95cde-6c7f-4eef-afec-be710b42308d", "end_user_organization_name": + "Foo Bar, LLC", "end_user_email_address": "hradmin@foobar.dev", "webhook_listener_url": + "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + "is_duplicate": true, "integration": {"name": "SAP SuccessFactors", "categories": + ["hris", "ats"], "image": "https://cdn.merge.dev/SuccessFactors_Logo.png", + "square_image": "https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg", "color": + "#F6A704", "slug": "sap-successfactors", "passthrough_available": true, "available_model_operations": + [{"model_name": "Candidate", "available_operations": ["FETCH", "CREATE"], + "required_post_parameters": ["remote_user_id"], "supported_fields": ["first_name", + "last_name", "company", "title"]}]}}' + x-merge-category: ticketing + AccountDetailsAndActionsIntegration: + type: object + properties: + name: + type: string + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + image: + type: string + square_image: + type: string + color: + type: string + slug: + type: string + passthrough_available: + type: boolean + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + required: + - categories + - color + - name + - passthrough_available + - slug + x-merge-category: ticketing + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + type: string + description: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + x-merge-category: ticketing + AccountIntegration: + type: object + properties: + name: + type: string + description: Company name. + abbreviated_name: + type: string + nullable: true + description: "Optional. This shortened name appears in places with limited + space, usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce Now), + SuccessFactors (in lieu of SAP SuccessFactors)" + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + readOnly: true + image: + type: string + format: uri + nullable: true + description: Company logo in rectangular shape. + square_image: + type: string + format: uri + nullable: true + description: Company logo in square shape. + color: + type: string + description: The color of this integration used for buttons and text throughout + the app and landing pages. Choose a darker, saturated color. + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: string + readOnly: true + api_endpoints_to_documentation_urls: + type: object + additionalProperties: {} + description: "Mapping of API endpoints to documentation urls for support. + Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []}" + webhook_setup_guide_url: + type: string + nullable: true + description: Setup guide URL for third party webhook creation. Exposed in + Merge Docs. + category_beta_status: + type: object + description: Category or categories this integration is in beta status for. + readOnly: true + required: + - name + x-merge-category: ticketing + AccountToken: + type: object + properties: + account_token: + type: string + example: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: SAP SuccessFactors + categories: + - hris + - ats + image: https://cdn.merge.dev/SuccessFactors_Logo.png + square_image: https://cdn.merge.dev/SuccessFactors_Square_Logo.jpg + color: '#F6A704' + slug: sap-successfactors + id: + type: string + example: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + required: + - account_token + - id + - integration + x-merge-category: ticketing + AdvancedMetadata: + type: object + properties: + id: + type: string + format: uuid + display_name: + type: string + description: + type: string + is_required: + type: boolean + is_custom: + type: boolean + field_choices: + type: array + items: {} + required: + - id + x-merge-category: ticketing + AsyncPassthroughReciept: + type: object + properties: + async_passthrough_receipt_id: + type: string + format: uuid + example: fd29020f-2695-445e-922e-dcd5e81903fd + required: + - async_passthrough_receipt_id + x-merge-category: ticketing + Attachment: + type: object + description: |- + # The Attachment Object + ### Description + The `Attachment` object is used to represent an attachment for a ticket. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + file_name: + type: string + nullable: true + description: The attachment's name. It is required to include the file extension + in the attachment's name. + example: Screenshot.png + ticket: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Ticket' + nullable: true + description: The ticket associated with the attachment. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Ticket + file_url: + type: string + nullable: true + example: http://alturl.com/p749b + description: The attachment's url. It is required to include the file extension + in the file's URL. + content_type: + type: string + nullable: true + description: The attachment's file format. + example: jpeg + uploaded_by: + type: string + format: uuid + nullable: true + description: The user who uploaded the attachment. + example: 28b54125-287f-494d-965e-3c5b330c9a68 + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's attachment was created. + example: '2022-11-10T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-nested-write-allowed: true + x-merge-expands: '{"ticket": "Ticket"}' + x-merge-category: ticketing + AttachmentRequest: + type: object + description: |- + # The Attachment Object + ### Description + The `Attachment` object is used to represent an attachment for a ticket. + + ### Usage Example + TODO + properties: + file_name: + type: string + nullable: true + description: The attachment's name. It is required to include the file extension + in the attachment's name. + example: Screenshot.png + ticket: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Ticket' + nullable: true + description: The ticket associated with the attachment. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Ticket + file_url: + type: string + nullable: true + example: http://alturl.com/p749b + description: The attachment's url. It is required to include the file extension + in the file's URL. + content_type: + type: string + nullable: true + description: The attachment's file format. + example: jpeg + uploaded_by: + type: string + format: uuid + nullable: true + description: The user who uploaded the attachment. + example: 28b54125-287f-494d-965e-3c5b330c9a68 + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"ticket": "Ticket"}' + x-merge-category: ticketing + AuditLogEvent: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: + type: string + nullable: true + description: The User's full name at the time of this Event occurring. + maxLength: 200 + example: Gil Feig + user_email: + type: string + format: email + nullable: true + description: The User's email at the time of this Event occurring. + maxLength: 254 + example: hello@merge.dev + role: + oneOf: + - $ref: '#/components/schemas/RoleEnum' + - type: string + description: |- + Designates the role of the user (or SYSTEM/API if action not taken by a user) at the time of this Event occurring. + + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + example: ADMIN + ip_address: + type: string + maxLength: 45 + example: 192.0.2.123 + event_type: + oneOf: + - $ref: '#/components/schemas/EventTypeEnum' + - type: string + description: |- + Designates the type of event that occurred. + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + example: CHANGED_SCOPES + event_description: + type: string + example: Organization-wide Scopes for model hris.Employee updated from Read + to Read+Write + created_at: + type: string + format: date-time + readOnly: true + required: + - event_description + - event_type + - ip_address + - role + x-merge-category: ticketing + AvailableActions: + type: object + description: |- + # The AvailableActions Object + ### Description + The `Activity` object is used to see all available model/operation combinations for an integration. + + ### Usage Example + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: + $ref: '#/components/schemas/AccountIntegration' + example: + name: Lever + categories: + - ats + image: https://merge-api-production.s3.amazonaws.com/media/Lever_Logo.png + square_image: https://merge-api-production.s3.amazonaws.com/media/Lever_Square_Logo.png + color: '#262A34' + is_in_beta: 'true' + api_endpoints_to_documentation_urls: "{'GET': [('/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve')], + 'POST': []}" + passthrough_available: + type: boolean + example: true + available_model_operations: + type: array + items: + $ref: '#/components/schemas/ModelOperation' + example: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + required: + - integration + - passthrough_available + x-merge-category: ticketing + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: ticketing + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + type: string + description: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + x-merge-category: ticketing + Collection: + type: object + description: |- + # The Collection Object + ### Description + The `Collection` object is used to represent one or more `Tickets`. There can be a hierarchy of `Collections`, in which a sub-collection belongs to a parent-collection. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The collection's name. + example: Q1 Platform + description: + type: string + nullable: true + description: The collection's description. + example: For tracking all tasks related to Platform for Q1 + access_level: + oneOf: + - $ref: '#/components/schemas/CollectionAccessLevelEnum' + - type: string + nullable: true + description: |- + The level of access a User has to the Collection and its sub-objects. + + * `PRIVATE` - PRIVATE + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PARENT_COLLECTION` - PARENT_COLLECTION + example: PUBLIC + collection_type: + oneOf: + - $ref: '#/components/schemas/CollectionTypeEnum' + - type: string + nullable: true + description: |- + The collection's type. + + * `LIST` - LIST + * `PROJECT` - PROJECT + example: LIST + $ref: '#/components/schemas/CollectionTypeEnum' + parent_collection: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Collection' + nullable: true + description: The parent collection for this collection. + example: 25782302-5be1-4d78-8f46-2a5db72204ef + x-merge-expands-to: Collection + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-expands: '{"parent_collection": "Collection"}' + x-merge-category: ticketing + CollectionAccessLevelEnum: + enum: + - PRIVATE + - COMPANY + - PUBLIC + - PARENT_COLLECTION + type: string + description: |- + * `PRIVATE` - PRIVATE + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PARENT_COLLECTION` - PARENT_COLLECTION + x-merge-category: ticketing + CollectionTypeEnum: + enum: + - LIST + - PROJECT + type: string + description: |- + * `LIST` - LIST + * `PROJECT` - PROJECT + x-merge-category: ticketing + Comment: + type: object + description: |- + # The Comment Object + ### Description + The `Comment` object is used to represent a comment on a ticket. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + user: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The author of the Comment, if the author is a User. If the + third party does not support specifying an author, we will append "[Posted + on behalf of {name}]" to the comment. + example: 17a54124-287f-494d-965e-3c5b330c9a68 + x-merge-expands-to: User + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The author of the Comment, if the author is a Contact.If the + third party does not support specifying an author, we will append "[Posted + on behalf of {name}]" to the comment. + example: dde3fb16-b8eb-483d-81c4-b78100816f15 + x-merge-expands-to: Contact + body: + type: string + nullable: true + description: The comment's text body. + example: When will these integrations be done? You all should use Merge. + html_body: + type: string + nullable: true + description: The comment's text body formatted as html. + example: When will these integrations be done? You all should use Merge. + ticket: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Ticket' + nullable: true + description: 'The ticket associated with the comment. ' + example: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + x-merge-expands-to: Ticket + is_private: + type: boolean + nullable: true + description: Whether or not the comment is internal. + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's comment was created. + example: '1990-11-10T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-expands: '{"contact": "Contact", "ticket": "Ticket", "user": "User"}' + x-merge-category: ticketing + CommentEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/CommentRequest' + required: + - model + x-merge-category: ticketing + CommentRequest: + type: object + description: |- + # The Comment Object + ### Description + The `Comment` object is used to represent a comment on a ticket. + + ### Usage Example + TODO + properties: + user: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The author of the Comment, if the author is a User. If the + third party does not support specifying an author, we will append "[Posted + on behalf of {name}]" to the comment. + example: 17a54124-287f-494d-965e-3c5b330c9a68 + x-merge-expands-to: User + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The author of the Comment, if the author is a Contact.If the + third party does not support specifying an author, we will append "[Posted + on behalf of {name}]" to the comment. + example: dde3fb16-b8eb-483d-81c4-b78100816f15 + x-merge-expands-to: Contact + body: + type: string + nullable: true + description: The comment's text body. + example: When will these integrations be done? You all should use Merge. + html_body: + type: string + nullable: true + description: The comment's text body formatted as html. + example: When will these integrations be done? You all should use Merge. + ticket: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Ticket' + nullable: true + description: 'The ticket associated with the comment. ' + example: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + x-merge-expands-to: Ticket + is_private: + type: boolean + nullable: true + description: Whether or not the comment is internal. + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"contact": "Contact", "ticket": "Ticket", "user": "User"}' + x-merge-category: ticketing + CommentResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Comment' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: ticketing + CommonModelScopeAPI: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializer' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + required: + - common_models + x-merge-category: ticketing + CommonModelScopesBodyRequest: + type: object + properties: + model_id: + type: string + minLength: 1 + example: hris.Employee + enabled_actions: + type: array + items: + $ref: '#/components/schemas/EnabledActionsEnum' + example: + - READ + - WRITE + disabled_fields: + type: array + items: + type: string + minLength: 1 + example: + - first_name + required: + - disabled_fields + - enabled_actions + - model_id + x-merge-category: ticketing + Contact: + type: object + description: |- + # The Contact Object + ### Description + The `Contact` object is used to represent the customer, lead, or external user that a ticket is associated with. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The contact's name. + example: Cousin Greg + email_address: + type: string + nullable: true + description: The contact's email address. + example: greg@waystar-royco.com + phone_number: + type: string + nullable: true + description: The contact's phone number. + example: '5108890293' + details: + type: string + nullable: true + description: The contact's details. + example: Executive Assistant to Tom Wambsgans + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The contact's account. + example: 28b54125-287f-494d-965e-3c5b330c9a68 + x-merge-expands-to: Account + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-expands: '{"account": "Account"}' + x-merge-category: ticketing + ContactRequest: + type: object + description: |- + # The Contact Object + ### Description + The `Contact` object is used to represent the customer, lead, or external user that a ticket is associated with. + + ### Usage Example + TODO + properties: + name: + type: string + nullable: true + description: The contact's name. + example: Cousin Greg + email_address: + type: string + nullable: true + description: The contact's email address. + example: greg@waystar-royco.com + phone_number: + type: string + nullable: true + description: The contact's phone number. + example: '5108890293' + details: + type: string + nullable: true + description: The contact's details. + example: Executive Assistant to Tom Wambsgans + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The contact's account. + example: 28b54125-287f-494d-965e-3c5b330c9a68 + x-merge-expands-to: Account + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + x-merge-expands: '{"account": "Account"}' + x-merge-category: ticketing + CreateFieldMappingRequest: + type: object + properties: + target_field_name: + type: string + minLength: 1 + description: The name of the target field you want this remote field to + map to. + example: example_target_field_name + target_field_description: + type: string + minLength: 1 + description: The description of the target field you want this remote field + to map to. + example: this is a example description of the target field + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + common_model_name: + type: string + minLength: 1 + description: The name of the Common Model that the remote field corresponds + to in a given category. + example: ExampleCommonModel + required: + - common_model_name + - remote_field_traversal_path + - remote_method + - remote_url_path + - target_field_description + - target_field_name + x-merge-category: ticketing + DataPassthroughRequest: + type: object + description: |- + # The DataPassthrough Object + ### Description + The `DataPassthrough` object is used to send information to an otherwise-unsupported third-party endpoint. + + ### Usage Example + Create a `DataPassthrough` to get team hierarchies from your Rippling integration. + properties: + method: + allOf: + - $ref: '#/components/schemas/MethodEnum' + example: POST + path: + type: string + minLength: 1 + description: The path of the request in the third party's platform. + example: /scooters + base_url_override: + type: string + nullable: true + minLength: 1 + description: An optional override of the third party's base url for the + request. + example: https://api.example.com + data: + type: string + nullable: true + minLength: 1 + description: The data with the request. You must include a `request_format` + parameter matching the data's format + example: '{"company": "Lime", "model": "Gen 2.5"}' + multipart_form_data: + type: array + items: + $ref: '#/components/schemas/MultipartFormFieldRequest' + nullable: true + description: Pass an array of `MultipartFormField` objects in here instead + of using the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: object + additionalProperties: {} + nullable: true + description: The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for passthrough. + Choose content type corresponding to expected format of receiving server. + example: + EXTRA-HEADER: value + request_format: + allOf: + - $ref: '#/components/schemas/RequestFormatEnum' + nullable: true + example: JSON + normalize_response: + type: boolean + description: 'Optional. If true, the response will always be an object of + the form `{"type": T, "value": ...}` where `T` will be one of `string, + boolean, number, null, array, object`.' + required: + - method + - path + x-merge-category: ticketing + DebugModeLog: + type: object + properties: + log_id: + type: string + example: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: + type: string + example: https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + $ref: '#/components/schemas/DebugModelLogSummary' + example: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + required: + - dashboard_view + - log_id + - log_summary + x-merge-sample-json: '{"log_id": "99433219-8017-4acd-bb3c-ceb23d663832", "dashboard_view": + "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", "log_summary": + {"url": "www.exampleintegration.com/api/v1/exampleapi", "method": "POST", + "status_code": 200}}' + x-merge-category: ticketing + DebugModelLogSummary: + type: object + properties: + url: + type: string + example: www.exampleintegration.com/api/v1/exampleapi + method: + type: string + example: POST + status_code: + type: integer + example: 200 + required: + - method + - status_code + - url + x-merge-sample-json: '{"url": "www.exampleintegration.com/api/v1/exampleapi", + "method": "POST", "status_code": 200}' + x-merge-category: ticketing + EnabledActionsEnum: + enum: + - READ + - WRITE + type: string + description: |- + * `READ` - READ + * `WRITE` - WRITE + x-merge-category: ticketing + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + type: string + description: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + x-merge-category: ticketing + EndUserDetailsRequest: + type: object + properties: + end_user_email_address: + type: string + minLength: 1 + description: Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be sent. + maxLength: 100 + example: example@gmail.com + end_user_organization_name: + type: string + minLength: 1 + description: Your end user's organization. + maxLength: 100 + example: Test Organization + end_user_origin_id: + type: string + minLength: 1 + description: This unique identifier typically represents the ID for your + end user in your product's database. This value must be distinct from + other Linked Accounts' unique identifiers. + maxLength: 100 + example: '12345' + categories: + type: array + items: + $ref: '#/components/schemas/CategoriesEnum' + description: The integration categories to show in Merge Link. + example: + - hris + - ats + integration: + type: string + nullable: true + minLength: 1 + description: The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see https://docs.merge.dev/guides/merge-link/single-integration/. + example: bamboohr + link_expiry_mins: + type: integer + maximum: 10080 + minimum: 30 + default: 30 + description: An integer number of minutes between [30, 720 or 10080 if for + a Magic Link URL] for how long this token is valid. Defaults to 30. + should_create_magic_link_url: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + hide_admin_magic_link: + type: boolean + nullable: true + default: false + description: Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information on Magic + Link, see https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + common_models: + type: array + items: + $ref: '#/components/schemas/CommonModelScopesBodyRequest' + nullable: true + description: An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses model_id, enabled_actions, + and disabled_fields to specify the model, method, and fields that are + scoped for a given Linked Account. + category_common_model_scopes: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + nullable: true + description: When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be linked. Any + model or field not specified in link token payload will default to existing + settings. + example: + hris: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - first_name + - last_name + - personal_email + disabled_fields: + - preferred_name + - model_name: Employment + model_permissions: + READ: + is_enabled: false + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - effective_date + ats: + - model_name: Job + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + field_permissions: + enabled_fields: + - name + disabled_fields: + - description + - model_name: Department + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: true + language: + oneOf: + - $ref: '#/components/schemas/LanguageEnum' + - type: string + nullable: true + description: |- + The following subset of IETF language tags can be used to configure localization. + + * `en` - en + * `de` - de + example: en + are_syncs_disabled: + type: boolean + nullable: true + default: false + description: The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + integration_specific_config: + type: object + additionalProperties: {} + nullable: true + description: A JSON object containing integration-specific configuration + options. + example: + rippling: + oauth_code: 3h1jj8ssdf31dfji3o1jjdfjasd + required: + - categories + - end_user_email_address + - end_user_organization_name + - end_user_origin_id + x-merge-category: ticketing + ErrorValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /model/custom_fields + title: + type: string + example: Missing Required Field + detail: + type: string + example: custom_fields is a required field on model. + problem_type: + type: string + example: MISSING_REQUIRED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: ticketing + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + type: string + description: |- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + * `INVITED_USER` - INVITED_USER + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + * `CREATED_DESTINATION` - CREATED_DESTINATION + * `DELETED_DESTINATION` - DELETED_DESTINATION + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + * `CHANGED_SCOPES` - CHANGED_SCOPES + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + * `RESET_PASSWORD` - RESET_PASSWORD + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + * `MUTED_ISSUE` - MUTED_ISSUE + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + x-merge-category: ticketing + ExternalTargetFieldAPI: + type: object + properties: + name: + type: string + nullable: true + readOnly: true + example: example_target_field_name + description: + type: string + nullable: true + readOnly: true + example: this is a example description of a target field + is_mapped: + type: string + nullable: true + readOnly: true + example: true + x-merge-category: ticketing + ExternalTargetFieldAPIResponse: + type: object + properties: + Ticket: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Comment: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Project: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Collection: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + User: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Role: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Account: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Team: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Attachment: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Tag: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + Contact: + type: array + items: + $ref: '#/components/schemas/ExternalTargetFieldAPI' + x-merge-category: ticketing + FieldFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + x-merge-category: ticketing + FieldMappingApiInstance: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: + type: boolean + readOnly: true + target_field: + type: object + properties: + name: + type: string + description: + type: string + is_organization_wide: + type: boolean + required: + - description + - is_organization_wide + - name + nullable: true + readOnly: true + example: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + type: object + properties: + remote_key_name: + type: string + nullable: true + schema: + type: object + additionalProperties: {} + nullable: true + remote_endpoint_info: + type: object + properties: + method: + type: string + nullable: true + url_path: + type: string + nullable: true + field_traversal_path: + type: array + items: + type: string + nullable: true + required: + - field_traversal_path + - method + - url_path + required: + - remote_endpoint_info + - remote_key_name + - schema + nullable: true + readOnly: true + example: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + x-merge-category: ticketing + FieldMappingApiInstanceResponse: + type: object + properties: + Ticket: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Comment: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Project: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Collection: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + User: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Role: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Account: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Team: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Attachment: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Tag: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + Contact: + type: array + items: + $ref: '#/components/schemas/FieldMappingApiInstance' + x-merge-category: ticketing + FieldMappingInstanceResponse: + type: object + properties: + model: + $ref: '#/components/schemas/FieldMappingApiInstance' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: ticketing + FieldPermissionDeserializer: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: ticketing + FieldPermissionDeserializerRequest: + type: object + properties: + enabled_fields: + type: array + items: {} + disabled_fields: + type: array + items: {} + x-merge-category: ticketing + FieldTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + x-merge-category: ticketing + GenerateRemoteKeyRequest: + type: object + description: |- + # The GenerateRemoteKey Object + ### Description + The `GenerateRemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to create a new remote key. + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: ticketing + IndividualCommonModelScopeDeserializer: + type: object + properties: + model_name: + type: string + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializer' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializer' + required: + - model_name + x-merge-category: ticketing + IndividualCommonModelScopeDeserializerRequest: + type: object + properties: + model_name: + type: string + minLength: 1 + model_permissions: + type: object + additionalProperties: + $ref: '#/components/schemas/ModelPermissionDeserializerRequest' + field_permissions: + $ref: '#/components/schemas/FieldPermissionDeserializerRequest' + required: + - model_name + x-merge-category: ticketing + Issue: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: + oneOf: + - $ref: '#/components/schemas/IssueStatusEnum' + - type: string + description: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + example: ONGOING + error_description: + type: string + example: Missing Permissions + end_user: + type: object + additionalProperties: {} + readOnly: true + example: b82302de-852e-4e60-b050-edf9da3b7c02 + first_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + last_incident_time: + type: string + format: date-time + nullable: true + example: '2022-12-05T16:19:15.161Z' + is_muted: + type: boolean + readOnly: true + example: true + error_details: + type: array + items: + type: string + readOnly: true + example: + - Missing employee permissions. + - Missing time off permissions. + required: + - error_description + x-merge-category: ticketing + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + type: string + description: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + x-merge-category: ticketing + ItemFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - uuid + * `number` - url + * `date` - email + * `datetime` - phone + * `bool` - currency + * `list` - decimal + x-merge-category: ticketing + ItemSchema: + type: object + properties: + item_type: + $ref: '#/components/schemas/ItemTypeEnum' + item_format: + $ref: '#/components/schemas/ItemFormatEnum' + item_choices: + type: array + items: + type: string + x-merge-category: ticketing + ItemTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + type: string + description: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + x-merge-category: ticketing + LanguageEnum: + enum: + - en + - de + type: string + description: |- + * `en` - en + * `de` - de + x-merge-category: ticketing + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: ticketing + LinkToken: + type: object + properties: + link_token: + type: string + example: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: + type: string + example: Lever + magic_link_url: + type: string + example: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + required: + - link_token + x-merge-category: ticketing + LinkedAccountCommonModelScopeDeserializerRequest: + type: object + properties: + common_models: + type: array + items: + $ref: '#/components/schemas/IndividualCommonModelScopeDeserializerRequest' + description: The common models you want to update the scopes for + example: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + required: + - common_models + x-merge-category: ticketing + LinkedAccountStatus: + type: object + properties: + linked_account_status: + type: string + can_make_request: + type: boolean + required: + - can_make_request + - linked_account_status + x-merge-category: ticketing + MetaResponse: + type: object + properties: + request_schema: + type: object + additionalProperties: {} + example: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + type: object + additionalProperties: {} + status: + $ref: '#/components/schemas/LinkedAccountStatus' + example: + linked_account_status: COMPLETE + can_make_request: true + has_conditional_params: + type: boolean + has_required_linked_account_params: + type: boolean + required: + - has_conditional_params + - has_required_linked_account_params + - request_schema + x-merge-category: ticketing + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + type: string + description: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + x-merge-category: ticketing + ModelOperation: + type: object + description: |- + # The ModelOperation Object + ### Description + The `ModelOperation` object is used to represent the operations that are currently supported for a given model. + + ### Usage Example + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: + type: string + example: Candidate + available_operations: + type: array + items: + type: string + example: + - FETCH + - CREATE + required_post_parameters: + type: array + items: + type: string + example: + - remote_user_id + supported_fields: + type: array + items: + type: string + example: + - first_name + - last_name + - company + - title + required: + - available_operations + - model_name + - required_post_parameters + - supported_fields + x-merge-category: ticketing + ModelPermissionDeserializer: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: ticketing + ModelPermissionDeserializerRequest: + type: object + properties: + is_enabled: + type: boolean + x-merge-category: ticketing + MultipartFormFieldRequest: + type: object + description: |- + # The MultipartFormField Object + ### Description + The `MultipartFormField` object is used to represent fields in an HTTP request using `multipart/form-data`. + + ### Usage Example + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + minLength: 1 + description: The name of the form field + example: resume + data: + type: string + minLength: 1 + description: The data for the form field. + example: SW50ZWdyYXRlIGZhc3QKSW50ZWdyYXRlIG9uY2U= + encoding: + oneOf: + - $ref: '#/components/schemas/EncodingEnum' + - type: string + nullable: true + default: RAW + description: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + example: BASE64 + file_name: + type: string + nullable: true + minLength: 1 + description: The file name of the form field, if the field is for a file. + example: resume.pdf + content_type: + type: string + nullable: true + minLength: 1 + description: The MIME type of the file, if the field is for a file. + example: application/pdf + required: + - data + - name + x-merge-category: ticketing + PaginatedAccountDetailsAndActionsList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AccountDetailsAndActions' + x-merge-category: ticketing + PaginatedAccountList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Account' + x-merge-category: ticketing + PaginatedAttachmentList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Attachment' + x-merge-category: ticketing + PaginatedAuditLogEventList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/AuditLogEvent' + x-merge-category: ticketing + PaginatedCollectionList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Collection' + x-merge-category: ticketing + PaginatedCommentList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Comment' + x-merge-category: ticketing + PaginatedContactList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Contact' + x-merge-category: ticketing + PaginatedIssueList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Issue' + x-merge-category: ticketing + PaginatedProjectList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Project' + x-merge-category: ticketing + PaginatedRemoteFieldClassList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/RemoteFieldClass' + x-merge-category: ticketing + PaginatedRoleList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Role' + x-merge-category: ticketing + PaginatedSyncStatusList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/SyncStatus' + x-merge-category: ticketing + PaginatedTagList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Tag' + x-merge-category: ticketing + PaginatedTeamList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Team' + x-merge-category: ticketing + PaginatedTicketList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Ticket' + x-merge-category: ticketing + PaginatedUserList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/User' + x-merge-category: ticketing + PaginatedViewerList: + type: object + properties: + next: + type: string + nullable: true + example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: + type: string + nullable: true + example: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + type: array + items: + $ref: '#/components/schemas/Viewer' + x-merge-category: ticketing + PatchedEditFieldMappingRequest: + type: object + properties: + remote_field_traversal_path: + type: array + items: {} + description: The field traversal path of the remote field listed when you + hit the GET /remote-fields endpoint. + example: + - example_remote_field_name + remote_method: + type: string + minLength: 1 + description: The method of the remote endpoint where the remote field is + coming from. + example: GET + remote_url_path: + type: string + minLength: 1 + description: The path of the remote endpoint where the remote field is coming + from. + example: /example-url-path + x-merge-category: ticketing + PatchedTicketEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/PatchedTicketRequest' + required: + - model + x-merge-category: ticketing + PatchedTicketRequest: + type: object + description: |- + # The Ticket Object + ### Description + The `Ticket` object is used to represent a ticket, issue, task or case. + ### Usage Example + TODO + properties: + name: + type: string + nullable: true + description: The ticket's name. + example: Please add more integrations + assignees: + type: array + items: + type: string + format: uuid + nullable: true + description: The individual `Users` who are assigned to this ticket. This + does not include `Users` who just have view access to this ticket. To + fetch all `Users` and `Teams` that can access the ticket, use the `GET + /tickets/{ticket_id}/viewers` [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + example: + - 17a54124-287f-494d-965e-3c5b330c9a68 + assigned_teams: + type: array + items: + type: string + format: uuid + nullable: true + description: The `Teams` that are assigned to this ticket. This does not + include `Teams` who just have view access to this ticket. To fetch all + `Users` and `Teams` that can access this ticket, use the `GET /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + example: + - 4857c306-c1f9-489e-a6b6-90902f736dfe + creator: + type: string + format: uuid + nullable: true + description: The user who created this ticket. + due_date: + type: string + format: date-time + nullable: true + description: The ticket's due date. + example: '2022-10-11T00:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/TicketStatusEnum' + - type: string + nullable: true + description: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + example: OPEN + description: + type: string + nullable: true + description: The ticket’s description. HTML version of description is mapped + if supported by the third-party platform. + example: Can you please add more integrations? It'll make syncing data much + easier! + collections: + type: array + items: + type: string + format: uuid + nullable: true + description: The `Collections` that this `Ticket` is included in. + example: + - fb8c55b6-1cb8-4b4c-9fb6-17924231619d + ticket_type: + type: string + nullable: true + description: The sub category of the ticket within the 3rd party system. + Examples include incident, task, subtask or to-do. + example: incident + account: + type: string + format: uuid + nullable: true + description: The account associated with the ticket. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + contact: + type: string + format: uuid + nullable: true + description: The contact associated with the ticket. + example: 65c345ba-6870-4974-87ba-dd31509c367a + parent_ticket: + type: string + format: uuid + nullable: true + description: The ticket's parent ticket. + example: 75b33d04-30d2-4f3e-be45-27838bc94342 + access_level: + oneOf: + - $ref: '#/components/schemas/TicketAccessLevelEnum' + - type: string + nullable: true + description: |- + The description of who is able to access a given ticket, or where access is inherited from. + + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + * `COLLECTION` - COLLECTION + example: PRIVATE + tags: + type: array + items: + type: string + nullable: true + description: The tag's name. + example: + - enterprise + - other-tag + roles: + type: array + items: + type: string + format: uuid + nullable: true + example: + - 21a54124-397f-494d-985e-3c5b330b8a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + completed_at: + type: string + format: date-time + nullable: true + description: When the ticket was completed. + example: '2021-12-09T00:00:00Z' + ticket_url: + type: string + format: uri + nullable: true + description: The 3rd party url of the Ticket. + maxLength: 2000 + example: https://thirdpartysoftware.com/project/3/issue/1 + priority: + oneOf: + - $ref: '#/components/schemas/PriorityEnum' + - type: string + nullable: true + description: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + example: HIGH + $ref: '#/components/schemas/PriorityEnum' + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-category: ticketing + PriorityEnum: + enum: + - URGENT + - HIGH + - NORMAL + - LOW + type: string + description: |- + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + x-merge-category: ticketing + Project: + type: object + description: |- + # The Project Object + ### Description + Please use the `Collection` model. This model will be fully deprecated on 3/30/2024. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: "The project's name. " + example: Q1 Platform + description: + type: string + nullable: true + description: The project's description. + example: For tracking all tasks related to Platform for Q1 + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-expands: '{"company": "CompanyInfo", "contact": "Contact"}' + x-merge-category: ticketing + RemoteData: + type: object + description: |- + # The RemoteData Object + ### Description + The `RemoteData` object is used to represent the full data pulled from the third-party API for an object. + + ### Usage Example + TODO + properties: + path: + type: string + description: The third-party API path that is being called. + example: /platform-endpoint + data: + readOnly: true + description: The data returned from the third-party for this object in its + original, unnormalized format. + example: + - Varies by platform + required: + - path + x-merge-category: ticketing + RemoteEndpointInfo: + type: object + properties: + method: + type: string + example: GET + url_path: + type: string + example: /example-url-path + field_traversal_path: + type: array + items: {} + example: + - example_key_name + required: + - field_traversal_path + - method + - url_path + x-merge-category: ticketing + RemoteField: + type: object + properties: + remote_field_class: + oneOf: + - type: string + - $ref: '#/components/schemas/RemoteFieldClass' + x-merge-expands-to: RemoteFieldClass + value: + nullable: true + example: string + required: + - remote_field_class + x-merge-expands: '{"remote_field_class": "RemoteFieldClass"}' + x-merge-category: ticketing + RemoteFieldAPI: + type: object + properties: + schema: + type: object + additionalProperties: {} + example: + type: string + remote_key_name: + type: string + example: example_remote_key_name + remote_endpoint_info: + $ref: '#/components/schemas/RemoteEndpointInfo' + example: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + type: array + items: {} + nullable: true + example: + - example + advanced_metadata: + allOf: + - $ref: '#/components/schemas/AdvancedMetadata' + nullable: true + coverage: + oneOf: + - type: integer + - type: number + format: double + nullable: true + readOnly: true + example: 0.33 + required: + - advanced_metadata + - remote_endpoint_info + - remote_key_name + - schema + x-merge-category: ticketing + RemoteFieldAPIResponse: + type: object + properties: + Ticket: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Comment: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Project: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Collection: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + User: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Role: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Account: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Team: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Attachment: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Tag: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + Contact: + type: array + items: + $ref: '#/components/schemas/RemoteFieldAPI' + x-merge-category: ticketing + RemoteFieldClass: + type: object + properties: + id: + type: string + display_name: + type: string + remote_key_name: + type: string + description: + type: string + is_custom: + type: boolean + is_required: + type: boolean + field_type: + $ref: '#/components/schemas/FieldTypeEnum' + field_format: + $ref: '#/components/schemas/FieldFormatEnum' + field_choices: + type: array + items: + type: object + properties: + value: + nullable: true + display_name: + type: string + nullable: true + nullable: true + readOnly: true + item_schema: + $ref: '#/components/schemas/ItemSchema' + x-merge-category: ticketing + RemoteFieldRequest: + type: object + properties: + remote_field_class: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/RemoteFieldClass' + example: b057d1d2-c204-4da8-a74c-c91d1a260614 + x-merge-expands-to: RemoteFieldClass + value: + nullable: true + example: string + required: + - remote_field_class + x-merge-expands: '{"remote_field_class": "RemoteFieldClass"}' + x-merge-category: ticketing + RemoteKey: + type: object + description: |- + # The RemoteKey Object + ### Description + The `RemoteKey` object is used to represent a request for a new remote key. + + ### Usage Example + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: + type: string + example: Remote Deployment Key 1 + key: + type: string + example: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + required: + - key + - name + x-merge-category: ticketing + RemoteKeyForRegenerationRequest: + type: object + description: |- + # The RemoteKeyForRegeneration Object + ### Description + The `RemoteKeyForRegeneration` object is used to exchange an old remote key for a new one + + ### Usage Example + Post a `RemoteKeyForRegeneration` to swap out an old remote key for a new one + properties: + name: + type: string + minLength: 1 + description: The name of the remote key + example: Remote Deployment Key 1 + required: + - name + x-merge-category: ticketing + RemoteResponse: + type: object + description: |- + # The RemoteResponse Object + ### Description + The `RemoteResponse` object is used to represent information returned from a third-party endpoint. + + ### Usage Example + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: + type: string + example: GET + path: + type: string + example: /scooters + status: + type: integer + example: 200 + response: + example: + scooters: + - company: Lime + model: Gen 2.5 + - company: Bird + model: Bird Zero + response_headers: + type: object + additionalProperties: {} + example: + X-Page-Token: value + response_type: + oneOf: + - $ref: '#/components/schemas/ResponseTypeEnum' + - type: string + example: JSON + headers: + type: object + additionalProperties: {} + example: + EXTRA-HEADER: value + Authorization: + required: + - method + - path + - response + - status + x-merge-category: ticketing + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + type: string + description: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + x-merge-category: ticketing + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + type: string + description: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + x-merge-category: ticketing + Role: + type: object + description: |- + # The Role Object + ### Description + The `Role` object is used to represent the set of actions & access that a user with this role is allowed to perform. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 23454124-387f-494d-265e-345b330c9123 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '123' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The name of the Role. + example: Member + ticket_actions: + type: array + items: + oneOf: + - $ref: '#/components/schemas/TicketActionsEnum' + - type: string + nullable: true + nullable: true + description: 'The set of actions that a User with this Role can perform. + Possible enum values include: `VIEW`, `CREATE`, `EDIT`, `DELETE`, `CLOSE`, + and `ASSIGN`.' + example: + - VIEW + - EDIT + - CREATE + ticket_access: + oneOf: + - $ref: '#/components/schemas/TicketAccessEnum' + - type: string + nullable: true + description: |- + The level of Ticket access that a User with this Role can perform. + + * `ALL` - ALL + * `ASSIGNED_ONLY` - ASSIGNED_ONLY + * `TEAM_ONLY` - TEAM_ONLY + example: ASSIGNED_ONLY + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-category: ticketing + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + type: string + description: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + x-merge-category: ticketing + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + type: string + description: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + x-merge-category: ticketing + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + type: string + description: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + x-merge-category: ticketing + SyncStatus: + type: object + description: |- + # The SyncStatus Object + ### Description + The `SyncStatus` object is used to represent the syncing state of an account + + ### Usage Example + View the `SyncStatus` for an account to see how recently its models were synced. + properties: + model_name: + type: string + example: Ticket + model_id: + type: string + example: ticketing.Ticket + last_sync_start: + type: string + format: date-time + example: '2021-03-30T19:44:18.695973Z' + next_sync_start: + type: string + format: date-time + example: '2021-03-30T20:44:18.662942Z' + last_sync_result: + oneOf: + - $ref: '#/components/schemas/LastSyncResultEnum' + - type: string + example: DONE + last_sync_finished: + type: string + format: date-time + example: '2021-03-30T19:55:18.695973Z' + status: + oneOf: + - $ref: '#/components/schemas/StatusFd5Enum' + - type: string + example: SYNCING + is_initial_sync: + type: boolean + example: true + selective_sync_configurations_usage: + $ref: '#/components/schemas/SelectiveSyncConfigurationsUsageEnum' + required: + - is_initial_sync + - model_id + - model_name + - status + x-merge-sample-json: '{"model_name": "Candidate", "model_id": "ats.Candidate", + "last_sync_start": "2021-03-30T19:44:18.695973Z", "next_sync_start": "2021-03-30T20:44:18.662942Z", + "status": "SYNCING", "is_initial_sync": true}' + x-merge-category: ticketing + Tag: + type: object + description: |- + # The Tag Object + ### Description + The `Tag` object is used to represent a tag or label for a ticket. + + ### Usage Example + TODO + properties: + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + id: + type: string + format: uuid + readOnly: true + example: 17a54124-287f-494d-965e-3c5b330c9a68 + name: + type: string + nullable: true + description: The tag's name. + example: Ticketing API + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-category: ticketing + Team: + type: object + description: |- + # The Team Object + ### Description + The `Team` object is used to represent one or more `Users` within the company receiving the ticket. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The team's name. + example: Platform + description: + type: string + nullable: true + description: The team's description. + example: Platform and Integrations Team + remote_was_deleted: + type: boolean + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-expands: '{"parent_team": "Team"}' + x-merge-category: ticketing + Ticket: + type: object + description: |- + # The Ticket Object + ### Description + The `Ticket` object is used to represent a ticket, issue, task or case. + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The ticket's name. + example: Please add more integrations + assignees: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The individual `Users` who are assigned to this ticket. This + does not include `Users` who just have view access to this ticket. To + fetch all `Users` and `Teams` that can access the ticket, use the `GET + /tickets/{ticket_id}/viewers` [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + example: + - 17a54124-287f-494d-965e-3c5b330c9a68 + x-merge-expands-to: User + assigned_teams: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Team' + nullable: true + description: The `Teams` that are assigned to this ticket. This does not + include `Teams` who just have view access to this ticket. To fetch all + `Users` and `Teams` that can access this ticket, use the `GET /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + example: + - 4857c306-c1f9-489e-a6b6-90902f736dfe + x-merge-expands-to: Team + creator: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The user who created this ticket. + x-merge-expands-to: User + due_date: + type: string + format: date-time + nullable: true + description: The ticket's due date. + example: '2022-10-11T00:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/TicketStatusEnum' + - type: string + nullable: true + description: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + example: OPEN + description: + type: string + nullable: true + description: The ticket’s description. HTML version of description is mapped + if supported by the third-party platform. + example: Can you please add more integrations? It'll make syncing data much + easier! + collections: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Collection' + nullable: true + description: The `Collections` that this `Ticket` is included in. + example: + - fb8c55b6-1cb8-4b4c-9fb6-17924231619d + x-merge-expands-to: Collection + ticket_type: + type: string + nullable: true + description: The sub category of the ticket within the 3rd party system. + Examples include incident, task, subtask or to-do. + example: incident + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The account associated with the ticket. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Account + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The contact associated with the ticket. + example: 65c345ba-6870-4974-87ba-dd31509c367a + x-merge-expands-to: Contact + parent_ticket: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Ticket' + nullable: true + description: The ticket's parent ticket. + example: 75b33d04-30d2-4f3e-be45-27838bc94342 + x-merge-expands-to: Ticket + attachments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Attachment' + nullable: true + example: + - 42747df1-95e7-46e2-93cc-66f1191edca5 + - 92f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: Attachment + access_level: + oneOf: + - $ref: '#/components/schemas/TicketAccessLevelEnum' + - type: string + nullable: true + description: |- + The description of who is able to access a given ticket, or where access is inherited from. + + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + * `COLLECTION` - COLLECTION + example: PRIVATE + tags: + type: array + items: + type: string + nullable: true + description: The tag's name. + example: + - enterprise + - other-tag + roles: + type: array + items: + type: string + format: uuid + nullable: true + example: + - 21a54124-397f-494d-985e-3c5b330b8a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + ticket_url: + type: string + format: uri + nullable: true + description: The 3rd party url of the Ticket. + maxLength: 2000 + example: https://thirdpartysoftware.com/project/3/issue/1 + priority: + oneOf: + - $ref: '#/components/schemas/PriorityEnum' + - type: string + nullable: true + description: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + example: HIGH + remote_created_at: + type: string + format: date-time + nullable: true + description: When the third party's ticket was created. + example: '2021-11-10T00:00:00Z' + remote_updated_at: + type: string + format: date-time + nullable: true + description: When the third party's ticket was updated. + example: '2021-12-09T00:00:00Z' + completed_at: + type: string + format: date-time + nullable: true + description: When the ticket was completed. + example: '2021-12-09T00:00:00Z' + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteField' + readOnly: true + x-merge-expands: '{"account": "Account", "assigned_teams": "Team", "assignees": + "User", "attachments": "Attachment", "collections": "Collection", "contact": + "Contact", "creator": "User", "parent_ticket": "Ticket"}' + x-merge-category: ticketing + TicketAccessEnum: + enum: + - ALL + - ASSIGNED_ONLY + - TEAM_ONLY + type: string + description: |- + * `ALL` - ALL + * `ASSIGNED_ONLY` - ASSIGNED_ONLY + * `TEAM_ONLY` - TEAM_ONLY + x-merge-category: ticketing + TicketAccessLevelEnum: + enum: + - COMPANY + - PUBLIC + - PRIVATE + - COLLECTION + type: string + description: |- + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + * `COLLECTION` - COLLECTION + x-merge-category: ticketing + TicketActionsEnum: + enum: + - VIEW + - CREATE + - EDIT + - DELETE + - CLOSE + - ASSIGN + type: string + description: |- + * `VIEW` - VIEW + * `CREATE` - CREATE + * `EDIT` - EDIT + * `DELETE` - DELETE + * `CLOSE` - CLOSE + * `ASSIGN` - ASSIGN + x-merge-category: ticketing + TicketEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/TicketRequest' + required: + - model + x-merge-category: ticketing + TicketRequest: + type: object + description: |- + # The Ticket Object + ### Description + The `Ticket` object is used to represent a ticket, issue, task or case. + ### Usage Example + TODO + properties: + name: + type: string + nullable: true + description: The ticket's name. + example: Please add more integrations + assignees: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The individual `Users` who are assigned to this ticket. This + does not include `Users` who just have view access to this ticket. To + fetch all `Users` and `Teams` that can access the ticket, use the `GET + /tickets/{ticket_id}/viewers` [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + example: + - 17a54124-287f-494d-965e-3c5b330c9a68 + x-merge-expands-to: User + assigned_teams: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Team' + nullable: true + description: The `Teams` that are assigned to this ticket. This does not + include `Teams` who just have view access to this ticket. To fetch all + `Users` and `Teams` that can access this ticket, use the `GET /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + example: + - 4857c306-c1f9-489e-a6b6-90902f736dfe + x-merge-expands-to: Team + creator: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The user who created this ticket. + x-merge-expands-to: User + due_date: + type: string + format: date-time + nullable: true + description: The ticket's due date. + example: '2022-10-11T00:00:00Z' + status: + oneOf: + - $ref: '#/components/schemas/TicketStatusEnum' + - type: string + nullable: true + description: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + example: OPEN + description: + type: string + nullable: true + description: The ticket’s description. HTML version of description is mapped + if supported by the third-party platform. + example: Can you please add more integrations? It'll make syncing data much + easier! + collections: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Collection' + nullable: true + description: The `Collections` that this `Ticket` is included in. + example: + - fb8c55b6-1cb8-4b4c-9fb6-17924231619d + x-merge-expands-to: Collection + ticket_type: + type: string + nullable: true + description: The sub category of the ticket within the 3rd party system. + Examples include incident, task, subtask or to-do. + example: incident + account: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Account' + nullable: true + description: The account associated with the ticket. + example: 0958cbc6-6040-430a-848e-aafacbadf4ae + x-merge-expands-to: Account + contact: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Contact' + nullable: true + description: The contact associated with the ticket. + example: 65c345ba-6870-4974-87ba-dd31509c367a + x-merge-expands-to: Contact + parent_ticket: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Ticket' + nullable: true + description: The ticket's parent ticket. + example: 75b33d04-30d2-4f3e-be45-27838bc94342 + x-merge-expands-to: Ticket + attachments: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Attachment' + nullable: true + example: + - 42747df1-95e7-46e2-93cc-66f1191edca5 + - 92f972d0-2526-434b-9409-4c3b468e08f0 + x-merge-expands-to: Attachment + access_level: + oneOf: + - $ref: '#/components/schemas/TicketAccessLevelEnum' + - type: string + nullable: true + description: |- + The description of who is able to access a given ticket, or where access is inherited from. + + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + * `COLLECTION` - COLLECTION + example: PRIVATE + tags: + type: array + items: + type: string + nullable: true + description: The tag's name. + example: + - enterprise + - other-tag + roles: + type: array + items: + type: string + format: uuid + nullable: true + example: + - 21a54124-397f-494d-985e-3c5b330b8a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + completed_at: + type: string + format: date-time + nullable: true + description: When the ticket was completed. + example: '2021-12-09T00:00:00Z' + ticket_url: + type: string + format: uri + nullable: true + description: The 3rd party url of the Ticket. + maxLength: 2000 + example: https://thirdpartysoftware.com/project/3/issue/1 + priority: + oneOf: + - $ref: '#/components/schemas/PriorityEnum' + - type: string + nullable: true + description: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + example: HIGH + integration_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_integration_field: unique_integration_field_value + linked_account_params: + type: object + additionalProperties: {} + writeOnly: true + nullable: true + example: + unique_linked_account_field: unique_linked_account_field_value + remote_fields: + type: array + items: + $ref: '#/components/schemas/RemoteFieldRequest' + writeOnly: true + x-merge-expands: '{"account": "Account", "assigned_teams": "Team", "assignees": + "User", "attachments": "Attachment", "collections": "Collection", "contact": + "Contact", "creator": "User", "parent_ticket": "Ticket"}' + x-merge-category: ticketing + TicketResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Ticket' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: ticketing + TicketStatusEnum: + enum: + - OPEN + - CLOSED + - IN_PROGRESS + - ON_HOLD + type: string + description: |- + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + x-merge-category: ticketing + TicketingAttachmentEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/AttachmentRequest' + required: + - model + x-merge-category: ticketing + TicketingAttachmentResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Attachment' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: ticketing + TicketingContactEndpointRequest: + type: object + properties: + model: + $ref: '#/components/schemas/ContactRequest' + required: + - model + x-merge-category: ticketing + TicketingContactResponse: + type: object + properties: + model: + $ref: '#/components/schemas/Contact' + warnings: + type: array + items: + $ref: '#/components/schemas/WarningValidationProblem' + errors: + type: array + items: + $ref: '#/components/schemas/ErrorValidationProblem' + logs: + type: array + items: + $ref: '#/components/schemas/DebugModeLog' + required: + - errors + - model + - warnings + x-merge-category: ticketing + User: + type: object + description: |- + # The User Object + ### Description + The `User` object is used to represent a user with a login to the ticketing system. + Users are either assignees who are directly responsible or a viewer on a `Ticket`/ `Collection`. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '19202938' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + name: + type: string + nullable: true + description: The user's name. + example: Gil Feig + email_address: + type: string + nullable: true + description: The user's email address. + example: help@merge.dev + is_active: + type: boolean + nullable: true + description: Whether or not the user is active. + example: true + teams: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Team' + nullable: true + example: + - 28b54125-287f-494d-965e-3c5b330c9a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + x-merge-expands-to: Team + roles: + type: array + items: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Role' + nullable: true + example: + - 23454124-387f-494d-265e-345b330c9123 + x-merge-expands-to: Role + avatar: + type: string + nullable: true + description: The user's avatar picture. + example: https://merge.dev/user_profile_pic.png + remote_was_deleted: + type: boolean + readOnly: true + description: Indicates whether or not this object has been deleted in the + third party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: object + additionalProperties: {} + nullable: true + readOnly: true + example: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + type: array + items: + $ref: '#/components/schemas/RemoteData' + readOnly: true + nullable: true + x-merge-expands: '{"roles": "Role", "teams": "Team"}' + x-merge-category: ticketing + ValidationProblemSource: + type: object + properties: + pointer: + type: string + required: + - pointer + x-merge-category: ticketing + Viewer: + type: object + description: |- + # The Viewer Object + ### Description + The `Viewer` object is used to represent a User or Team within a company. + + ### Usage Example + TODO + properties: + id: + type: string + format: uuid + readOnly: true + example: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: + type: string + nullable: true + description: The third-party API ID of the matching object. + example: '088899' + created_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was created by Merge. + example: '2021-09-15T00:00:00Z' + modified_at: + type: string + format: date-time + readOnly: true + description: The datetime that this object was modified by Merge. + example: '2021-10-16T00:00:00Z' + team: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/Team' + nullable: true + description: The Team this Viewer belongs to. + example: 28b54125-287f-494d-965e-3c5b330c9a68 + x-merge-expands-to: Team + user: + oneOf: + - type: string + format: uuid + - $ref: '#/components/schemas/User' + nullable: true + description: The User this Viewer belongs to. + example: 23454124-387f-494d-265e-345b330c9123 + x-merge-expands-to: User + x-merge-expands: '{"team": "Team", "user": "User"}' + x-merge-category: ticketing + WarningValidationProblem: + type: object + properties: + source: + $ref: '#/components/schemas/ValidationProblemSource' + example: + pointer: /age + title: + type: string + example: Unrecognized Field + detail: + type: string + example: An unrecognized field, age, was passed in with request data. + problem_type: + type: string + example: UNRECOGNIZED_FIELD + required: + - detail + - problem_type + - title + x-merge-category: ticketing + WebhookReceiver: + type: object + properties: + event: + type: string + is_active: + type: boolean + key: + type: string + required: + - event + - is_active + x-merge-category: ticketing + WebhookReceiverRequest: + type: object + properties: + event: + type: string + minLength: 1 + is_active: + type: boolean + key: + type: string + minLength: 1 + required: + - event + - is_active + x-merge-category: ticketing + securitySchemes: + tokenAuth: + type: http + scheme: bearer + description: Token-based authentication with required prefix "Bearer" + x-fern-token-variable-name: api_key +servers: +- url: https://api.merge.dev/api/ticketing/v1 + description: Production + x-fern-server-name: Production +- url: https://api-sandbox.merge.dev/api/ticketing/v1 + description: Sandbox + x-fern-server-name: Sandbox +- url: https://api-eu.merge.dev/api/ticketing/v1 + description: Production EU + x-fern-server-name: ProductionEU +- url: https://api-ap.merge.dev/api/ticketing/v1 + description: Production APSE1 + x-fern-server-name: ProductionAPSE1 diff --git a/src/Merge.Client.sln b/src/Merge.Client.sln index 058566cf..ccbf83e9 100644 --- a/src/Merge.Client.sln +++ b/src/Merge.Client.sln @@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Merge.Client", "Merge.Client\Merge.Client.csproj", "{44945AA7-4312-4D20-A697-86F3FD017781}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Merge.Client", "Merge.Client\Merge.Client.csproj", "{015A5DE2-08ED-4550-8CE6-C32FD56A0B8E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Merge.Client.Test", "Merge.Client.Test\Merge.Client.Test.csproj", "{05051A9C-7202-4515-89EC-7A7D47423B5D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Merge.Client.Test", "Merge.Client.Test\Merge.Client.Test.csproj", "{6D884843-9A00-4FD7-8FE0-75C6951C9B19}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -16,13 +16,13 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {44945AA7-4312-4D20-A697-86F3FD017781}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {44945AA7-4312-4D20-A697-86F3FD017781}.Debug|Any CPU.Build.0 = Debug|Any CPU - {44945AA7-4312-4D20-A697-86F3FD017781}.Release|Any CPU.ActiveCfg = Release|Any CPU - {44945AA7-4312-4D20-A697-86F3FD017781}.Release|Any CPU.Build.0 = Release|Any CPU - {05051A9C-7202-4515-89EC-7A7D47423B5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {05051A9C-7202-4515-89EC-7A7D47423B5D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {05051A9C-7202-4515-89EC-7A7D47423B5D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {05051A9C-7202-4515-89EC-7A7D47423B5D}.Release|Any CPU.Build.0 = Release|Any CPU + {015A5DE2-08ED-4550-8CE6-C32FD56A0B8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {015A5DE2-08ED-4550-8CE6-C32FD56A0B8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {015A5DE2-08ED-4550-8CE6-C32FD56A0B8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {015A5DE2-08ED-4550-8CE6-C32FD56A0B8E}.Release|Any CPU.Build.0 = Release|Any CPU + {6D884843-9A00-4FD7-8FE0-75C6951C9B19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D884843-9A00-4FD7-8FE0-75C6951C9B19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D884843-9A00-4FD7-8FE0-75C6951C9B19}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D884843-9A00-4FD7-8FE0-75C6951C9B19}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/src/Merge.Client/Accounting/AccountDetails/AccountDetailsClient.cs b/src/Merge.Client/Accounting/AccountDetails/AccountDetailsClient.cs index bd78918d..88a700a9 100644 --- a/src/Merge.Client/Accounting/AccountDetails/AccountDetailsClient.cs +++ b/src/Merge.Client/Accounting/AccountDetails/AccountDetailsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/account-details", Options = options, diff --git a/src/Merge.Client/Accounting/AccountToken/AccountTokenClient.cs b/src/Merge.Client/Accounting/AccountToken/AccountTokenClient.cs index 652a3fea..94159707 100644 --- a/src/Merge.Client/Accounting/AccountToken/AccountTokenClient.cs +++ b/src/Merge.Client/Accounting/AccountToken/AccountTokenClient.cs @@ -30,7 +30,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/account-token/{0}", diff --git a/src/Merge.Client/Accounting/AccountingClient.cs b/src/Merge.Client/Accounting/AccountingClient.cs index 9974dca3..cff30dae 100644 --- a/src/Merge.Client/Accounting/AccountingClient.cs +++ b/src/Merge.Client/Accounting/AccountingClient.cs @@ -45,6 +45,7 @@ internal AccountingClient(RawClient client) PaymentTerms = new PaymentTermsClient(_client); Payments = new PaymentsClient(_client); PhoneNumbers = new PhoneNumbersClient(_client); + Projects = new ProjectsClient(_client); PurchaseOrders = new PurchaseOrdersClient(_client); RegenerateKey = new RegenerateKeyClient(_client); SyncStatus = new SyncStatusClient(_client); @@ -128,6 +129,8 @@ internal AccountingClient(RawClient client) public PhoneNumbersClient PhoneNumbers { get; } + public ProjectsClient Projects { get; } + public PurchaseOrdersClient PurchaseOrders { get; } public RegenerateKeyClient RegenerateKey { get; } diff --git a/src/Merge.Client/Accounting/AccountingPeriods/AccountingPeriodsClient.cs b/src/Merge.Client/Accounting/AccountingPeriods/AccountingPeriodsClient.cs index 2436d004..08dc7436 100644 --- a/src/Merge.Client/Accounting/AccountingPeriods/AccountingPeriodsClient.cs +++ b/src/Merge.Client/Accounting/AccountingPeriods/AccountingPeriodsClient.cs @@ -48,7 +48,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/accounting-periods", Query = _query, @@ -148,7 +148,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/accounting-periods/{0}", diff --git a/src/Merge.Client/Accounting/Accounts/AccountsClient.cs b/src/Merge.Client/Accounting/Accounts/AccountsClient.cs index 65700af4..b5437000 100644 --- a/src/Merge.Client/Accounting/Accounts/AccountsClient.cs +++ b/src/Merge.Client/Accounting/Accounts/AccountsClient.cs @@ -29,6 +29,10 @@ private async Task ListInternalAsync( { _query["account_type"] = request.AccountType; } + if (request.Classification != null) + { + _query["classification"] = request.Classification; + } if (request.CompanyId != null) { _query["company_id"] = request.CompanyId; @@ -99,7 +103,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/accounts", Query = _query, @@ -197,7 +201,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/accounts", Body = request, @@ -266,7 +270,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/accounts/{0}", @@ -316,7 +320,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/accounts/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/Accounts/Requests/AccountsListRequest.cs b/src/Merge.Client/Accounting/Accounts/Requests/AccountsListRequest.cs index e0247bc0..d0805769 100644 --- a/src/Merge.Client/Accounting/Accounts/Requests/AccountsListRequest.cs +++ b/src/Merge.Client/Accounting/Accounts/Requests/AccountsListRequest.cs @@ -6,11 +6,17 @@ namespace Merge.Client.Accounting; public record AccountsListRequest { /// - /// If provided, will only provide accounts with the passed in enum. + /// If provided, will only return accounts with the passed in enum. /// [JsonIgnore] public string? AccountType { get; set; } + /// + /// If provided, will only return accounts with this classification. + /// + [JsonIgnore] + public string? Classification { get; set; } + /// /// If provided, will only return accounts for this company. /// diff --git a/src/Merge.Client/Accounting/Addresses/AddressesClient.cs b/src/Merge.Client/Accounting/Addresses/AddressesClient.cs index f7d4f31a..ae59e0cb 100644 --- a/src/Merge.Client/Accounting/Addresses/AddressesClient.cs +++ b/src/Merge.Client/Accounting/Addresses/AddressesClient.cs @@ -48,7 +48,7 @@ public async Task
RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/addresses/{0}", diff --git a/src/Merge.Client/Accounting/AsyncPassthrough/AsyncPassthroughClient.cs b/src/Merge.Client/Accounting/AsyncPassthrough/AsyncPassthroughClient.cs index d91c80d6..4e04bed4 100644 --- a/src/Merge.Client/Accounting/AsyncPassthrough/AsyncPassthroughClient.cs +++ b/src/Merge.Client/Accounting/AsyncPassthrough/AsyncPassthroughClient.cs @@ -37,7 +37,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/async-passthrough", Body = request, @@ -86,7 +86,7 @@ public async Task> RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/async-passthrough/{0}", diff --git a/src/Merge.Client/Accounting/AsyncTasks/AsyncTasksClient.cs b/src/Merge.Client/Accounting/AsyncTasks/AsyncTasksClient.cs index 217d590b..8bb00446 100644 --- a/src/Merge.Client/Accounting/AsyncTasks/AsyncTasksClient.cs +++ b/src/Merge.Client/Accounting/AsyncTasks/AsyncTasksClient.cs @@ -30,7 +30,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/async-tasks/{0}", diff --git a/src/Merge.Client/Accounting/Attachments/AttachmentsClient.cs b/src/Merge.Client/Accounting/Attachments/AttachmentsClient.cs index 4ec8dffb..98140756 100644 --- a/src/Merge.Client/Accounting/Attachments/AttachmentsClient.cs +++ b/src/Merge.Client/Accounting/Attachments/AttachmentsClient.cs @@ -78,7 +78,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/attachments", Query = _query, @@ -176,7 +176,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/attachments", Body = request, @@ -236,7 +236,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/attachments/{0}", @@ -286,7 +286,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/attachments/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/AuditTrail/AuditTrailClient.cs b/src/Merge.Client/Accounting/AuditTrail/AuditTrailClient.cs index f532c23e..18cc6689 100644 --- a/src/Merge.Client/Accounting/AuditTrail/AuditTrailClient.cs +++ b/src/Merge.Client/Accounting/AuditTrail/AuditTrailClient.cs @@ -52,7 +52,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/audit-trail", Query = _query, diff --git a/src/Merge.Client/Accounting/AuditTrail/Requests/AuditTrailListRequest.cs b/src/Merge.Client/Accounting/AuditTrail/Requests/AuditTrailListRequest.cs index 3a49a5a6..c8d3655a 100644 --- a/src/Merge.Client/Accounting/AuditTrail/Requests/AuditTrailListRequest.cs +++ b/src/Merge.Client/Accounting/AuditTrail/Requests/AuditTrailListRequest.cs @@ -18,7 +18,7 @@ public record AuditTrailListRequest public string? EndDate { get; set; } /// - /// If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` + /// If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` /// [JsonIgnore] public string? EventType { get; set; } diff --git a/src/Merge.Client/Accounting/AvailableActions/AvailableActionsClient.cs b/src/Merge.Client/Accounting/AvailableActions/AvailableActionsClient.cs index 85dd46e0..944c8cf9 100644 --- a/src/Merge.Client/Accounting/AvailableActions/AvailableActionsClient.cs +++ b/src/Merge.Client/Accounting/AvailableActions/AvailableActionsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/available-actions", Options = options, diff --git a/src/Merge.Client/Accounting/BalanceSheets/BalanceSheetsClient.cs b/src/Merge.Client/Accounting/BalanceSheets/BalanceSheetsClient.cs index c809d3de..4b69f56d 100644 --- a/src/Merge.Client/Accounting/BalanceSheets/BalanceSheetsClient.cs +++ b/src/Merge.Client/Accounting/BalanceSheets/BalanceSheetsClient.cs @@ -79,7 +79,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/balance-sheets", Query = _query, @@ -177,7 +177,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/balance-sheets/{0}", diff --git a/src/Merge.Client/Accounting/BankFeedAccounts/BankFeedAccountsClient.cs b/src/Merge.Client/Accounting/BankFeedAccounts/BankFeedAccountsClient.cs index 46d07e78..a88127ed 100644 --- a/src/Merge.Client/Accounting/BankFeedAccounts/BankFeedAccountsClient.cs +++ b/src/Merge.Client/Accounting/BankFeedAccounts/BankFeedAccountsClient.cs @@ -48,7 +48,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/bank-feed-accounts", Query = _query, @@ -146,7 +146,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/bank-feed-accounts", Body = request, @@ -206,7 +206,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/bank-feed-accounts/{0}", @@ -256,7 +256,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/bank-feed-accounts/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/BankFeedTransactions/BankFeedTransactionsClient.cs b/src/Merge.Client/Accounting/BankFeedTransactions/BankFeedTransactionsClient.cs index 9265d0aa..323fc435 100644 --- a/src/Merge.Client/Accounting/BankFeedTransactions/BankFeedTransactionsClient.cs +++ b/src/Merge.Client/Accounting/BankFeedTransactions/BankFeedTransactionsClient.cs @@ -79,7 +79,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/bank-feed-transactions", Query = _query, @@ -177,7 +177,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/bank-feed-transactions", Body = request, @@ -241,7 +241,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/bank-feed-transactions/{0}", @@ -291,7 +291,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/bank-feed-transactions/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/CashFlowStatements/CashFlowStatementsClient.cs b/src/Merge.Client/Accounting/CashFlowStatements/CashFlowStatementsClient.cs index bb413a33..cfb882bd 100644 --- a/src/Merge.Client/Accounting/CashFlowStatements/CashFlowStatementsClient.cs +++ b/src/Merge.Client/Accounting/CashFlowStatements/CashFlowStatementsClient.cs @@ -79,7 +79,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/cash-flow-statements", Query = _query, @@ -180,7 +180,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/cash-flow-statements/{0}", diff --git a/src/Merge.Client/Accounting/CompanyInfo/CompanyInfoClient.cs b/src/Merge.Client/Accounting/CompanyInfo/CompanyInfoClient.cs index 3fda66b0..8cfc2d21 100644 --- a/src/Merge.Client/Accounting/CompanyInfo/CompanyInfoClient.cs +++ b/src/Merge.Client/Accounting/CompanyInfo/CompanyInfoClient.cs @@ -75,7 +75,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/company-info", Query = _query, @@ -173,7 +173,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/company-info/{0}", diff --git a/src/Merge.Client/Accounting/Contacts/ContactsClient.cs b/src/Merge.Client/Accounting/Contacts/ContactsClient.cs index 3ad48615..899ab350 100644 --- a/src/Merge.Client/Accounting/Contacts/ContactsClient.cs +++ b/src/Merge.Client/Accounting/Contacts/ContactsClient.cs @@ -113,7 +113,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/contacts", Query = _query, @@ -175,6 +175,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -183,7 +187,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/contacts/remote-field-classes", Query = _query, @@ -281,7 +285,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/contacts", Body = request, @@ -356,7 +360,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/contacts/{0}", @@ -406,7 +410,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/contacts/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/Contacts/Requests/ContactsRemoteFieldClassesListRequest.cs b/src/Merge.Client/Accounting/Contacts/Requests/ContactsRemoteFieldClassesListRequest.cs index 5cc1e79a..d9d6aaf4 100644 --- a/src/Merge.Client/Accounting/Contacts/Requests/ContactsRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Accounting/Contacts/Requests/ContactsRemoteFieldClassesListRequest.cs @@ -35,6 +35,12 @@ public record ContactsRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Accounting/CreditNotes/CreditNotesClient.cs b/src/Merge.Client/Accounting/CreditNotes/CreditNotesClient.cs index a91debf9..a08ce4af 100644 --- a/src/Merge.Client/Accounting/CreditNotes/CreditNotesClient.cs +++ b/src/Merge.Client/Accounting/CreditNotes/CreditNotesClient.cs @@ -99,7 +99,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/credit-notes", Query = _query, @@ -197,7 +197,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/credit-notes", Body = request, @@ -266,7 +266,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/credit-notes/{0}", @@ -316,7 +316,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/credit-notes/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/DeleteAccount/DeleteAccountClient.cs b/src/Merge.Client/Accounting/DeleteAccount/DeleteAccountClient.cs index 6dbb0a38..f3169a97 100644 --- a/src/Merge.Client/Accounting/DeleteAccount/DeleteAccountClient.cs +++ b/src/Merge.Client/Accounting/DeleteAccount/DeleteAccountClient.cs @@ -29,7 +29,7 @@ internal DeleteAccountClient(RawClient client) .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/delete-account", Options = options, diff --git a/src/Merge.Client/Accounting/Employees/EmployeesClient.cs b/src/Merge.Client/Accounting/Employees/EmployeesClient.cs index c0b18ef8..df3a9c09 100644 --- a/src/Merge.Client/Accounting/Employees/EmployeesClient.cs +++ b/src/Merge.Client/Accounting/Employees/EmployeesClient.cs @@ -49,7 +49,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/employees", Query = _query, @@ -147,7 +147,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/employees/{0}", diff --git a/src/Merge.Client/Accounting/Expenses/ExpensesClient.cs b/src/Merge.Client/Accounting/Expenses/ExpensesClient.cs index c06cdc12..2cc2943b 100644 --- a/src/Merge.Client/Accounting/Expenses/ExpensesClient.cs +++ b/src/Merge.Client/Accounting/Expenses/ExpensesClient.cs @@ -97,7 +97,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/expenses", Query = _query, @@ -159,6 +159,10 @@ private async Task LinesRemoteFieldClassesListInt { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -167,7 +171,7 @@ private async Task LinesRemoteFieldClassesListInt .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/expenses/lines/remote-field-classes", Query = _query, @@ -229,6 +233,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -237,7 +245,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/expenses/remote-field-classes", Query = _query, @@ -335,7 +343,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/expenses", Body = request, @@ -402,7 +410,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/expenses/{0}", @@ -493,7 +501,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/expenses/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/Expenses/Requests/ExpensesLinesRemoteFieldClassesListRequest.cs b/src/Merge.Client/Accounting/Expenses/Requests/ExpensesLinesRemoteFieldClassesListRequest.cs index 5db41ae4..6a557224 100644 --- a/src/Merge.Client/Accounting/Expenses/Requests/ExpensesLinesRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Accounting/Expenses/Requests/ExpensesLinesRemoteFieldClassesListRequest.cs @@ -35,6 +35,12 @@ public record ExpensesLinesRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Accounting/Expenses/Requests/ExpensesRemoteFieldClassesListRequest.cs b/src/Merge.Client/Accounting/Expenses/Requests/ExpensesRemoteFieldClassesListRequest.cs index e51af57b..dbe4b6ec 100644 --- a/src/Merge.Client/Accounting/Expenses/Requests/ExpensesRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Accounting/Expenses/Requests/ExpensesRemoteFieldClassesListRequest.cs @@ -35,6 +35,12 @@ public record ExpensesRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Accounting/FieldMapping/FieldMappingClient.cs b/src/Merge.Client/Accounting/FieldMapping/FieldMappingClient.cs index 05f1ae63..2b5791cf 100644 --- a/src/Merge.Client/Accounting/FieldMapping/FieldMappingClient.cs +++ b/src/Merge.Client/Accounting/FieldMapping/FieldMappingClient.cs @@ -37,7 +37,7 @@ public async Task FieldMappingsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/field-mappings", Query = _query, @@ -102,7 +102,7 @@ public async Task FieldMappingsCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/field-mappings", Body = request, @@ -152,7 +152,7 @@ public async Task FieldMappingsDestroyAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Delete, Path = string.Format( "accounting/v1/field-mappings/{0}", @@ -206,7 +206,7 @@ public async Task FieldMappingsPartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "accounting/v1/field-mappings/{0}", @@ -267,7 +267,7 @@ public async Task RemoteFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/remote-fields", Query = _query, @@ -314,7 +314,7 @@ public async Task TargetFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/target-fields", Options = options, diff --git a/src/Merge.Client/Accounting/ForceResync/ForceResyncClient.cs b/src/Merge.Client/Accounting/ForceResync/ForceResyncClient.cs index 76e31be8..f2523d67 100644 --- a/src/Merge.Client/Accounting/ForceResync/ForceResyncClient.cs +++ b/src/Merge.Client/Accounting/ForceResync/ForceResyncClient.cs @@ -29,7 +29,7 @@ public async Task> SyncStatusResyncCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/sync-status/resync", Options = options, diff --git a/src/Merge.Client/Accounting/GeneralLedgerTransactions/GeneralLedgerTransactionsClient.cs b/src/Merge.Client/Accounting/GeneralLedgerTransactions/GeneralLedgerTransactionsClient.cs index 25dcd483..ff1355f9 100644 --- a/src/Merge.Client/Accounting/GeneralLedgerTransactions/GeneralLedgerTransactionsClient.cs +++ b/src/Merge.Client/Accounting/GeneralLedgerTransactions/GeneralLedgerTransactionsClient.cs @@ -91,7 +91,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/general-ledger-transactions", Query = _query, @@ -194,7 +194,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/general-ledger-transactions/{0}", diff --git a/src/Merge.Client/Accounting/GenerateKey/GenerateKeyClient.cs b/src/Merge.Client/Accounting/GenerateKey/GenerateKeyClient.cs index 2952bef4..48bc1edb 100644 --- a/src/Merge.Client/Accounting/GenerateKey/GenerateKeyClient.cs +++ b/src/Merge.Client/Accounting/GenerateKey/GenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/generate-key", Body = request, diff --git a/src/Merge.Client/Accounting/IncomeStatements/IncomeStatementsClient.cs b/src/Merge.Client/Accounting/IncomeStatements/IncomeStatementsClient.cs index 04871cca..107a75d1 100644 --- a/src/Merge.Client/Accounting/IncomeStatements/IncomeStatementsClient.cs +++ b/src/Merge.Client/Accounting/IncomeStatements/IncomeStatementsClient.cs @@ -79,7 +79,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/income-statements", Query = _query, @@ -177,7 +177,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/income-statements/{0}", diff --git a/src/Merge.Client/Accounting/Invoices/InvoicesClient.cs b/src/Merge.Client/Accounting/Invoices/InvoicesClient.cs index dd64f7e1..5edd9654 100644 --- a/src/Merge.Client/Accounting/Invoices/InvoicesClient.cs +++ b/src/Merge.Client/Accounting/Invoices/InvoicesClient.cs @@ -121,7 +121,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/invoices", Query = _query, @@ -183,6 +183,10 @@ private async Task LineItemsRemoteFieldClassesLis { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -191,7 +195,7 @@ private async Task LineItemsRemoteFieldClassesLis .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/invoices/line-items/remote-field-classes", Query = _query, @@ -253,6 +257,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -261,7 +269,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/invoices/remote-field-classes", Query = _query, @@ -360,7 +368,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/invoices", Body = request, @@ -435,7 +443,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/invoices/{0}", @@ -499,7 +507,7 @@ public async Task PartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "accounting/v1/invoices/{0}", @@ -593,7 +601,7 @@ public async Task MetaPatchRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/invoices/meta/patch/{0}", @@ -642,7 +650,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/invoices/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/Invoices/Requests/InvoicesLineItemsRemoteFieldClassesListRequest.cs b/src/Merge.Client/Accounting/Invoices/Requests/InvoicesLineItemsRemoteFieldClassesListRequest.cs index fb37d1a8..6a39385c 100644 --- a/src/Merge.Client/Accounting/Invoices/Requests/InvoicesLineItemsRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Accounting/Invoices/Requests/InvoicesLineItemsRemoteFieldClassesListRequest.cs @@ -35,6 +35,12 @@ public record InvoicesLineItemsRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Accounting/Invoices/Requests/InvoicesRemoteFieldClassesListRequest.cs b/src/Merge.Client/Accounting/Invoices/Requests/InvoicesRemoteFieldClassesListRequest.cs index a4ca30d7..3a3aabf5 100644 --- a/src/Merge.Client/Accounting/Invoices/Requests/InvoicesRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Accounting/Invoices/Requests/InvoicesRemoteFieldClassesListRequest.cs @@ -35,6 +35,12 @@ public record InvoicesRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Accounting/Issues/IssuesClient.cs b/src/Merge.Client/Accounting/Issues/IssuesClient.cs index c84fc039..31a5f862 100644 --- a/src/Merge.Client/Accounting/Issues/IssuesClient.cs +++ b/src/Merge.Client/Accounting/Issues/IssuesClient.cs @@ -92,7 +92,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/issues", Query = _query, @@ -179,7 +179,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/issues/{0}", diff --git a/src/Merge.Client/Accounting/Items/ItemsClient.cs b/src/Merge.Client/Accounting/Items/ItemsClient.cs index 46ab74ca..e910cfbf 100644 --- a/src/Merge.Client/Accounting/Items/ItemsClient.cs +++ b/src/Merge.Client/Accounting/Items/ItemsClient.cs @@ -87,7 +87,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/items", Query = _query, @@ -158,6 +158,67 @@ public async Task> ListAsync( return pager; } + /// + /// Creates an `Item` object with the given values. + /// + /// + /// await client.Accounting.Items.CreateAsync( + /// new ItemEndpointRequest { Model = new ItemRequestRequest() } + /// ); + /// + public async Task CreateAsync( + ItemEndpointRequest request, + RequestOptions? options = null, + CancellationToken cancellationToken = default + ) + { + var _query = new Dictionary(); + if (request.IsDebugMode != null) + { + _query["is_debug_mode"] = JsonUtils.Serialize(request.IsDebugMode.Value); + } + if (request.RunAsync != null) + { + _query["run_async"] = JsonUtils.Serialize(request.RunAsync.Value); + } + var response = await _client + .SendRequestAsync( + new JsonRequest + { + BaseUrl = _client.Options.BaseUrl, + Method = HttpMethod.Post, + Path = "accounting/v1/items", + Body = request, + Query = _query, + ContentType = "application/json", + Options = options, + }, + cancellationToken + ) + .ConfigureAwait(false); + if (response.StatusCode is >= 200 and < 400) + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + try + { + return JsonUtils.Deserialize(responseBody)!; + } + catch (JsonException e) + { + throw new MergeException("Failed to deserialize response", e); + } + } + + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + throw new MergeApiException( + $"Error with status code {response.StatusCode}", + response.StatusCode, + responseBody + ); + } + } + /// /// Returns an `Item` object with the given `id`. /// @@ -193,7 +254,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/items/{0}", @@ -227,4 +288,166 @@ public async Task RetrieveAsync( ); } } + + /// + /// Updates an `Item` object with the given `id`. + /// + /// + /// await client.Accounting.Items.PartialUpdateAsync( + /// "id", + /// new PatchedItemEndpointRequest { Model = new PatchedItemRequestRequest() } + /// ); + /// + public async Task PartialUpdateAsync( + string id, + PatchedItemEndpointRequest request, + RequestOptions? options = null, + CancellationToken cancellationToken = default + ) + { + var _query = new Dictionary(); + if (request.IsDebugMode != null) + { + _query["is_debug_mode"] = JsonUtils.Serialize(request.IsDebugMode.Value); + } + if (request.RunAsync != null) + { + _query["run_async"] = JsonUtils.Serialize(request.RunAsync.Value); + } + var response = await _client + .SendRequestAsync( + new JsonRequest + { + BaseUrl = _client.Options.BaseUrl, + Method = HttpMethodExtensions.Patch, + Path = string.Format( + "accounting/v1/items/{0}", + ValueConvert.ToPathParameterString(id) + ), + Body = request, + Query = _query, + ContentType = "application/json", + Options = options, + }, + cancellationToken + ) + .ConfigureAwait(false); + if (response.StatusCode is >= 200 and < 400) + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + try + { + return JsonUtils.Deserialize(responseBody)!; + } + catch (JsonException e) + { + throw new MergeException("Failed to deserialize response", e); + } + } + + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + throw new MergeApiException( + $"Error with status code {response.StatusCode}", + response.StatusCode, + responseBody + ); + } + } + + /// + /// Returns metadata for `Item` PATCHs. + /// + /// + /// await client.Accounting.Items.MetaPatchRetrieveAsync("id"); + /// + public async Task MetaPatchRetrieveAsync( + string id, + RequestOptions? options = null, + CancellationToken cancellationToken = default + ) + { + var response = await _client + .SendRequestAsync( + new JsonRequest + { + BaseUrl = _client.Options.BaseUrl, + Method = HttpMethod.Get, + Path = string.Format( + "accounting/v1/items/meta/patch/{0}", + ValueConvert.ToPathParameterString(id) + ), + Options = options, + }, + cancellationToken + ) + .ConfigureAwait(false); + if (response.StatusCode is >= 200 and < 400) + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + try + { + return JsonUtils.Deserialize(responseBody)!; + } + catch (JsonException e) + { + throw new MergeException("Failed to deserialize response", e); + } + } + + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + throw new MergeApiException( + $"Error with status code {response.StatusCode}", + response.StatusCode, + responseBody + ); + } + } + + /// + /// Returns metadata for `Item` POSTs. + /// + /// + /// await client.Accounting.Items.MetaPostRetrieveAsync(); + /// + public async Task MetaPostRetrieveAsync( + RequestOptions? options = null, + CancellationToken cancellationToken = default + ) + { + var response = await _client + .SendRequestAsync( + new JsonRequest + { + BaseUrl = _client.Options.BaseUrl, + Method = HttpMethod.Get, + Path = "accounting/v1/items/meta/post", + Options = options, + }, + cancellationToken + ) + .ConfigureAwait(false); + if (response.StatusCode is >= 200 and < 400) + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + try + { + return JsonUtils.Deserialize(responseBody)!; + } + catch (JsonException e) + { + throw new MergeException("Failed to deserialize response", e); + } + } + + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + throw new MergeApiException( + $"Error with status code {response.StatusCode}", + response.StatusCode, + responseBody + ); + } + } } diff --git a/src/Merge.Client/Accounting/Items/Requests/ItemEndpointRequest.cs b/src/Merge.Client/Accounting/Items/Requests/ItemEndpointRequest.cs new file mode 100644 index 00000000..f436b101 --- /dev/null +++ b/src/Merge.Client/Accounting/Items/Requests/ItemEndpointRequest.cs @@ -0,0 +1,28 @@ +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.Accounting; + +public record ItemEndpointRequest +{ + /// + /// Whether to include debug fields (such as log file links) in the response. + /// + [JsonIgnore] + public bool? IsDebugMode { get; set; } + + /// + /// Whether or not third-party updates should be run asynchronously. + /// + [JsonIgnore] + public bool? RunAsync { get; set; } + + [JsonPropertyName("model")] + public required ItemRequestRequest Model { get; set; } + + /// + public override string ToString() + { + return JsonUtils.Serialize(this); + } +} diff --git a/src/Merge.Client/Accounting/Items/Requests/PatchedItemEndpointRequest.cs b/src/Merge.Client/Accounting/Items/Requests/PatchedItemEndpointRequest.cs new file mode 100644 index 00000000..b4ccb741 --- /dev/null +++ b/src/Merge.Client/Accounting/Items/Requests/PatchedItemEndpointRequest.cs @@ -0,0 +1,28 @@ +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.Accounting; + +public record PatchedItemEndpointRequest +{ + /// + /// Whether to include debug fields (such as log file links) in the response. + /// + [JsonIgnore] + public bool? IsDebugMode { get; set; } + + /// + /// Whether or not third-party updates should be run asynchronously. + /// + [JsonIgnore] + public bool? RunAsync { get; set; } + + [JsonPropertyName("model")] + public required PatchedItemRequestRequest Model { get; set; } + + /// + public override string ToString() + { + return JsonUtils.Serialize(this); + } +} diff --git a/src/Merge.Client/Accounting/JournalEntries/JournalEntriesClient.cs b/src/Merge.Client/Accounting/JournalEntries/JournalEntriesClient.cs index e6a8a8c4..84a27a32 100644 --- a/src/Merge.Client/Accounting/JournalEntries/JournalEntriesClient.cs +++ b/src/Merge.Client/Accounting/JournalEntries/JournalEntriesClient.cs @@ -97,7 +97,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/journal-entries", Query = _query, @@ -159,6 +159,10 @@ private async Task LinesRemoteFieldClassesListInt { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -167,7 +171,7 @@ private async Task LinesRemoteFieldClassesListInt .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/journal-entries/lines/remote-field-classes", Query = _query, @@ -229,6 +233,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -237,7 +245,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/journal-entries/remote-field-classes", Query = _query, @@ -335,7 +343,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/journal-entries", Body = request, @@ -402,7 +410,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/journal-entries/{0}", @@ -493,7 +501,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/journal-entries/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/JournalEntries/Requests/JournalEntriesLinesRemoteFieldClassesListRequest.cs b/src/Merge.Client/Accounting/JournalEntries/Requests/JournalEntriesLinesRemoteFieldClassesListRequest.cs index 72dcae6e..0e992ccb 100644 --- a/src/Merge.Client/Accounting/JournalEntries/Requests/JournalEntriesLinesRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Accounting/JournalEntries/Requests/JournalEntriesLinesRemoteFieldClassesListRequest.cs @@ -35,6 +35,12 @@ public record JournalEntriesLinesRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Accounting/JournalEntries/Requests/JournalEntriesRemoteFieldClassesListRequest.cs b/src/Merge.Client/Accounting/JournalEntries/Requests/JournalEntriesRemoteFieldClassesListRequest.cs index 80117189..6532ce00 100644 --- a/src/Merge.Client/Accounting/JournalEntries/Requests/JournalEntriesRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Accounting/JournalEntries/Requests/JournalEntriesRemoteFieldClassesListRequest.cs @@ -35,6 +35,12 @@ public record JournalEntriesRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Accounting/LinkToken/LinkTokenClient.cs b/src/Merge.Client/Accounting/LinkToken/LinkTokenClient.cs index 0c710b3b..e73cc780 100644 --- a/src/Merge.Client/Accounting/LinkToken/LinkTokenClient.cs +++ b/src/Merge.Client/Accounting/LinkToken/LinkTokenClient.cs @@ -42,7 +42,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/link-token", Body = request, diff --git a/src/Merge.Client/Accounting/LinkToken/Requests/EndUserDetailsRequest.cs b/src/Merge.Client/Accounting/LinkToken/Requests/EndUserDetailsRequest.cs index dec701a6..29cb57df 100644 --- a/src/Merge.Client/Accounting/LinkToken/Requests/EndUserDetailsRequest.cs +++ b/src/Merge.Client/Accounting/LinkToken/Requests/EndUserDetailsRequest.cs @@ -1,5 +1,6 @@ using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -75,7 +76,7 @@ public Dictionary< /// * `de` - de /// [JsonPropertyName("language")] - public LanguageEnum? Language { get; set; } + public OneOf? Language { get; set; } /// /// The boolean that indicates whether initial, periodic, and force syncs will be disabled. diff --git a/src/Merge.Client/Accounting/LinkedAccounts/LinkedAccountsClient.cs b/src/Merge.Client/Accounting/LinkedAccounts/LinkedAccountsClient.cs index 1c22158d..c65cefcc 100644 --- a/src/Merge.Client/Accounting/LinkedAccounts/LinkedAccountsClient.cs +++ b/src/Merge.Client/Accounting/LinkedAccounts/LinkedAccountsClient.cs @@ -80,7 +80,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/linked-accounts", Query = _query, diff --git a/src/Merge.Client/Accounting/Passthrough/PassthroughClient.cs b/src/Merge.Client/Accounting/Passthrough/PassthroughClient.cs index 79faca78..2a773a36 100644 --- a/src/Merge.Client/Accounting/Passthrough/PassthroughClient.cs +++ b/src/Merge.Client/Accounting/Passthrough/PassthroughClient.cs @@ -36,7 +36,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/passthrough", Body = request, diff --git a/src/Merge.Client/Accounting/PaymentMethods/PaymentMethodsClient.cs b/src/Merge.Client/Accounting/PaymentMethods/PaymentMethodsClient.cs index 21517ceb..a80abf96 100644 --- a/src/Merge.Client/Accounting/PaymentMethods/PaymentMethodsClient.cs +++ b/src/Merge.Client/Accounting/PaymentMethods/PaymentMethodsClient.cs @@ -48,7 +48,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/payment-methods", Query = _query, @@ -145,7 +145,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/payment-methods/{0}", diff --git a/src/Merge.Client/Accounting/PaymentTerms/PaymentTermsClient.cs b/src/Merge.Client/Accounting/PaymentTerms/PaymentTermsClient.cs index de76e37d..9ce97d8d 100644 --- a/src/Merge.Client/Accounting/PaymentTerms/PaymentTermsClient.cs +++ b/src/Merge.Client/Accounting/PaymentTerms/PaymentTermsClient.cs @@ -49,7 +49,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/payment-terms", Query = _query, @@ -147,7 +147,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/payment-terms/{0}", diff --git a/src/Merge.Client/Accounting/Payments/PaymentsClient.cs b/src/Merge.Client/Accounting/Payments/PaymentsClient.cs index 8cd2e4f4..a27415bb 100644 --- a/src/Merge.Client/Accounting/Payments/PaymentsClient.cs +++ b/src/Merge.Client/Accounting/Payments/PaymentsClient.cs @@ -105,7 +105,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/payments", Query = _query, @@ -167,6 +167,10 @@ private async Task LineItemsRemoteFieldClassesLis { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -175,7 +179,7 @@ private async Task LineItemsRemoteFieldClassesLis .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/payments/line-items/remote-field-classes", Query = _query, @@ -237,6 +241,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -245,7 +253,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/payments/remote-field-classes", Query = _query, @@ -343,7 +351,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/payments", Body = request, @@ -410,7 +418,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/payments/{0}", @@ -474,7 +482,7 @@ public async Task PartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "accounting/v1/payments/{0}", @@ -568,7 +576,7 @@ public async Task MetaPatchRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/payments/meta/patch/{0}", @@ -617,7 +625,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/payments/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/Payments/Requests/PaymentsLineItemsRemoteFieldClassesListRequest.cs b/src/Merge.Client/Accounting/Payments/Requests/PaymentsLineItemsRemoteFieldClassesListRequest.cs index 722eb644..7feed7ab 100644 --- a/src/Merge.Client/Accounting/Payments/Requests/PaymentsLineItemsRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Accounting/Payments/Requests/PaymentsLineItemsRemoteFieldClassesListRequest.cs @@ -35,6 +35,12 @@ public record PaymentsLineItemsRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Accounting/Payments/Requests/PaymentsRemoteFieldClassesListRequest.cs b/src/Merge.Client/Accounting/Payments/Requests/PaymentsRemoteFieldClassesListRequest.cs index 47f60cb0..5542d242 100644 --- a/src/Merge.Client/Accounting/Payments/Requests/PaymentsRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Accounting/Payments/Requests/PaymentsRemoteFieldClassesListRequest.cs @@ -35,6 +35,12 @@ public record PaymentsRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Accounting/PhoneNumbers/PhoneNumbersClient.cs b/src/Merge.Client/Accounting/PhoneNumbers/PhoneNumbersClient.cs index 29e3a017..d0e59ea7 100644 --- a/src/Merge.Client/Accounting/PhoneNumbers/PhoneNumbersClient.cs +++ b/src/Merge.Client/Accounting/PhoneNumbers/PhoneNumbersClient.cs @@ -40,7 +40,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/phone-numbers/{0}", diff --git a/src/Merge.Client/Accounting/Projects/ProjectsClient.cs b/src/Merge.Client/Accounting/Projects/ProjectsClient.cs new file mode 100644 index 00000000..45de1bd5 --- /dev/null +++ b/src/Merge.Client/Accounting/Projects/ProjectsClient.cs @@ -0,0 +1,148 @@ +using System.Net.Http; +using System.Text.Json; +using System.Threading; +using Merge.Client.Core; + +namespace Merge.Client.Accounting; + +public partial class ProjectsClient +{ + private RawClient _client; + + internal ProjectsClient(RawClient client) + { + _client = client; + } + + /// + /// Returns a list of `Project` objects. + /// + /// + /// await client.Accounting.Projects.ListAsync(new ProjectsListRequest()); + /// + public async Task ListAsync( + ProjectsListRequest request, + RequestOptions? options = null, + CancellationToken cancellationToken = default + ) + { + var _query = new Dictionary(); + _query["expand"] = request.Expand.Select(_value => _value.Stringify()).ToList(); + if (request.Cursor != null) + { + _query["cursor"] = request.Cursor; + } + if (request.IncludeDeletedData != null) + { + _query["include_deleted_data"] = JsonUtils.Serialize(request.IncludeDeletedData.Value); + } + if (request.IncludeRemoteData != null) + { + _query["include_remote_data"] = JsonUtils.Serialize(request.IncludeRemoteData.Value); + } + if (request.IncludeShellData != null) + { + _query["include_shell_data"] = JsonUtils.Serialize(request.IncludeShellData.Value); + } + if (request.PageSize != null) + { + _query["page_size"] = request.PageSize.Value.ToString(); + } + var response = await _client + .SendRequestAsync( + new JsonRequest + { + BaseUrl = _client.Options.BaseUrl, + Method = HttpMethod.Get, + Path = "accounting/v1/projects", + Query = _query, + Options = options, + }, + cancellationToken + ) + .ConfigureAwait(false); + if (response.StatusCode is >= 200 and < 400) + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + try + { + return JsonUtils.Deserialize(responseBody)!; + } + catch (JsonException e) + { + throw new MergeException("Failed to deserialize response", e); + } + } + + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + throw new MergeApiException( + $"Error with status code {response.StatusCode}", + response.StatusCode, + responseBody + ); + } + } + + /// + /// Returns a `Project` object with the given `id`. + /// + /// + /// await client.Accounting.Projects.RetrieveAsync("id", new ProjectsRetrieveRequest()); + /// + public async Task RetrieveAsync( + string id, + ProjectsRetrieveRequest request, + RequestOptions? options = null, + CancellationToken cancellationToken = default + ) + { + var _query = new Dictionary(); + _query["expand"] = request.Expand.Select(_value => _value.Stringify()).ToList(); + if (request.IncludeRemoteData != null) + { + _query["include_remote_data"] = JsonUtils.Serialize(request.IncludeRemoteData.Value); + } + if (request.IncludeShellData != null) + { + _query["include_shell_data"] = JsonUtils.Serialize(request.IncludeShellData.Value); + } + var response = await _client + .SendRequestAsync( + new JsonRequest + { + BaseUrl = _client.Options.BaseUrl, + Method = HttpMethod.Get, + Path = string.Format( + "accounting/v1/projects/{0}", + ValueConvert.ToPathParameterString(id) + ), + Query = _query, + Options = options, + }, + cancellationToken + ) + .ConfigureAwait(false); + if (response.StatusCode is >= 200 and < 400) + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + try + { + return JsonUtils.Deserialize(responseBody)!; + } + catch (JsonException e) + { + throw new MergeException("Failed to deserialize response", e); + } + } + + { + var responseBody = await response.Raw.Content.ReadAsStringAsync(); + throw new MergeApiException( + $"Error with status code {response.StatusCode}", + response.StatusCode, + responseBody + ); + } + } +} diff --git a/src/Merge.Client/Accounting/Projects/Requests/ProjectsListRequest.cs b/src/Merge.Client/Accounting/Projects/Requests/ProjectsListRequest.cs new file mode 100644 index 00000000..41b2d152 --- /dev/null +++ b/src/Merge.Client/Accounting/Projects/Requests/ProjectsListRequest.cs @@ -0,0 +1,50 @@ +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.Accounting; + +public record ProjectsListRequest +{ + /// + /// The pagination cursor value. + /// + [JsonIgnore] + public string? Cursor { get; set; } + + /// + /// Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. + /// + [JsonIgnore] + public IEnumerable Expand { get; set; } = + new List(); + + /// + /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). + /// + [JsonIgnore] + public bool? IncludeDeletedData { get; set; } + + /// + /// Whether to include the original data Merge fetched from the third-party to produce these models. + /// + [JsonIgnore] + public bool? IncludeRemoteData { get; set; } + + /// + /// Whether to include shell records. Shell records are empty records (they may contain some metadata but all other fields are null). + /// + [JsonIgnore] + public bool? IncludeShellData { get; set; } + + /// + /// Number of results to return per page. + /// + [JsonIgnore] + public int? PageSize { get; set; } + + /// + public override string ToString() + { + return JsonUtils.Serialize(this); + } +} diff --git a/src/Merge.Client/Accounting/Projects/Requests/ProjectsRetrieveRequest.cs b/src/Merge.Client/Accounting/Projects/Requests/ProjectsRetrieveRequest.cs new file mode 100644 index 00000000..9986eff2 --- /dev/null +++ b/src/Merge.Client/Accounting/Projects/Requests/ProjectsRetrieveRequest.cs @@ -0,0 +1,32 @@ +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.Accounting; + +public record ProjectsRetrieveRequest +{ + /// + /// Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. + /// + [JsonIgnore] + public IEnumerable Expand { get; set; } = + new List(); + + /// + /// Whether to include the original data Merge fetched from the third-party to produce these models. + /// + [JsonIgnore] + public bool? IncludeRemoteData { get; set; } + + /// + /// Whether to include shell records. Shell records are empty records (they may contain some metadata but all other fields are null). + /// + [JsonIgnore] + public bool? IncludeShellData { get; set; } + + /// + public override string ToString() + { + return JsonUtils.Serialize(this); + } +} diff --git a/src/Merge.Client/Accounting/Projects/Types/ProjectsListRequestExpandItem.cs b/src/Merge.Client/Accounting/Projects/Types/ProjectsListRequestExpandItem.cs new file mode 100644 index 00000000..2949fa6e --- /dev/null +++ b/src/Merge.Client/Accounting/Projects/Types/ProjectsListRequestExpandItem.cs @@ -0,0 +1,15 @@ +using System.Runtime.Serialization; +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.Accounting; + +[JsonConverter(typeof(EnumSerializer))] +public enum ProjectsListRequestExpandItem +{ + [EnumMember(Value = "company")] + Company, + + [EnumMember(Value = "contact")] + Contact, +} diff --git a/src/Merge.Client/Accounting/Projects/Types/ProjectsRetrieveRequestExpandItem.cs b/src/Merge.Client/Accounting/Projects/Types/ProjectsRetrieveRequestExpandItem.cs new file mode 100644 index 00000000..fd58277b --- /dev/null +++ b/src/Merge.Client/Accounting/Projects/Types/ProjectsRetrieveRequestExpandItem.cs @@ -0,0 +1,15 @@ +using System.Runtime.Serialization; +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.Accounting; + +[JsonConverter(typeof(EnumSerializer))] +public enum ProjectsRetrieveRequestExpandItem +{ + [EnumMember(Value = "company")] + Company, + + [EnumMember(Value = "contact")] + Contact, +} diff --git a/src/Merge.Client/Accounting/PurchaseOrders/PurchaseOrdersClient.cs b/src/Merge.Client/Accounting/PurchaseOrders/PurchaseOrdersClient.cs index 070a903a..80f57640 100644 --- a/src/Merge.Client/Accounting/PurchaseOrders/PurchaseOrdersClient.cs +++ b/src/Merge.Client/Accounting/PurchaseOrders/PurchaseOrdersClient.cs @@ -105,7 +105,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/purchase-orders", Query = _query, @@ -167,6 +167,10 @@ private async Task LineItemsRemoteFieldClassesLis { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -175,7 +179,7 @@ private async Task LineItemsRemoteFieldClassesLis .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/purchase-orders/line-items/remote-field-classes", Query = _query, @@ -237,6 +241,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -245,7 +253,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/purchase-orders/remote-field-classes", Query = _query, @@ -343,7 +351,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/purchase-orders", Body = request, @@ -418,7 +426,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/purchase-orders/{0}", @@ -509,7 +517,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/purchase-orders/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/PurchaseOrders/Requests/PurchaseOrdersLineItemsRemoteFieldClassesListRequest.cs b/src/Merge.Client/Accounting/PurchaseOrders/Requests/PurchaseOrdersLineItemsRemoteFieldClassesListRequest.cs index 7e700376..137524be 100644 --- a/src/Merge.Client/Accounting/PurchaseOrders/Requests/PurchaseOrdersLineItemsRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Accounting/PurchaseOrders/Requests/PurchaseOrdersLineItemsRemoteFieldClassesListRequest.cs @@ -35,6 +35,12 @@ public record PurchaseOrdersLineItemsRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Accounting/PurchaseOrders/Requests/PurchaseOrdersRemoteFieldClassesListRequest.cs b/src/Merge.Client/Accounting/PurchaseOrders/Requests/PurchaseOrdersRemoteFieldClassesListRequest.cs index a23e353c..482149f8 100644 --- a/src/Merge.Client/Accounting/PurchaseOrders/Requests/PurchaseOrdersRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Accounting/PurchaseOrders/Requests/PurchaseOrdersRemoteFieldClassesListRequest.cs @@ -35,6 +35,12 @@ public record PurchaseOrdersRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Accounting/RegenerateKey/RegenerateKeyClient.cs b/src/Merge.Client/Accounting/RegenerateKey/RegenerateKeyClient.cs index 57e4d5a3..b311a988 100644 --- a/src/Merge.Client/Accounting/RegenerateKey/RegenerateKeyClient.cs +++ b/src/Merge.Client/Accounting/RegenerateKey/RegenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/regenerate-key", Body = request, diff --git a/src/Merge.Client/Accounting/Scopes/ScopesClient.cs b/src/Merge.Client/Accounting/Scopes/ScopesClient.cs index 86060641..2bb6185c 100644 --- a/src/Merge.Client/Accounting/Scopes/ScopesClient.cs +++ b/src/Merge.Client/Accounting/Scopes/ScopesClient.cs @@ -29,7 +29,7 @@ public async Task DefaultScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/default-scopes", Options = options, @@ -75,7 +75,7 @@ public async Task LinkedAccountScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/linked-account-scopes", Options = options, @@ -177,7 +177,7 @@ public async Task LinkedAccountScopesCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/linked-account-scopes", Body = request, diff --git a/src/Merge.Client/Accounting/SyncStatus/SyncStatusClient.cs b/src/Merge.Client/Accounting/SyncStatus/SyncStatusClient.cs index f5b79722..dd50899e 100644 --- a/src/Merge.Client/Accounting/SyncStatus/SyncStatusClient.cs +++ b/src/Merge.Client/Accounting/SyncStatus/SyncStatusClient.cs @@ -36,7 +36,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/sync-status", Query = _query, diff --git a/src/Merge.Client/Accounting/TaxRates/TaxRatesClient.cs b/src/Merge.Client/Accounting/TaxRates/TaxRatesClient.cs index 7e3e039a..b26a930b 100644 --- a/src/Merge.Client/Accounting/TaxRates/TaxRatesClient.cs +++ b/src/Merge.Client/Accounting/TaxRates/TaxRatesClient.cs @@ -83,7 +83,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/tax-rates", Query = _query, @@ -181,7 +181,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/tax-rates/{0}", diff --git a/src/Merge.Client/Accounting/TrackingCategories/Requests/TrackingCategoriesListRequest.cs b/src/Merge.Client/Accounting/TrackingCategories/Requests/TrackingCategoriesListRequest.cs index 96619bec..c1b7f6ff 100644 --- a/src/Merge.Client/Accounting/TrackingCategories/Requests/TrackingCategoriesListRequest.cs +++ b/src/Merge.Client/Accounting/TrackingCategories/Requests/TrackingCategoriesListRequest.cs @@ -72,7 +72,7 @@ public record TrackingCategoriesListRequest public DateTime? ModifiedBefore { get; set; } /// - /// If provided, will only return TrackingCategories with this name. + /// If provided, will only return tracking categories with this name. /// [JsonIgnore] public string? Name { get; set; } diff --git a/src/Merge.Client/Accounting/TrackingCategories/TrackingCategoriesClient.cs b/src/Merge.Client/Accounting/TrackingCategories/TrackingCategoriesClient.cs index 39550d41..3cda838a 100644 --- a/src/Merge.Client/Accounting/TrackingCategories/TrackingCategoriesClient.cs +++ b/src/Merge.Client/Accounting/TrackingCategories/TrackingCategoriesClient.cs @@ -99,7 +99,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/tracking-categories", Query = _query, @@ -208,7 +208,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/tracking-categories/{0}", diff --git a/src/Merge.Client/Accounting/Transactions/TransactionsClient.cs b/src/Merge.Client/Accounting/Transactions/TransactionsClient.cs index 3442eb97..c31d46de 100644 --- a/src/Merge.Client/Accounting/Transactions/TransactionsClient.cs +++ b/src/Merge.Client/Accounting/Transactions/TransactionsClient.cs @@ -91,7 +91,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/transactions", Query = _query, @@ -189,7 +189,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/transactions/{0}", diff --git a/src/Merge.Client/Accounting/Types/Account.cs b/src/Merge.Client/Accounting/Types/Account.cs index eaecd5f8..5a79858d 100644 --- a/src/Merge.Client/Accounting/Types/Account.cs +++ b/src/Merge.Client/Accounting/Types/Account.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -67,7 +68,7 @@ public record Account /// * `REVENUE` - REVENUE /// [JsonPropertyName("classification")] - public ClassificationEnum? Classification { get; set; } + public OneOf? Classification { get; set; } /// /// The account's type is a narrower and more specific grouping within the account's classification. @@ -93,7 +94,7 @@ public record Account /// * `NON_POSTING` - NON_POSTING /// [JsonPropertyName("account_type")] - public AccountAccountTypeEnum? AccountType { get; set; } + public OneOf? AccountType { get; set; } /// /// The account's status. @@ -103,7 +104,7 @@ public record Account /// * `INACTIVE` - INACTIVE /// [JsonPropertyName("status")] - public AccountStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The account's current balance. @@ -422,7 +423,7 @@ public record Account /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The account's number. diff --git a/src/Merge.Client/Accounting/Types/AccountDetailsAndActions.cs b/src/Merge.Client/Accounting/Types/AccountDetailsAndActions.cs index 94db243d..b0ad948f 100644 --- a/src/Merge.Client/Accounting/Types/AccountDetailsAndActions.cs +++ b/src/Merge.Client/Accounting/Types/AccountDetailsAndActions.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -18,10 +19,10 @@ public record AccountDetailsAndActions public required string Id { get; set; } [JsonPropertyName("category")] - public CategoryEnum? Category { get; set; } + public OneOf? Category { get; set; } [JsonPropertyName("status")] - public required AccountDetailsAndActionsStatusEnum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("status_detail")] public string? StatusDetail { get; set; } diff --git a/src/Merge.Client/Accounting/Types/AccountRequest.cs b/src/Merge.Client/Accounting/Types/AccountRequest.cs index f35577b8..24d837bc 100644 --- a/src/Merge.Client/Accounting/Types/AccountRequest.cs +++ b/src/Merge.Client/Accounting/Types/AccountRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -43,7 +44,7 @@ public record AccountRequest /// * `REVENUE` - REVENUE /// [JsonPropertyName("classification")] - public ClassificationEnum? Classification { get; set; } + public OneOf? Classification { get; set; } /// /// The account's type is a narrower and more specific grouping within the account's classification. @@ -69,7 +70,7 @@ public record AccountRequest /// * `NON_POSTING` - NON_POSTING /// [JsonPropertyName("account_type")] - public AccountAccountTypeEnum? AccountType { get; set; } + public OneOf? AccountType { get; set; } /// /// The account's status. @@ -79,7 +80,7 @@ public record AccountRequest /// * `INACTIVE` - INACTIVE /// [JsonPropertyName("status")] - public AccountStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The account's current balance. @@ -398,7 +399,7 @@ public record AccountRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The account's number. diff --git a/src/Merge.Client/Accounting/Types/AccountingPeriod.cs b/src/Merge.Client/Accounting/Types/AccountingPeriod.cs index 8d5c945b..dd83a4d7 100644 --- a/src/Merge.Client/Accounting/Types/AccountingPeriod.cs +++ b/src/Merge.Client/Accounting/Types/AccountingPeriod.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -45,7 +46,7 @@ public record AccountingPeriod public string? Name { get; set; } [JsonPropertyName("status")] - public Status895Enum? Status { get; set; } + public OneOf? Status { get; set; } /// /// Beginning date of the period diff --git a/src/Merge.Client/Accounting/Types/Address.cs b/src/Merge.Client/Accounting/Types/Address.cs index c63d1238..e846d8c7 100644 --- a/src/Merge.Client/Accounting/Types/Address.cs +++ b/src/Merge.Client/Accounting/Types/Address.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -35,7 +36,7 @@ public record Address /// * `SHIPPING` - SHIPPING /// [JsonPropertyName("type")] - public AddressTypeEnum? Type { get; set; } + public OneOf? Type { get; set; } /// /// Line 1 of the address's street. @@ -319,7 +320,7 @@ public record Address /// * `ZW` - Zimbabwe /// [JsonPropertyName("country")] - public CountryEnum? Country { get; set; } + public OneOf? Country { get; set; } /// /// The address's zip code. diff --git a/src/Merge.Client/Accounting/Types/AddressRequest.cs b/src/Merge.Client/Accounting/Types/AddressRequest.cs index c3a34d36..9094b1e5 100644 --- a/src/Merge.Client/Accounting/Types/AddressRequest.cs +++ b/src/Merge.Client/Accounting/Types/AddressRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -21,7 +22,7 @@ public record AddressRequest /// * `SHIPPING` - SHIPPING /// [JsonPropertyName("type")] - public AddressTypeEnum? Type { get; set; } + public OneOf? Type { get; set; } /// /// Line 1 of the address's street. @@ -301,7 +302,7 @@ public record AddressRequest /// * `ZW` - Zimbabwe /// [JsonPropertyName("country")] - public CountryEnum? Country { get; set; } + public OneOf? Country { get; set; } /// /// The address's zip code. diff --git a/src/Merge.Client/Accounting/Types/AsyncPostTask.cs b/src/Merge.Client/Accounting/Types/AsyncPostTask.cs index 67cf3db9..a1e730c5 100644 --- a/src/Merge.Client/Accounting/Types/AsyncPostTask.cs +++ b/src/Merge.Client/Accounting/Types/AsyncPostTask.cs @@ -1,13 +1,14 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; public record AsyncPostTask { [JsonPropertyName("status")] - public required AsyncPostTaskStatusEnum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("result")] public required AsyncPostTaskResult Result { get; set; } diff --git a/src/Merge.Client/Accounting/Types/AuditLogEvent.cs b/src/Merge.Client/Accounting/Types/AuditLogEvent.cs index 2e5dd62f..48ea2598 100644 --- a/src/Merge.Client/Accounting/Types/AuditLogEvent.cs +++ b/src/Merge.Client/Accounting/Types/AuditLogEvent.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -33,7 +34,7 @@ public record AuditLogEvent /// * `MERGE_TEAM` - MERGE_TEAM /// [JsonPropertyName("role")] - public required RoleEnum Role { get; set; } + public required OneOf Role { get; set; } [JsonPropertyName("ip_address")] public required string IpAddress { get; set; } @@ -46,6 +47,7 @@ public record AuditLogEvent /// * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY /// * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY /// * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + /// * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE /// * `INVITED_USER` - INVITED_USER /// * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED /// * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED @@ -85,7 +87,7 @@ public record AuditLogEvent /// * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED /// [JsonPropertyName("event_type")] - public required EventTypeEnum EventType { get; set; } + public required OneOf EventType { get; set; } [JsonPropertyName("event_description")] public required string EventDescription { get; set; } diff --git a/src/Merge.Client/Accounting/Types/BalanceSheet.cs b/src/Merge.Client/Accounting/Types/BalanceSheet.cs index ab808554..8b2b9c05 100644 --- a/src/Merge.Client/Accounting/Types/BalanceSheet.cs +++ b/src/Merge.Client/Accounting/Types/BalanceSheet.cs @@ -356,7 +356,7 @@ public record BalanceSheet /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// `Company` object for the given `BalanceSheet` object. diff --git a/src/Merge.Client/Accounting/Types/BankFeedAccount.cs b/src/Merge.Client/Accounting/Types/BankFeedAccount.cs index 25e1e586..ebcfb49f 100644 --- a/src/Merge.Client/Accounting/Types/BankFeedAccount.cs +++ b/src/Merge.Client/Accounting/Types/BankFeedAccount.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -379,7 +380,7 @@ public record BankFeedAccount /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The status of the bank feed. @@ -388,7 +389,7 @@ public record BankFeedAccount /// * `INACTIVE` - INACTIVE /// [JsonPropertyName("feed_status")] - public FeedStatusEnum? FeedStatus { get; set; } + public OneOf? FeedStatus { get; set; } /// /// The start date of the bank feed’s transactions. @@ -409,7 +410,7 @@ public record BankFeedAccount /// * `CREDIT_CARD` - CREDIT_CARD /// [JsonPropertyName("account_type")] - public BankFeedAccountAccountTypeEnum? AccountType { get; set; } + public OneOf? AccountType { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Accounting/Types/BankFeedAccountRequest.cs b/src/Merge.Client/Accounting/Types/BankFeedAccountRequest.cs index 43ae9645..ac1ccc73 100644 --- a/src/Merge.Client/Accounting/Types/BankFeedAccountRequest.cs +++ b/src/Merge.Client/Accounting/Types/BankFeedAccountRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -355,7 +356,7 @@ public record BankFeedAccountRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The status of the bank feed. @@ -364,7 +365,7 @@ public record BankFeedAccountRequest /// * `INACTIVE` - INACTIVE /// [JsonPropertyName("feed_status")] - public FeedStatusEnum? FeedStatus { get; set; } + public OneOf? FeedStatus { get; set; } /// /// The start date of the bank feed’s transactions. @@ -385,7 +386,7 @@ public record BankFeedAccountRequest /// * `CREDIT_CARD` - CREDIT_CARD /// [JsonPropertyName("account_type")] - public BankFeedAccountAccountTypeEnum? AccountType { get; set; } + public OneOf? AccountType { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/Accounting/Types/BankFeedTransaction.cs b/src/Merge.Client/Accounting/Types/BankFeedTransaction.cs index 497604ae..8074edcc 100644 --- a/src/Merge.Client/Accounting/Types/BankFeedTransaction.cs +++ b/src/Merge.Client/Accounting/Types/BankFeedTransaction.cs @@ -88,7 +88,7 @@ public record BankFeedTransaction /// * `DEBIT` - DEBIT /// [JsonPropertyName("credit_or_debit")] - public CreditOrDebitEnum? CreditOrDebit { get; set; } + public OneOf? CreditOrDebit { get; set; } /// /// The customer’s identifier for the transaction. diff --git a/src/Merge.Client/Accounting/Types/BankFeedTransactionRequestRequest.cs b/src/Merge.Client/Accounting/Types/BankFeedTransactionRequestRequest.cs index 128f215e..0cdd7985 100644 --- a/src/Merge.Client/Accounting/Types/BankFeedTransactionRequestRequest.cs +++ b/src/Merge.Client/Accounting/Types/BankFeedTransactionRequestRequest.cs @@ -64,7 +64,7 @@ public record BankFeedTransactionRequestRequest /// * `DEBIT` - DEBIT /// [JsonPropertyName("credit_or_debit")] - public CreditOrDebitEnum? CreditOrDebit { get; set; } + public OneOf? CreditOrDebit { get; set; } /// /// The customer’s identifier for the transaction. diff --git a/src/Merge.Client/Accounting/Types/CashFlowStatement.cs b/src/Merge.Client/Accounting/Types/CashFlowStatement.cs index bf05a400..d8ea5841 100644 --- a/src/Merge.Client/Accounting/Types/CashFlowStatement.cs +++ b/src/Merge.Client/Accounting/Types/CashFlowStatement.cs @@ -356,7 +356,7 @@ public record CashFlowStatement /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The company the cash flow statement belongs to. diff --git a/src/Merge.Client/Accounting/Types/CompanyInfo.cs b/src/Merge.Client/Accounting/Types/CompanyInfo.cs index 6bb32cb0..cfb99e84 100644 --- a/src/Merge.Client/Accounting/Types/CompanyInfo.cs +++ b/src/Merge.Client/Accounting/Types/CompanyInfo.cs @@ -68,318 +68,8 @@ public record CompanyInfo [JsonPropertyName("fiscal_year_end_day")] public int? FiscalYearEndDay { get; set; } - /// - /// The currency set in the company's accounting platform. - /// - /// * `XUA` - ADB Unit of Account - /// * `AFN` - Afghan Afghani - /// * `AFA` - Afghan Afghani (1927–2002) - /// * `ALL` - Albanian Lek - /// * `ALK` - Albanian Lek (1946–1965) - /// * `DZD` - Algerian Dinar - /// * `ADP` - Andorran Peseta - /// * `AOA` - Angolan Kwanza - /// * `AOK` - Angolan Kwanza (1977–1991) - /// * `AON` - Angolan New Kwanza (1990–2000) - /// * `AOR` - Angolan Readjusted Kwanza (1995–1999) - /// * `ARA` - Argentine Austral - /// * `ARS` - Argentine Peso - /// * `ARM` - Argentine Peso (1881–1970) - /// * `ARP` - Argentine Peso (1983–1985) - /// * `ARL` - Argentine Peso Ley (1970–1983) - /// * `AMD` - Armenian Dram - /// * `AWG` - Aruban Florin - /// * `AUD` - Australian Dollar - /// * `ATS` - Austrian Schilling - /// * `AZN` - Azerbaijani Manat - /// * `AZM` - Azerbaijani Manat (1993–2006) - /// * `BSD` - Bahamian Dollar - /// * `BHD` - Bahraini Dinar - /// * `BDT` - Bangladeshi Taka - /// * `BBD` - Barbadian Dollar - /// * `BYN` - Belarusian Ruble - /// * `BYB` - Belarusian Ruble (1994–1999) - /// * `BYR` - Belarusian Ruble (2000–2016) - /// * `BEF` - Belgian Franc - /// * `BEC` - Belgian Franc (convertible) - /// * `BEL` - Belgian Franc (financial) - /// * `BZD` - Belize Dollar - /// * `BMD` - Bermudan Dollar - /// * `BTN` - Bhutanese Ngultrum - /// * `BOB` - Bolivian Boliviano - /// * `BOL` - Bolivian Boliviano (1863–1963) - /// * `BOV` - Bolivian Mvdol - /// * `BOP` - Bolivian Peso - /// * `BAM` - Bosnia-Herzegovina Convertible Mark - /// * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) - /// * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) - /// * `BWP` - Botswanan Pula - /// * `BRC` - Brazilian Cruzado (1986–1989) - /// * `BRZ` - Brazilian Cruzeiro (1942–1967) - /// * `BRE` - Brazilian Cruzeiro (1990–1993) - /// * `BRR` - Brazilian Cruzeiro (1993–1994) - /// * `BRN` - Brazilian New Cruzado (1989–1990) - /// * `BRB` - Brazilian New Cruzeiro (1967–1986) - /// * `BRL` - Brazilian Real - /// * `GBP` - British Pound - /// * `BND` - Brunei Dollar - /// * `BGL` - Bulgarian Hard Lev - /// * `BGN` - Bulgarian Lev - /// * `BGO` - Bulgarian Lev (1879–1952) - /// * `BGM` - Bulgarian Socialist Lev - /// * `BUK` - Burmese Kyat - /// * `BIF` - Burundian Franc - /// * `XPF` - CFP Franc - /// * `KHR` - Cambodian Riel - /// * `CAD` - Canadian Dollar - /// * `CVE` - Cape Verdean Escudo - /// * `KYD` - Cayman Islands Dollar - /// * `XAF` - Central African CFA Franc - /// * `CLE` - Chilean Escudo - /// * `CLP` - Chilean Peso - /// * `CLF` - Chilean Unit of Account (UF) - /// * `CNX` - Chinese People’s Bank Dollar - /// * `CNY` - Chinese Yuan - /// * `CNH` - Chinese Yuan (offshore) - /// * `COP` - Colombian Peso - /// * `COU` - Colombian Real Value Unit - /// * `KMF` - Comorian Franc - /// * `CDF` - Congolese Franc - /// * `CRC` - Costa Rican Colón - /// * `HRD` - Croatian Dinar - /// * `HRK` - Croatian Kuna - /// * `CUC` - Cuban Convertible Peso - /// * `CUP` - Cuban Peso - /// * `CYP` - Cypriot Pound - /// * `CZK` - Czech Koruna - /// * `CSK` - Czechoslovak Hard Koruna - /// * `DKK` - Danish Krone - /// * `DJF` - Djiboutian Franc - /// * `DOP` - Dominican Peso - /// * `NLG` - Dutch Guilder - /// * `XCD` - East Caribbean Dollar - /// * `DDM` - East German Mark - /// * `ECS` - Ecuadorian Sucre - /// * `ECV` - Ecuadorian Unit of Constant Value - /// * `EGP` - Egyptian Pound - /// * `GQE` - Equatorial Guinean Ekwele - /// * `ERN` - Eritrean Nakfa - /// * `EEK` - Estonian Kroon - /// * `ETB` - Ethiopian Birr - /// * `EUR` - Euro - /// * `XBA` - European Composite Unit - /// * `XEU` - European Currency Unit - /// * `XBB` - European Monetary Unit - /// * `XBC` - European Unit of Account (XBC) - /// * `XBD` - European Unit of Account (XBD) - /// * `FKP` - Falkland Islands Pound - /// * `FJD` - Fijian Dollar - /// * `FIM` - Finnish Markka - /// * `FRF` - French Franc - /// * `XFO` - French Gold Franc - /// * `XFU` - French UIC-Franc - /// * `GMD` - Gambian Dalasi - /// * `GEK` - Georgian Kupon Larit - /// * `GEL` - Georgian Lari - /// * `DEM` - German Mark - /// * `GHS` - Ghanaian Cedi - /// * `GHC` - Ghanaian Cedi (1979–2007) - /// * `GIP` - Gibraltar Pound - /// * `XAU` - Gold - /// * `GRD` - Greek Drachma - /// * `GTQ` - Guatemalan Quetzal - /// * `GWP` - Guinea-Bissau Peso - /// * `GNF` - Guinean Franc - /// * `GNS` - Guinean Syli - /// * `GYD` - Guyanaese Dollar - /// * `HTG` - Haitian Gourde - /// * `HNL` - Honduran Lempira - /// * `HKD` - Hong Kong Dollar - /// * `HUF` - Hungarian Forint - /// * `IMP` - IMP - /// * `ISK` - Icelandic Króna - /// * `ISJ` - Icelandic Króna (1918–1981) - /// * `INR` - Indian Rupee - /// * `IDR` - Indonesian Rupiah - /// * `IRR` - Iranian Rial - /// * `IQD` - Iraqi Dinar - /// * `IEP` - Irish Pound - /// * `ILS` - Israeli New Shekel - /// * `ILP` - Israeli Pound - /// * `ILR` - Israeli Shekel (1980–1985) - /// * `ITL` - Italian Lira - /// * `JMD` - Jamaican Dollar - /// * `JPY` - Japanese Yen - /// * `JOD` - Jordanian Dinar - /// * `KZT` - Kazakhstani Tenge - /// * `KES` - Kenyan Shilling - /// * `KWD` - Kuwaiti Dinar - /// * `KGS` - Kyrgystani Som - /// * `LAK` - Laotian Kip - /// * `LVL` - Latvian Lats - /// * `LVR` - Latvian Ruble - /// * `LBP` - Lebanese Pound - /// * `LSL` - Lesotho Loti - /// * `LRD` - Liberian Dollar - /// * `LYD` - Libyan Dinar - /// * `LTL` - Lithuanian Litas - /// * `LTT` - Lithuanian Talonas - /// * `LUL` - Luxembourg Financial Franc - /// * `LUC` - Luxembourgian Convertible Franc - /// * `LUF` - Luxembourgian Franc - /// * `MOP` - Macanese Pataca - /// * `MKD` - Macedonian Denar - /// * `MKN` - Macedonian Denar (1992–1993) - /// * `MGA` - Malagasy Ariary - /// * `MGF` - Malagasy Franc - /// * `MWK` - Malawian Kwacha - /// * `MYR` - Malaysian Ringgit - /// * `MVR` - Maldivian Rufiyaa - /// * `MVP` - Maldivian Rupee (1947–1981) - /// * `MLF` - Malian Franc - /// * `MTL` - Maltese Lira - /// * `MTP` - Maltese Pound - /// * `MRU` - Mauritanian Ouguiya - /// * `MRO` - Mauritanian Ouguiya (1973–2017) - /// * `MUR` - Mauritian Rupee - /// * `MXV` - Mexican Investment Unit - /// * `MXN` - Mexican Peso - /// * `MXP` - Mexican Silver Peso (1861–1992) - /// * `MDC` - Moldovan Cupon - /// * `MDL` - Moldovan Leu - /// * `MCF` - Monegasque Franc - /// * `MNT` - Mongolian Tugrik - /// * `MAD` - Moroccan Dirham - /// * `MAF` - Moroccan Franc - /// * `MZE` - Mozambican Escudo - /// * `MZN` - Mozambican Metical - /// * `MZM` - Mozambican Metical (1980–2006) - /// * `MMK` - Myanmar Kyat - /// * `NAD` - Namibian Dollar - /// * `NPR` - Nepalese Rupee - /// * `ANG` - Netherlands Antillean Guilder - /// * `TWD` - New Taiwan Dollar - /// * `NZD` - New Zealand Dollar - /// * `NIO` - Nicaraguan Córdoba - /// * `NIC` - Nicaraguan Córdoba (1988–1991) - /// * `NGN` - Nigerian Naira - /// * `KPW` - North Korean Won - /// * `NOK` - Norwegian Krone - /// * `OMR` - Omani Rial - /// * `PKR` - Pakistani Rupee - /// * `XPD` - Palladium - /// * `PAB` - Panamanian Balboa - /// * `PGK` - Papua New Guinean Kina - /// * `PYG` - Paraguayan Guarani - /// * `PEI` - Peruvian Inti - /// * `PEN` - Peruvian Sol - /// * `PES` - Peruvian Sol (1863–1965) - /// * `PHP` - Philippine Peso - /// * `XPT` - Platinum - /// * `PLN` - Polish Zloty - /// * `PLZ` - Polish Zloty (1950–1995) - /// * `PTE` - Portuguese Escudo - /// * `GWE` - Portuguese Guinea Escudo - /// * `QAR` - Qatari Rial - /// * `XRE` - RINET Funds - /// * `RHD` - Rhodesian Dollar - /// * `RON` - Romanian Leu - /// * `ROL` - Romanian Leu (1952–2006) - /// * `RUB` - Russian Ruble - /// * `RUR` - Russian Ruble (1991–1998) - /// * `RWF` - Rwandan Franc - /// * `SVC` - Salvadoran Colón - /// * `WST` - Samoan Tala - /// * `SAR` - Saudi Riyal - /// * `RSD` - Serbian Dinar - /// * `CSD` - Serbian Dinar (2002–2006) - /// * `SCR` - Seychellois Rupee - /// * `SLL` - Sierra Leonean Leone - /// * `XAG` - Silver - /// * `SGD` - Singapore Dollar - /// * `SKK` - Slovak Koruna - /// * `SIT` - Slovenian Tolar - /// * `SBD` - Solomon Islands Dollar - /// * `SOS` - Somali Shilling - /// * `ZAR` - South African Rand - /// * `ZAL` - South African Rand (financial) - /// * `KRH` - South Korean Hwan (1953–1962) - /// * `KRW` - South Korean Won - /// * `KRO` - South Korean Won (1945–1953) - /// * `SSP` - South Sudanese Pound - /// * `SUR` - Soviet Rouble - /// * `ESP` - Spanish Peseta - /// * `ESA` - Spanish Peseta (A account) - /// * `ESB` - Spanish Peseta (convertible account) - /// * `XDR` - Special Drawing Rights - /// * `LKR` - Sri Lankan Rupee - /// * `SHP` - St. Helena Pound - /// * `XSU` - Sucre - /// * `SDD` - Sudanese Dinar (1992–2007) - /// * `SDG` - Sudanese Pound - /// * `SDP` - Sudanese Pound (1957–1998) - /// * `SRD` - Surinamese Dollar - /// * `SRG` - Surinamese Guilder - /// * `SZL` - Swazi Lilangeni - /// * `SEK` - Swedish Krona - /// * `CHF` - Swiss Franc - /// * `SYP` - Syrian Pound - /// * `STN` - São Tomé & Príncipe Dobra - /// * `STD` - São Tomé & Príncipe Dobra (1977–2017) - /// * `TVD` - TVD - /// * `TJR` - Tajikistani Ruble - /// * `TJS` - Tajikistani Somoni - /// * `TZS` - Tanzanian Shilling - /// * `XTS` - Testing Currency Code - /// * `THB` - Thai Baht - /// * `XXX` - The codes assigned for transactions where no currency is involved - /// * `TPE` - Timorese Escudo - /// * `TOP` - Tongan Paʻanga - /// * `TTD` - Trinidad & Tobago Dollar - /// * `TND` - Tunisian Dinar - /// * `TRY` - Turkish Lira - /// * `TRL` - Turkish Lira (1922–2005) - /// * `TMT` - Turkmenistani Manat - /// * `TMM` - Turkmenistani Manat (1993–2009) - /// * `USD` - US Dollar - /// * `USN` - US Dollar (Next day) - /// * `USS` - US Dollar (Same day) - /// * `UGX` - Ugandan Shilling - /// * `UGS` - Ugandan Shilling (1966–1987) - /// * `UAH` - Ukrainian Hryvnia - /// * `UAK` - Ukrainian Karbovanets - /// * `AED` - United Arab Emirates Dirham - /// * `UYW` - Uruguayan Nominal Wage Index Unit - /// * `UYU` - Uruguayan Peso - /// * `UYP` - Uruguayan Peso (1975–1993) - /// * `UYI` - Uruguayan Peso (Indexed Units) - /// * `UZS` - Uzbekistani Som - /// * `VUV` - Vanuatu Vatu - /// * `VES` - Venezuelan Bolívar - /// * `VEB` - Venezuelan Bolívar (1871–2008) - /// * `VEF` - Venezuelan Bolívar (2008–2018) - /// * `VND` - Vietnamese Dong - /// * `VNN` - Vietnamese Dong (1978–1985) - /// * `CHE` - WIR Euro - /// * `CHW` - WIR Franc - /// * `XOF` - West African CFA Franc - /// * `YDD` - Yemeni Dinar - /// * `YER` - Yemeni Rial - /// * `YUN` - Yugoslavian Convertible Dinar (1990–1992) - /// * `YUD` - Yugoslavian Hard Dinar (1966–1990) - /// * `YUM` - Yugoslavian New Dinar (1994–2002) - /// * `YUR` - Yugoslavian Reformed Dinar (1992–1993) - /// * `ZWN` - ZWN - /// * `ZRN` - Zairean New Zaire (1993–1998) - /// * `ZRZ` - Zairean Zaire (1971–1993) - /// * `ZMW` - Zambian Kwacha - /// * `ZMK` - Zambian Kwacha (1968–2012) - /// * `ZWD` - Zimbabwean Dollar (1980–2008) - /// * `ZWR` - Zimbabwean Dollar (2008) - /// * `ZWL` - Zimbabwean Dollar (2009) - /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public object? Currency { get; set; } /// /// When the third party's company was created. diff --git a/src/Merge.Client/Accounting/Types/Contact.cs b/src/Merge.Client/Accounting/Types/Contact.cs index 5689da22..14c478a7 100644 --- a/src/Merge.Client/Accounting/Types/Contact.cs +++ b/src/Merge.Client/Accounting/Types/Contact.cs @@ -78,7 +78,7 @@ public record Contact /// * `ARCHIVED` - ARCHIVED /// [JsonPropertyName("status")] - public Status7D1Enum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The currency the contact's transactions are in. diff --git a/src/Merge.Client/Accounting/Types/ContactRequest.cs b/src/Merge.Client/Accounting/Types/ContactRequest.cs index 463d420e..75064fe6 100644 --- a/src/Merge.Client/Accounting/Types/ContactRequest.cs +++ b/src/Merge.Client/Accounting/Types/ContactRequest.cs @@ -54,7 +54,7 @@ public record ContactRequest /// * `ARCHIVED` - ARCHIVED /// [JsonPropertyName("status")] - public Status7D1Enum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The currency the contact's transactions are in. diff --git a/src/Merge.Client/Accounting/Types/CreditNote.cs b/src/Merge.Client/Accounting/Types/CreditNote.cs index 2cfeecee..c83de942 100644 --- a/src/Merge.Client/Accounting/Types/CreditNote.cs +++ b/src/Merge.Client/Accounting/Types/CreditNote.cs @@ -53,7 +53,7 @@ public record CreditNote /// * `PAID` - PAID /// [JsonPropertyName("status")] - public CreditNoteStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The credit note's number. @@ -97,6 +97,7 @@ public record CreditNote [JsonPropertyName("inclusive_of_tax")] public bool? InclusiveOfTax { get; set; } + [JsonAccess(JsonAccessType.ReadOnly)] [JsonPropertyName("line_items")] public IEnumerable? LineItems { get; set; } @@ -414,7 +415,7 @@ public record CreditNote /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// When the third party's credit note was created. diff --git a/src/Merge.Client/Accounting/Types/CreditNoteLineItem.cs b/src/Merge.Client/Accounting/Types/CreditNoteLineItem.cs index 76e80938..8d04a801 100644 --- a/src/Merge.Client/Accounting/Types/CreditNoteLineItem.cs +++ b/src/Merge.Client/Accounting/Types/CreditNoteLineItem.cs @@ -108,6 +108,15 @@ public record CreditNoteLineItem [JsonPropertyName("company")] public OneOf? Company { get; set; } + /// + /// The credit note's contact. + /// + [JsonPropertyName("contact")] + public OneOf? Contact { get; set; } + + [JsonPropertyName("project")] + public OneOf? Project { get; set; } + /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). /// diff --git a/src/Merge.Client/Accounting/Types/CreditNoteLineItemRequest.cs b/src/Merge.Client/Accounting/Types/CreditNoteLineItemRequest.cs index a16d2616..611be793 100644 --- a/src/Merge.Client/Accounting/Types/CreditNoteLineItemRequest.cs +++ b/src/Merge.Client/Accounting/Types/CreditNoteLineItemRequest.cs @@ -90,6 +90,15 @@ public record CreditNoteLineItemRequest [JsonPropertyName("company")] public OneOf? Company { get; set; } + /// + /// The credit note's contact. + /// + [JsonPropertyName("contact")] + public OneOf? Contact { get; set; } + + [JsonPropertyName("project")] + public OneOf? Project { get; set; } + [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] public Dictionary? IntegrationParams { get; set; } diff --git a/src/Merge.Client/Accounting/Types/CreditNoteRequest.cs b/src/Merge.Client/Accounting/Types/CreditNoteRequest.cs index 4c9a164e..a0e7230f 100644 --- a/src/Merge.Client/Accounting/Types/CreditNoteRequest.cs +++ b/src/Merge.Client/Accounting/Types/CreditNoteRequest.cs @@ -29,7 +29,7 @@ public record CreditNoteRequest /// * `PAID` - PAID /// [JsonPropertyName("status")] - public CreditNoteStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The credit note's number. @@ -390,7 +390,7 @@ public record CreditNoteRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// Array of `Payment` object IDs diff --git a/src/Merge.Client/Accounting/Types/Employee.cs b/src/Merge.Client/Accounting/Types/Employee.cs index 2bd13d77..16ec2547 100644 --- a/src/Merge.Client/Accounting/Types/Employee.cs +++ b/src/Merge.Client/Accounting/Types/Employee.cs @@ -84,7 +84,7 @@ public record Employee /// * `INACTIVE` - INACTIVE /// [JsonPropertyName("status")] - public required Status895Enum Status { get; set; } + public required OneOf Status { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Accounting/Types/EventTypeEnum.cs b/src/Merge.Client/Accounting/Types/EventTypeEnum.cs index 059285ce..7742210d 100644 --- a/src/Merge.Client/Accounting/Types/EventTypeEnum.cs +++ b/src/Merge.Client/Accounting/Types/EventTypeEnum.cs @@ -22,6 +22,9 @@ public enum EventTypeEnum [EnumMember(Value = "REGENERATED_PRODUCTION_API_KEY")] RegeneratedProductionApiKey, + [EnumMember(Value = "REGENERATED_WEBHOOK_SIGNATURE")] + RegeneratedWebhookSignature, + [EnumMember(Value = "INVITED_USER")] InvitedUser, diff --git a/src/Merge.Client/Accounting/Types/Expense.cs b/src/Merge.Client/Accounting/Types/Expense.cs index 9dec2a42..ca068ae6 100644 --- a/src/Merge.Client/Accounting/Types/Expense.cs +++ b/src/Merge.Client/Accounting/Types/Expense.cs @@ -394,7 +394,7 @@ public record Expense /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The expense's exchange rate. diff --git a/src/Merge.Client/Accounting/Types/ExpenseLine.cs b/src/Merge.Client/Accounting/Types/ExpenseLine.cs index 7f6af7e3..c352fe42 100644 --- a/src/Merge.Client/Accounting/Types/ExpenseLine.cs +++ b/src/Merge.Client/Accounting/Types/ExpenseLine.cs @@ -397,6 +397,9 @@ public record ExpenseLine [JsonPropertyName("contact")] public OneOf? Contact { get; set; } + [JsonPropertyName("project")] + public OneOf? Project { get; set; } + /// /// The description of the item that was purchased by the company. /// diff --git a/src/Merge.Client/Accounting/Types/ExpenseLineRequest.cs b/src/Merge.Client/Accounting/Types/ExpenseLineRequest.cs index 9a7b3317..d50385ec 100644 --- a/src/Merge.Client/Accounting/Types/ExpenseLineRequest.cs +++ b/src/Merge.Client/Accounting/Types/ExpenseLineRequest.cs @@ -365,7 +365,7 @@ public record ExpenseLineRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The expense's payment account. @@ -379,6 +379,9 @@ public record ExpenseLineRequest [JsonPropertyName("contact")] public OneOf? Contact { get; set; } + [JsonPropertyName("project")] + public OneOf? Project { get; set; } + /// /// The description of the item that was purchased by the company. /// diff --git a/src/Merge.Client/Accounting/Types/ExternalTargetFieldApiResponse.cs b/src/Merge.Client/Accounting/Types/ExternalTargetFieldApiResponse.cs index 5cb60a60..934125e9 100644 --- a/src/Merge.Client/Accounting/Types/ExternalTargetFieldApiResponse.cs +++ b/src/Merge.Client/Accounting/Types/ExternalTargetFieldApiResponse.cs @@ -75,6 +75,9 @@ public record ExternalTargetFieldApiResponse [JsonPropertyName("PaymentMethod")] public IEnumerable? PaymentMethod { get; set; } + [JsonPropertyName("Project")] + public IEnumerable? Project { get; set; } + [JsonPropertyName("PaymentTerm")] public IEnumerable? PaymentTerm { get; set; } diff --git a/src/Merge.Client/Accounting/Types/FieldMappingApiInstanceResponse.cs b/src/Merge.Client/Accounting/Types/FieldMappingApiInstanceResponse.cs index 7f97d3b2..7f62e91a 100644 --- a/src/Merge.Client/Accounting/Types/FieldMappingApiInstanceResponse.cs +++ b/src/Merge.Client/Accounting/Types/FieldMappingApiInstanceResponse.cs @@ -75,6 +75,9 @@ public record FieldMappingApiInstanceResponse [JsonPropertyName("PaymentMethod")] public IEnumerable? PaymentMethod { get; set; } + [JsonPropertyName("Project")] + public IEnumerable? Project { get; set; } + [JsonPropertyName("PaymentTerm")] public IEnumerable? PaymentTerm { get; set; } diff --git a/src/Merge.Client/Accounting/Types/GeneralLedgerTransaction.cs b/src/Merge.Client/Accounting/Types/GeneralLedgerTransaction.cs index 96304707..495835ff 100644 --- a/src/Merge.Client/Accounting/Types/GeneralLedgerTransaction.cs +++ b/src/Merge.Client/Accounting/Types/GeneralLedgerTransaction.cs @@ -61,7 +61,7 @@ public record GeneralLedgerTransaction /// * `CREDIT_NOTE` - CREDIT_NOTE /// [JsonPropertyName("underlying_transaction_type")] - public UnderlyingTransactionTypeEnum? UnderlyingTransactionType { get; set; } + public OneOf? UnderlyingTransactionType { get; set; } /// /// The accounting period that the GeneralLedgerTransaction was generated in. diff --git a/src/Merge.Client/Accounting/Types/GeneralLedgerTransactionLine.cs b/src/Merge.Client/Accounting/Types/GeneralLedgerTransactionLine.cs index 18dd1d4d..7374e97e 100644 --- a/src/Merge.Client/Accounting/Types/GeneralLedgerTransactionLine.cs +++ b/src/Merge.Client/Accounting/Types/GeneralLedgerTransactionLine.cs @@ -54,6 +54,9 @@ public record GeneralLedgerTransactionLine [JsonPropertyName("contact")] public OneOf? Contact { get; set; } + [JsonPropertyName("project")] + public OneOf? Project { get; set; } + /// /// The base currency of the transaction /// @@ -678,7 +681,7 @@ public record GeneralLedgerTransactionLine /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("transaction_currency")] - public TransactionCurrencyEnum? TransactionCurrency { get; set; } + public OneOf? TransactionCurrency { get; set; } /// /// The exchange rate between the base currency and the transaction currency. diff --git a/src/Merge.Client/Accounting/Types/IncomeStatement.cs b/src/Merge.Client/Accounting/Types/IncomeStatement.cs index ff5e4bac..9aeebe30 100644 --- a/src/Merge.Client/Accounting/Types/IncomeStatement.cs +++ b/src/Merge.Client/Accounting/Types/IncomeStatement.cs @@ -356,7 +356,7 @@ public record IncomeStatement /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The company the income statement belongs to. diff --git a/src/Merge.Client/Accounting/Types/Invoice.cs b/src/Merge.Client/Accounting/Types/Invoice.cs index 9d570031..0d509cab 100644 --- a/src/Merge.Client/Accounting/Types/Invoice.cs +++ b/src/Merge.Client/Accounting/Types/Invoice.cs @@ -410,7 +410,7 @@ public record Invoice /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The invoice's exchange rate. @@ -447,7 +447,7 @@ public record Invoice /// * `VOID` - VOID /// [JsonPropertyName("status")] - public InvoiceStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The total amount being paid in taxes. diff --git a/src/Merge.Client/Accounting/Types/InvoiceLineItem.cs b/src/Merge.Client/Accounting/Types/InvoiceLineItem.cs index 999cf454..d6eda228 100644 --- a/src/Merge.Client/Accounting/Types/InvoiceLineItem.cs +++ b/src/Merge.Client/Accounting/Types/InvoiceLineItem.cs @@ -69,6 +69,15 @@ public record InvoiceLineItem [JsonPropertyName("employee")] public OneOf? Employee { get; set; } + [JsonPropertyName("project")] + public OneOf? Project { get; set; } + + /// + /// The invoice's contact. + /// + [JsonPropertyName("contact")] + public OneOf? Contact { get; set; } + /// /// The line item's currency. /// @@ -380,7 +389,7 @@ public record InvoiceLineItem /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The line item's exchange rate. diff --git a/src/Merge.Client/Accounting/Types/InvoiceLineItemRequest.cs b/src/Merge.Client/Accounting/Types/InvoiceLineItemRequest.cs index 01dce58a..54ed21f0 100644 --- a/src/Merge.Client/Accounting/Types/InvoiceLineItemRequest.cs +++ b/src/Merge.Client/Accounting/Types/InvoiceLineItemRequest.cs @@ -51,6 +51,15 @@ public record InvoiceLineItemRequest [JsonPropertyName("employee")] public OneOf? Employee { get; set; } + [JsonPropertyName("project")] + public OneOf? Project { get; set; } + + /// + /// The invoice's contact. + /// + [JsonPropertyName("contact")] + public OneOf? Contact { get; set; } + /// /// The line item's currency. /// @@ -362,7 +371,7 @@ public record InvoiceLineItemRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The line item's exchange rate. diff --git a/src/Merge.Client/Accounting/Types/InvoiceRequest.cs b/src/Merge.Client/Accounting/Types/InvoiceRequest.cs index 87d5546f..37dcd378 100644 --- a/src/Merge.Client/Accounting/Types/InvoiceRequest.cs +++ b/src/Merge.Client/Accounting/Types/InvoiceRequest.cs @@ -25,7 +25,7 @@ public record InvoiceRequest /// * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE /// [JsonPropertyName("type")] - public InvoiceTypeEnum? Type { get; set; } + public OneOf? Type { get; set; } /// /// The invoice's contact. @@ -80,7 +80,7 @@ public record InvoiceRequest /// * `VOID` - VOID /// [JsonPropertyName("status")] - public InvoiceStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The company the invoice belongs to. @@ -399,7 +399,7 @@ public record InvoiceRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The invoice's exchange rate. diff --git a/src/Merge.Client/Accounting/Types/Issue.cs b/src/Merge.Client/Accounting/Types/Issue.cs index 56cfa10d..b808c914 100644 --- a/src/Merge.Client/Accounting/Types/Issue.cs +++ b/src/Merge.Client/Accounting/Types/Issue.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -17,7 +18,7 @@ public record Issue /// * `RESOLVED` - RESOLVED /// [JsonPropertyName("status")] - public IssueStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } [JsonPropertyName("error_description")] public required string ErrorDescription { get; set; } diff --git a/src/Merge.Client/Accounting/Types/Item.cs b/src/Merge.Client/Accounting/Types/Item.cs index f811c231..83c4bfce 100644 --- a/src/Merge.Client/Accounting/Types/Item.cs +++ b/src/Merge.Client/Accounting/Types/Item.cs @@ -52,7 +52,18 @@ public record Item /// * `ARCHIVED` - ARCHIVED /// [JsonPropertyName("status")] - public Status7D1Enum? Status { get; set; } + public OneOf? Status { get; set; } + + /// + /// The item's type. + /// + /// * `INVENTORY` - INVENTORY + /// * `NON_INVENTORY` - NON_INVENTORY + /// * `SERVICE` - SERVICE + /// * `UNKNOWN` - UNKNOWN + /// + [JsonPropertyName("type")] + public OneOf? Type { get; set; } /// /// The item's unit price. diff --git a/src/Merge.Client/Accounting/Types/ItemRequestRequest.cs b/src/Merge.Client/Accounting/Types/ItemRequestRequest.cs new file mode 100644 index 00000000..b89a1552 --- /dev/null +++ b/src/Merge.Client/Accounting/Types/ItemRequestRequest.cs @@ -0,0 +1,109 @@ +using System.Text.Json; +using System.Text.Json.Serialization; +using Merge.Client.Core; +using OneOf; + +namespace Merge.Client.Accounting; + +/// +/// # The Item Object +/// ### Description +/// The `Item` object refers to the goods involved in a transaction. +/// +/// ### Usage Example +/// Fetch from the `LIST Items` endpoint and view a company's items. +/// +public record ItemRequestRequest +{ + /// + /// The item's name. + /// + [JsonPropertyName("name")] + public string? Name { get; set; } + + /// + /// The item's status. + /// + /// * `ACTIVE` - ACTIVE + /// * `ARCHIVED` - ARCHIVED + /// + [JsonPropertyName("status")] + public OneOf? Status { get; set; } + + /// + /// The item's type. + /// + /// * `INVENTORY` - INVENTORY + /// * `NON_INVENTORY` - NON_INVENTORY + /// * `SERVICE` - SERVICE + /// * `UNKNOWN` - UNKNOWN + /// + [JsonPropertyName("type")] + public OneOf? Type { get; set; } + + /// + /// The item's unit price. + /// + [JsonPropertyName("unit_price")] + public double? UnitPrice { get; set; } + + /// + /// The price at which the item is purchased from a vendor. + /// + [JsonPropertyName("purchase_price")] + public double? PurchasePrice { get; set; } + + /// + /// References the default account used to record a purchase of the item. + /// + [JsonPropertyName("purchase_account")] + public OneOf? PurchaseAccount { get; set; } + + /// + /// References the default account used to record a sale. + /// + [JsonPropertyName("sales_account")] + public OneOf? SalesAccount { get; set; } + + /// + /// The company the item belongs to. + /// + [JsonPropertyName("company")] + public OneOf? Company { get; set; } + + /// + /// The default purchase tax rate for this item. + /// + [JsonPropertyName("purchase_tax_rate")] + public OneOf? PurchaseTaxRate { get; set; } + + /// + /// The default sales tax rate for this item. + /// + [JsonPropertyName("sales_tax_rate")] + public OneOf? SalesTaxRate { get; set; } + + [JsonAccess(JsonAccessType.WriteOnly)] + [JsonPropertyName("integration_params")] + public Dictionary? IntegrationParams { get; set; } + + [JsonAccess(JsonAccessType.WriteOnly)] + [JsonPropertyName("linked_account_params")] + public Dictionary? LinkedAccountParams { get; set; } + + /// + /// Additional properties received from the response, if any. + /// + /// + /// [EXPERIMENTAL] This API is experimental and may change in future releases. + /// + [JsonExtensionData] + public IDictionary AdditionalProperties { get; internal set; } = + new Dictionary(); + + /// + public override string ToString() + { + return JsonUtils.Serialize(this); + } +} diff --git a/src/Merge.Client/Accounting/Types/ItemResponse.cs b/src/Merge.Client/Accounting/Types/ItemResponse.cs new file mode 100644 index 00000000..531444ae --- /dev/null +++ b/src/Merge.Client/Accounting/Types/ItemResponse.cs @@ -0,0 +1,38 @@ +using System.Text.Json; +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.Accounting; + +public record ItemResponse +{ + [JsonPropertyName("model")] + public required Item Model { get; set; } + + [JsonPropertyName("warnings")] + public IEnumerable Warnings { get; set; } = + new List(); + + [JsonPropertyName("errors")] + public IEnumerable Errors { get; set; } = + new List(); + + [JsonPropertyName("logs")] + public IEnumerable? Logs { get; set; } + + /// + /// Additional properties received from the response, if any. + /// + /// + /// [EXPERIMENTAL] This API is experimental and may change in future releases. + /// + [JsonExtensionData] + public IDictionary AdditionalProperties { get; internal set; } = + new Dictionary(); + + /// + public override string ToString() + { + return JsonUtils.Serialize(this); + } +} diff --git a/src/Merge.Client/Accounting/Types/JournalEntry.cs b/src/Merge.Client/Accounting/Types/JournalEntry.cs index ff74dc27..60ea94c1 100644 --- a/src/Merge.Client/Accounting/Types/JournalEntry.cs +++ b/src/Merge.Client/Accounting/Types/JournalEntry.cs @@ -378,7 +378,7 @@ public record JournalEntry /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The journal entry's exchange rate. @@ -425,7 +425,7 @@ public record JournalEntry /// * `POSTED` - POSTED /// [JsonPropertyName("posting_status")] - public PostingStatusEnum? PostingStatus { get; set; } + public OneOf? PostingStatus { get; set; } /// /// The accounting period that the JournalEntry was generated in. diff --git a/src/Merge.Client/Accounting/Types/JournalEntryRequest.cs b/src/Merge.Client/Accounting/Types/JournalEntryRequest.cs index c89a39ca..5417446d 100644 --- a/src/Merge.Client/Accounting/Types/JournalEntryRequest.cs +++ b/src/Merge.Client/Accounting/Types/JournalEntryRequest.cs @@ -344,7 +344,7 @@ public record JournalEntryRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The journal entry's exchange rate. @@ -383,7 +383,7 @@ public record JournalEntryRequest /// * `POSTED` - POSTED /// [JsonPropertyName("posting_status")] - public PostingStatusEnum? PostingStatus { get; set; } + public OneOf? PostingStatus { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/Accounting/Types/JournalLine.cs b/src/Merge.Client/Accounting/Types/JournalLine.cs index f89ffc04..8021b098 100644 --- a/src/Merge.Client/Accounting/Types/JournalLine.cs +++ b/src/Merge.Client/Accounting/Types/JournalLine.cs @@ -368,7 +368,7 @@ public record JournalLine /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The company the journal entry belongs to. @@ -379,6 +379,9 @@ public record JournalLine [JsonPropertyName("employee")] public string? Employee { get; set; } + [JsonPropertyName("project")] + public OneOf? Project { get; set; } + [JsonPropertyName("contact")] public string? Contact { get; set; } diff --git a/src/Merge.Client/Accounting/Types/JournalLineRequest.cs b/src/Merge.Client/Accounting/Types/JournalLineRequest.cs index a58294d9..f4426db7 100644 --- a/src/Merge.Client/Accounting/Types/JournalLineRequest.cs +++ b/src/Merge.Client/Accounting/Types/JournalLineRequest.cs @@ -350,7 +350,7 @@ public record JournalLineRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The company the journal entry belongs to. @@ -361,6 +361,9 @@ public record JournalLineRequest [JsonPropertyName("employee")] public string? Employee { get; set; } + [JsonPropertyName("project")] + public OneOf? Project { get; set; } + [JsonPropertyName("contact")] public string? Contact { get; set; } diff --git a/src/Merge.Client/Accounting/Types/PaginatedProjectList.cs b/src/Merge.Client/Accounting/Types/PaginatedProjectList.cs new file mode 100644 index 00000000..1f7513cd --- /dev/null +++ b/src/Merge.Client/Accounting/Types/PaginatedProjectList.cs @@ -0,0 +1,33 @@ +using System.Text.Json; +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.Accounting; + +public record PaginatedProjectList +{ + [JsonPropertyName("next")] + public string? Next { get; set; } + + [JsonPropertyName("previous")] + public string? Previous { get; set; } + + [JsonPropertyName("results")] + public IEnumerable? Results { get; set; } + + /// + /// Additional properties received from the response, if any. + /// + /// + /// [EXPERIMENTAL] This API is experimental and may change in future releases. + /// + [JsonExtensionData] + public IDictionary AdditionalProperties { get; internal set; } = + new Dictionary(); + + /// + public override string ToString() + { + return JsonUtils.Serialize(this); + } +} diff --git a/src/Merge.Client/Accounting/Types/PatchedItemRequestRequest.cs b/src/Merge.Client/Accounting/Types/PatchedItemRequestRequest.cs new file mode 100644 index 00000000..ed898449 --- /dev/null +++ b/src/Merge.Client/Accounting/Types/PatchedItemRequestRequest.cs @@ -0,0 +1,109 @@ +using System.Text.Json; +using System.Text.Json.Serialization; +using Merge.Client.Core; +using OneOf; + +namespace Merge.Client.Accounting; + +/// +/// # The Item Object +/// ### Description +/// The `Item` object refers to the goods involved in a transaction. +/// +/// ### Usage Example +/// Fetch from the `LIST Items` endpoint and view a company's items. +/// +public record PatchedItemRequestRequest +{ + /// + /// The item's name. + /// + [JsonPropertyName("name")] + public string? Name { get; set; } + + /// + /// The item's status. + /// + /// * `ACTIVE` - ACTIVE + /// * `ARCHIVED` - ARCHIVED + /// + [JsonPropertyName("status")] + public OneOf? Status { get; set; } + + /// + /// The item's type. + /// + /// * `INVENTORY` - INVENTORY + /// * `NON_INVENTORY` - NON_INVENTORY + /// * `SERVICE` - SERVICE + /// * `UNKNOWN` - UNKNOWN + /// + [JsonPropertyName("type")] + public OneOf? Type { get; set; } + + /// + /// The item's unit price. + /// + [JsonPropertyName("unit_price")] + public double? UnitPrice { get; set; } + + /// + /// The price at which the item is purchased from a vendor. + /// + [JsonPropertyName("purchase_price")] + public double? PurchasePrice { get; set; } + + /// + /// References the default account used to record a purchase of the item. + /// + [JsonPropertyName("purchase_account")] + public string? PurchaseAccount { get; set; } + + /// + /// References the default account used to record a sale. + /// + [JsonPropertyName("sales_account")] + public string? SalesAccount { get; set; } + + /// + /// The company the item belongs to. + /// + [JsonPropertyName("company")] + public string? Company { get; set; } + + /// + /// The default purchase tax rate for this item. + /// + [JsonPropertyName("purchase_tax_rate")] + public string? PurchaseTaxRate { get; set; } + + /// + /// The default sales tax rate for this item. + /// + [JsonPropertyName("sales_tax_rate")] + public string? SalesTaxRate { get; set; } + + [JsonAccess(JsonAccessType.WriteOnly)] + [JsonPropertyName("integration_params")] + public Dictionary? IntegrationParams { get; set; } + + [JsonAccess(JsonAccessType.WriteOnly)] + [JsonPropertyName("linked_account_params")] + public Dictionary? LinkedAccountParams { get; set; } + + /// + /// Additional properties received from the response, if any. + /// + /// + /// [EXPERIMENTAL] This API is experimental and may change in future releases. + /// + [JsonExtensionData] + public IDictionary AdditionalProperties { get; internal set; } = + new Dictionary(); + + /// + public override string ToString() + { + return JsonUtils.Serialize(this); + } +} diff --git a/src/Merge.Client/Accounting/Types/PatchedPaymentRequest.cs b/src/Merge.Client/Accounting/Types/PatchedPaymentRequest.cs index 8a47e209..40f95e5b 100644 --- a/src/Merge.Client/Accounting/Types/PatchedPaymentRequest.cs +++ b/src/Merge.Client/Accounting/Types/PatchedPaymentRequest.cs @@ -350,7 +350,7 @@ public record PatchedPaymentRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The payment's exchange rate. @@ -377,7 +377,7 @@ public record PatchedPaymentRequest /// * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE /// [JsonPropertyName("type")] - public PaymentTypeEnum? Type { get; set; } + public OneOf? Type { get; set; } [JsonPropertyName("tracking_categories")] public IEnumerable>? TrackingCategories { get; set; } diff --git a/src/Merge.Client/Accounting/Types/Payment.cs b/src/Merge.Client/Accounting/Types/Payment.cs index 7001f40e..efa185b7 100644 --- a/src/Merge.Client/Accounting/Types/Payment.cs +++ b/src/Merge.Client/Accounting/Types/Payment.cs @@ -374,7 +374,7 @@ public record Payment /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The payment's exchange rate. @@ -401,7 +401,7 @@ public record Payment /// * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE /// [JsonPropertyName("type")] - public PaymentTypeEnum? Type { get; set; } + public OneOf? Type { get; set; } [JsonPropertyName("tracking_categories")] public IEnumerable>? TrackingCategories { get; set; } diff --git a/src/Merge.Client/Accounting/Types/PaymentMethod.cs b/src/Merge.Client/Accounting/Types/PaymentMethod.cs index d8a1ee9a..0fa9c68c 100644 --- a/src/Merge.Client/Accounting/Types/PaymentMethod.cs +++ b/src/Merge.Client/Accounting/Types/PaymentMethod.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -48,7 +49,7 @@ public record PaymentMethod /// * `CHECK` - CHECK /// [JsonPropertyName("method_type")] - public required MethodTypeEnum MethodType { get; set; } + public required OneOf MethodType { get; set; } /// /// The payment method’s name diff --git a/src/Merge.Client/Accounting/Types/PaymentRequest.cs b/src/Merge.Client/Accounting/Types/PaymentRequest.cs index c72f8f66..a986b1d0 100644 --- a/src/Merge.Client/Accounting/Types/PaymentRequest.cs +++ b/src/Merge.Client/Accounting/Types/PaymentRequest.cs @@ -350,7 +350,7 @@ public record PaymentRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The payment's exchange rate. @@ -377,7 +377,7 @@ public record PaymentRequest /// * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE /// [JsonPropertyName("type")] - public PaymentTypeEnum? Type { get; set; } + public OneOf? Type { get; set; } [JsonPropertyName("tracking_categories")] public IEnumerable>? TrackingCategories { get; set; } diff --git a/src/Merge.Client/Accounting/Types/Project.cs b/src/Merge.Client/Accounting/Types/Project.cs new file mode 100644 index 00000000..975170fa --- /dev/null +++ b/src/Merge.Client/Accounting/Types/Project.cs @@ -0,0 +1,90 @@ +using System.Text.Json; +using System.Text.Json.Serialization; +using Merge.Client.Core; +using OneOf; + +namespace Merge.Client.Accounting; + +/// +/// # The Project Object +/// ### Description +/// The `Project` object is used to track and manage time, costs, resources, and revenue for specific initiatives or work efforts. +/// It provides classification on transactions for allocating expenses, revenue, and activities to a specific project for financial reporting. +/// +/// ### Usage Example +/// Fetch from the `GET Project` endpoint and view project information. +/// +public record Project +{ + [JsonAccess(JsonAccessType.ReadOnly)] + [JsonPropertyName("id")] + public string? Id { get; set; } + + /// + /// The third-party API ID of the matching object. + /// + [JsonPropertyName("remote_id")] + public string? RemoteId { get; set; } + + /// + /// The datetime that this object was created by Merge. + /// + [JsonAccess(JsonAccessType.ReadOnly)] + [JsonPropertyName("created_at")] + public DateTime? CreatedAt { get; set; } + + /// + /// The datetime that this object was modified by Merge. + /// + [JsonAccess(JsonAccessType.ReadOnly)] + [JsonPropertyName("modified_at")] + public DateTime? ModifiedAt { get; set; } + + /// + /// The project’s name + /// + [JsonPropertyName("name")] + public required string Name { get; set; } + + /// + /// `True` if the project is active, `False` if the project is not active. + /// + [JsonPropertyName("is_active")] + public bool? IsActive { get; set; } + + /// + /// The subsidiary that the project belongs to. + /// + [JsonPropertyName("company")] + public OneOf? Company { get; set; } + + /// + /// The supplier, or customer involved in the project. + /// + [JsonPropertyName("contact")] + public OneOf? Contact { get; set; } + + [JsonAccess(JsonAccessType.ReadOnly)] + [JsonPropertyName("field_mappings")] + public Dictionary? FieldMappings { get; set; } + + [JsonAccess(JsonAccessType.ReadOnly)] + [JsonPropertyName("remote_data")] + public IEnumerable? RemoteData { get; set; } + + /// + /// Additional properties received from the response, if any. + /// + /// + /// [EXPERIMENTAL] This API is experimental and may change in future releases. + /// + [JsonExtensionData] + public IDictionary AdditionalProperties { get; internal set; } = + new Dictionary(); + + /// + public override string ToString() + { + return JsonUtils.Serialize(this); + } +} diff --git a/src/Merge.Client/Accounting/Types/PurchaseOrder.cs b/src/Merge.Client/Accounting/Types/PurchaseOrder.cs index 85fa7702..c9aa4804 100644 --- a/src/Merge.Client/Accounting/Types/PurchaseOrder.cs +++ b/src/Merge.Client/Accounting/Types/PurchaseOrder.cs @@ -51,7 +51,7 @@ public record PurchaseOrder /// * `DELETED` - DELETED /// [JsonPropertyName("status")] - public PurchaseOrderStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The purchase order's issue date. @@ -418,7 +418,7 @@ public record PurchaseOrder /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The purchase order's exchange rate. diff --git a/src/Merge.Client/Accounting/Types/PurchaseOrderLineItem.cs b/src/Merge.Client/Accounting/Types/PurchaseOrderLineItem.cs index 81c6ad28..2ea83d9c 100644 --- a/src/Merge.Client/Accounting/Types/PurchaseOrderLineItem.cs +++ b/src/Merge.Client/Accounting/Types/PurchaseOrderLineItem.cs @@ -401,7 +401,7 @@ public record PurchaseOrderLineItem /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The tax rate that applies to this line item. diff --git a/src/Merge.Client/Accounting/Types/PurchaseOrderLineItemRequest.cs b/src/Merge.Client/Accounting/Types/PurchaseOrderLineItemRequest.cs index d4dbd789..6c180695 100644 --- a/src/Merge.Client/Accounting/Types/PurchaseOrderLineItemRequest.cs +++ b/src/Merge.Client/Accounting/Types/PurchaseOrderLineItemRequest.cs @@ -383,7 +383,7 @@ public record PurchaseOrderLineItemRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The tax rate that applies to this line item. diff --git a/src/Merge.Client/Accounting/Types/PurchaseOrderRequest.cs b/src/Merge.Client/Accounting/Types/PurchaseOrderRequest.cs index 3646fc60..5a14e0c3 100644 --- a/src/Merge.Client/Accounting/Types/PurchaseOrderRequest.cs +++ b/src/Merge.Client/Accounting/Types/PurchaseOrderRequest.cs @@ -25,7 +25,7 @@ public record PurchaseOrderRequest /// * `DELETED` - DELETED /// [JsonPropertyName("status")] - public PurchaseOrderStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The purchase order's issue date. @@ -392,7 +392,7 @@ public record PurchaseOrderRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// If the transaction is inclusive or exclusive of tax. `True` if inclusive, `False` if exclusive. diff --git a/src/Merge.Client/Accounting/Types/RemoteFieldApiResponse.cs b/src/Merge.Client/Accounting/Types/RemoteFieldApiResponse.cs index 0cc65e3b..661ec305 100644 --- a/src/Merge.Client/Accounting/Types/RemoteFieldApiResponse.cs +++ b/src/Merge.Client/Accounting/Types/RemoteFieldApiResponse.cs @@ -75,6 +75,9 @@ public record RemoteFieldApiResponse [JsonPropertyName("PaymentMethod")] public IEnumerable? PaymentMethod { get; set; } + [JsonPropertyName("Project")] + public IEnumerable? Project { get; set; } + [JsonPropertyName("PaymentTerm")] public IEnumerable? PaymentTerm { get; set; } diff --git a/src/Merge.Client/Accounting/Types/SyncStatus.cs b/src/Merge.Client/Accounting/Types/SyncStatus.cs index 134d0a0b..0552adeb 100644 --- a/src/Merge.Client/Accounting/Types/SyncStatus.cs +++ b/src/Merge.Client/Accounting/Types/SyncStatus.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -27,13 +28,13 @@ public record SyncStatus public DateTime? NextSyncStart { get; set; } [JsonPropertyName("last_sync_result")] - public LastSyncResultEnum? LastSyncResult { get; set; } + public OneOf? LastSyncResult { get; set; } [JsonPropertyName("last_sync_finished")] public DateTime? LastSyncFinished { get; set; } [JsonPropertyName("status")] - public required StatusFd5Enum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("is_initial_sync")] public required bool IsInitialSync { get; set; } diff --git a/src/Merge.Client/Accounting/Types/TaxComponent.cs b/src/Merge.Client/Accounting/Types/TaxComponent.cs index 8fb5ba89..8c4f059f 100644 --- a/src/Merge.Client/Accounting/Types/TaxComponent.cs +++ b/src/Merge.Client/Accounting/Types/TaxComponent.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Accounting; @@ -63,7 +64,7 @@ public record TaxComponent /// * `PURCHASE` - PURCHASE /// [JsonPropertyName("component_type")] - public ComponentTypeEnum? ComponentType { get; set; } + public OneOf? ComponentType { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Accounting/Types/TaxRate.cs b/src/Merge.Client/Accounting/Types/TaxRate.cs index 55ac48db..afda0330 100644 --- a/src/Merge.Client/Accounting/Types/TaxRate.cs +++ b/src/Merge.Client/Accounting/Types/TaxRate.cs @@ -70,7 +70,7 @@ public record TaxRate /// * `ARCHIVED` - ARCHIVED /// [JsonPropertyName("status")] - public Status7D1Enum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The country the tax rate is associated with. diff --git a/src/Merge.Client/Accounting/Types/TrackingCategory.cs b/src/Merge.Client/Accounting/Types/TrackingCategory.cs index 10445445..9435e2d7 100644 --- a/src/Merge.Client/Accounting/Types/TrackingCategory.cs +++ b/src/Merge.Client/Accounting/Types/TrackingCategory.cs @@ -52,7 +52,7 @@ public record TrackingCategory /// * `ARCHIVED` - ARCHIVED /// [JsonPropertyName("status")] - public Status7D1Enum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The tracking category’s type. @@ -61,7 +61,7 @@ public record TrackingCategory /// * `DEPARTMENT` - DEPARTMENT /// [JsonPropertyName("category_type")] - public CategoryTypeEnum? CategoryType { get; set; } + public OneOf? CategoryType { get; set; } [JsonPropertyName("parent_category")] public string? ParentCategory { get; set; } diff --git a/src/Merge.Client/Accounting/Types/Transaction.cs b/src/Merge.Client/Accounting/Types/Transaction.cs index a69eb1ec..97d91dff 100644 --- a/src/Merge.Client/Accounting/Types/Transaction.cs +++ b/src/Merge.Client/Accounting/Types/Transaction.cs @@ -399,7 +399,7 @@ public record Transaction /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The transaction's exchange rate. diff --git a/src/Merge.Client/Accounting/Types/TransactionLineItem.cs b/src/Merge.Client/Accounting/Types/TransactionLineItem.cs index 11babc8b..d3766eeb 100644 --- a/src/Merge.Client/Accounting/Types/TransactionLineItem.cs +++ b/src/Merge.Client/Accounting/Types/TransactionLineItem.cs @@ -401,7 +401,7 @@ public record TransactionLineItem /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The line item's exchange rate. diff --git a/src/Merge.Client/Accounting/Types/Type2BbEnum.cs b/src/Merge.Client/Accounting/Types/Type2BbEnum.cs new file mode 100644 index 00000000..9e11be04 --- /dev/null +++ b/src/Merge.Client/Accounting/Types/Type2BbEnum.cs @@ -0,0 +1,21 @@ +using System.Runtime.Serialization; +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.Accounting; + +[JsonConverter(typeof(EnumSerializer))] +public enum Type2BbEnum +{ + [EnumMember(Value = "INVENTORY")] + Inventory, + + [EnumMember(Value = "NON_INVENTORY")] + NonInventory, + + [EnumMember(Value = "SERVICE")] + Service, + + [EnumMember(Value = "UNKNOWN")] + Unknown, +} diff --git a/src/Merge.Client/Accounting/Types/VendorCredit.cs b/src/Merge.Client/Accounting/Types/VendorCredit.cs index 0271bc89..cc259cbe 100644 --- a/src/Merge.Client/Accounting/Types/VendorCredit.cs +++ b/src/Merge.Client/Accounting/Types/VendorCredit.cs @@ -374,7 +374,7 @@ public record VendorCredit /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The vendor credit's exchange rate. diff --git a/src/Merge.Client/Accounting/Types/VendorCreditLine.cs b/src/Merge.Client/Accounting/Types/VendorCreditLine.cs index 6c72f2a2..7b5f0610 100644 --- a/src/Merge.Client/Accounting/Types/VendorCreditLine.cs +++ b/src/Merge.Client/Accounting/Types/VendorCreditLine.cs @@ -75,6 +75,12 @@ public record VendorCreditLine [JsonPropertyName("company")] public string? Company { get; set; } + [JsonPropertyName("project")] + public OneOf? Project { get; set; } + + [JsonPropertyName("contact")] + public OneOf? Contact { get; set; } + /// /// The tax rate that applies to this line item. /// diff --git a/src/Merge.Client/Accounting/Types/VendorCreditLineRequest.cs b/src/Merge.Client/Accounting/Types/VendorCreditLineRequest.cs index c29dbaa5..7fc635df 100644 --- a/src/Merge.Client/Accounting/Types/VendorCreditLineRequest.cs +++ b/src/Merge.Client/Accounting/Types/VendorCreditLineRequest.cs @@ -57,6 +57,12 @@ public record VendorCreditLineRequest [JsonPropertyName("company")] public string? Company { get; set; } + [JsonPropertyName("project")] + public OneOf? Project { get; set; } + + [JsonPropertyName("contact")] + public OneOf? Contact { get; set; } + /// /// The tax rate that applies to this line item. /// diff --git a/src/Merge.Client/Accounting/Types/VendorCreditRequest.cs b/src/Merge.Client/Accounting/Types/VendorCreditRequest.cs index 7bc501d7..155e69a7 100644 --- a/src/Merge.Client/Accounting/Types/VendorCreditRequest.cs +++ b/src/Merge.Client/Accounting/Types/VendorCreditRequest.cs @@ -350,7 +350,7 @@ public record VendorCreditRequest /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("currency")] - public TransactionCurrencyEnum? Currency { get; set; } + public OneOf? Currency { get; set; } /// /// The vendor credit's exchange rate. diff --git a/src/Merge.Client/Accounting/VendorCredits/VendorCreditsClient.cs b/src/Merge.Client/Accounting/VendorCredits/VendorCreditsClient.cs index 2b8ae4b4..aea616f1 100644 --- a/src/Merge.Client/Accounting/VendorCredits/VendorCreditsClient.cs +++ b/src/Merge.Client/Accounting/VendorCredits/VendorCreditsClient.cs @@ -91,7 +91,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/vendor-credits", Query = _query, @@ -189,7 +189,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/vendor-credits", Body = request, @@ -250,7 +250,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "accounting/v1/vendor-credits/{0}", @@ -300,7 +300,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/vendor-credits/meta/post", Options = options, diff --git a/src/Merge.Client/Accounting/WebhookReceivers/WebhookReceiversClient.cs b/src/Merge.Client/Accounting/WebhookReceivers/WebhookReceiversClient.cs index 5de34c9b..0da422d7 100644 --- a/src/Merge.Client/Accounting/WebhookReceivers/WebhookReceiversClient.cs +++ b/src/Merge.Client/Accounting/WebhookReceivers/WebhookReceiversClient.cs @@ -29,7 +29,7 @@ public async Task> ListAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "accounting/v1/webhook-receivers", Options = options, @@ -78,7 +78,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "accounting/v1/webhook-receivers", Body = request, diff --git a/src/Merge.Client/Ats/AccountDetails/AccountDetailsClient.cs b/src/Merge.Client/Ats/AccountDetails/AccountDetailsClient.cs index 2c17d31f..1471fe17 100644 --- a/src/Merge.Client/Ats/AccountDetails/AccountDetailsClient.cs +++ b/src/Merge.Client/Ats/AccountDetails/AccountDetailsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/account-details", Options = options, diff --git a/src/Merge.Client/Ats/AccountToken/AccountTokenClient.cs b/src/Merge.Client/Ats/AccountToken/AccountTokenClient.cs index 2836189f..4d5d79de 100644 --- a/src/Merge.Client/Ats/AccountToken/AccountTokenClient.cs +++ b/src/Merge.Client/Ats/AccountToken/AccountTokenClient.cs @@ -30,7 +30,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/account-token/{0}", diff --git a/src/Merge.Client/Ats/Activities/ActivitiesClient.cs b/src/Merge.Client/Ats/Activities/ActivitiesClient.cs index 92954971..6884da4b 100644 --- a/src/Merge.Client/Ats/Activities/ActivitiesClient.cs +++ b/src/Merge.Client/Ats/Activities/ActivitiesClient.cs @@ -87,7 +87,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/activities", Query = _query, @@ -185,7 +185,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/activities", Body = request, @@ -254,7 +254,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/activities/{0}", @@ -304,7 +304,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/activities/meta/post", Options = options, diff --git a/src/Merge.Client/Ats/Applications/ApplicationsClient.cs b/src/Merge.Client/Ats/Applications/ApplicationsClient.cs index 64279185..564c67a4 100644 --- a/src/Merge.Client/Ats/Applications/ApplicationsClient.cs +++ b/src/Merge.Client/Ats/Applications/ApplicationsClient.cs @@ -99,7 +99,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/applications", Query = _query, @@ -204,7 +204,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/applications", Body = request, @@ -265,7 +265,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/applications/{0}", @@ -326,7 +326,7 @@ public async Task ChangeStageCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = string.Format( "ats/v1/applications/{0}/change-stage", @@ -384,7 +384,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/applications/meta/post", Query = _query, diff --git a/src/Merge.Client/Ats/AsyncPassthrough/AsyncPassthroughClient.cs b/src/Merge.Client/Ats/AsyncPassthrough/AsyncPassthroughClient.cs index e785642e..c0420e20 100644 --- a/src/Merge.Client/Ats/AsyncPassthrough/AsyncPassthroughClient.cs +++ b/src/Merge.Client/Ats/AsyncPassthrough/AsyncPassthroughClient.cs @@ -37,7 +37,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/async-passthrough", Body = request, @@ -86,7 +86,7 @@ public async Task> RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/async-passthrough/{0}", diff --git a/src/Merge.Client/Ats/Attachments/AttachmentsClient.cs b/src/Merge.Client/Ats/Attachments/AttachmentsClient.cs index f10ea696..9e047dd6 100644 --- a/src/Merge.Client/Ats/Attachments/AttachmentsClient.cs +++ b/src/Merge.Client/Ats/Attachments/AttachmentsClient.cs @@ -87,7 +87,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/attachments", Query = _query, @@ -189,7 +189,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/attachments", Body = request, @@ -258,7 +258,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/attachments/{0}", @@ -308,7 +308,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/attachments/meta/post", Options = options, diff --git a/src/Merge.Client/Ats/AuditTrail/AuditTrailClient.cs b/src/Merge.Client/Ats/AuditTrail/AuditTrailClient.cs index 8fb5a528..ceb3c3d4 100644 --- a/src/Merge.Client/Ats/AuditTrail/AuditTrailClient.cs +++ b/src/Merge.Client/Ats/AuditTrail/AuditTrailClient.cs @@ -52,7 +52,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/audit-trail", Query = _query, diff --git a/src/Merge.Client/Ats/AuditTrail/Requests/AuditTrailListRequest.cs b/src/Merge.Client/Ats/AuditTrail/Requests/AuditTrailListRequest.cs index 31121087..f9457e3b 100644 --- a/src/Merge.Client/Ats/AuditTrail/Requests/AuditTrailListRequest.cs +++ b/src/Merge.Client/Ats/AuditTrail/Requests/AuditTrailListRequest.cs @@ -18,7 +18,7 @@ public record AuditTrailListRequest public string? EndDate { get; set; } /// - /// If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` + /// If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` /// [JsonIgnore] public string? EventType { get; set; } diff --git a/src/Merge.Client/Ats/AvailableActions/AvailableActionsClient.cs b/src/Merge.Client/Ats/AvailableActions/AvailableActionsClient.cs index d73b80d7..c9dc8887 100644 --- a/src/Merge.Client/Ats/AvailableActions/AvailableActionsClient.cs +++ b/src/Merge.Client/Ats/AvailableActions/AvailableActionsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/available-actions", Options = options, diff --git a/src/Merge.Client/Ats/Candidates/CandidatesClient.cs b/src/Merge.Client/Ats/Candidates/CandidatesClient.cs index 78cfa8ca..26341cb4 100644 --- a/src/Merge.Client/Ats/Candidates/CandidatesClient.cs +++ b/src/Merge.Client/Ats/Candidates/CandidatesClient.cs @@ -92,7 +92,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/candidates", Query = _query, @@ -190,7 +190,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/candidates", Body = request, @@ -251,7 +251,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/candidates/{0}", @@ -319,7 +319,7 @@ public async Task PartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "ats/v1/candidates/{0}", @@ -379,7 +379,7 @@ public async Task PartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = string.Format( "ats/v1/candidates/ignore/{0}", @@ -422,7 +422,7 @@ public async Task MetaPatchRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/candidates/meta/patch/{0}", @@ -471,7 +471,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/candidates/meta/post", Options = options, diff --git a/src/Merge.Client/Ats/DeleteAccount/DeleteAccountClient.cs b/src/Merge.Client/Ats/DeleteAccount/DeleteAccountClient.cs index f480b4dd..295df2aa 100644 --- a/src/Merge.Client/Ats/DeleteAccount/DeleteAccountClient.cs +++ b/src/Merge.Client/Ats/DeleteAccount/DeleteAccountClient.cs @@ -29,7 +29,7 @@ internal DeleteAccountClient(RawClient client) .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/delete-account", Options = options, diff --git a/src/Merge.Client/Ats/Departments/DepartmentsClient.cs b/src/Merge.Client/Ats/Departments/DepartmentsClient.cs index ffccdf00..d2938a01 100644 --- a/src/Merge.Client/Ats/Departments/DepartmentsClient.cs +++ b/src/Merge.Client/Ats/Departments/DepartmentsClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/departments", Query = _query, @@ -171,7 +171,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/departments/{0}", diff --git a/src/Merge.Client/Ats/Eeocs/EeocsClient.cs b/src/Merge.Client/Ats/Eeocs/EeocsClient.cs index 184a7398..f6946d78 100644 --- a/src/Merge.Client/Ats/Eeocs/EeocsClient.cs +++ b/src/Merge.Client/Ats/Eeocs/EeocsClient.cs @@ -87,7 +87,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/eeocs", Query = _query, @@ -193,7 +193,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/eeocs/{0}", diff --git a/src/Merge.Client/Ats/FieldMapping/FieldMappingClient.cs b/src/Merge.Client/Ats/FieldMapping/FieldMappingClient.cs index fbd0e73c..080ff562 100644 --- a/src/Merge.Client/Ats/FieldMapping/FieldMappingClient.cs +++ b/src/Merge.Client/Ats/FieldMapping/FieldMappingClient.cs @@ -37,7 +37,7 @@ public async Task FieldMappingsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/field-mappings", Query = _query, @@ -102,7 +102,7 @@ public async Task FieldMappingsCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/field-mappings", Body = request, @@ -152,7 +152,7 @@ public async Task FieldMappingsDestroyAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Delete, Path = string.Format( "ats/v1/field-mappings/{0}", @@ -206,7 +206,7 @@ public async Task FieldMappingsPartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "ats/v1/field-mappings/{0}", @@ -267,7 +267,7 @@ public async Task RemoteFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/remote-fields", Query = _query, @@ -314,7 +314,7 @@ public async Task TargetFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/target-fields", Options = options, diff --git a/src/Merge.Client/Ats/ForceResync/ForceResyncClient.cs b/src/Merge.Client/Ats/ForceResync/ForceResyncClient.cs index 05d992b0..45d909f6 100644 --- a/src/Merge.Client/Ats/ForceResync/ForceResyncClient.cs +++ b/src/Merge.Client/Ats/ForceResync/ForceResyncClient.cs @@ -29,7 +29,7 @@ public async Task> SyncStatusResyncCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/sync-status/resync", Options = options, diff --git a/src/Merge.Client/Ats/GenerateKey/GenerateKeyClient.cs b/src/Merge.Client/Ats/GenerateKey/GenerateKeyClient.cs index 19616975..3251ea5d 100644 --- a/src/Merge.Client/Ats/GenerateKey/GenerateKeyClient.cs +++ b/src/Merge.Client/Ats/GenerateKey/GenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/generate-key", Body = request, diff --git a/src/Merge.Client/Ats/Interviews/InterviewsClient.cs b/src/Merge.Client/Ats/Interviews/InterviewsClient.cs index 01eb340d..cd40b15a 100644 --- a/src/Merge.Client/Ats/Interviews/InterviewsClient.cs +++ b/src/Merge.Client/Ats/Interviews/InterviewsClient.cs @@ -99,7 +99,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/interviews", Query = _query, @@ -201,7 +201,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/interviews", Body = request, @@ -270,7 +270,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/interviews/{0}", @@ -320,7 +320,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/interviews/meta/post", Options = options, diff --git a/src/Merge.Client/Ats/Issues/IssuesClient.cs b/src/Merge.Client/Ats/Issues/IssuesClient.cs index aa552f9a..77d4fb26 100644 --- a/src/Merge.Client/Ats/Issues/IssuesClient.cs +++ b/src/Merge.Client/Ats/Issues/IssuesClient.cs @@ -92,7 +92,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/issues", Query = _query, @@ -179,7 +179,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/issues/{0}", diff --git a/src/Merge.Client/Ats/JobInterviewStages/JobInterviewStagesClient.cs b/src/Merge.Client/Ats/JobInterviewStages/JobInterviewStagesClient.cs index 24e5e3d3..971f53f4 100644 --- a/src/Merge.Client/Ats/JobInterviewStages/JobInterviewStagesClient.cs +++ b/src/Merge.Client/Ats/JobInterviewStages/JobInterviewStagesClient.cs @@ -79,7 +79,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/job-interview-stages", Query = _query, @@ -177,7 +177,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/job-interview-stages/{0}", diff --git a/src/Merge.Client/Ats/JobPostings/JobPostingsClient.cs b/src/Merge.Client/Ats/JobPostings/JobPostingsClient.cs index 6441c986..b26d2881 100644 --- a/src/Merge.Client/Ats/JobPostings/JobPostingsClient.cs +++ b/src/Merge.Client/Ats/JobPostings/JobPostingsClient.cs @@ -79,7 +79,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/job-postings", Query = _query, @@ -177,7 +177,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/job-postings/{0}", diff --git a/src/Merge.Client/Ats/Jobs/JobsClient.cs b/src/Merge.Client/Ats/Jobs/JobsClient.cs index ffbdbe3b..40d9c358 100644 --- a/src/Merge.Client/Ats/Jobs/JobsClient.cs +++ b/src/Merge.Client/Ats/Jobs/JobsClient.cs @@ -95,7 +95,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/jobs", Query = _query, @@ -163,7 +163,7 @@ private async Task ScreeningQuestionsListInterna .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/jobs/{0}/screening-questions", @@ -272,7 +272,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format("ats/v1/jobs/{0}", ValueConvert.ToPathParameterString(id)), Query = _query, @@ -334,7 +334,7 @@ public async Task> ScreeningQuestionsListAsync( .CreateInstanceAsync( request, options, - (request, options, cancellationToken) => ScreeningQuestionsListInternalAsync(jobId, request, options, cancellationToken), + ScreeningQuestionsListInternalAsync, (request, cursor) => { request.Cursor = cursor; diff --git a/src/Merge.Client/Ats/LinkToken/LinkTokenClient.cs b/src/Merge.Client/Ats/LinkToken/LinkTokenClient.cs index fe14eca2..237ddd4f 100644 --- a/src/Merge.Client/Ats/LinkToken/LinkTokenClient.cs +++ b/src/Merge.Client/Ats/LinkToken/LinkTokenClient.cs @@ -42,7 +42,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/link-token", Body = request, diff --git a/src/Merge.Client/Ats/LinkToken/Requests/EndUserDetailsRequest.cs b/src/Merge.Client/Ats/LinkToken/Requests/EndUserDetailsRequest.cs index e1d29d97..0b6cb395 100644 --- a/src/Merge.Client/Ats/LinkToken/Requests/EndUserDetailsRequest.cs +++ b/src/Merge.Client/Ats/LinkToken/Requests/EndUserDetailsRequest.cs @@ -1,5 +1,6 @@ using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -75,7 +76,7 @@ public Dictionary< /// * `de` - de /// [JsonPropertyName("language")] - public LanguageEnum? Language { get; set; } + public OneOf? Language { get; set; } /// /// The boolean that indicates whether initial, periodic, and force syncs will be disabled. diff --git a/src/Merge.Client/Ats/LinkedAccounts/LinkedAccountsClient.cs b/src/Merge.Client/Ats/LinkedAccounts/LinkedAccountsClient.cs index 3d3047f4..b35c5754 100644 --- a/src/Merge.Client/Ats/LinkedAccounts/LinkedAccountsClient.cs +++ b/src/Merge.Client/Ats/LinkedAccounts/LinkedAccountsClient.cs @@ -80,7 +80,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/linked-accounts", Query = _query, diff --git a/src/Merge.Client/Ats/Offers/OffersClient.cs b/src/Merge.Client/Ats/Offers/OffersClient.cs index 9fa093a9..7a29bbac 100644 --- a/src/Merge.Client/Ats/Offers/OffersClient.cs +++ b/src/Merge.Client/Ats/Offers/OffersClient.cs @@ -91,7 +91,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/offers", Query = _query, @@ -197,7 +197,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/offers/{0}", diff --git a/src/Merge.Client/Ats/Offices/OfficesClient.cs b/src/Merge.Client/Ats/Offices/OfficesClient.cs index dd2f66c1..184b811e 100644 --- a/src/Merge.Client/Ats/Offices/OfficesClient.cs +++ b/src/Merge.Client/Ats/Offices/OfficesClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/offices", Query = _query, @@ -171,7 +171,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/offices/{0}", diff --git a/src/Merge.Client/Ats/Passthrough/PassthroughClient.cs b/src/Merge.Client/Ats/Passthrough/PassthroughClient.cs index 9caa31ff..a6539827 100644 --- a/src/Merge.Client/Ats/Passthrough/PassthroughClient.cs +++ b/src/Merge.Client/Ats/Passthrough/PassthroughClient.cs @@ -36,7 +36,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/passthrough", Body = request, diff --git a/src/Merge.Client/Ats/RegenerateKey/RegenerateKeyClient.cs b/src/Merge.Client/Ats/RegenerateKey/RegenerateKeyClient.cs index 4a0847a2..6e308a36 100644 --- a/src/Merge.Client/Ats/RegenerateKey/RegenerateKeyClient.cs +++ b/src/Merge.Client/Ats/RegenerateKey/RegenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/regenerate-key", Body = request, diff --git a/src/Merge.Client/Ats/RejectReasons/RejectReasonsClient.cs b/src/Merge.Client/Ats/RejectReasons/RejectReasonsClient.cs index 5e7ee4e5..8380e27a 100644 --- a/src/Merge.Client/Ats/RejectReasons/RejectReasonsClient.cs +++ b/src/Merge.Client/Ats/RejectReasons/RejectReasonsClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/reject-reasons", Query = _query, @@ -171,7 +171,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/reject-reasons/{0}", diff --git a/src/Merge.Client/Ats/Scopes/ScopesClient.cs b/src/Merge.Client/Ats/Scopes/ScopesClient.cs index 3d863907..aa0f789f 100644 --- a/src/Merge.Client/Ats/Scopes/ScopesClient.cs +++ b/src/Merge.Client/Ats/Scopes/ScopesClient.cs @@ -29,7 +29,7 @@ public async Task DefaultScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/default-scopes", Options = options, @@ -75,7 +75,7 @@ public async Task LinkedAccountScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/linked-account-scopes", Options = options, @@ -172,7 +172,7 @@ public async Task LinkedAccountScopesCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/linked-account-scopes", Body = request, diff --git a/src/Merge.Client/Ats/Scorecards/ScorecardsClient.cs b/src/Merge.Client/Ats/Scorecards/ScorecardsClient.cs index 17131996..8b24933a 100644 --- a/src/Merge.Client/Ats/Scorecards/ScorecardsClient.cs +++ b/src/Merge.Client/Ats/Scorecards/ScorecardsClient.cs @@ -95,7 +95,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/scorecards", Query = _query, @@ -201,7 +201,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/scorecards/{0}", diff --git a/src/Merge.Client/Ats/SyncStatus/SyncStatusClient.cs b/src/Merge.Client/Ats/SyncStatus/SyncStatusClient.cs index 85ee7bd5..9134c281 100644 --- a/src/Merge.Client/Ats/SyncStatus/SyncStatusClient.cs +++ b/src/Merge.Client/Ats/SyncStatus/SyncStatusClient.cs @@ -36,7 +36,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/sync-status", Query = _query, diff --git a/src/Merge.Client/Ats/Tags/TagsClient.cs b/src/Merge.Client/Ats/Tags/TagsClient.cs index 48a986b4..5d3ff749 100644 --- a/src/Merge.Client/Ats/Tags/TagsClient.cs +++ b/src/Merge.Client/Ats/Tags/TagsClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/tags", Query = _query, diff --git a/src/Merge.Client/Ats/Types/AccountDetails.cs b/src/Merge.Client/Ats/Types/AccountDetails.cs index bb706610..749ea914 100644 --- a/src/Merge.Client/Ats/Types/AccountDetails.cs +++ b/src/Merge.Client/Ats/Types/AccountDetails.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -19,7 +20,7 @@ public record AccountDetails public string? IntegrationSlug { get; set; } [JsonPropertyName("category")] - public CategoryEnum? Category { get; set; } + public OneOf? Category { get; set; } [JsonAccess(JsonAccessType.ReadOnly)] [JsonPropertyName("end_user_origin_id")] diff --git a/src/Merge.Client/Ats/Types/AccountDetailsAndActions.cs b/src/Merge.Client/Ats/Types/AccountDetailsAndActions.cs index 5d9769a3..4d61a6a1 100644 --- a/src/Merge.Client/Ats/Types/AccountDetailsAndActions.cs +++ b/src/Merge.Client/Ats/Types/AccountDetailsAndActions.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -18,10 +19,10 @@ public record AccountDetailsAndActions public required string Id { get; set; } [JsonPropertyName("category")] - public CategoryEnum? Category { get; set; } + public OneOf? Category { get; set; } [JsonPropertyName("status")] - public required AccountDetailsAndActionsStatusEnum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("status_detail")] public string? StatusDetail { get; set; } diff --git a/src/Merge.Client/Ats/Types/Activity.cs b/src/Merge.Client/Ats/Types/Activity.cs index 02c0a9bc..be287967 100644 --- a/src/Merge.Client/Ats/Types/Activity.cs +++ b/src/Merge.Client/Ats/Types/Activity.cs @@ -58,7 +58,7 @@ public record Activity /// * `OTHER` - OTHER /// [JsonPropertyName("activity_type")] - public ActivityTypeEnum? ActivityType { get; set; } + public OneOf? ActivityType { get; set; } /// /// The activity's subject. @@ -80,7 +80,7 @@ public record Activity /// * `PRIVATE` - PRIVATE /// [JsonPropertyName("visibility")] - public VisibilityEnum? Visibility { get; set; } + public OneOf? Visibility { get; set; } [JsonPropertyName("candidate")] public string? Candidate { get; set; } diff --git a/src/Merge.Client/Ats/Types/ActivityRequest.cs b/src/Merge.Client/Ats/Types/ActivityRequest.cs index a2073492..48897512 100644 --- a/src/Merge.Client/Ats/Types/ActivityRequest.cs +++ b/src/Merge.Client/Ats/Types/ActivityRequest.cs @@ -50,7 +50,7 @@ public record ActivityRequest /// * `PRIVATE` - PRIVATE /// [JsonPropertyName("visibility")] - public VisibilityEnum? Visibility { get; set; } + public OneOf? Visibility { get; set; } [JsonPropertyName("candidate")] public string? Candidate { get; set; } diff --git a/src/Merge.Client/Ats/Types/Attachment.cs b/src/Merge.Client/Ats/Types/Attachment.cs index 84dfedbe..c61010f7 100644 --- a/src/Merge.Client/Ats/Types/Attachment.cs +++ b/src/Merge.Client/Ats/Types/Attachment.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -61,7 +62,7 @@ public record Attachment /// * `OTHER` - OTHER /// [JsonPropertyName("attachment_type")] - public AttachmentTypeEnum? AttachmentType { get; set; } + public OneOf? AttachmentType { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Ats/Types/AttachmentRequest.cs b/src/Merge.Client/Ats/Types/AttachmentRequest.cs index ca13bedb..c63f2c0d 100644 --- a/src/Merge.Client/Ats/Types/AttachmentRequest.cs +++ b/src/Merge.Client/Ats/Types/AttachmentRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -37,7 +38,7 @@ public record AttachmentRequest /// * `OTHER` - OTHER /// [JsonPropertyName("attachment_type")] - public AttachmentTypeEnum? AttachmentType { get; set; } + public OneOf? AttachmentType { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/Ats/Types/AuditLogEvent.cs b/src/Merge.Client/Ats/Types/AuditLogEvent.cs index 35d9230b..a65cb4fa 100644 --- a/src/Merge.Client/Ats/Types/AuditLogEvent.cs +++ b/src/Merge.Client/Ats/Types/AuditLogEvent.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -33,7 +34,7 @@ public record AuditLogEvent /// * `MERGE_TEAM` - MERGE_TEAM /// [JsonPropertyName("role")] - public required RoleEnum Role { get; set; } + public required OneOf Role { get; set; } [JsonPropertyName("ip_address")] public required string IpAddress { get; set; } @@ -46,6 +47,7 @@ public record AuditLogEvent /// * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY /// * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY /// * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + /// * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE /// * `INVITED_USER` - INVITED_USER /// * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED /// * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED @@ -85,7 +87,7 @@ public record AuditLogEvent /// * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED /// [JsonPropertyName("event_type")] - public required EventTypeEnum EventType { get; set; } + public required OneOf EventType { get; set; } [JsonPropertyName("event_description")] public required string EventDescription { get; set; } diff --git a/src/Merge.Client/Ats/Types/Eeoc.cs b/src/Merge.Client/Ats/Types/Eeoc.cs index 2b04c6c0..3cae6f73 100644 --- a/src/Merge.Client/Ats/Types/Eeoc.cs +++ b/src/Merge.Client/Ats/Types/Eeoc.cs @@ -63,7 +63,7 @@ public record Eeoc /// * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY /// [JsonPropertyName("race")] - public RaceEnum? Race { get; set; } + public OneOf? Race { get; set; } /// /// The candidate's gender. @@ -75,7 +75,7 @@ public record Eeoc /// * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY /// [JsonPropertyName("gender")] - public GenderEnum? Gender { get; set; } + public OneOf? Gender { get; set; } /// /// The candidate's veteran status. @@ -85,7 +85,7 @@ public record Eeoc /// * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER /// [JsonPropertyName("veteran_status")] - public VeteranStatusEnum? VeteranStatus { get; set; } + public OneOf? VeteranStatus { get; set; } /// /// The candidate's disability status. @@ -95,7 +95,7 @@ public record Eeoc /// * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER /// [JsonPropertyName("disability_status")] - public DisabilityStatusEnum? DisabilityStatus { get; set; } + public OneOf? DisabilityStatus { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Ats/Types/EmailAddress.cs b/src/Merge.Client/Ats/Types/EmailAddress.cs index 9503814c..ad45e067 100644 --- a/src/Merge.Client/Ats/Types/EmailAddress.cs +++ b/src/Merge.Client/Ats/Types/EmailAddress.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -41,7 +42,7 @@ public record EmailAddress /// * `OTHER` - OTHER /// [JsonPropertyName("email_address_type")] - public EmailAddressTypeEnum? EmailAddressType { get; set; } + public OneOf? EmailAddressType { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Ats/Types/EmailAddressRequest.cs b/src/Merge.Client/Ats/Types/EmailAddressRequest.cs index 9246e436..3c6a9a4a 100644 --- a/src/Merge.Client/Ats/Types/EmailAddressRequest.cs +++ b/src/Merge.Client/Ats/Types/EmailAddressRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -27,7 +28,7 @@ public record EmailAddressRequest /// * `OTHER` - OTHER /// [JsonPropertyName("email_address_type")] - public EmailAddressTypeEnum? EmailAddressType { get; set; } + public OneOf? EmailAddressType { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/Ats/Types/EventTypeEnum.cs b/src/Merge.Client/Ats/Types/EventTypeEnum.cs index 423c3bdc..f77548ca 100644 --- a/src/Merge.Client/Ats/Types/EventTypeEnum.cs +++ b/src/Merge.Client/Ats/Types/EventTypeEnum.cs @@ -22,6 +22,9 @@ public enum EventTypeEnum [EnumMember(Value = "REGENERATED_PRODUCTION_API_KEY")] RegeneratedProductionApiKey, + [EnumMember(Value = "REGENERATED_WEBHOOK_SIGNATURE")] + RegeneratedWebhookSignature, + [EnumMember(Value = "INVITED_USER")] InvitedUser, diff --git a/src/Merge.Client/Ats/Types/IgnoreCommonModelRequest.cs b/src/Merge.Client/Ats/Types/IgnoreCommonModelRequest.cs index e6c462d6..95dc4fd8 100644 --- a/src/Merge.Client/Ats/Types/IgnoreCommonModelRequest.cs +++ b/src/Merge.Client/Ats/Types/IgnoreCommonModelRequest.cs @@ -1,13 +1,14 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; public record IgnoreCommonModelRequest { [JsonPropertyName("reason")] - public required ReasonEnum Reason { get; set; } + public required OneOf Reason { get; set; } [JsonPropertyName("message")] public string? Message { get; set; } diff --git a/src/Merge.Client/Ats/Types/Issue.cs b/src/Merge.Client/Ats/Types/Issue.cs index a7b8b0dc..17724373 100644 --- a/src/Merge.Client/Ats/Types/Issue.cs +++ b/src/Merge.Client/Ats/Types/Issue.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -17,7 +18,7 @@ public record Issue /// * `RESOLVED` - RESOLVED /// [JsonPropertyName("status")] - public IssueStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } [JsonPropertyName("error_description")] public required string ErrorDescription { get; set; } diff --git a/src/Merge.Client/Ats/Types/Job.cs b/src/Merge.Client/Ats/Types/Job.cs index 3087e3e7..de4d0c9c 100644 --- a/src/Merge.Client/Ats/Types/Job.cs +++ b/src/Merge.Client/Ats/Types/Job.cs @@ -66,7 +66,7 @@ public record Job /// * `PENDING` - PENDING /// [JsonPropertyName("status")] - public JobStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The job's type. @@ -76,7 +76,7 @@ public record Job /// * `PROFILE` - PROFILE /// [JsonPropertyName("type")] - public JobTypeEnum? Type { get; set; } + public OneOf? Type { get; set; } /// /// IDs of `JobPosting` objects that serve as job postings for this `Job`. diff --git a/src/Merge.Client/Ats/Types/JobPosting.cs b/src/Merge.Client/Ats/Types/JobPosting.cs index c2005969..b5227266 100644 --- a/src/Merge.Client/Ats/Types/JobPosting.cs +++ b/src/Merge.Client/Ats/Types/JobPosting.cs @@ -66,7 +66,7 @@ public record JobPosting /// * `PENDING` - PENDING /// [JsonPropertyName("status")] - public JobPostingStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The job posting’s content. diff --git a/src/Merge.Client/Ats/Types/MultipartFormFieldRequest.cs b/src/Merge.Client/Ats/Types/MultipartFormFieldRequest.cs index 68d7483c..ffe25f84 100644 --- a/src/Merge.Client/Ats/Types/MultipartFormFieldRequest.cs +++ b/src/Merge.Client/Ats/Types/MultipartFormFieldRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -34,7 +35,7 @@ public record MultipartFormFieldRequest /// * `GZIP_BASE64` - GZIP_BASE64 /// [JsonPropertyName("encoding")] - public EncodingEnum? Encoding { get; set; } + public OneOf? Encoding { get; set; } /// /// The file name of the form field, if the field is for a file. diff --git a/src/Merge.Client/Ats/Types/Offer.cs b/src/Merge.Client/Ats/Types/Offer.cs index f289f80d..8b92acb9 100644 --- a/src/Merge.Client/Ats/Types/Offer.cs +++ b/src/Merge.Client/Ats/Types/Offer.cs @@ -88,7 +88,7 @@ public record Offer /// * `DEPRECATED` - DEPRECATED /// [JsonPropertyName("status")] - public OfferStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Ats/Types/PhoneNumber.cs b/src/Merge.Client/Ats/Types/PhoneNumber.cs index d958a81c..fe868cbd 100644 --- a/src/Merge.Client/Ats/Types/PhoneNumber.cs +++ b/src/Merge.Client/Ats/Types/PhoneNumber.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -43,7 +44,7 @@ public record PhoneNumber /// * `OTHER` - OTHER /// [JsonPropertyName("phone_number_type")] - public PhoneNumberTypeEnum? PhoneNumberType { get; set; } + public OneOf? PhoneNumberType { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Ats/Types/PhoneNumberRequest.cs b/src/Merge.Client/Ats/Types/PhoneNumberRequest.cs index 6761d03c..672549bb 100644 --- a/src/Merge.Client/Ats/Types/PhoneNumberRequest.cs +++ b/src/Merge.Client/Ats/Types/PhoneNumberRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -29,7 +30,7 @@ public record PhoneNumberRequest /// * `OTHER` - OTHER /// [JsonPropertyName("phone_number_type")] - public PhoneNumberTypeEnum? PhoneNumberType { get; set; } + public OneOf? PhoneNumberType { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/Ats/Types/RemoteResponse.cs b/src/Merge.Client/Ats/Types/RemoteResponse.cs index 11b38424..0b122dbf 100644 --- a/src/Merge.Client/Ats/Types/RemoteResponse.cs +++ b/src/Merge.Client/Ats/Types/RemoteResponse.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -30,7 +31,7 @@ public record RemoteResponse public Dictionary? ResponseHeaders { get; set; } [JsonPropertyName("response_type")] - public ResponseTypeEnum? ResponseType { get; set; } + public OneOf? ResponseType { get; set; } [JsonPropertyName("headers")] public Dictionary? Headers { get; set; } diff --git a/src/Merge.Client/Ats/Types/RemoteUser.cs b/src/Merge.Client/Ats/Types/RemoteUser.cs index b011dce9..dec2356d 100644 --- a/src/Merge.Client/Ats/Types/RemoteUser.cs +++ b/src/Merge.Client/Ats/Types/RemoteUser.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -77,7 +78,7 @@ public record RemoteUser /// * `INTERVIEWER` - INTERVIEWER /// [JsonPropertyName("access_role")] - public AccessRoleEnum? AccessRole { get; set; } + public OneOf? AccessRole { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Ats/Types/ScheduledInterview.cs b/src/Merge.Client/Ats/Types/ScheduledInterview.cs index 732da622..d67cdcff 100644 --- a/src/Merge.Client/Ats/Types/ScheduledInterview.cs +++ b/src/Merge.Client/Ats/Types/ScheduledInterview.cs @@ -100,7 +100,7 @@ public record ScheduledInterview /// * `COMPLETE` - COMPLETE /// [JsonPropertyName("status")] - public ScheduledInterviewStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Ats/Types/ScheduledInterviewRequest.cs b/src/Merge.Client/Ats/Types/ScheduledInterviewRequest.cs index 91123e8b..a3cf145e 100644 --- a/src/Merge.Client/Ats/Types/ScheduledInterviewRequest.cs +++ b/src/Merge.Client/Ats/Types/ScheduledInterviewRequest.cs @@ -64,7 +64,7 @@ public record ScheduledInterviewRequest /// * `COMPLETE` - COMPLETE /// [JsonPropertyName("status")] - public ScheduledInterviewStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/Ats/Types/Scorecard.cs b/src/Merge.Client/Ats/Types/Scorecard.cs index 9301f147..c6b4ca05 100644 --- a/src/Merge.Client/Ats/Types/Scorecard.cs +++ b/src/Merge.Client/Ats/Types/Scorecard.cs @@ -78,7 +78,7 @@ public record Scorecard /// * `NO_DECISION` - NO_DECISION /// [JsonPropertyName("overall_recommendation")] - public OverallRecommendationEnum? OverallRecommendation { get; set; } + public OneOf? OverallRecommendation { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Ats/Types/ScreeningQuestion.cs b/src/Merge.Client/Ats/Types/ScreeningQuestion.cs index afd487e0..62a96b1c 100644 --- a/src/Merge.Client/Ats/Types/ScreeningQuestion.cs +++ b/src/Merge.Client/Ats/Types/ScreeningQuestion.cs @@ -70,7 +70,7 @@ public record ScreeningQuestion /// * `BOOLEAN` - BOOLEAN /// [JsonPropertyName("type")] - public ScreeningQuestionTypeEnum? Type { get; set; } + public OneOf? Type { get; set; } /// /// Whether or not the screening question is required. diff --git a/src/Merge.Client/Ats/Types/SyncStatus.cs b/src/Merge.Client/Ats/Types/SyncStatus.cs index a13e89f9..09ae96ce 100644 --- a/src/Merge.Client/Ats/Types/SyncStatus.cs +++ b/src/Merge.Client/Ats/Types/SyncStatus.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -27,13 +28,13 @@ public record SyncStatus public DateTime? NextSyncStart { get; set; } [JsonPropertyName("last_sync_result")] - public LastSyncResultEnum? LastSyncResult { get; set; } + public OneOf? LastSyncResult { get; set; } [JsonPropertyName("last_sync_finished")] public DateTime? LastSyncFinished { get; set; } [JsonPropertyName("status")] - public required StatusFd5Enum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("is_initial_sync")] public required bool IsInitialSync { get; set; } diff --git a/src/Merge.Client/Ats/Types/Url.cs b/src/Merge.Client/Ats/Types/Url.cs index 62797206..947ee6af 100644 --- a/src/Merge.Client/Ats/Types/Url.cs +++ b/src/Merge.Client/Ats/Types/Url.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -45,7 +46,7 @@ public record Url /// * `JOB_POSTING` - JOB_POSTING /// [JsonPropertyName("url_type")] - public UrlTypeEnum? UrlType { get; set; } + public OneOf? UrlType { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Ats/Types/UrlRequest.cs b/src/Merge.Client/Ats/Types/UrlRequest.cs index 9e0938ab..41252309 100644 --- a/src/Merge.Client/Ats/Types/UrlRequest.cs +++ b/src/Merge.Client/Ats/Types/UrlRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ats; @@ -31,7 +32,7 @@ public record UrlRequest /// * `JOB_POSTING` - JOB_POSTING /// [JsonPropertyName("url_type")] - public UrlTypeEnum? UrlType { get; set; } + public OneOf? UrlType { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/Ats/Users/UsersClient.cs b/src/Merge.Client/Ats/Users/UsersClient.cs index 600db41d..9ee20ba9 100644 --- a/src/Merge.Client/Ats/Users/UsersClient.cs +++ b/src/Merge.Client/Ats/Users/UsersClient.cs @@ -86,7 +86,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/users", Query = _query, @@ -191,7 +191,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ats/v1/users/{0}", diff --git a/src/Merge.Client/Ats/WebhookReceivers/WebhookReceiversClient.cs b/src/Merge.Client/Ats/WebhookReceivers/WebhookReceiversClient.cs index b9f042a8..55c24b2d 100644 --- a/src/Merge.Client/Ats/WebhookReceivers/WebhookReceiversClient.cs +++ b/src/Merge.Client/Ats/WebhookReceivers/WebhookReceiversClient.cs @@ -29,7 +29,7 @@ public async Task> ListAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ats/v1/webhook-receivers", Options = options, @@ -78,7 +78,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ats/v1/webhook-receivers", Body = request, diff --git a/src/Merge.Client/BaseMergeClient.cs b/src/Merge.Client/BaseMergeClient.cs index e61d0a2b..f5fa15e5 100644 --- a/src/Merge.Client/BaseMergeClient.cs +++ b/src/Merge.Client/BaseMergeClient.cs @@ -8,7 +8,7 @@ namespace Merge.Client; -public partial class BaseMergeClient +internal partial class BaseMergeClient { private readonly RawClient _client; @@ -26,7 +26,7 @@ public BaseMergeClient( { "X-Fern-Language", "C#" }, { "X-Fern-SDK-Name", "Merge.Client" }, { "X-Fern-SDK-Version", Version.Current }, - { "User-Agent", "Merge.Client/2.0.0" }, + { "User-Agent", "Merge.Client/3.0.0" }, } ); clientOptions ??= new ClientOptions(); diff --git a/src/Merge.Client/Core/Public/ClientOptions.cs b/src/Merge.Client/Core/Public/ClientOptions.cs index 2653c79b..95737114 100644 --- a/src/Merge.Client/Core/Public/ClientOptions.cs +++ b/src/Merge.Client/Core/Public/ClientOptions.cs @@ -12,9 +12,9 @@ public partial class ClientOptions internal Headers Headers { get; init; } = new(); /// - /// The Environment for the API. + /// The Base URL for the API. /// - public MergeEnvironment Environment { get; + public string BaseUrl { get; #if NET5_0_OR_GREATER init; #else @@ -74,7 +74,7 @@ internal ClientOptions Clone() { return new ClientOptions { - Environment = Environment, + BaseUrl = BaseUrl, HttpClient = HttpClient, MaxRetries = MaxRetries, Timeout = Timeout, diff --git a/src/Merge.Client/Core/Public/MergeEnvironment.cs b/src/Merge.Client/Core/Public/MergeEnvironment.cs index a15f1205..4acc7c5e 100644 --- a/src/Merge.Client/Core/Public/MergeEnvironment.cs +++ b/src/Merge.Client/Core/Public/MergeEnvironment.cs @@ -2,19 +2,9 @@ namespace Merge.Client.Core; public class MergeEnvironment { - public static readonly MergeEnvironment PRODUCTION = new MergeEnvironment - { - Api = "https://api.merge.dev/api", - }; + public const string PRODUCTION = "https://api.merge.dev/api"; - /// - /// URL for the api service - /// - public string Api { get; -#if NET5_0_OR_GREATER - init; -#else - set; -#endif - } + public const string PRODUCTION_EU = "https://api-eu.merge.dev/api"; + + public const string SANDBOX = "https://api-sandbox.merge.dev/api"; } diff --git a/src/Merge.Client/Core/Public/Version.cs b/src/Merge.Client/Core/Public/Version.cs index c2323aca..66443a5a 100644 --- a/src/Merge.Client/Core/Public/Version.cs +++ b/src/Merge.Client/Core/Public/Version.cs @@ -2,5 +2,5 @@ namespace Merge.Client; internal class Version { - public const string Current = "2.0.0"; + public const string Current = "3.0.0"; } diff --git a/src/Merge.Client/Core/RawClient.cs b/src/Merge.Client/Core/RawClient.cs index 4c9629c4..946fcd18 100644 --- a/src/Merge.Client/Core/RawClient.cs +++ b/src/Merge.Client/Core/RawClient.cs @@ -266,18 +266,10 @@ Dictionary inputDict break; case IEnumerable strList: { - if (kvp.Key == "expand") - { - result.Add(new KeyValuePair(kvp.Key, string.Join(",", strList))); - } - else - { - foreach (var value in strList) { result.Add(new KeyValuePair(kvp.Key, value)); } - } break; } diff --git a/src/Merge.Client/Crm/AccountDetails/AccountDetailsClient.cs b/src/Merge.Client/Crm/AccountDetails/AccountDetailsClient.cs index 81f5e127..e0346883 100644 --- a/src/Merge.Client/Crm/AccountDetails/AccountDetailsClient.cs +++ b/src/Merge.Client/Crm/AccountDetails/AccountDetailsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/account-details", Options = options, diff --git a/src/Merge.Client/Crm/AccountToken/AccountTokenClient.cs b/src/Merge.Client/Crm/AccountToken/AccountTokenClient.cs index 2a96303c..8925d45a 100644 --- a/src/Merge.Client/Crm/AccountToken/AccountTokenClient.cs +++ b/src/Merge.Client/Crm/AccountToken/AccountTokenClient.cs @@ -30,7 +30,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/account-token/{0}", diff --git a/src/Merge.Client/Crm/Accounts/AccountsClient.cs b/src/Merge.Client/Crm/Accounts/AccountsClient.cs index 4e2b2dce..9fca56d1 100644 --- a/src/Merge.Client/Crm/Accounts/AccountsClient.cs +++ b/src/Merge.Client/Crm/Accounts/AccountsClient.cs @@ -89,7 +89,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/accounts", Query = _query, @@ -157,6 +157,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -165,7 +169,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/accounts/remote-field-classes", Query = _query, @@ -263,7 +267,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/accounts", Body = request, @@ -330,7 +334,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/accounts/{0}", @@ -394,7 +398,7 @@ public async Task PartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "crm/v1/accounts/{0}", @@ -447,7 +451,7 @@ public async Task MetaPatchRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/accounts/meta/patch/{0}", @@ -496,7 +500,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/accounts/meta/post", Options = options, diff --git a/src/Merge.Client/Crm/Accounts/Requests/AccountsRemoteFieldClassesListRequest.cs b/src/Merge.Client/Crm/Accounts/Requests/AccountsRemoteFieldClassesListRequest.cs index a8875169..e821d5bd 100644 --- a/src/Merge.Client/Crm/Accounts/Requests/AccountsRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Crm/Accounts/Requests/AccountsRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record AccountsRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Crm/AssociationTypes/AssociationTypesClient.cs b/src/Merge.Client/Crm/AssociationTypes/AssociationTypesClient.cs index a2c0a1fe..63bcd8be 100644 --- a/src/Merge.Client/Crm/AssociationTypes/AssociationTypesClient.cs +++ b/src/Merge.Client/Crm/AssociationTypes/AssociationTypesClient.cs @@ -76,7 +76,7 @@ private async Task CustomObjectClassesAssociationT .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/custom-object-classes/{0}/association-types", @@ -141,7 +141,7 @@ public async Task> CustomObjectClassesAssociationTypesLis .CreateInstanceAsync( request, options, - (request, options, cancellationToken) => CustomObjectClassesAssociationTypesListInternalAsync(customObjectClassId, request, options, cancellationToken), + CustomObjectClassesAssociationTypesListInternalAsync, (request, cursor) => { request.Cursor = cursor; @@ -202,7 +202,7 @@ public async Task CustomObjectClassesAssociationType .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = string.Format( "crm/v1/custom-object-classes/{0}/association-types", @@ -271,7 +271,7 @@ public async Task CustomObjectClassesAssociationTypesRetrieveAs .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/custom-object-classes/{0}/association-types/{1}", @@ -325,7 +325,7 @@ public async Task CustomObjectClassesAssociationTypesMetaPostRetri .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/custom-object-classes/{0}/association-types/meta/post", diff --git a/src/Merge.Client/Crm/Associations/AssociationsClient.cs b/src/Merge.Client/Crm/Associations/AssociationsClient.cs index 2f45650d..75bf43d1 100644 --- a/src/Merge.Client/Crm/Associations/AssociationsClient.cs +++ b/src/Merge.Client/Crm/Associations/AssociationsClient.cs @@ -81,7 +81,7 @@ private async Task CustomObjectClassesCustomObjectsAss .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/custom-object-classes/{0}/custom-objects/{1}/associations", @@ -149,7 +149,7 @@ public async Task> CustomObjectClassesCustomObjectsAssociatio .CreateInstanceAsync( request, options, - (request, options, cancellationToken) => CustomObjectClassesCustomObjectsAssociationsListInternalAsync(customObjectClassId, objectId, request, options, cancellationToken), + CustomObjectClassesCustomObjectsAssociationsListInternalAsync, (request, cursor) => { request.Cursor = cursor; @@ -199,7 +199,7 @@ public async Task CustomObjectClassesCustomObjectsAssociationsUpdat .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Put, Path = string.Format( "crm/v1/custom-object-classes/{0}/custom-objects/{1}/associations/{2}/{3}/{4}", diff --git a/src/Merge.Client/Crm/AsyncPassthrough/AsyncPassthroughClient.cs b/src/Merge.Client/Crm/AsyncPassthrough/AsyncPassthroughClient.cs index 73be59b2..ca8803d1 100644 --- a/src/Merge.Client/Crm/AsyncPassthrough/AsyncPassthroughClient.cs +++ b/src/Merge.Client/Crm/AsyncPassthrough/AsyncPassthroughClient.cs @@ -37,7 +37,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/async-passthrough", Body = request, @@ -86,7 +86,7 @@ public async Task> RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/async-passthrough/{0}", diff --git a/src/Merge.Client/Crm/AuditTrail/AuditTrailClient.cs b/src/Merge.Client/Crm/AuditTrail/AuditTrailClient.cs index db0d526e..56e3e813 100644 --- a/src/Merge.Client/Crm/AuditTrail/AuditTrailClient.cs +++ b/src/Merge.Client/Crm/AuditTrail/AuditTrailClient.cs @@ -52,7 +52,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/audit-trail", Query = _query, diff --git a/src/Merge.Client/Crm/AuditTrail/Requests/AuditTrailListRequest.cs b/src/Merge.Client/Crm/AuditTrail/Requests/AuditTrailListRequest.cs index 83263f39..b3cd1c91 100644 --- a/src/Merge.Client/Crm/AuditTrail/Requests/AuditTrailListRequest.cs +++ b/src/Merge.Client/Crm/AuditTrail/Requests/AuditTrailListRequest.cs @@ -18,7 +18,7 @@ public record AuditTrailListRequest public string? EndDate { get; set; } /// - /// If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` + /// If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` /// [JsonIgnore] public string? EventType { get; set; } diff --git a/src/Merge.Client/Crm/AvailableActions/AvailableActionsClient.cs b/src/Merge.Client/Crm/AvailableActions/AvailableActionsClient.cs index b3f1bc85..1c489449 100644 --- a/src/Merge.Client/Crm/AvailableActions/AvailableActionsClient.cs +++ b/src/Merge.Client/Crm/AvailableActions/AvailableActionsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/available-actions", Options = options, diff --git a/src/Merge.Client/Crm/Contacts/ContactsClient.cs b/src/Merge.Client/Crm/Contacts/ContactsClient.cs index 011b8c1b..9f93ea14 100644 --- a/src/Merge.Client/Crm/Contacts/ContactsClient.cs +++ b/src/Merge.Client/Crm/Contacts/ContactsClient.cs @@ -94,7 +94,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/contacts", Query = _query, @@ -162,6 +162,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -170,7 +174,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/contacts/remote-field-classes", Query = _query, @@ -268,7 +272,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/contacts", Body = request, @@ -335,7 +339,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/contacts/{0}", @@ -399,7 +403,7 @@ public async Task PartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "crm/v1/contacts/{0}", @@ -459,7 +463,7 @@ public async Task PartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = string.Format( "crm/v1/contacts/ignore/{0}", @@ -502,7 +506,7 @@ public async Task MetaPatchRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/contacts/meta/patch/{0}", @@ -551,7 +555,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/contacts/meta/post", Options = options, diff --git a/src/Merge.Client/Crm/Contacts/Requests/ContactsRemoteFieldClassesListRequest.cs b/src/Merge.Client/Crm/Contacts/Requests/ContactsRemoteFieldClassesListRequest.cs index 786b28a0..40573c72 100644 --- a/src/Merge.Client/Crm/Contacts/Requests/ContactsRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Crm/Contacts/Requests/ContactsRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record ContactsRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Crm/CustomObjectClasses/CustomObjectClassesClient.cs b/src/Merge.Client/Crm/CustomObjectClasses/CustomObjectClassesClient.cs index f5c612ee..5c9c3765 100644 --- a/src/Merge.Client/Crm/CustomObjectClasses/CustomObjectClassesClient.cs +++ b/src/Merge.Client/Crm/CustomObjectClasses/CustomObjectClassesClient.cs @@ -75,7 +75,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/custom-object-classes", Query = _query, @@ -173,7 +173,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/custom-object-classes/{0}", diff --git a/src/Merge.Client/Crm/CustomObjects/CustomObjectsClient.cs b/src/Merge.Client/Crm/CustomObjects/CustomObjectsClient.cs index 168a467e..483167a9 100644 --- a/src/Merge.Client/Crm/CustomObjects/CustomObjectsClient.cs +++ b/src/Merge.Client/Crm/CustomObjects/CustomObjectsClient.cs @@ -81,7 +81,7 @@ private async Task CustomObjectClassesCustomObjectsLi .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/custom-object-classes/{0}/custom-objects", @@ -152,6 +152,10 @@ private async Task CustomObjectClassesCustomObjec { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -160,7 +164,7 @@ private async Task CustomObjectClassesCustomObjec .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/custom-object-classes/custom-objects/remote-field-classes", Query = _query, @@ -222,7 +226,7 @@ public async Task> CustomObjectClassesCustomObjectsListAsync .CreateInstanceAsync( request, options, - (request, options, cancellationToken) => CustomObjectClassesCustomObjectsListInternalAsync(customObjectClassId, request, options, cancellationToken), + CustomObjectClassesCustomObjectsListInternalAsync, (request, cursor) => { request.Cursor = cursor; @@ -270,7 +274,7 @@ public async Task CustomObjectClassesCustomObjectsCreat .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = string.Format( "crm/v1/custom-object-classes/{0}/custom-objects", @@ -344,7 +348,7 @@ public async Task CustomObjectClassesCustomObjectsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/custom-object-classes/{0}/custom-objects/{1}", @@ -398,7 +402,7 @@ public async Task CustomObjectClassesCustomObjectsMetaPostRetrieve .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/custom-object-classes/{0}/custom-objects/meta/post", diff --git a/src/Merge.Client/Crm/CustomObjects/Requests/CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest.cs b/src/Merge.Client/Crm/CustomObjects/Requests/CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest.cs index 44adfe25..7b53610f 100644 --- a/src/Merge.Client/Crm/CustomObjects/Requests/CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Crm/CustomObjects/Requests/CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Crm/DeleteAccount/DeleteAccountClient.cs b/src/Merge.Client/Crm/DeleteAccount/DeleteAccountClient.cs index 4bfb6bcb..6de105e2 100644 --- a/src/Merge.Client/Crm/DeleteAccount/DeleteAccountClient.cs +++ b/src/Merge.Client/Crm/DeleteAccount/DeleteAccountClient.cs @@ -29,7 +29,7 @@ internal DeleteAccountClient(RawClient client) .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/delete-account", Options = options, diff --git a/src/Merge.Client/Crm/EngagementTypes/EngagementTypesClient.cs b/src/Merge.Client/Crm/EngagementTypes/EngagementTypesClient.cs index eba5a89a..37192fc3 100644 --- a/src/Merge.Client/Crm/EngagementTypes/EngagementTypesClient.cs +++ b/src/Merge.Client/Crm/EngagementTypes/EngagementTypesClient.cs @@ -80,7 +80,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/engagement-types", Query = _query, @@ -148,6 +148,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -156,7 +160,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/engagement-types/remote-field-classes", Query = _query, @@ -259,7 +263,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/engagement-types/{0}", diff --git a/src/Merge.Client/Crm/EngagementTypes/Requests/EngagementTypesRemoteFieldClassesListRequest.cs b/src/Merge.Client/Crm/EngagementTypes/Requests/EngagementTypesRemoteFieldClassesListRequest.cs index 8949c11f..e6a104a7 100644 --- a/src/Merge.Client/Crm/EngagementTypes/Requests/EngagementTypesRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Crm/EngagementTypes/Requests/EngagementTypesRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record EngagementTypesRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Crm/Engagements/EngagementsClient.cs b/src/Merge.Client/Crm/Engagements/EngagementsClient.cs index 2963a852..61689ac5 100644 --- a/src/Merge.Client/Crm/Engagements/EngagementsClient.cs +++ b/src/Merge.Client/Crm/Engagements/EngagementsClient.cs @@ -91,7 +91,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/engagements", Query = _query, @@ -159,6 +159,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -167,7 +171,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/engagements/remote-field-classes", Query = _query, @@ -265,7 +269,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/engagements", Body = request, @@ -332,7 +336,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/engagements/{0}", @@ -396,7 +400,7 @@ public async Task PartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "crm/v1/engagements/{0}", @@ -449,7 +453,7 @@ public async Task MetaPatchRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/engagements/meta/patch/{0}", @@ -498,7 +502,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/engagements/meta/post", Options = options, diff --git a/src/Merge.Client/Crm/Engagements/Requests/EngagementsRemoteFieldClassesListRequest.cs b/src/Merge.Client/Crm/Engagements/Requests/EngagementsRemoteFieldClassesListRequest.cs index 989fa9c5..0d671f48 100644 --- a/src/Merge.Client/Crm/Engagements/Requests/EngagementsRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Crm/Engagements/Requests/EngagementsRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record EngagementsRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Crm/FieldMapping/FieldMappingClient.cs b/src/Merge.Client/Crm/FieldMapping/FieldMappingClient.cs index bfc3a8cf..7e256abe 100644 --- a/src/Merge.Client/Crm/FieldMapping/FieldMappingClient.cs +++ b/src/Merge.Client/Crm/FieldMapping/FieldMappingClient.cs @@ -37,7 +37,7 @@ public async Task FieldMappingsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/field-mappings", Query = _query, @@ -102,7 +102,7 @@ public async Task FieldMappingsCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/field-mappings", Body = request, @@ -152,7 +152,7 @@ public async Task FieldMappingsDestroyAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Delete, Path = string.Format( "crm/v1/field-mappings/{0}", @@ -206,7 +206,7 @@ public async Task FieldMappingsPartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "crm/v1/field-mappings/{0}", @@ -267,7 +267,7 @@ public async Task RemoteFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/remote-fields", Query = _query, @@ -314,7 +314,7 @@ public async Task TargetFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/target-fields", Options = options, diff --git a/src/Merge.Client/Crm/ForceResync/ForceResyncClient.cs b/src/Merge.Client/Crm/ForceResync/ForceResyncClient.cs index 6f90ee28..0917987f 100644 --- a/src/Merge.Client/Crm/ForceResync/ForceResyncClient.cs +++ b/src/Merge.Client/Crm/ForceResync/ForceResyncClient.cs @@ -29,7 +29,7 @@ public async Task> SyncStatusResyncCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/sync-status/resync", Options = options, diff --git a/src/Merge.Client/Crm/GenerateKey/GenerateKeyClient.cs b/src/Merge.Client/Crm/GenerateKey/GenerateKeyClient.cs index 9975f36d..5fdf9c36 100644 --- a/src/Merge.Client/Crm/GenerateKey/GenerateKeyClient.cs +++ b/src/Merge.Client/Crm/GenerateKey/GenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/generate-key", Body = request, diff --git a/src/Merge.Client/Crm/Issues/IssuesClient.cs b/src/Merge.Client/Crm/Issues/IssuesClient.cs index ed850c0c..ae55b944 100644 --- a/src/Merge.Client/Crm/Issues/IssuesClient.cs +++ b/src/Merge.Client/Crm/Issues/IssuesClient.cs @@ -92,7 +92,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/issues", Query = _query, @@ -179,7 +179,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/issues/{0}", diff --git a/src/Merge.Client/Crm/Leads/LeadsClient.cs b/src/Merge.Client/Crm/Leads/LeadsClient.cs index 1745a558..ef57f2f3 100644 --- a/src/Merge.Client/Crm/Leads/LeadsClient.cs +++ b/src/Merge.Client/Crm/Leads/LeadsClient.cs @@ -101,7 +101,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/leads", Query = _query, @@ -169,6 +169,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -177,7 +181,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/leads/remote-field-classes", Query = _query, @@ -273,7 +277,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/leads", Body = request, @@ -340,7 +344,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/leads/{0}", @@ -390,7 +394,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/leads/meta/post", Options = options, diff --git a/src/Merge.Client/Crm/Leads/Requests/LeadsRemoteFieldClassesListRequest.cs b/src/Merge.Client/Crm/Leads/Requests/LeadsRemoteFieldClassesListRequest.cs index 36f38dbe..24d54726 100644 --- a/src/Merge.Client/Crm/Leads/Requests/LeadsRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Crm/Leads/Requests/LeadsRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record LeadsRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Crm/LinkToken/LinkTokenClient.cs b/src/Merge.Client/Crm/LinkToken/LinkTokenClient.cs index e8d3a8ff..be635ecd 100644 --- a/src/Merge.Client/Crm/LinkToken/LinkTokenClient.cs +++ b/src/Merge.Client/Crm/LinkToken/LinkTokenClient.cs @@ -42,7 +42,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/link-token", Body = request, diff --git a/src/Merge.Client/Crm/LinkToken/Requests/EndUserDetailsRequest.cs b/src/Merge.Client/Crm/LinkToken/Requests/EndUserDetailsRequest.cs index 4335970c..89e53738 100644 --- a/src/Merge.Client/Crm/LinkToken/Requests/EndUserDetailsRequest.cs +++ b/src/Merge.Client/Crm/LinkToken/Requests/EndUserDetailsRequest.cs @@ -1,5 +1,6 @@ using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -75,7 +76,7 @@ public Dictionary< /// * `de` - de /// [JsonPropertyName("language")] - public LanguageEnum? Language { get; set; } + public OneOf? Language { get; set; } /// /// The boolean that indicates whether initial, periodic, and force syncs will be disabled. diff --git a/src/Merge.Client/Crm/LinkedAccounts/LinkedAccountsClient.cs b/src/Merge.Client/Crm/LinkedAccounts/LinkedAccountsClient.cs index 88c40381..d89e2e46 100644 --- a/src/Merge.Client/Crm/LinkedAccounts/LinkedAccountsClient.cs +++ b/src/Merge.Client/Crm/LinkedAccounts/LinkedAccountsClient.cs @@ -80,7 +80,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/linked-accounts", Query = _query, diff --git a/src/Merge.Client/Crm/Notes/NotesClient.cs b/src/Merge.Client/Crm/Notes/NotesClient.cs index 0d8607ab..bbe1aa55 100644 --- a/src/Merge.Client/Crm/Notes/NotesClient.cs +++ b/src/Merge.Client/Crm/Notes/NotesClient.cs @@ -97,7 +97,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/notes", Query = _query, @@ -165,6 +165,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -173,7 +177,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/notes/remote-field-classes", Query = _query, @@ -269,7 +273,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/notes", Body = request, @@ -336,7 +340,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/notes/{0}", @@ -386,7 +390,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/notes/meta/post", Options = options, diff --git a/src/Merge.Client/Crm/Notes/Requests/NotesRemoteFieldClassesListRequest.cs b/src/Merge.Client/Crm/Notes/Requests/NotesRemoteFieldClassesListRequest.cs index b957251f..b834c30b 100644 --- a/src/Merge.Client/Crm/Notes/Requests/NotesRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Crm/Notes/Requests/NotesRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record NotesRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Crm/Opportunities/OpportunitiesClient.cs b/src/Merge.Client/Crm/Opportunities/OpportunitiesClient.cs index 757ccfb5..5477efe3 100644 --- a/src/Merge.Client/Crm/Opportunities/OpportunitiesClient.cs +++ b/src/Merge.Client/Crm/Opportunities/OpportunitiesClient.cs @@ -111,7 +111,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/opportunities", Query = _query, @@ -179,6 +179,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -187,7 +191,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/opportunities/remote-field-classes", Query = _query, @@ -285,7 +289,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/opportunities", Body = request, @@ -360,7 +364,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/opportunities/{0}", @@ -424,7 +428,7 @@ public async Task PartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "crm/v1/opportunities/{0}", @@ -477,7 +481,7 @@ public async Task MetaPatchRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/opportunities/meta/patch/{0}", @@ -526,7 +530,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/opportunities/meta/post", Options = options, diff --git a/src/Merge.Client/Crm/Opportunities/Requests/OpportunitiesRemoteFieldClassesListRequest.cs b/src/Merge.Client/Crm/Opportunities/Requests/OpportunitiesRemoteFieldClassesListRequest.cs index 62a81ebc..edd533b2 100644 --- a/src/Merge.Client/Crm/Opportunities/Requests/OpportunitiesRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Crm/Opportunities/Requests/OpportunitiesRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record OpportunitiesRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Crm/Passthrough/PassthroughClient.cs b/src/Merge.Client/Crm/Passthrough/PassthroughClient.cs index 5f4f53ec..fe922ee7 100644 --- a/src/Merge.Client/Crm/Passthrough/PassthroughClient.cs +++ b/src/Merge.Client/Crm/Passthrough/PassthroughClient.cs @@ -36,7 +36,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/passthrough", Body = request, diff --git a/src/Merge.Client/Crm/RegenerateKey/RegenerateKeyClient.cs b/src/Merge.Client/Crm/RegenerateKey/RegenerateKeyClient.cs index e36f6900..4db4f086 100644 --- a/src/Merge.Client/Crm/RegenerateKey/RegenerateKeyClient.cs +++ b/src/Merge.Client/Crm/RegenerateKey/RegenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/regenerate-key", Body = request, diff --git a/src/Merge.Client/Crm/Scopes/ScopesClient.cs b/src/Merge.Client/Crm/Scopes/ScopesClient.cs index 3768bca2..950edc31 100644 --- a/src/Merge.Client/Crm/Scopes/ScopesClient.cs +++ b/src/Merge.Client/Crm/Scopes/ScopesClient.cs @@ -29,7 +29,7 @@ public async Task DefaultScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/default-scopes", Options = options, @@ -75,7 +75,7 @@ public async Task LinkedAccountScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/linked-account-scopes", Options = options, @@ -172,7 +172,7 @@ public async Task LinkedAccountScopesCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/linked-account-scopes", Body = request, diff --git a/src/Merge.Client/Crm/Stages/Requests/StagesRemoteFieldClassesListRequest.cs b/src/Merge.Client/Crm/Stages/Requests/StagesRemoteFieldClassesListRequest.cs index 50c44078..b4c30b24 100644 --- a/src/Merge.Client/Crm/Stages/Requests/StagesRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Crm/Stages/Requests/StagesRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record StagesRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Crm/Stages/StagesClient.cs b/src/Merge.Client/Crm/Stages/StagesClient.cs index b017e5b5..15e5a70f 100644 --- a/src/Merge.Client/Crm/Stages/StagesClient.cs +++ b/src/Merge.Client/Crm/Stages/StagesClient.cs @@ -80,7 +80,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/stages", Query = _query, @@ -148,6 +148,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -156,7 +160,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/stages/remote-field-classes", Query = _query, @@ -259,7 +263,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/stages/{0}", diff --git a/src/Merge.Client/Crm/SyncStatus/SyncStatusClient.cs b/src/Merge.Client/Crm/SyncStatus/SyncStatusClient.cs index 4871c6d4..3fa6d4a0 100644 --- a/src/Merge.Client/Crm/SyncStatus/SyncStatusClient.cs +++ b/src/Merge.Client/Crm/SyncStatus/SyncStatusClient.cs @@ -15,9 +15,12 @@ internal SyncStatusClient(RawClient client) } /// - /// Get syncing status. Possible values: `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + /// Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). /// - private async Task ListInternalAsync( + /// + /// await client.Crm.SyncStatus.ListAsync(new SyncStatusListRequest()); + /// + public async Task ListAsync( SyncStatusListRequest request, RequestOptions? options = null, CancellationToken cancellationToken = default @@ -36,7 +39,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/sync-status", Query = _query, @@ -67,43 +70,4 @@ private async Task ListInternalAsync( ); } } - - /// - /// Get syncing status. Possible values: `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). - /// - /// - /// await client.Crm.SyncStatus.ListAsync(new SyncStatusListRequest()); - /// - public async Task> ListAsync( - SyncStatusListRequest request, - RequestOptions? options = null, - CancellationToken cancellationToken = default - ) - { - if (request is not null) - { - request = request with { }; - } - var pager = await CursorPager< - SyncStatusListRequest, - RequestOptions?, - PaginatedSyncStatusList, - string?, - SyncStatus - > - .CreateInstanceAsync( - request, - options, - ListInternalAsync, - (request, cursor) => - { - request.Cursor = cursor; - }, - response => response?.Next, - response => response?.Results?.ToList(), - cancellationToken - ) - .ConfigureAwait(false); - return pager; - } } diff --git a/src/Merge.Client/Crm/Tasks/Requests/TasksRemoteFieldClassesListRequest.cs b/src/Merge.Client/Crm/Tasks/Requests/TasksRemoteFieldClassesListRequest.cs index 1490b23c..5e6ffa0f 100644 --- a/src/Merge.Client/Crm/Tasks/Requests/TasksRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Crm/Tasks/Requests/TasksRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record TasksRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Crm/Tasks/TasksClient.cs b/src/Merge.Client/Crm/Tasks/TasksClient.cs index 40dbbae1..81571e96 100644 --- a/src/Merge.Client/Crm/Tasks/TasksClient.cs +++ b/src/Merge.Client/Crm/Tasks/TasksClient.cs @@ -81,7 +81,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/tasks", Query = _query, @@ -149,6 +149,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -157,7 +161,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/tasks/remote-field-classes", Query = _query, @@ -253,7 +257,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/tasks", Body = request, @@ -320,7 +324,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/tasks/{0}", @@ -384,7 +388,7 @@ public async Task PartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "crm/v1/tasks/{0}", @@ -437,7 +441,7 @@ public async Task MetaPatchRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/tasks/meta/patch/{0}", @@ -486,7 +490,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/tasks/meta/post", Options = options, diff --git a/src/Merge.Client/Crm/Types/AccountDetails.cs b/src/Merge.Client/Crm/Types/AccountDetails.cs index 51550d7b..58ba3b22 100644 --- a/src/Merge.Client/Crm/Types/AccountDetails.cs +++ b/src/Merge.Client/Crm/Types/AccountDetails.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -19,7 +20,7 @@ public record AccountDetails public string? IntegrationSlug { get; set; } [JsonPropertyName("category")] - public CategoryEnum? Category { get; set; } + public OneOf? Category { get; set; } [JsonAccess(JsonAccessType.ReadOnly)] [JsonPropertyName("end_user_origin_id")] diff --git a/src/Merge.Client/Crm/Types/AccountDetailsAndActions.cs b/src/Merge.Client/Crm/Types/AccountDetailsAndActions.cs index 78f20d29..79aec4bb 100644 --- a/src/Merge.Client/Crm/Types/AccountDetailsAndActions.cs +++ b/src/Merge.Client/Crm/Types/AccountDetailsAndActions.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -18,10 +19,10 @@ public record AccountDetailsAndActions public required string Id { get; set; } [JsonPropertyName("category")] - public CategoryEnum? Category { get; set; } + public OneOf? Category { get; set; } [JsonPropertyName("status")] - public required AccountDetailsAndActionsStatusEnum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("status_detail")] public string? StatusDetail { get; set; } diff --git a/src/Merge.Client/Crm/Types/Address.cs b/src/Merge.Client/Crm/Types/Address.cs index 8df1b2ae..e28a07cd 100644 --- a/src/Merge.Client/Crm/Types/Address.cs +++ b/src/Merge.Client/Crm/Types/Address.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -311,7 +312,7 @@ public record Address /// * `ZW` - Zimbabwe /// [JsonPropertyName("country")] - public CountryEnum? Country { get; set; } + public OneOf? Country { get; set; } /// /// The address type. @@ -320,7 +321,7 @@ public record Address /// * `SHIPPING` - SHIPPING /// [JsonPropertyName("address_type")] - public AddressTypeEnum? AddressType { get; set; } + public OneOf? AddressType { get; set; } /// /// Additional properties received from the response, if any. diff --git a/src/Merge.Client/Crm/Types/AddressRequest.cs b/src/Merge.Client/Crm/Types/AddressRequest.cs index ccce7f9d..ecf14ac6 100644 --- a/src/Merge.Client/Crm/Types/AddressRequest.cs +++ b/src/Merge.Client/Crm/Types/AddressRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -297,7 +298,7 @@ public record AddressRequest /// * `ZW` - Zimbabwe /// [JsonPropertyName("country")] - public CountryEnum? Country { get; set; } + public OneOf? Country { get; set; } /// /// The address type. @@ -306,7 +307,7 @@ public record AddressRequest /// * `SHIPPING` - SHIPPING /// [JsonPropertyName("address_type")] - public AddressTypeEnum? AddressType { get; set; } + public OneOf? AddressType { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/Crm/Types/AssociationType.cs b/src/Merge.Client/Crm/Types/AssociationType.cs index 4806c994..0f143c54 100644 --- a/src/Merge.Client/Crm/Types/AssociationType.cs +++ b/src/Merge.Client/Crm/Types/AssociationType.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -55,7 +56,7 @@ public record AssociationType public string? DisplayName { get; set; } [JsonPropertyName("cardinality")] - public CardinalityEnum? Cardinality { get; set; } + public OneOf? Cardinality { get; set; } [JsonPropertyName("is_required")] public bool? IsRequired { get; set; } diff --git a/src/Merge.Client/Crm/Types/AuditLogEvent.cs b/src/Merge.Client/Crm/Types/AuditLogEvent.cs index 2f827356..1f28d2dd 100644 --- a/src/Merge.Client/Crm/Types/AuditLogEvent.cs +++ b/src/Merge.Client/Crm/Types/AuditLogEvent.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -33,7 +34,7 @@ public record AuditLogEvent /// * `MERGE_TEAM` - MERGE_TEAM /// [JsonPropertyName("role")] - public required RoleEnum Role { get; set; } + public required OneOf Role { get; set; } [JsonPropertyName("ip_address")] public required string IpAddress { get; set; } @@ -46,6 +47,7 @@ public record AuditLogEvent /// * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY /// * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY /// * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + /// * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE /// * `INVITED_USER` - INVITED_USER /// * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED /// * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED @@ -85,7 +87,7 @@ public record AuditLogEvent /// * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED /// [JsonPropertyName("event_type")] - public required EventTypeEnum EventType { get; set; } + public required OneOf EventType { get; set; } [JsonPropertyName("event_description")] public required string EventDescription { get; set; } diff --git a/src/Merge.Client/Crm/Types/CustomObjectRequest.cs b/src/Merge.Client/Crm/Types/CustomObjectRequest.cs index 288cc0ae..9ccbe0f0 100644 --- a/src/Merge.Client/Crm/Types/CustomObjectRequest.cs +++ b/src/Merge.Client/Crm/Types/CustomObjectRequest.cs @@ -9,6 +9,14 @@ public record CustomObjectRequest [JsonPropertyName("fields")] public Dictionary Fields { get; set; } = new Dictionary(); + [JsonAccess(JsonAccessType.WriteOnly)] + [JsonPropertyName("integration_params")] + public Dictionary? IntegrationParams { get; set; } + + [JsonAccess(JsonAccessType.WriteOnly)] + [JsonPropertyName("linked_account_params")] + public Dictionary? LinkedAccountParams { get; set; } + /// /// Additional properties received from the response, if any. /// diff --git a/src/Merge.Client/Crm/Types/Engagement.cs b/src/Merge.Client/Crm/Types/Engagement.cs index be22206e..83b68ad5 100644 --- a/src/Merge.Client/Crm/Types/Engagement.cs +++ b/src/Merge.Client/Crm/Types/Engagement.cs @@ -63,7 +63,7 @@ public record Engagement /// * `OUTBOUND` - OUTBOUND /// [JsonPropertyName("direction")] - public DirectionEnum? Direction { get; set; } + public OneOf? Direction { get; set; } /// /// The engagement type of the engagement. diff --git a/src/Merge.Client/Crm/Types/EngagementRequest.cs b/src/Merge.Client/Crm/Types/EngagementRequest.cs index cdb5f06f..f5a5b634 100644 --- a/src/Merge.Client/Crm/Types/EngagementRequest.cs +++ b/src/Merge.Client/Crm/Types/EngagementRequest.cs @@ -39,7 +39,7 @@ public record EngagementRequest /// * `OUTBOUND` - OUTBOUND /// [JsonPropertyName("direction")] - public DirectionEnum? Direction { get; set; } + public OneOf? Direction { get; set; } /// /// The engagement type of the engagement. diff --git a/src/Merge.Client/Crm/Types/EngagementType.cs b/src/Merge.Client/Crm/Types/EngagementType.cs index 69e5c58a..cfab501b 100644 --- a/src/Merge.Client/Crm/Types/EngagementType.cs +++ b/src/Merge.Client/Crm/Types/EngagementType.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -45,7 +46,7 @@ public record EngagementType /// * `EMAIL` - EMAIL /// [JsonPropertyName("activity_type")] - public ActivityTypeEnum? ActivityType { get; set; } + public OneOf? ActivityType { get; set; } /// /// The engagement type's name. diff --git a/src/Merge.Client/Crm/Types/EventTypeEnum.cs b/src/Merge.Client/Crm/Types/EventTypeEnum.cs index 519e4c60..71c3d210 100644 --- a/src/Merge.Client/Crm/Types/EventTypeEnum.cs +++ b/src/Merge.Client/Crm/Types/EventTypeEnum.cs @@ -22,6 +22,9 @@ public enum EventTypeEnum [EnumMember(Value = "REGENERATED_PRODUCTION_API_KEY")] RegeneratedProductionApiKey, + [EnumMember(Value = "REGENERATED_WEBHOOK_SIGNATURE")] + RegeneratedWebhookSignature, + [EnumMember(Value = "INVITED_USER")] InvitedUser, diff --git a/src/Merge.Client/Crm/Types/IgnoreCommonModelRequest.cs b/src/Merge.Client/Crm/Types/IgnoreCommonModelRequest.cs index 4eca3027..56fb7221 100644 --- a/src/Merge.Client/Crm/Types/IgnoreCommonModelRequest.cs +++ b/src/Merge.Client/Crm/Types/IgnoreCommonModelRequest.cs @@ -1,13 +1,14 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; public record IgnoreCommonModelRequest { [JsonPropertyName("reason")] - public required ReasonEnum Reason { get; set; } + public required OneOf Reason { get; set; } [JsonPropertyName("message")] public string? Message { get; set; } diff --git a/src/Merge.Client/Crm/Types/Issue.cs b/src/Merge.Client/Crm/Types/Issue.cs index 0eb47fbb..8b26ca13 100644 --- a/src/Merge.Client/Crm/Types/Issue.cs +++ b/src/Merge.Client/Crm/Types/Issue.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -17,7 +18,7 @@ public record Issue /// * `RESOLVED` - RESOLVED /// [JsonPropertyName("status")] - public IssueStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } [JsonPropertyName("error_description")] public required string ErrorDescription { get; set; } diff --git a/src/Merge.Client/Crm/Types/MultipartFormFieldRequest.cs b/src/Merge.Client/Crm/Types/MultipartFormFieldRequest.cs index 8b83e655..f65b5082 100644 --- a/src/Merge.Client/Crm/Types/MultipartFormFieldRequest.cs +++ b/src/Merge.Client/Crm/Types/MultipartFormFieldRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -34,7 +35,7 @@ public record MultipartFormFieldRequest /// * `GZIP_BASE64` - GZIP_BASE64 /// [JsonPropertyName("encoding")] - public EncodingEnum? Encoding { get; set; } + public OneOf? Encoding { get; set; } /// /// The file name of the form field, if the field is for a file. diff --git a/src/Merge.Client/Crm/Types/Opportunity.cs b/src/Merge.Client/Crm/Types/Opportunity.cs index 678db026..b9683a72 100644 --- a/src/Merge.Client/Crm/Types/Opportunity.cs +++ b/src/Merge.Client/Crm/Types/Opportunity.cs @@ -82,7 +82,7 @@ public record Opportunity /// * `LOST` - LOST /// [JsonPropertyName("status")] - public OpportunityStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// When the opportunity's last activity occurred. diff --git a/src/Merge.Client/Crm/Types/OpportunityRequest.cs b/src/Merge.Client/Crm/Types/OpportunityRequest.cs index 3349e1e2..7e8b0368 100644 --- a/src/Merge.Client/Crm/Types/OpportunityRequest.cs +++ b/src/Merge.Client/Crm/Types/OpportunityRequest.cs @@ -58,7 +58,7 @@ public record OpportunityRequest /// * `LOST` - LOST /// [JsonPropertyName("status")] - public OpportunityStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// When the opportunity's last activity occurred. diff --git a/src/Merge.Client/Crm/Types/PatchedEngagementRequest.cs b/src/Merge.Client/Crm/Types/PatchedEngagementRequest.cs index f45f62aa..c8172881 100644 --- a/src/Merge.Client/Crm/Types/PatchedEngagementRequest.cs +++ b/src/Merge.Client/Crm/Types/PatchedEngagementRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -38,7 +39,7 @@ public record PatchedEngagementRequest /// * `OUTBOUND` - OUTBOUND /// [JsonPropertyName("direction")] - public DirectionEnum? Direction { get; set; } + public OneOf? Direction { get; set; } /// /// The engagement type of the engagement. diff --git a/src/Merge.Client/Crm/Types/PatchedOpportunityRequest.cs b/src/Merge.Client/Crm/Types/PatchedOpportunityRequest.cs index ac4e4ee3..1a8dcd30 100644 --- a/src/Merge.Client/Crm/Types/PatchedOpportunityRequest.cs +++ b/src/Merge.Client/Crm/Types/PatchedOpportunityRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -57,7 +58,7 @@ public record PatchedOpportunityRequest /// * `LOST` - LOST /// [JsonPropertyName("status")] - public OpportunityStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// When the opportunity's last activity occurred. diff --git a/src/Merge.Client/Crm/Types/PatchedTaskRequest.cs b/src/Merge.Client/Crm/Types/PatchedTaskRequest.cs index efacdae0..05bacc83 100644 --- a/src/Merge.Client/Crm/Types/PatchedTaskRequest.cs +++ b/src/Merge.Client/Crm/Types/PatchedTaskRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -62,7 +63,7 @@ public record PatchedTaskRequest /// * `CLOSED` - CLOSED /// [JsonPropertyName("status")] - public TaskStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/Crm/Types/RemoteFieldClassForCustomObjectClass.cs b/src/Merge.Client/Crm/Types/RemoteFieldClassForCustomObjectClass.cs index 3c45589d..edd628a5 100644 --- a/src/Merge.Client/Crm/Types/RemoteFieldClassForCustomObjectClass.cs +++ b/src/Merge.Client/Crm/Types/RemoteFieldClassForCustomObjectClass.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -32,11 +33,13 @@ public record RemoteFieldClassForCustomObjectClass [JsonPropertyName("is_required")] public bool? IsRequired { get; set; } + [JsonAccess(JsonAccessType.ReadOnly)] [JsonPropertyName("field_type")] - public FieldTypeEnum? FieldType { get; set; } + public OneOf? FieldType { get; set; } + [JsonAccess(JsonAccessType.ReadOnly)] [JsonPropertyName("field_format")] - public FieldFormatEnum? FieldFormat { get; set; } + public OneOf? FieldFormat { get; set; } [JsonAccess(JsonAccessType.ReadOnly)] [JsonPropertyName("field_choices")] diff --git a/src/Merge.Client/Crm/Types/RemoteResponse.cs b/src/Merge.Client/Crm/Types/RemoteResponse.cs index f2aa2805..c58051c9 100644 --- a/src/Merge.Client/Crm/Types/RemoteResponse.cs +++ b/src/Merge.Client/Crm/Types/RemoteResponse.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -30,7 +31,7 @@ public record RemoteResponse public Dictionary? ResponseHeaders { get; set; } [JsonPropertyName("response_type")] - public ResponseTypeEnum? ResponseType { get; set; } + public OneOf? ResponseType { get; set; } [JsonPropertyName("headers")] public Dictionary? Headers { get; set; } diff --git a/src/Merge.Client/Crm/Types/SyncStatus.cs b/src/Merge.Client/Crm/Types/SyncStatus.cs index 21b4a152..a4d4b406 100644 --- a/src/Merge.Client/Crm/Types/SyncStatus.cs +++ b/src/Merge.Client/Crm/Types/SyncStatus.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Crm; @@ -27,13 +28,13 @@ public record SyncStatus public DateTime? NextSyncStart { get; set; } [JsonPropertyName("last_sync_result")] - public LastSyncResultEnum? LastSyncResult { get; set; } + public OneOf? LastSyncResult { get; set; } [JsonPropertyName("last_sync_finished")] public DateTime? LastSyncFinished { get; set; } [JsonPropertyName("status")] - public required StatusFd5Enum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("is_initial_sync")] public required bool IsInitialSync { get; set; } diff --git a/src/Merge.Client/Crm/Types/Task.cs b/src/Merge.Client/Crm/Types/Task.cs index bee7acb4..e0a52d83 100644 --- a/src/Merge.Client/Crm/Types/Task.cs +++ b/src/Merge.Client/Crm/Types/Task.cs @@ -87,7 +87,7 @@ public record Task /// * `CLOSED` - CLOSED /// [JsonPropertyName("status")] - public TaskStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Crm/Types/TaskRequest.cs b/src/Merge.Client/Crm/Types/TaskRequest.cs index 951ec846..152ebcd0 100644 --- a/src/Merge.Client/Crm/Types/TaskRequest.cs +++ b/src/Merge.Client/Crm/Types/TaskRequest.cs @@ -63,7 +63,7 @@ public record TaskRequest /// * `CLOSED` - CLOSED /// [JsonPropertyName("status")] - public TaskStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/Crm/Users/Requests/UsersRemoteFieldClassesListRequest.cs b/src/Merge.Client/Crm/Users/Requests/UsersRemoteFieldClassesListRequest.cs index 0012a9e0..dd931bf9 100644 --- a/src/Merge.Client/Crm/Users/Requests/UsersRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Crm/Users/Requests/UsersRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record UsersRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Crm/Users/UsersClient.cs b/src/Merge.Client/Crm/Users/UsersClient.cs index 7c011c93..9d0ef201 100644 --- a/src/Merge.Client/Crm/Users/UsersClient.cs +++ b/src/Merge.Client/Crm/Users/UsersClient.cs @@ -85,7 +85,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/users", Query = _query, @@ -153,6 +153,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -161,7 +165,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/users/remote-field-classes", Query = _query, @@ -264,7 +268,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "crm/v1/users/{0}", @@ -322,7 +326,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = string.Format( "crm/v1/users/ignore/{0}", diff --git a/src/Merge.Client/Crm/WebhookReceivers/WebhookReceiversClient.cs b/src/Merge.Client/Crm/WebhookReceivers/WebhookReceiversClient.cs index da84b86b..59852c22 100644 --- a/src/Merge.Client/Crm/WebhookReceivers/WebhookReceiversClient.cs +++ b/src/Merge.Client/Crm/WebhookReceivers/WebhookReceiversClient.cs @@ -29,7 +29,7 @@ public async Task> ListAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "crm/v1/webhook-receivers", Options = options, @@ -78,7 +78,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "crm/v1/webhook-receivers", Body = request, diff --git a/src/Merge.Client/FileStorage/AccountDetails/AccountDetailsClient.cs b/src/Merge.Client/FileStorage/AccountDetails/AccountDetailsClient.cs index 0cb4a658..f995314a 100644 --- a/src/Merge.Client/FileStorage/AccountDetails/AccountDetailsClient.cs +++ b/src/Merge.Client/FileStorage/AccountDetails/AccountDetailsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/account-details", Options = options, diff --git a/src/Merge.Client/FileStorage/AccountToken/AccountTokenClient.cs b/src/Merge.Client/FileStorage/AccountToken/AccountTokenClient.cs index edc181a9..81c64ef8 100644 --- a/src/Merge.Client/FileStorage/AccountToken/AccountTokenClient.cs +++ b/src/Merge.Client/FileStorage/AccountToken/AccountTokenClient.cs @@ -30,7 +30,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "filestorage/v1/account-token/{0}", diff --git a/src/Merge.Client/FileStorage/AsyncPassthrough/AsyncPassthroughClient.cs b/src/Merge.Client/FileStorage/AsyncPassthrough/AsyncPassthroughClient.cs index 291f7933..2e2858fa 100644 --- a/src/Merge.Client/FileStorage/AsyncPassthrough/AsyncPassthroughClient.cs +++ b/src/Merge.Client/FileStorage/AsyncPassthrough/AsyncPassthroughClient.cs @@ -37,7 +37,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/async-passthrough", Body = request, @@ -86,7 +86,7 @@ public async Task> RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "filestorage/v1/async-passthrough/{0}", diff --git a/src/Merge.Client/FileStorage/AuditTrail/AuditTrailClient.cs b/src/Merge.Client/FileStorage/AuditTrail/AuditTrailClient.cs index 6436ddbf..b9d438ba 100644 --- a/src/Merge.Client/FileStorage/AuditTrail/AuditTrailClient.cs +++ b/src/Merge.Client/FileStorage/AuditTrail/AuditTrailClient.cs @@ -52,7 +52,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/audit-trail", Query = _query, diff --git a/src/Merge.Client/FileStorage/AuditTrail/Requests/AuditTrailListRequest.cs b/src/Merge.Client/FileStorage/AuditTrail/Requests/AuditTrailListRequest.cs index 93f14d89..c4c6bb27 100644 --- a/src/Merge.Client/FileStorage/AuditTrail/Requests/AuditTrailListRequest.cs +++ b/src/Merge.Client/FileStorage/AuditTrail/Requests/AuditTrailListRequest.cs @@ -18,7 +18,7 @@ public record AuditTrailListRequest public string? EndDate { get; set; } /// - /// If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` + /// If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` /// [JsonIgnore] public string? EventType { get; set; } diff --git a/src/Merge.Client/FileStorage/AvailableActions/AvailableActionsClient.cs b/src/Merge.Client/FileStorage/AvailableActions/AvailableActionsClient.cs index ed99f857..5d1470b6 100644 --- a/src/Merge.Client/FileStorage/AvailableActions/AvailableActionsClient.cs +++ b/src/Merge.Client/FileStorage/AvailableActions/AvailableActionsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/available-actions", Options = options, diff --git a/src/Merge.Client/FileStorage/DeleteAccount/DeleteAccountClient.cs b/src/Merge.Client/FileStorage/DeleteAccount/DeleteAccountClient.cs index 3048dfc6..d7e5f96e 100644 --- a/src/Merge.Client/FileStorage/DeleteAccount/DeleteAccountClient.cs +++ b/src/Merge.Client/FileStorage/DeleteAccount/DeleteAccountClient.cs @@ -29,7 +29,7 @@ internal DeleteAccountClient(RawClient client) .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/delete-account", Options = options, diff --git a/src/Merge.Client/FileStorage/Drives/DrivesClient.cs b/src/Merge.Client/FileStorage/Drives/DrivesClient.cs index a8c8f363..ab88955d 100644 --- a/src/Merge.Client/FileStorage/Drives/DrivesClient.cs +++ b/src/Merge.Client/FileStorage/Drives/DrivesClient.cs @@ -78,7 +78,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/drives", Query = _query, @@ -175,7 +175,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "filestorage/v1/drives/{0}", diff --git a/src/Merge.Client/FileStorage/FieldMapping/FieldMappingClient.cs b/src/Merge.Client/FileStorage/FieldMapping/FieldMappingClient.cs index edd82045..07189f7e 100644 --- a/src/Merge.Client/FileStorage/FieldMapping/FieldMappingClient.cs +++ b/src/Merge.Client/FileStorage/FieldMapping/FieldMappingClient.cs @@ -39,7 +39,7 @@ public async Task FieldMappingsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/field-mappings", Query = _query, @@ -104,7 +104,7 @@ public async Task FieldMappingsCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/field-mappings", Body = request, @@ -154,7 +154,7 @@ public async Task FieldMappingsDestroyAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Delete, Path = string.Format( "filestorage/v1/field-mappings/{0}", @@ -208,7 +208,7 @@ public async Task FieldMappingsPartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "filestorage/v1/field-mappings/{0}", @@ -269,7 +269,7 @@ public async Task RemoteFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/remote-fields", Query = _query, @@ -316,7 +316,7 @@ public async Task TargetFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/target-fields", Options = options, diff --git a/src/Merge.Client/FileStorage/Files/FilesClient.cs b/src/Merge.Client/FileStorage/Files/FilesClient.cs index 5eeb21d6..080c21ab 100644 --- a/src/Merge.Client/FileStorage/Files/FilesClient.cs +++ b/src/Merge.Client/FileStorage/Files/FilesClient.cs @@ -80,6 +80,10 @@ private async Task ListInternalAsync( { _query["name"] = request.Name; } + if (request.OrderBy != null) + { + _query["order_by"] = request.OrderBy.Value.Stringify(); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -92,7 +96,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/files", Query = _query, @@ -134,6 +138,14 @@ private async Task DownloadRequestMetaListInte ) { var _query = new Dictionary(); + if (request.CreatedAfter != null) + { + _query["created_after"] = request.CreatedAfter; + } + if (request.CreatedBefore != null) + { + _query["created_before"] = request.CreatedBefore; + } if (request.Cursor != null) { _query["cursor"] = request.Cursor; @@ -142,9 +154,21 @@ private async Task DownloadRequestMetaListInte { _query["include_deleted_data"] = JsonUtils.Serialize(request.IncludeDeletedData.Value); } - if (request.MimeType != null) + if (request.MimeTypes != null) { - _query["mime_type"] = request.MimeType; + _query["mime_types"] = request.MimeTypes; + } + if (request.ModifiedAfter != null) + { + _query["modified_after"] = request.ModifiedAfter; + } + if (request.ModifiedBefore != null) + { + _query["modified_before"] = request.ModifiedBefore; + } + if (request.OrderBy != null) + { + _query["order_by"] = request.OrderBy.Value.Stringify(); } if (request.PageSize != null) { @@ -154,7 +178,7 @@ private async Task DownloadRequestMetaListInte .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/files/download/request-meta", Query = _query, @@ -252,7 +276,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/files", Body = request, @@ -313,7 +337,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "filestorage/v1/files/{0}", @@ -371,7 +395,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "filestorage/v1/files/{0}/download", @@ -418,7 +442,7 @@ public async Task DownloadRequestMetaRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "filestorage/v1/files/{0}/download/request-meta", @@ -509,7 +533,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/files/meta/post", Options = options, diff --git a/src/Merge.Client/FileStorage/Files/Requests/FilesDownloadRequestMetaListRequest.cs b/src/Merge.Client/FileStorage/Files/Requests/FilesDownloadRequestMetaListRequest.cs index 08dd88ce..3eee6b37 100644 --- a/src/Merge.Client/FileStorage/Files/Requests/FilesDownloadRequestMetaListRequest.cs +++ b/src/Merge.Client/FileStorage/Files/Requests/FilesDownloadRequestMetaListRequest.cs @@ -5,6 +5,18 @@ namespace Merge.Client.FileStorage; public record FilesDownloadRequestMetaListRequest { + /// + /// If provided, will only return objects created after this datetime. + /// + [JsonIgnore] + public string? CreatedAfter { get; set; } + + /// + /// If provided, will only return objects created before this datetime. + /// + [JsonIgnore] + public string? CreatedBefore { get; set; } + /// /// The pagination cursor value. /// @@ -18,10 +30,28 @@ public record FilesDownloadRequestMetaListRequest public bool? IncludeDeletedData { get; set; } /// - /// If provided, specifies the export format of the files to be downloaded. For information on supported export formats, please refer to our <a href='https://help.merge.dev/en/articles/8615316-file-export-and-download-specification' target='_blank'>export format help center article</a>. + /// A comma-separated list of preferred MIME types in order of priority. If supported by the third-party provider, the file(s) will be returned in the first supported MIME type from the list. The default MIME type is PDF. To see supported MIME types by file type, refer to our <a href='https://help.merge.dev/en/articles/8615316-file-export-and-download-specification' target='_blank'>export format help center article</a>. + /// + [JsonIgnore] + public string? MimeTypes { get; set; } + + /// + /// If provided, will only return objects modified after this datetime. + /// + [JsonIgnore] + public string? ModifiedAfter { get; set; } + + /// + /// If provided, will only return objects modified before this datetime. + /// + [JsonIgnore] + public string? ModifiedBefore { get; set; } + + /// + /// Overrides the default ordering for this endpoint. Possible values include: created_at, -created_at, modified_at, -modified_at. /// [JsonIgnore] - public string? MimeType { get; set; } + public FilesDownloadRequestMetaListRequestOrderBy? OrderBy { get; set; } /// /// Number of results to return per page. diff --git a/src/Merge.Client/FileStorage/Files/Requests/FilesListRequest.cs b/src/Merge.Client/FileStorage/Files/Requests/FilesListRequest.cs index b913307f..02b6c607 100644 --- a/src/Merge.Client/FileStorage/Files/Requests/FilesListRequest.cs +++ b/src/Merge.Client/FileStorage/Files/Requests/FilesListRequest.cs @@ -84,6 +84,12 @@ public record FilesListRequest [JsonIgnore] public string? Name { get; set; } + /// + /// Overrides the default ordering for this endpoint. Possible values include: created_at, -created_at, modified_at, -modified_at. + /// + [JsonIgnore] + public FilesListRequestOrderBy? OrderBy { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/FileStorage/Files/Types/FilesDownloadRequestMetaListRequestOrderBy.cs b/src/Merge.Client/FileStorage/Files/Types/FilesDownloadRequestMetaListRequestOrderBy.cs new file mode 100644 index 00000000..253dd678 --- /dev/null +++ b/src/Merge.Client/FileStorage/Files/Types/FilesDownloadRequestMetaListRequestOrderBy.cs @@ -0,0 +1,21 @@ +using System.Runtime.Serialization; +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.FileStorage; + +[JsonConverter(typeof(EnumSerializer))] +public enum FilesDownloadRequestMetaListRequestOrderBy +{ + [EnumMember(Value = "-created_at")] + CreatedAtDescending, + + [EnumMember(Value = "-modified_at")] + ModifiedAtDescending, + + [EnumMember(Value = "created_at")] + CreatedAtAscending, + + [EnumMember(Value = "modified_at")] + ModifiedAtAscending, +} diff --git a/src/Merge.Client/FileStorage/Files/Types/FilesListRequestOrderBy.cs b/src/Merge.Client/FileStorage/Files/Types/FilesListRequestOrderBy.cs new file mode 100644 index 00000000..152cea3b --- /dev/null +++ b/src/Merge.Client/FileStorage/Files/Types/FilesListRequestOrderBy.cs @@ -0,0 +1,21 @@ +using System.Runtime.Serialization; +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.FileStorage; + +[JsonConverter(typeof(EnumSerializer))] +public enum FilesListRequestOrderBy +{ + [EnumMember(Value = "-created_at")] + CreatedAtDescending, + + [EnumMember(Value = "-modified_at")] + ModifiedAtDescending, + + [EnumMember(Value = "created_at")] + CreatedAtAscending, + + [EnumMember(Value = "modified_at")] + ModifiedAtAscending, +} diff --git a/src/Merge.Client/FileStorage/Folders/FoldersClient.cs b/src/Merge.Client/FileStorage/Folders/FoldersClient.cs index 43a3e60b..6baa4d62 100644 --- a/src/Merge.Client/FileStorage/Folders/FoldersClient.cs +++ b/src/Merge.Client/FileStorage/Folders/FoldersClient.cs @@ -87,7 +87,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/folders", Query = _query, @@ -185,7 +185,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/folders", Body = request, @@ -246,7 +246,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "filestorage/v1/folders/{0}", @@ -296,7 +296,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/folders/meta/post", Options = options, diff --git a/src/Merge.Client/FileStorage/ForceResync/ForceResyncClient.cs b/src/Merge.Client/FileStorage/ForceResync/ForceResyncClient.cs index 60597263..b7f81f5f 100644 --- a/src/Merge.Client/FileStorage/ForceResync/ForceResyncClient.cs +++ b/src/Merge.Client/FileStorage/ForceResync/ForceResyncClient.cs @@ -29,7 +29,7 @@ public async Task> SyncStatusResyncCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/sync-status/resync", Options = options, diff --git a/src/Merge.Client/FileStorage/GenerateKey/GenerateKeyClient.cs b/src/Merge.Client/FileStorage/GenerateKey/GenerateKeyClient.cs index 1a09a939..cea315e1 100644 --- a/src/Merge.Client/FileStorage/GenerateKey/GenerateKeyClient.cs +++ b/src/Merge.Client/FileStorage/GenerateKey/GenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/generate-key", Body = request, diff --git a/src/Merge.Client/FileStorage/Groups/GroupsClient.cs b/src/Merge.Client/FileStorage/Groups/GroupsClient.cs index e3ed5591..ceaf0a60 100644 --- a/src/Merge.Client/FileStorage/Groups/GroupsClient.cs +++ b/src/Merge.Client/FileStorage/Groups/GroupsClient.cs @@ -75,7 +75,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/groups", Query = _query, @@ -173,7 +173,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "filestorage/v1/groups/{0}", diff --git a/src/Merge.Client/FileStorage/Issues/IssuesClient.cs b/src/Merge.Client/FileStorage/Issues/IssuesClient.cs index 81d27edf..2933eda0 100644 --- a/src/Merge.Client/FileStorage/Issues/IssuesClient.cs +++ b/src/Merge.Client/FileStorage/Issues/IssuesClient.cs @@ -92,7 +92,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/issues", Query = _query, @@ -179,7 +179,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "filestorage/v1/issues/{0}", diff --git a/src/Merge.Client/FileStorage/LinkToken/LinkTokenClient.cs b/src/Merge.Client/FileStorage/LinkToken/LinkTokenClient.cs index e15ddf2e..47ccd206 100644 --- a/src/Merge.Client/FileStorage/LinkToken/LinkTokenClient.cs +++ b/src/Merge.Client/FileStorage/LinkToken/LinkTokenClient.cs @@ -42,7 +42,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/link-token", Body = request, diff --git a/src/Merge.Client/FileStorage/LinkToken/Requests/EndUserDetailsRequest.cs b/src/Merge.Client/FileStorage/LinkToken/Requests/EndUserDetailsRequest.cs index cf9e8608..7cf995db 100644 --- a/src/Merge.Client/FileStorage/LinkToken/Requests/EndUserDetailsRequest.cs +++ b/src/Merge.Client/FileStorage/LinkToken/Requests/EndUserDetailsRequest.cs @@ -1,5 +1,6 @@ using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.FileStorage; @@ -75,7 +76,7 @@ public Dictionary< /// * `de` - de /// [JsonPropertyName("language")] - public LanguageEnum? Language { get; set; } + public OneOf? Language { get; set; } /// /// The boolean that indicates whether initial, periodic, and force syncs will be disabled. diff --git a/src/Merge.Client/FileStorage/LinkedAccounts/LinkedAccountsClient.cs b/src/Merge.Client/FileStorage/LinkedAccounts/LinkedAccountsClient.cs index 52058b53..a4f1fbd6 100644 --- a/src/Merge.Client/FileStorage/LinkedAccounts/LinkedAccountsClient.cs +++ b/src/Merge.Client/FileStorage/LinkedAccounts/LinkedAccountsClient.cs @@ -80,7 +80,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/linked-accounts", Query = _query, diff --git a/src/Merge.Client/FileStorage/Passthrough/PassthroughClient.cs b/src/Merge.Client/FileStorage/Passthrough/PassthroughClient.cs index 08ba26de..d27bca90 100644 --- a/src/Merge.Client/FileStorage/Passthrough/PassthroughClient.cs +++ b/src/Merge.Client/FileStorage/Passthrough/PassthroughClient.cs @@ -36,7 +36,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/passthrough", Body = request, diff --git a/src/Merge.Client/FileStorage/RegenerateKey/RegenerateKeyClient.cs b/src/Merge.Client/FileStorage/RegenerateKey/RegenerateKeyClient.cs index d8df097e..4d739e9c 100644 --- a/src/Merge.Client/FileStorage/RegenerateKey/RegenerateKeyClient.cs +++ b/src/Merge.Client/FileStorage/RegenerateKey/RegenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/regenerate-key", Body = request, diff --git a/src/Merge.Client/FileStorage/Scopes/ScopesClient.cs b/src/Merge.Client/FileStorage/Scopes/ScopesClient.cs index 6950b01a..76f11a2a 100644 --- a/src/Merge.Client/FileStorage/Scopes/ScopesClient.cs +++ b/src/Merge.Client/FileStorage/Scopes/ScopesClient.cs @@ -29,7 +29,7 @@ public async Task DefaultScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/default-scopes", Options = options, @@ -75,7 +75,7 @@ public async Task LinkedAccountScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/linked-account-scopes", Options = options, @@ -177,7 +177,7 @@ public async Task LinkedAccountScopesCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/linked-account-scopes", Body = request, diff --git a/src/Merge.Client/FileStorage/SyncStatus/SyncStatusClient.cs b/src/Merge.Client/FileStorage/SyncStatus/SyncStatusClient.cs index 7bc1acbf..af32d5e6 100644 --- a/src/Merge.Client/FileStorage/SyncStatus/SyncStatusClient.cs +++ b/src/Merge.Client/FileStorage/SyncStatus/SyncStatusClient.cs @@ -15,7 +15,7 @@ internal SyncStatusClient(RawClient client) } /// - /// Get syncing status. Possible values: `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + /// Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). /// private async Task ListInternalAsync( SyncStatusListRequest request, @@ -36,7 +36,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/sync-status", Query = _query, @@ -69,7 +69,7 @@ private async Task ListInternalAsync( } /// - /// Get syncing status. Possible values: `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + /// Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). /// /// /// await client.FileStorage.SyncStatus.ListAsync(new SyncStatusListRequest()); diff --git a/src/Merge.Client/FileStorage/Types/AccountDetails.cs b/src/Merge.Client/FileStorage/Types/AccountDetails.cs index 2d24f203..23d6efb9 100644 --- a/src/Merge.Client/FileStorage/Types/AccountDetails.cs +++ b/src/Merge.Client/FileStorage/Types/AccountDetails.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.FileStorage; @@ -19,7 +20,7 @@ public record AccountDetails public string? IntegrationSlug { get; set; } [JsonPropertyName("category")] - public CategoryEnum? Category { get; set; } + public OneOf? Category { get; set; } [JsonAccess(JsonAccessType.ReadOnly)] [JsonPropertyName("end_user_origin_id")] diff --git a/src/Merge.Client/FileStorage/Types/AccountDetailsAndActions.cs b/src/Merge.Client/FileStorage/Types/AccountDetailsAndActions.cs index aa084e57..b57032d5 100644 --- a/src/Merge.Client/FileStorage/Types/AccountDetailsAndActions.cs +++ b/src/Merge.Client/FileStorage/Types/AccountDetailsAndActions.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.FileStorage; @@ -18,10 +19,10 @@ public record AccountDetailsAndActions public required string Id { get; set; } [JsonPropertyName("category")] - public CategoryEnum? Category { get; set; } + public OneOf? Category { get; set; } [JsonPropertyName("status")] - public required AccountDetailsAndActionsStatusEnum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("status_detail")] public string? StatusDetail { get; set; } diff --git a/src/Merge.Client/FileStorage/Types/AuditLogEvent.cs b/src/Merge.Client/FileStorage/Types/AuditLogEvent.cs index 84a0b3eb..2fd95477 100644 --- a/src/Merge.Client/FileStorage/Types/AuditLogEvent.cs +++ b/src/Merge.Client/FileStorage/Types/AuditLogEvent.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.FileStorage; @@ -33,7 +34,7 @@ public record AuditLogEvent /// * `MERGE_TEAM` - MERGE_TEAM /// [JsonPropertyName("role")] - public required RoleEnum Role { get; set; } + public required OneOf Role { get; set; } [JsonPropertyName("ip_address")] public required string IpAddress { get; set; } @@ -46,6 +47,7 @@ public record AuditLogEvent /// * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY /// * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY /// * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + /// * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE /// * `INVITED_USER` - INVITED_USER /// * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED /// * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED @@ -85,7 +87,7 @@ public record AuditLogEvent /// * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED /// [JsonPropertyName("event_type")] - public required EventTypeEnum EventType { get; set; } + public required OneOf EventType { get; set; } [JsonPropertyName("event_description")] public required string EventDescription { get; set; } diff --git a/src/Merge.Client/FileStorage/Types/DownloadRequestMeta.cs b/src/Merge.Client/FileStorage/Types/DownloadRequestMeta.cs index ad9e536f..5e2dc020 100644 --- a/src/Merge.Client/FileStorage/Types/DownloadRequestMeta.cs +++ b/src/Merge.Client/FileStorage/Types/DownloadRequestMeta.cs @@ -18,9 +18,6 @@ public record DownloadRequestMeta [JsonPropertyName("headers")] public Dictionary Headers { get; set; } = new Dictionary(); - [JsonPropertyName("body")] - public Dictionary Body { get; set; } = new Dictionary(); - /// /// Additional properties received from the response, if any. /// diff --git a/src/Merge.Client/FileStorage/Types/EventTypeEnum.cs b/src/Merge.Client/FileStorage/Types/EventTypeEnum.cs index c14b6564..4f3f7656 100644 --- a/src/Merge.Client/FileStorage/Types/EventTypeEnum.cs +++ b/src/Merge.Client/FileStorage/Types/EventTypeEnum.cs @@ -22,6 +22,9 @@ public enum EventTypeEnum [EnumMember(Value = "REGENERATED_PRODUCTION_API_KEY")] RegeneratedProductionApiKey, + [EnumMember(Value = "REGENERATED_WEBHOOK_SIGNATURE")] + RegeneratedWebhookSignature, + [EnumMember(Value = "INVITED_USER")] InvitedUser, diff --git a/src/Merge.Client/FileStorage/Types/File.cs b/src/Merge.Client/FileStorage/Types/File.cs index c3b51d34..45b429b3 100644 --- a/src/Merge.Client/FileStorage/Types/File.cs +++ b/src/Merge.Client/FileStorage/Types/File.cs @@ -80,6 +80,12 @@ public record File [JsonPropertyName("folder")] public OneOf? Folder { get; set; } + /// + /// This field stores file checksum data. 'type' indicates the algorithm (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is the unique hash used to verify file integrity and detect alterations. + /// + [JsonPropertyName("checksum")] + public Dictionary? Checksum { get; set; } + /// /// The Permission object is used to represent a user's or group's access to a File or Folder. Permissions are unexpanded by default. Use the query param `expand=permissions` to see more details under `GET /files`. /// diff --git a/src/Merge.Client/FileStorage/Types/FileRequest.cs b/src/Merge.Client/FileStorage/Types/FileRequest.cs index f1c229e0..682312b4 100644 --- a/src/Merge.Client/FileStorage/Types/FileRequest.cs +++ b/src/Merge.Client/FileStorage/Types/FileRequest.cs @@ -56,6 +56,12 @@ public record FileRequest [JsonPropertyName("folder")] public OneOf? Folder { get; set; } + /// + /// This field stores file checksum data. 'type' indicates the algorithm (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is the unique hash used to verify file integrity and detect alterations. + /// + [JsonPropertyName("checksum")] + public Dictionary? Checksum { get; set; } + /// /// The Permission object is used to represent a user's or group's access to a File or Folder. Permissions are unexpanded by default. Use the query param `expand=permissions` to see more details under `GET /files`. /// diff --git a/src/Merge.Client/FileStorage/Types/Issue.cs b/src/Merge.Client/FileStorage/Types/Issue.cs index 75c5fdc8..16dfb656 100644 --- a/src/Merge.Client/FileStorage/Types/Issue.cs +++ b/src/Merge.Client/FileStorage/Types/Issue.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.FileStorage; @@ -17,7 +18,7 @@ public record Issue /// * `RESOLVED` - RESOLVED /// [JsonPropertyName("status")] - public IssueStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } [JsonPropertyName("error_description")] public required string ErrorDescription { get; set; } diff --git a/src/Merge.Client/FileStorage/Types/MultipartFormFieldRequest.cs b/src/Merge.Client/FileStorage/Types/MultipartFormFieldRequest.cs index 18f9b5a7..c3b13195 100644 --- a/src/Merge.Client/FileStorage/Types/MultipartFormFieldRequest.cs +++ b/src/Merge.Client/FileStorage/Types/MultipartFormFieldRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.FileStorage; @@ -34,7 +35,7 @@ public record MultipartFormFieldRequest /// * `GZIP_BASE64` - GZIP_BASE64 /// [JsonPropertyName("encoding")] - public EncodingEnum? Encoding { get; set; } + public OneOf? Encoding { get; set; } /// /// The file name of the form field, if the field is for a file. diff --git a/src/Merge.Client/FileStorage/Types/Permission.cs b/src/Merge.Client/FileStorage/Types/Permission.cs index 909b86c1..e28913b9 100644 --- a/src/Merge.Client/FileStorage/Types/Permission.cs +++ b/src/Merge.Client/FileStorage/Types/Permission.cs @@ -60,13 +60,13 @@ public record Permission /// * `ANYONE` - ANYONE /// [JsonPropertyName("type")] - public TypeEnum? Type { get; set; } + public OneOf? Type { get; set; } /// /// The permissions that the user or group has for the File or Folder. It is possible for a user or group to have multiple roles, such as viewing & uploading. Possible values include: `READ`, `WRITE`, `OWNER`. In cases where there is no clear mapping, the original value passed through will be returned. /// [JsonPropertyName("roles")] - public IEnumerable? Roles { get; set; } + public IEnumerable>? Roles { get; set; } /// /// Additional properties received from the response, if any. diff --git a/src/Merge.Client/FileStorage/Types/PermissionRequest.cs b/src/Merge.Client/FileStorage/Types/PermissionRequest.cs index 6140975c..fe66e07c 100644 --- a/src/Merge.Client/FileStorage/Types/PermissionRequest.cs +++ b/src/Merge.Client/FileStorage/Types/PermissionRequest.cs @@ -42,13 +42,13 @@ public record PermissionRequest /// * `ANYONE` - ANYONE /// [JsonPropertyName("type")] - public TypeEnum? Type { get; set; } + public OneOf? Type { get; set; } /// /// The permissions that the user or group has for the File or Folder. It is possible for a user or group to have multiple roles, such as viewing & uploading. Possible values include: `READ`, `WRITE`, `OWNER`. In cases where there is no clear mapping, the original value passed through will be returned. /// [JsonPropertyName("roles")] - public IEnumerable? Roles { get; set; } + public IEnumerable>? Roles { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/FileStorage/Types/RemoteResponse.cs b/src/Merge.Client/FileStorage/Types/RemoteResponse.cs index 32756f6c..abc524a6 100644 --- a/src/Merge.Client/FileStorage/Types/RemoteResponse.cs +++ b/src/Merge.Client/FileStorage/Types/RemoteResponse.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.FileStorage; @@ -30,7 +31,7 @@ public record RemoteResponse public Dictionary? ResponseHeaders { get; set; } [JsonPropertyName("response_type")] - public ResponseTypeEnum? ResponseType { get; set; } + public OneOf? ResponseType { get; set; } [JsonPropertyName("headers")] public Dictionary? Headers { get; set; } diff --git a/src/Merge.Client/FileStorage/Types/SyncStatus.cs b/src/Merge.Client/FileStorage/Types/SyncStatus.cs index 8c6a1ded..8d8d3e85 100644 --- a/src/Merge.Client/FileStorage/Types/SyncStatus.cs +++ b/src/Merge.Client/FileStorage/Types/SyncStatus.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.FileStorage; @@ -27,13 +28,13 @@ public record SyncStatus public DateTime? NextSyncStart { get; set; } [JsonPropertyName("last_sync_result")] - public LastSyncResultEnum? LastSyncResult { get; set; } + public OneOf? LastSyncResult { get; set; } [JsonPropertyName("last_sync_finished")] public DateTime? LastSyncFinished { get; set; } [JsonPropertyName("status")] - public required StatusFd5Enum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("is_initial_sync")] public required bool IsInitialSync { get; set; } diff --git a/src/Merge.Client/FileStorage/Users/UsersClient.cs b/src/Merge.Client/FileStorage/Users/UsersClient.cs index 1b5696fa..c02d7bd3 100644 --- a/src/Merge.Client/FileStorage/Users/UsersClient.cs +++ b/src/Merge.Client/FileStorage/Users/UsersClient.cs @@ -78,7 +78,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/users", Query = _query, @@ -175,7 +175,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "filestorage/v1/users/{0}", diff --git a/src/Merge.Client/FileStorage/WebhookReceivers/WebhookReceiversClient.cs b/src/Merge.Client/FileStorage/WebhookReceivers/WebhookReceiversClient.cs index badda804..aaa63bff 100644 --- a/src/Merge.Client/FileStorage/WebhookReceivers/WebhookReceiversClient.cs +++ b/src/Merge.Client/FileStorage/WebhookReceivers/WebhookReceiversClient.cs @@ -29,7 +29,7 @@ public async Task> ListAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "filestorage/v1/webhook-receivers", Options = options, @@ -78,7 +78,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "filestorage/v1/webhook-receivers", Body = request, diff --git a/src/Merge.Client/Hris/AccountDetails/AccountDetailsClient.cs b/src/Merge.Client/Hris/AccountDetails/AccountDetailsClient.cs index fce03e84..9da28c07 100644 --- a/src/Merge.Client/Hris/AccountDetails/AccountDetailsClient.cs +++ b/src/Merge.Client/Hris/AccountDetails/AccountDetailsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/account-details", Options = options, diff --git a/src/Merge.Client/Hris/AccountToken/AccountTokenClient.cs b/src/Merge.Client/Hris/AccountToken/AccountTokenClient.cs index cac24579..64e0110e 100644 --- a/src/Merge.Client/Hris/AccountToken/AccountTokenClient.cs +++ b/src/Merge.Client/Hris/AccountToken/AccountTokenClient.cs @@ -30,7 +30,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/account-token/{0}", diff --git a/src/Merge.Client/Hris/AsyncPassthrough/AsyncPassthroughClient.cs b/src/Merge.Client/Hris/AsyncPassthrough/AsyncPassthroughClient.cs index 1a282885..01e3fda3 100644 --- a/src/Merge.Client/Hris/AsyncPassthrough/AsyncPassthroughClient.cs +++ b/src/Merge.Client/Hris/AsyncPassthrough/AsyncPassthroughClient.cs @@ -37,7 +37,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/async-passthrough", Body = request, @@ -86,7 +86,7 @@ public async Task> RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/async-passthrough/{0}", diff --git a/src/Merge.Client/Hris/AuditTrail/AuditTrailClient.cs b/src/Merge.Client/Hris/AuditTrail/AuditTrailClient.cs index 97fc72f4..f53b3cb9 100644 --- a/src/Merge.Client/Hris/AuditTrail/AuditTrailClient.cs +++ b/src/Merge.Client/Hris/AuditTrail/AuditTrailClient.cs @@ -52,7 +52,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/audit-trail", Query = _query, diff --git a/src/Merge.Client/Hris/AvailableActions/AvailableActionsClient.cs b/src/Merge.Client/Hris/AvailableActions/AvailableActionsClient.cs index 2a2e000b..f0bb5df4 100644 --- a/src/Merge.Client/Hris/AvailableActions/AvailableActionsClient.cs +++ b/src/Merge.Client/Hris/AvailableActions/AvailableActionsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/available-actions", Options = options, diff --git a/src/Merge.Client/Hris/BankInfo/BankInfoClient.cs b/src/Merge.Client/Hris/BankInfo/BankInfoClient.cs index d71ceaf5..9b2e08ea 100644 --- a/src/Merge.Client/Hris/BankInfo/BankInfoClient.cs +++ b/src/Merge.Client/Hris/BankInfo/BankInfoClient.cs @@ -99,7 +99,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/bank-info", Query = _query, @@ -205,7 +205,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/bank-info/{0}", diff --git a/src/Merge.Client/Hris/Benefits/BenefitsClient.cs b/src/Merge.Client/Hris/Benefits/BenefitsClient.cs index 8b4ceb62..de14eb80 100644 --- a/src/Merge.Client/Hris/Benefits/BenefitsClient.cs +++ b/src/Merge.Client/Hris/Benefits/BenefitsClient.cs @@ -79,7 +79,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/benefits", Query = _query, @@ -177,7 +177,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/benefits/{0}", diff --git a/src/Merge.Client/Hris/Companies/CompaniesClient.cs b/src/Merge.Client/Hris/Companies/CompaniesClient.cs index f5b888bd..9f6f6d9a 100644 --- a/src/Merge.Client/Hris/Companies/CompaniesClient.cs +++ b/src/Merge.Client/Hris/Companies/CompaniesClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/companies", Query = _query, @@ -171,7 +171,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/companies/{0}", diff --git a/src/Merge.Client/Hris/DeleteAccount/DeleteAccountClient.cs b/src/Merge.Client/Hris/DeleteAccount/DeleteAccountClient.cs index 29f3886f..71fad72a 100644 --- a/src/Merge.Client/Hris/DeleteAccount/DeleteAccountClient.cs +++ b/src/Merge.Client/Hris/DeleteAccount/DeleteAccountClient.cs @@ -29,7 +29,7 @@ internal DeleteAccountClient(RawClient client) .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/delete-account", Options = options, diff --git a/src/Merge.Client/Hris/Dependents/DependentsClient.cs b/src/Merge.Client/Hris/Dependents/DependentsClient.cs index 90e69c7c..bad92cf6 100644 --- a/src/Merge.Client/Hris/Dependents/DependentsClient.cs +++ b/src/Merge.Client/Hris/Dependents/DependentsClient.cs @@ -80,7 +80,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/dependents", Query = _query, @@ -183,7 +183,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/dependents/{0}", diff --git a/src/Merge.Client/Hris/EmployeePayrollRuns/EmployeePayrollRunsClient.cs b/src/Merge.Client/Hris/EmployeePayrollRuns/EmployeePayrollRunsClient.cs index cefd60ff..fbc6e09b 100644 --- a/src/Merge.Client/Hris/EmployeePayrollRuns/EmployeePayrollRunsClient.cs +++ b/src/Merge.Client/Hris/EmployeePayrollRuns/EmployeePayrollRunsClient.cs @@ -101,7 +101,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/employee-payroll-runs", Query = _query, @@ -199,7 +199,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/employee-payroll-runs/{0}", diff --git a/src/Merge.Client/Hris/Employees/EmployeesClient.cs b/src/Merge.Client/Hris/Employees/EmployeesClient.cs index e7533765..6a539672 100644 --- a/src/Merge.Client/Hris/Employees/EmployeesClient.cs +++ b/src/Merge.Client/Hris/Employees/EmployeesClient.cs @@ -172,7 +172,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/employees", Query = _query, @@ -270,7 +270,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/employees", Body = request, @@ -345,7 +345,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/employees/{0}", @@ -403,7 +403,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = string.Format( "hris/v1/employees/ignore/{0}", @@ -445,7 +445,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/employees/meta/post", Options = options, diff --git a/src/Merge.Client/Hris/EmployerBenefits/EmployerBenefitsClient.cs b/src/Merge.Client/Hris/EmployerBenefits/EmployerBenefitsClient.cs index 95641c63..3267a189 100644 --- a/src/Merge.Client/Hris/EmployerBenefits/EmployerBenefitsClient.cs +++ b/src/Merge.Client/Hris/EmployerBenefits/EmployerBenefitsClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/employer-benefits", Query = _query, @@ -171,7 +171,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/employer-benefits/{0}", diff --git a/src/Merge.Client/Hris/Employments/EmploymentsClient.cs b/src/Merge.Client/Hris/Employments/EmploymentsClient.cs index 4eebcb04..2aca0557 100644 --- a/src/Merge.Client/Hris/Employments/EmploymentsClient.cs +++ b/src/Merge.Client/Hris/Employments/EmploymentsClient.cs @@ -91,7 +91,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/employments", Query = _query, @@ -197,7 +197,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/employments/{0}", diff --git a/src/Merge.Client/Hris/FieldMapping/FieldMappingClient.cs b/src/Merge.Client/Hris/FieldMapping/FieldMappingClient.cs index 0a8344d7..bde5f127 100644 --- a/src/Merge.Client/Hris/FieldMapping/FieldMappingClient.cs +++ b/src/Merge.Client/Hris/FieldMapping/FieldMappingClient.cs @@ -37,7 +37,7 @@ public async Task FieldMappingsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/field-mappings", Query = _query, @@ -102,7 +102,7 @@ public async Task FieldMappingsCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/field-mappings", Body = request, @@ -152,7 +152,7 @@ public async Task FieldMappingsDestroyAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Delete, Path = string.Format( "hris/v1/field-mappings/{0}", @@ -206,7 +206,7 @@ public async Task FieldMappingsPartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "hris/v1/field-mappings/{0}", @@ -267,7 +267,7 @@ public async Task RemoteFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/remote-fields", Query = _query, @@ -314,7 +314,7 @@ public async Task TargetFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/target-fields", Options = options, diff --git a/src/Merge.Client/Hris/ForceResync/ForceResyncClient.cs b/src/Merge.Client/Hris/ForceResync/ForceResyncClient.cs index c4bca12e..d764090d 100644 --- a/src/Merge.Client/Hris/ForceResync/ForceResyncClient.cs +++ b/src/Merge.Client/Hris/ForceResync/ForceResyncClient.cs @@ -29,7 +29,7 @@ public async Task> SyncStatusResyncCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/sync-status/resync", Options = options, diff --git a/src/Merge.Client/Hris/GenerateKey/GenerateKeyClient.cs b/src/Merge.Client/Hris/GenerateKey/GenerateKeyClient.cs index 37669d0f..c8a27435 100644 --- a/src/Merge.Client/Hris/GenerateKey/GenerateKeyClient.cs +++ b/src/Merge.Client/Hris/GenerateKey/GenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/generate-key", Body = request, diff --git a/src/Merge.Client/Hris/Groups/GroupsClient.cs b/src/Merge.Client/Hris/Groups/GroupsClient.cs index 0c814eb7..c38287ec 100644 --- a/src/Merge.Client/Hris/Groups/GroupsClient.cs +++ b/src/Merge.Client/Hris/Groups/GroupsClient.cs @@ -94,7 +94,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/groups", Query = _query, @@ -199,7 +199,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/groups/{0}", diff --git a/src/Merge.Client/Hris/Issues/IssuesClient.cs b/src/Merge.Client/Hris/Issues/IssuesClient.cs index 085274aa..c283dbd7 100644 --- a/src/Merge.Client/Hris/Issues/IssuesClient.cs +++ b/src/Merge.Client/Hris/Issues/IssuesClient.cs @@ -92,7 +92,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/issues", Query = _query, @@ -179,7 +179,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/issues/{0}", diff --git a/src/Merge.Client/Hris/LinkToken/LinkTokenClient.cs b/src/Merge.Client/Hris/LinkToken/LinkTokenClient.cs index 8c11e71e..7e8f9164 100644 --- a/src/Merge.Client/Hris/LinkToken/LinkTokenClient.cs +++ b/src/Merge.Client/Hris/LinkToken/LinkTokenClient.cs @@ -42,7 +42,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/link-token", Body = request, diff --git a/src/Merge.Client/Hris/LinkToken/Requests/EndUserDetailsRequest.cs b/src/Merge.Client/Hris/LinkToken/Requests/EndUserDetailsRequest.cs index d67ea501..3510899f 100644 --- a/src/Merge.Client/Hris/LinkToken/Requests/EndUserDetailsRequest.cs +++ b/src/Merge.Client/Hris/LinkToken/Requests/EndUserDetailsRequest.cs @@ -1,5 +1,6 @@ using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -75,7 +76,7 @@ public Dictionary< /// * `de` - de /// [JsonPropertyName("language")] - public LanguageEnum? Language { get; set; } + public OneOf? Language { get; set; } /// /// The boolean that indicates whether initial, periodic, and force syncs will be disabled. diff --git a/src/Merge.Client/Hris/LinkedAccounts/LinkedAccountsClient.cs b/src/Merge.Client/Hris/LinkedAccounts/LinkedAccountsClient.cs index 33595253..8602731b 100644 --- a/src/Merge.Client/Hris/LinkedAccounts/LinkedAccountsClient.cs +++ b/src/Merge.Client/Hris/LinkedAccounts/LinkedAccountsClient.cs @@ -80,7 +80,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/linked-accounts", Query = _query, diff --git a/src/Merge.Client/Hris/Locations/LocationsClient.cs b/src/Merge.Client/Hris/Locations/LocationsClient.cs index 9081b0e4..3aa66e64 100644 --- a/src/Merge.Client/Hris/Locations/LocationsClient.cs +++ b/src/Merge.Client/Hris/Locations/LocationsClient.cs @@ -86,7 +86,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/locations", Query = _query, @@ -191,7 +191,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/locations/{0}", diff --git a/src/Merge.Client/Hris/Passthrough/PassthroughClient.cs b/src/Merge.Client/Hris/Passthrough/PassthroughClient.cs index 75dc3769..c189ca46 100644 --- a/src/Merge.Client/Hris/Passthrough/PassthroughClient.cs +++ b/src/Merge.Client/Hris/Passthrough/PassthroughClient.cs @@ -36,7 +36,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/passthrough", Body = request, diff --git a/src/Merge.Client/Hris/PayGroups/PayGroupsClient.cs b/src/Merge.Client/Hris/PayGroups/PayGroupsClient.cs index 27903491..24f845fa 100644 --- a/src/Merge.Client/Hris/PayGroups/PayGroupsClient.cs +++ b/src/Merge.Client/Hris/PayGroups/PayGroupsClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/pay-groups", Query = _query, @@ -171,7 +171,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/pay-groups/{0}", diff --git a/src/Merge.Client/Hris/PayrollRuns/PayrollRunsClient.cs b/src/Merge.Client/Hris/PayrollRuns/PayrollRunsClient.cs index bfcfeb32..80f68c70 100644 --- a/src/Merge.Client/Hris/PayrollRuns/PayrollRunsClient.cs +++ b/src/Merge.Client/Hris/PayrollRuns/PayrollRunsClient.cs @@ -104,7 +104,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/payroll-runs", Query = _query, @@ -209,7 +209,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/payroll-runs/{0}", diff --git a/src/Merge.Client/Hris/RegenerateKey/RegenerateKeyClient.cs b/src/Merge.Client/Hris/RegenerateKey/RegenerateKeyClient.cs index e8dd4cdc..5fe528a7 100644 --- a/src/Merge.Client/Hris/RegenerateKey/RegenerateKeyClient.cs +++ b/src/Merge.Client/Hris/RegenerateKey/RegenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/regenerate-key", Body = request, diff --git a/src/Merge.Client/Hris/Scopes/ScopesClient.cs b/src/Merge.Client/Hris/Scopes/ScopesClient.cs index ec10c883..d761f63e 100644 --- a/src/Merge.Client/Hris/Scopes/ScopesClient.cs +++ b/src/Merge.Client/Hris/Scopes/ScopesClient.cs @@ -29,7 +29,7 @@ public async Task DefaultScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/default-scopes", Options = options, @@ -75,7 +75,7 @@ public async Task LinkedAccountScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/linked-account-scopes", Options = options, @@ -175,7 +175,7 @@ public async Task LinkedAccountScopesCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/linked-account-scopes", Body = request, diff --git a/src/Merge.Client/Hris/SyncStatus/SyncStatusClient.cs b/src/Merge.Client/Hris/SyncStatus/SyncStatusClient.cs index fe0293bd..8052dc65 100644 --- a/src/Merge.Client/Hris/SyncStatus/SyncStatusClient.cs +++ b/src/Merge.Client/Hris/SyncStatus/SyncStatusClient.cs @@ -36,7 +36,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/sync-status", Query = _query, diff --git a/src/Merge.Client/Hris/Teams/TeamsClient.cs b/src/Merge.Client/Hris/Teams/TeamsClient.cs index a0ccf127..0f36f934 100644 --- a/src/Merge.Client/Hris/Teams/TeamsClient.cs +++ b/src/Merge.Client/Hris/Teams/TeamsClient.cs @@ -79,7 +79,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/teams", Query = _query, @@ -177,7 +177,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/teams/{0}", diff --git a/src/Merge.Client/Hris/TimeOff/TimeOffClient.cs b/src/Merge.Client/Hris/TimeOff/TimeOffClient.cs index de549a98..fa3bb127 100644 --- a/src/Merge.Client/Hris/TimeOff/TimeOffClient.cs +++ b/src/Merge.Client/Hris/TimeOff/TimeOffClient.cs @@ -117,7 +117,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/time-off", Query = _query, @@ -213,7 +213,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/time-off", Body = request, @@ -282,7 +282,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/time-off/{0}", @@ -332,7 +332,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/time-off/meta/post", Options = options, diff --git a/src/Merge.Client/Hris/TimeOffBalances/TimeOffBalancesClient.cs b/src/Merge.Client/Hris/TimeOffBalances/TimeOffBalancesClient.cs index 108991d2..699dcf20 100644 --- a/src/Merge.Client/Hris/TimeOffBalances/TimeOffBalancesClient.cs +++ b/src/Merge.Client/Hris/TimeOffBalances/TimeOffBalancesClient.cs @@ -91,7 +91,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/time-off-balances", Query = _query, @@ -197,7 +197,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/time-off-balances/{0}", diff --git a/src/Merge.Client/Hris/TimesheetEntries/TimesheetEntriesClient.cs b/src/Merge.Client/Hris/TimesheetEntries/TimesheetEntriesClient.cs index da28ccfc..d4a41b33 100644 --- a/src/Merge.Client/Hris/TimesheetEntries/TimesheetEntriesClient.cs +++ b/src/Merge.Client/Hris/TimesheetEntries/TimesheetEntriesClient.cs @@ -101,7 +101,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/timesheet-entries", Query = _query, @@ -199,7 +199,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/timesheet-entries", Body = request, @@ -260,7 +260,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "hris/v1/timesheet-entries/{0}", @@ -310,7 +310,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/timesheet-entries/meta/post", Options = options, diff --git a/src/Merge.Client/Hris/Types/AccountDetails.cs b/src/Merge.Client/Hris/Types/AccountDetails.cs index 9aa3bb5b..1fa7bace 100644 --- a/src/Merge.Client/Hris/Types/AccountDetails.cs +++ b/src/Merge.Client/Hris/Types/AccountDetails.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -19,7 +20,7 @@ public record AccountDetails public string? IntegrationSlug { get; set; } [JsonPropertyName("category")] - public CategoryEnum? Category { get; set; } + public OneOf? Category { get; set; } [JsonAccess(JsonAccessType.ReadOnly)] [JsonPropertyName("end_user_origin_id")] diff --git a/src/Merge.Client/Hris/Types/AccountDetailsAndActions.cs b/src/Merge.Client/Hris/Types/AccountDetailsAndActions.cs index 0e661517..89f456ef 100644 --- a/src/Merge.Client/Hris/Types/AccountDetailsAndActions.cs +++ b/src/Merge.Client/Hris/Types/AccountDetailsAndActions.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -18,10 +19,10 @@ public record AccountDetailsAndActions public required string Id { get; set; } [JsonPropertyName("category")] - public CategoryEnum? Category { get; set; } + public OneOf? Category { get; set; } [JsonPropertyName("status")] - public required AccountDetailsAndActionsStatusEnum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("status_detail")] public string? StatusDetail { get; set; } diff --git a/src/Merge.Client/Hris/Types/AuditLogEvent.cs b/src/Merge.Client/Hris/Types/AuditLogEvent.cs index 624a4921..b3f59197 100644 --- a/src/Merge.Client/Hris/Types/AuditLogEvent.cs +++ b/src/Merge.Client/Hris/Types/AuditLogEvent.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -33,7 +34,7 @@ public record AuditLogEvent /// * `MERGE_TEAM` - MERGE_TEAM /// [JsonPropertyName("role")] - public required RoleEnum Role { get; set; } + public required OneOf Role { get; set; } [JsonPropertyName("ip_address")] public required string IpAddress { get; set; } @@ -46,6 +47,7 @@ public record AuditLogEvent /// * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY /// * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY /// * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + /// * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE /// * `INVITED_USER` - INVITED_USER /// * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED /// * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED @@ -85,7 +87,7 @@ public record AuditLogEvent /// * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED /// [JsonPropertyName("event_type")] - public required EventTypeEnum EventType { get; set; } + public required OneOf EventType { get; set; } [JsonPropertyName("event_description")] public required string EventDescription { get; set; } diff --git a/src/Merge.Client/Hris/Types/BankInfo.cs b/src/Merge.Client/Hris/Types/BankInfo.cs index 654fa828..20b6100b 100644 --- a/src/Merge.Client/Hris/Types/BankInfo.cs +++ b/src/Merge.Client/Hris/Types/BankInfo.cs @@ -70,7 +70,7 @@ public record BankInfo /// * `CHECKING` - CHECKING /// [JsonPropertyName("account_type")] - public AccountTypeEnum? AccountType { get; set; } + public OneOf? AccountType { get; set; } /// /// When the matching bank object was created in the third party system. diff --git a/src/Merge.Client/Hris/Types/Dependent.cs b/src/Merge.Client/Hris/Types/Dependent.cs index af568544..f4e9dc54 100644 --- a/src/Merge.Client/Hris/Types/Dependent.cs +++ b/src/Merge.Client/Hris/Types/Dependent.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -64,7 +65,7 @@ public record Dependent /// * `DOMESTIC_PARTNER` - DOMESTIC_PARTNER /// [JsonPropertyName("relationship")] - public RelationshipEnum? Relationship { get; set; } + public OneOf? Relationship { get; set; } /// /// The employee this person is a dependent of. @@ -88,7 +89,7 @@ public record Dependent /// * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE /// [JsonPropertyName("gender")] - public GenderEnum? Gender { get; set; } + public OneOf? Gender { get; set; } /// /// The dependent's phone number. diff --git a/src/Merge.Client/Hris/Types/Earning.cs b/src/Merge.Client/Hris/Types/Earning.cs index e3fcba99..2a09a16c 100644 --- a/src/Merge.Client/Hris/Types/Earning.cs +++ b/src/Merge.Client/Hris/Types/Earning.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -56,7 +57,7 @@ public record Earning /// * `BONUS` - BONUS /// [JsonPropertyName("type")] - public EarningTypeEnum? Type { get; set; } + public OneOf? Type { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Hris/Types/Employee.cs b/src/Merge.Client/Hris/Types/Employee.cs index 09eb22de..312f3b62 100644 --- a/src/Merge.Client/Hris/Types/Employee.cs +++ b/src/Merge.Client/Hris/Types/Employee.cs @@ -154,7 +154,7 @@ public record Employee /// * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE /// [JsonPropertyName("gender")] - public GenderEnum? Gender { get; set; } + public OneOf? Gender { get; set; } /// /// The employee's ethnicity. @@ -169,7 +169,7 @@ public record Employee /// * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE /// [JsonPropertyName("ethnicity")] - public EthnicityEnum? Ethnicity { get; set; } + public OneOf? Ethnicity { get; set; } /// /// The employee's filing status as related to marital status. @@ -181,7 +181,7 @@ public record Employee /// * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD /// [JsonPropertyName("marital_status")] - public MaritalStatusEnum? MaritalStatus { get; set; } + public OneOf? MaritalStatus { get; set; } /// /// The employee's date of birth. @@ -215,7 +215,7 @@ public record Employee /// * `INACTIVE` - INACTIVE /// [JsonPropertyName("employment_status")] - public EmploymentStatusEnum? EmploymentStatus { get; set; } + public OneOf? EmploymentStatus { get; set; } /// /// The employee's termination date. diff --git a/src/Merge.Client/Hris/Types/EmployeeRequest.cs b/src/Merge.Client/Hris/Types/EmployeeRequest.cs index cc53fd43..6ca96999 100644 --- a/src/Merge.Client/Hris/Types/EmployeeRequest.cs +++ b/src/Merge.Client/Hris/Types/EmployeeRequest.cs @@ -130,7 +130,7 @@ public record EmployeeRequest /// * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE /// [JsonPropertyName("gender")] - public GenderEnum? Gender { get; set; } + public OneOf? Gender { get; set; } /// /// The employee's ethnicity. @@ -145,7 +145,7 @@ public record EmployeeRequest /// * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE /// [JsonPropertyName("ethnicity")] - public EthnicityEnum? Ethnicity { get; set; } + public OneOf? Ethnicity { get; set; } /// /// The employee's filing status as related to marital status. @@ -157,7 +157,7 @@ public record EmployeeRequest /// * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD /// [JsonPropertyName("marital_status")] - public MaritalStatusEnum? MaritalStatus { get; set; } + public OneOf? MaritalStatus { get; set; } /// /// The employee's date of birth. @@ -185,7 +185,7 @@ public record EmployeeRequest /// * `INACTIVE` - INACTIVE /// [JsonPropertyName("employment_status")] - public EmploymentStatusEnum? EmploymentStatus { get; set; } + public OneOf? EmploymentStatus { get; set; } /// /// The employee's termination date. diff --git a/src/Merge.Client/Hris/Types/EmployerBenefit.cs b/src/Merge.Client/Hris/Types/EmployerBenefit.cs index d4262da1..f2098b7e 100644 --- a/src/Merge.Client/Hris/Types/EmployerBenefit.cs +++ b/src/Merge.Client/Hris/Types/EmployerBenefit.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -48,7 +49,7 @@ public record EmployerBenefit /// * `OTHER` - OTHER /// [JsonPropertyName("benefit_plan_type")] - public BenefitPlanTypeEnum? BenefitPlanType { get; set; } + public OneOf? BenefitPlanType { get; set; } /// /// The employer benefit's name - typically the carrier or network name. diff --git a/src/Merge.Client/Hris/Types/Employment.cs b/src/Merge.Client/Hris/Types/Employment.cs index a7eef977..5c65a049 100644 --- a/src/Merge.Client/Hris/Types/Employment.cs +++ b/src/Merge.Client/Hris/Types/Employment.cs @@ -73,7 +73,7 @@ public record Employment /// * `YEAR` - YEAR /// [JsonPropertyName("pay_period")] - public PayPeriodEnum? PayPeriod { get; set; } + public OneOf? PayPeriod { get; set; } /// /// The position's pay frequency. @@ -89,7 +89,7 @@ public record Employment /// * `SEMIMONTHLY` - SEMIMONTHLY /// [JsonPropertyName("pay_frequency")] - public PayFrequencyEnum? PayFrequency { get; set; } + public OneOf? PayFrequency { get; set; } /// /// The position's currency code. @@ -402,7 +402,7 @@ public record Employment /// * `ZWL` - Zimbabwean Dollar (2009) /// [JsonPropertyName("pay_currency")] - public PayCurrencyEnum? PayCurrency { get; set; } + public OneOf? PayCurrency { get; set; } /// /// The employment's pay group @@ -419,7 +419,7 @@ public record Employment /// * `OWNER` - OWNER /// [JsonPropertyName("flsa_status")] - public FlsaStatusEnum? FlsaStatus { get; set; } + public OneOf? FlsaStatus { get; set; } /// /// The position's effective date. @@ -437,7 +437,7 @@ public record Employment /// * `FREELANCE` - FREELANCE /// [JsonPropertyName("employment_type")] - public EmploymentTypeEnum? EmploymentType { get; set; } + public OneOf? EmploymentType { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Hris/Types/EventTypeEnum.cs b/src/Merge.Client/Hris/Types/EventTypeEnum.cs index a53d0428..fb95afaf 100644 --- a/src/Merge.Client/Hris/Types/EventTypeEnum.cs +++ b/src/Merge.Client/Hris/Types/EventTypeEnum.cs @@ -22,6 +22,9 @@ public enum EventTypeEnum [EnumMember(Value = "REGENERATED_PRODUCTION_API_KEY")] RegeneratedProductionApiKey, + [EnumMember(Value = "REGENERATED_WEBHOOK_SIGNATURE")] + RegeneratedWebhookSignature, + [EnumMember(Value = "INVITED_USER")] InvitedUser, diff --git a/src/Merge.Client/Hris/Types/Group.cs b/src/Merge.Client/Hris/Types/Group.cs index 060ff461..2e4eab18 100644 --- a/src/Merge.Client/Hris/Types/Group.cs +++ b/src/Merge.Client/Hris/Types/Group.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -60,7 +61,7 @@ public record Group /// * `GROUP` - GROUP /// [JsonPropertyName("type")] - public GroupTypeEnum? Type { get; set; } + public OneOf? Type { get; set; } /// /// Indicates whether the Group refers to a team in the third party platform. Note that this is an opinionated view based on how Merge observes most organizations representing teams in each third party platform. If your customer uses a platform different from most, there is a chance this will not be correct. diff --git a/src/Merge.Client/Hris/Types/IgnoreCommonModelRequest.cs b/src/Merge.Client/Hris/Types/IgnoreCommonModelRequest.cs index 409bcd5f..8ccb7065 100644 --- a/src/Merge.Client/Hris/Types/IgnoreCommonModelRequest.cs +++ b/src/Merge.Client/Hris/Types/IgnoreCommonModelRequest.cs @@ -1,13 +1,14 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; public record IgnoreCommonModelRequest { [JsonPropertyName("reason")] - public required ReasonEnum Reason { get; set; } + public required OneOf Reason { get; set; } [JsonPropertyName("message")] public string? Message { get; set; } diff --git a/src/Merge.Client/Hris/Types/Issue.cs b/src/Merge.Client/Hris/Types/Issue.cs index 930fbbd7..e1cca68c 100644 --- a/src/Merge.Client/Hris/Types/Issue.cs +++ b/src/Merge.Client/Hris/Types/Issue.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -17,7 +18,7 @@ public record Issue /// * `RESOLVED` - RESOLVED /// [JsonPropertyName("status")] - public IssueStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } [JsonPropertyName("error_description")] public required string ErrorDescription { get; set; } diff --git a/src/Merge.Client/Hris/Types/Location.cs b/src/Merge.Client/Hris/Types/Location.cs index 96727ed8..f5d51bce 100644 --- a/src/Merge.Client/Hris/Types/Location.cs +++ b/src/Merge.Client/Hris/Types/Location.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -334,7 +335,7 @@ public record Location /// * `ZW` - Zimbabwe /// [JsonPropertyName("country")] - public CountryEnum? Country { get; set; } + public OneOf? Country { get; set; } /// /// The location's type. Can be either WORK or HOME @@ -343,7 +344,7 @@ public record Location /// * `WORK` - WORK /// [JsonPropertyName("location_type")] - public LocationTypeEnum? LocationType { get; set; } + public OneOf? LocationType { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Hris/Types/PayrollRun.cs b/src/Merge.Client/Hris/Types/PayrollRun.cs index fb847699..0c3053ed 100644 --- a/src/Merge.Client/Hris/Types/PayrollRun.cs +++ b/src/Merge.Client/Hris/Types/PayrollRun.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -48,7 +49,7 @@ public record PayrollRun /// * `CLOSED` - CLOSED /// [JsonPropertyName("run_state")] - public RunStateEnum? RunState { get; set; } + public OneOf? RunState { get; set; } /// /// The type of the payroll run @@ -60,7 +61,7 @@ public record PayrollRun /// * `SIGN_ON_BONUS` - SIGN_ON_BONUS /// [JsonPropertyName("run_type")] - public RunTypeEnum? RunType { get; set; } + public OneOf? RunType { get; set; } /// /// The day and time the payroll run started. diff --git a/src/Merge.Client/Hris/Types/RemoteResponse.cs b/src/Merge.Client/Hris/Types/RemoteResponse.cs index 632e5e25..a83ad95e 100644 --- a/src/Merge.Client/Hris/Types/RemoteResponse.cs +++ b/src/Merge.Client/Hris/Types/RemoteResponse.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -30,7 +31,7 @@ public record RemoteResponse public Dictionary? ResponseHeaders { get; set; } [JsonPropertyName("response_type")] - public ResponseTypeEnum? ResponseType { get; set; } + public OneOf? ResponseType { get; set; } [JsonPropertyName("headers")] public Dictionary? Headers { get; set; } diff --git a/src/Merge.Client/Hris/Types/SyncStatus.cs b/src/Merge.Client/Hris/Types/SyncStatus.cs index 3298fd10..2f4ca707 100644 --- a/src/Merge.Client/Hris/Types/SyncStatus.cs +++ b/src/Merge.Client/Hris/Types/SyncStatus.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Hris; @@ -27,13 +28,13 @@ public record SyncStatus public DateTime? NextSyncStart { get; set; } [JsonPropertyName("last_sync_result")] - public LastSyncResultEnum? LastSyncResult { get; set; } + public OneOf? LastSyncResult { get; set; } [JsonPropertyName("last_sync_finished")] public DateTime? LastSyncFinished { get; set; } [JsonPropertyName("status")] - public required StatusFd5Enum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("is_initial_sync")] public required bool IsInitialSync { get; set; } diff --git a/src/Merge.Client/Hris/Types/TimeOff.cs b/src/Merge.Client/Hris/Types/TimeOff.cs index c2cf5c79..f8e07e45 100644 --- a/src/Merge.Client/Hris/Types/TimeOff.cs +++ b/src/Merge.Client/Hris/Types/TimeOff.cs @@ -61,7 +61,7 @@ public record TimeOff /// * `DELETED` - DELETED /// [JsonPropertyName("status")] - public TimeOffStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The employee note for this time off request. @@ -76,7 +76,7 @@ public record TimeOff /// * `DAYS` - DAYS /// [JsonPropertyName("units")] - public UnitsEnum? Units { get; set; } + public OneOf? Units { get; set; } /// /// The time off quantity measured by the prescribed “units”. @@ -95,7 +95,7 @@ public record TimeOff /// * `BEREAVEMENT` - BEREAVEMENT /// [JsonPropertyName("request_type")] - public RequestTypeEnum? RequestType { get; set; } + public OneOf? RequestType { get; set; } /// /// The day and time of the start of the time requested off. diff --git a/src/Merge.Client/Hris/Types/TimeOffBalance.cs b/src/Merge.Client/Hris/Types/TimeOffBalance.cs index 738d87f9..bac080c0 100644 --- a/src/Merge.Client/Hris/Types/TimeOffBalance.cs +++ b/src/Merge.Client/Hris/Types/TimeOffBalance.cs @@ -68,7 +68,7 @@ public record TimeOffBalance /// * `BEREAVEMENT` - BEREAVEMENT /// [JsonPropertyName("policy_type")] - public PolicyTypeEnum? PolicyType { get; set; } + public OneOf? PolicyType { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Hris/Types/TimeOffRequest.cs b/src/Merge.Client/Hris/Types/TimeOffRequest.cs index 8cf591d1..18677632 100644 --- a/src/Merge.Client/Hris/Types/TimeOffRequest.cs +++ b/src/Merge.Client/Hris/Types/TimeOffRequest.cs @@ -37,7 +37,7 @@ public record TimeOffRequest /// * `DELETED` - DELETED /// [JsonPropertyName("status")] - public TimeOffStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The employee note for this time off request. @@ -52,7 +52,7 @@ public record TimeOffRequest /// * `DAYS` - DAYS /// [JsonPropertyName("units")] - public UnitsEnum? Units { get; set; } + public OneOf? Units { get; set; } /// /// The time off quantity measured by the prescribed “units”. @@ -71,7 +71,7 @@ public record TimeOffRequest /// * `BEREAVEMENT` - BEREAVEMENT /// [JsonPropertyName("request_type")] - public RequestTypeEnum? RequestType { get; set; } + public OneOf? RequestType { get; set; } /// /// The day and time of the start of the time requested off. diff --git a/src/Merge.Client/Hris/WebhookReceivers/WebhookReceiversClient.cs b/src/Merge.Client/Hris/WebhookReceivers/WebhookReceiversClient.cs index cb591d09..d63c52f1 100644 --- a/src/Merge.Client/Hris/WebhookReceivers/WebhookReceiversClient.cs +++ b/src/Merge.Client/Hris/WebhookReceivers/WebhookReceiversClient.cs @@ -29,7 +29,7 @@ public async Task> ListAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "hris/v1/webhook-receivers", Options = options, @@ -78,7 +78,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "hris/v1/webhook-receivers", Body = request, diff --git a/src/Merge.Client/Merge.Client.csproj b/src/Merge.Client/Merge.Client.csproj index 5cfd7467..32111622 100644 --- a/src/Merge.Client/Merge.Client.csproj +++ b/src/Merge.Client/Merge.Client.csproj @@ -5,7 +5,7 @@ enable 12 enable - 2.0.0 + 3.0.0 $(Version) $(Version) README.md diff --git a/src/Merge.Client/MergeClient.cs b/src/Merge.Client/MergeClient.cs deleted file mode 100644 index 8c14619c..00000000 --- a/src/Merge.Client/MergeClient.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Merge.Client.Core; - -namespace Merge.Client; - -public class MergeClient( - string apiKey, - string? accountToken = null, - ClientOptions? clientOptions = null) - : BaseMergeClient(apiKey, accountToken, clientOptions); diff --git a/src/Merge.Client/Ticketing/AccountDetails/AccountDetailsClient.cs b/src/Merge.Client/Ticketing/AccountDetails/AccountDetailsClient.cs index 843e5b7a..e2a306e7 100644 --- a/src/Merge.Client/Ticketing/AccountDetails/AccountDetailsClient.cs +++ b/src/Merge.Client/Ticketing/AccountDetails/AccountDetailsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/account-details", Options = options, diff --git a/src/Merge.Client/Ticketing/AccountToken/AccountTokenClient.cs b/src/Merge.Client/Ticketing/AccountToken/AccountTokenClient.cs index 92894194..a19b0f48 100644 --- a/src/Merge.Client/Ticketing/AccountToken/AccountTokenClient.cs +++ b/src/Merge.Client/Ticketing/AccountToken/AccountTokenClient.cs @@ -30,7 +30,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/account-token/{0}", diff --git a/src/Merge.Client/Ticketing/Accounts/AccountsClient.cs b/src/Merge.Client/Ticketing/Accounts/AccountsClient.cs index 52465d7d..1926ab72 100644 --- a/src/Merge.Client/Ticketing/Accounts/AccountsClient.cs +++ b/src/Merge.Client/Ticketing/Accounts/AccountsClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/accounts", Query = _query, @@ -171,7 +171,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/accounts/{0}", diff --git a/src/Merge.Client/Ticketing/AsyncPassthrough/AsyncPassthroughClient.cs b/src/Merge.Client/Ticketing/AsyncPassthrough/AsyncPassthroughClient.cs index f7ceec27..bc5d32e4 100644 --- a/src/Merge.Client/Ticketing/AsyncPassthrough/AsyncPassthroughClient.cs +++ b/src/Merge.Client/Ticketing/AsyncPassthrough/AsyncPassthroughClient.cs @@ -37,7 +37,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/async-passthrough", Body = request, @@ -86,7 +86,7 @@ public async Task> RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/async-passthrough/{0}", diff --git a/src/Merge.Client/Ticketing/Attachments/AttachmentsClient.cs b/src/Merge.Client/Ticketing/Attachments/AttachmentsClient.cs index 9e338453..7264ab4e 100644 --- a/src/Merge.Client/Ticketing/Attachments/AttachmentsClient.cs +++ b/src/Merge.Client/Ticketing/Attachments/AttachmentsClient.cs @@ -86,7 +86,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/attachments", Query = _query, @@ -187,7 +187,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/attachments", Body = request, @@ -248,7 +248,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/attachments/{0}", @@ -306,7 +306,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/attachments/{0}/download", @@ -343,7 +343,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/attachments/meta/post", Options = options, diff --git a/src/Merge.Client/Ticketing/AuditTrail/AuditTrailClient.cs b/src/Merge.Client/Ticketing/AuditTrail/AuditTrailClient.cs index 138e96a6..d6d05727 100644 --- a/src/Merge.Client/Ticketing/AuditTrail/AuditTrailClient.cs +++ b/src/Merge.Client/Ticketing/AuditTrail/AuditTrailClient.cs @@ -52,7 +52,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/audit-trail", Query = _query, diff --git a/src/Merge.Client/Ticketing/AuditTrail/Requests/AuditTrailListRequest.cs b/src/Merge.Client/Ticketing/AuditTrail/Requests/AuditTrailListRequest.cs index 4573efac..12b9bbf6 100644 --- a/src/Merge.Client/Ticketing/AuditTrail/Requests/AuditTrailListRequest.cs +++ b/src/Merge.Client/Ticketing/AuditTrail/Requests/AuditTrailListRequest.cs @@ -18,7 +18,7 @@ public record AuditTrailListRequest public string? EndDate { get; set; } /// - /// If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` + /// If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` /// [JsonIgnore] public string? EventType { get; set; } diff --git a/src/Merge.Client/Ticketing/AvailableActions/AvailableActionsClient.cs b/src/Merge.Client/Ticketing/AvailableActions/AvailableActionsClient.cs index 876f9f54..cabf6571 100644 --- a/src/Merge.Client/Ticketing/AvailableActions/AvailableActionsClient.cs +++ b/src/Merge.Client/Ticketing/AvailableActions/AvailableActionsClient.cs @@ -29,7 +29,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/available-actions", Options = options, diff --git a/src/Merge.Client/Ticketing/Collections/CollectionsClient.cs b/src/Merge.Client/Ticketing/Collections/CollectionsClient.cs index 314f114e..9598078c 100644 --- a/src/Merge.Client/Ticketing/Collections/CollectionsClient.cs +++ b/src/Merge.Client/Ticketing/Collections/CollectionsClient.cs @@ -91,7 +91,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/collections", Query = _query, @@ -159,7 +159,7 @@ private async Task ViewersListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/collections/{0}/viewers", @@ -263,7 +263,7 @@ public async Task> ViewersListAsync( .CreateInstanceAsync( request, options, - (request, options, cancellationToken) => ViewersListInternalAsync(collectionId, request, options, cancellationToken), + ViewersListInternalAsync, (request, cursor) => { request.Cursor = cursor; @@ -311,7 +311,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/collections/{0}", diff --git a/src/Merge.Client/Ticketing/Comments/CommentsClient.cs b/src/Merge.Client/Ticketing/Comments/CommentsClient.cs index 54b5cce8..7e2b73e9 100644 --- a/src/Merge.Client/Ticketing/Comments/CommentsClient.cs +++ b/src/Merge.Client/Ticketing/Comments/CommentsClient.cs @@ -85,7 +85,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/comments", Query = _query, @@ -183,7 +183,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/comments", Body = request, @@ -244,7 +244,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/comments/{0}", @@ -294,7 +294,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/comments/meta/post", Options = options, diff --git a/src/Merge.Client/Ticketing/Contacts/ContactsClient.cs b/src/Merge.Client/Ticketing/Contacts/ContactsClient.cs index bf8f3cde..0898f337 100644 --- a/src/Merge.Client/Ticketing/Contacts/ContactsClient.cs +++ b/src/Merge.Client/Ticketing/Contacts/ContactsClient.cs @@ -75,7 +75,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/contacts", Query = _query, @@ -173,7 +173,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/contacts", Body = request, @@ -234,7 +234,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/contacts/{0}", @@ -284,7 +284,7 @@ public async Task MetaPostRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/contacts/meta/post", Options = options, diff --git a/src/Merge.Client/Ticketing/DeleteAccount/DeleteAccountClient.cs b/src/Merge.Client/Ticketing/DeleteAccount/DeleteAccountClient.cs index 8db8567c..73f2e1b9 100644 --- a/src/Merge.Client/Ticketing/DeleteAccount/DeleteAccountClient.cs +++ b/src/Merge.Client/Ticketing/DeleteAccount/DeleteAccountClient.cs @@ -29,7 +29,7 @@ internal DeleteAccountClient(RawClient client) .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/delete-account", Options = options, diff --git a/src/Merge.Client/Ticketing/FieldMapping/FieldMappingClient.cs b/src/Merge.Client/Ticketing/FieldMapping/FieldMappingClient.cs index ff62b01f..dd7b841d 100644 --- a/src/Merge.Client/Ticketing/FieldMapping/FieldMappingClient.cs +++ b/src/Merge.Client/Ticketing/FieldMapping/FieldMappingClient.cs @@ -37,7 +37,7 @@ public async Task FieldMappingsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/field-mappings", Query = _query, @@ -102,7 +102,7 @@ public async Task FieldMappingsCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/field-mappings", Body = request, @@ -152,7 +152,7 @@ public async Task FieldMappingsDestroyAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Delete, Path = string.Format( "ticketing/v1/field-mappings/{0}", @@ -206,7 +206,7 @@ public async Task FieldMappingsPartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "ticketing/v1/field-mappings/{0}", @@ -267,7 +267,7 @@ public async Task RemoteFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/remote-fields", Query = _query, @@ -314,7 +314,7 @@ public async Task TargetFieldsRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/target-fields", Options = options, diff --git a/src/Merge.Client/Ticketing/ForceResync/ForceResyncClient.cs b/src/Merge.Client/Ticketing/ForceResync/ForceResyncClient.cs index 76b0ac58..f9de85ec 100644 --- a/src/Merge.Client/Ticketing/ForceResync/ForceResyncClient.cs +++ b/src/Merge.Client/Ticketing/ForceResync/ForceResyncClient.cs @@ -29,7 +29,7 @@ public async Task> SyncStatusResyncCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/sync-status/resync", Options = options, diff --git a/src/Merge.Client/Ticketing/GenerateKey/GenerateKeyClient.cs b/src/Merge.Client/Ticketing/GenerateKey/GenerateKeyClient.cs index 1585c688..001b76e1 100644 --- a/src/Merge.Client/Ticketing/GenerateKey/GenerateKeyClient.cs +++ b/src/Merge.Client/Ticketing/GenerateKey/GenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/generate-key", Body = request, diff --git a/src/Merge.Client/Ticketing/Issues/IssuesClient.cs b/src/Merge.Client/Ticketing/Issues/IssuesClient.cs index 5dc5eb1a..c40623c0 100644 --- a/src/Merge.Client/Ticketing/Issues/IssuesClient.cs +++ b/src/Merge.Client/Ticketing/Issues/IssuesClient.cs @@ -92,7 +92,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/issues", Query = _query, @@ -179,7 +179,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/issues/{0}", diff --git a/src/Merge.Client/Ticketing/LinkToken/LinkTokenClient.cs b/src/Merge.Client/Ticketing/LinkToken/LinkTokenClient.cs index d0a6b633..23539e27 100644 --- a/src/Merge.Client/Ticketing/LinkToken/LinkTokenClient.cs +++ b/src/Merge.Client/Ticketing/LinkToken/LinkTokenClient.cs @@ -42,7 +42,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/link-token", Body = request, diff --git a/src/Merge.Client/Ticketing/LinkToken/Requests/EndUserDetailsRequest.cs b/src/Merge.Client/Ticketing/LinkToken/Requests/EndUserDetailsRequest.cs index 632b2c59..833d5ad3 100644 --- a/src/Merge.Client/Ticketing/LinkToken/Requests/EndUserDetailsRequest.cs +++ b/src/Merge.Client/Ticketing/LinkToken/Requests/EndUserDetailsRequest.cs @@ -1,5 +1,6 @@ using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ticketing; @@ -75,7 +76,7 @@ public Dictionary< /// * `de` - de /// [JsonPropertyName("language")] - public LanguageEnum? Language { get; set; } + public OneOf? Language { get; set; } /// /// The boolean that indicates whether initial, periodic, and force syncs will be disabled. diff --git a/src/Merge.Client/Ticketing/LinkedAccounts/LinkedAccountsClient.cs b/src/Merge.Client/Ticketing/LinkedAccounts/LinkedAccountsClient.cs index c19234fb..f88b3495 100644 --- a/src/Merge.Client/Ticketing/LinkedAccounts/LinkedAccountsClient.cs +++ b/src/Merge.Client/Ticketing/LinkedAccounts/LinkedAccountsClient.cs @@ -80,7 +80,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/linked-accounts", Query = _query, diff --git a/src/Merge.Client/Ticketing/Passthrough/PassthroughClient.cs b/src/Merge.Client/Ticketing/Passthrough/PassthroughClient.cs index 9f3040c6..738a54f6 100644 --- a/src/Merge.Client/Ticketing/Passthrough/PassthroughClient.cs +++ b/src/Merge.Client/Ticketing/Passthrough/PassthroughClient.cs @@ -36,7 +36,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/passthrough", Body = request, diff --git a/src/Merge.Client/Ticketing/Projects/ProjectsClient.cs b/src/Merge.Client/Ticketing/Projects/ProjectsClient.cs index 7c56b7d3..7a19996d 100644 --- a/src/Merge.Client/Ticketing/Projects/ProjectsClient.cs +++ b/src/Merge.Client/Ticketing/Projects/ProjectsClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/projects", Query = _query, @@ -142,7 +142,7 @@ private async Task UsersListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/projects/{0}/users", @@ -242,7 +242,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/projects/{0}", @@ -304,7 +304,7 @@ public async Task> UsersListAsync( .CreateInstanceAsync( request, options, - (request, options, cancellationToken) => UsersListInternalAsync(parentId, request, options, cancellationToken), + UsersListInternalAsync, (request, cursor) => { request.Cursor = cursor; diff --git a/src/Merge.Client/Ticketing/RegenerateKey/RegenerateKeyClient.cs b/src/Merge.Client/Ticketing/RegenerateKey/RegenerateKeyClient.cs index efddc99e..f2f43a64 100644 --- a/src/Merge.Client/Ticketing/RegenerateKey/RegenerateKeyClient.cs +++ b/src/Merge.Client/Ticketing/RegenerateKey/RegenerateKeyClient.cs @@ -32,7 +32,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/regenerate-key", Body = request, diff --git a/src/Merge.Client/Ticketing/Roles/RolesClient.cs b/src/Merge.Client/Ticketing/Roles/RolesClient.cs index 1efe9e50..e9c726b2 100644 --- a/src/Merge.Client/Ticketing/Roles/RolesClient.cs +++ b/src/Merge.Client/Ticketing/Roles/RolesClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/roles", Query = _query, @@ -171,7 +171,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/roles/{0}", diff --git a/src/Merge.Client/Ticketing/Scopes/ScopesClient.cs b/src/Merge.Client/Ticketing/Scopes/ScopesClient.cs index 9b8587d7..1d3513ed 100644 --- a/src/Merge.Client/Ticketing/Scopes/ScopesClient.cs +++ b/src/Merge.Client/Ticketing/Scopes/ScopesClient.cs @@ -29,7 +29,7 @@ public async Task DefaultScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/default-scopes", Options = options, @@ -75,7 +75,7 @@ public async Task LinkedAccountScopesRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/linked-account-scopes", Options = options, @@ -176,7 +176,7 @@ public async Task LinkedAccountScopesCreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/linked-account-scopes", Body = request, diff --git a/src/Merge.Client/Ticketing/SyncStatus/SyncStatusClient.cs b/src/Merge.Client/Ticketing/SyncStatus/SyncStatusClient.cs index cb624dd2..95b58d88 100644 --- a/src/Merge.Client/Ticketing/SyncStatus/SyncStatusClient.cs +++ b/src/Merge.Client/Ticketing/SyncStatus/SyncStatusClient.cs @@ -36,7 +36,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/sync-status", Query = _query, diff --git a/src/Merge.Client/Ticketing/Tags/TagsClient.cs b/src/Merge.Client/Ticketing/Tags/TagsClient.cs index 89b69d97..8b4891d7 100644 --- a/src/Merge.Client/Ticketing/Tags/TagsClient.cs +++ b/src/Merge.Client/Ticketing/Tags/TagsClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/tags", Query = _query, @@ -171,7 +171,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/tags/{0}", diff --git a/src/Merge.Client/Ticketing/Teams/TeamsClient.cs b/src/Merge.Client/Ticketing/Teams/TeamsClient.cs index 5fc1ace2..1f0bd3dd 100644 --- a/src/Merge.Client/Ticketing/Teams/TeamsClient.cs +++ b/src/Merge.Client/Ticketing/Teams/TeamsClient.cs @@ -74,7 +74,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/teams", Query = _query, @@ -171,7 +171,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/teams/{0}", diff --git a/src/Merge.Client/Ticketing/Tickets/Requests/TicketsListRequest.cs b/src/Merge.Client/Ticketing/Tickets/Requests/TicketsListRequest.cs index 8cc5e219..846fdb2d 100644 --- a/src/Merge.Client/Ticketing/Tickets/Requests/TicketsListRequest.cs +++ b/src/Merge.Client/Ticketing/Tickets/Requests/TicketsListRequest.cs @@ -53,6 +53,12 @@ public record TicketsListRequest [JsonIgnore] public DateTime? CreatedBefore { get; set; } + /// + /// If provided, will only return tickets created by this creator_id. + /// + [JsonIgnore] + public string? CreatorId { get; set; } + /// /// The pagination cursor value. /// diff --git a/src/Merge.Client/Ticketing/Tickets/Requests/TicketsMetaPostRetrieveRequest.cs b/src/Merge.Client/Ticketing/Tickets/Requests/TicketsMetaPostRetrieveRequest.cs new file mode 100644 index 00000000..83097299 --- /dev/null +++ b/src/Merge.Client/Ticketing/Tickets/Requests/TicketsMetaPostRetrieveRequest.cs @@ -0,0 +1,25 @@ +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.Ticketing; + +public record TicketsMetaPostRetrieveRequest +{ + /// + /// If provided, will only return tickets for this collection. + /// + [JsonIgnore] + public string? CollectionId { get; set; } + + /// + /// If provided, will only return tickets for this ticket type. + /// + [JsonIgnore] + public string? TicketType { get; set; } + + /// + public override string ToString() + { + return JsonUtils.Serialize(this); + } +} diff --git a/src/Merge.Client/Ticketing/Tickets/Requests/TicketsRemoteFieldClassesListRequest.cs b/src/Merge.Client/Ticketing/Tickets/Requests/TicketsRemoteFieldClassesListRequest.cs index 45fbff73..45c77768 100644 --- a/src/Merge.Client/Ticketing/Tickets/Requests/TicketsRemoteFieldClassesListRequest.cs +++ b/src/Merge.Client/Ticketing/Tickets/Requests/TicketsRemoteFieldClassesListRequest.cs @@ -41,6 +41,12 @@ public record TicketsRemoteFieldClassesListRequest [JsonIgnore] public bool? IsCommonModelField { get; set; } + /// + /// If provided, will only return remote fields classes with this is_custom value + /// + [JsonIgnore] + public bool? IsCustom { get; set; } + /// /// Number of results to return per page. /// diff --git a/src/Merge.Client/Ticketing/Tickets/TicketsClient.cs b/src/Merge.Client/Ticketing/Tickets/TicketsClient.cs index bbca02c2..bf4d6f27 100644 --- a/src/Merge.Client/Ticketing/Tickets/TicketsClient.cs +++ b/src/Merge.Client/Ticketing/Tickets/TicketsClient.cs @@ -63,6 +63,10 @@ private async Task ListInternalAsync( Constants.DateTimeFormat ); } + if (request.CreatorId != null) + { + _query["creator_id"] = request.CreatorId; + } if (request.Cursor != null) { _query["cursor"] = request.Cursor; @@ -173,7 +177,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/tickets", Query = _query, @@ -241,7 +245,7 @@ private async Task ViewersListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/tickets/{0}/viewers", @@ -310,6 +314,10 @@ private async Task RemoteFieldClassesListInternal { _query["is_common_model_field"] = JsonUtils.Serialize(request.IsCommonModelField.Value); } + if (request.IsCustom != null) + { + _query["is_custom"] = JsonUtils.Serialize(request.IsCustom.Value); + } if (request.PageSize != null) { _query["page_size"] = request.PageSize.Value.ToString(); @@ -318,7 +326,7 @@ private async Task RemoteFieldClassesListInternal .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/tickets/remote-field-classes", Query = _query, @@ -416,7 +424,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/tickets", Body = request, @@ -491,7 +499,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/tickets/{0}", @@ -555,7 +563,7 @@ public async Task PartialUpdateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethodExtensions.Patch, Path = string.Format( "ticketing/v1/tickets/{0}", @@ -619,7 +627,7 @@ public async Task> ViewersListAsync( .CreateInstanceAsync( request, options, - (request, options, cancellationToken) => ViewersListInternalAsync(ticketId, request, options, cancellationToken), + ViewersListInternalAsync, (request, cursor) => { request.Cursor = cursor; @@ -648,7 +656,7 @@ public async Task MetaPatchRetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/tickets/meta/patch/{0}", @@ -686,20 +694,31 @@ public async Task MetaPatchRetrieveAsync( /// Returns metadata for `Ticket` POSTs. /// /// - /// await client.Ticketing.Tickets.MetaPostRetrieveAsync(); + /// await client.Ticketing.Tickets.MetaPostRetrieveAsync(new TicketsMetaPostRetrieveRequest()); /// public async Task MetaPostRetrieveAsync( + TicketsMetaPostRetrieveRequest request, RequestOptions? options = null, CancellationToken cancellationToken = default ) { + var _query = new Dictionary(); + if (request.CollectionId != null) + { + _query["collection_id"] = request.CollectionId; + } + if (request.TicketType != null) + { + _query["ticket_type"] = request.TicketType; + } var response = await _client .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/tickets/meta/post", + Query = _query, Options = options, }, cancellationToken diff --git a/src/Merge.Client/Ticketing/Types/AccountDetails.cs b/src/Merge.Client/Ticketing/Types/AccountDetails.cs index 0be9acc6..b2da6f54 100644 --- a/src/Merge.Client/Ticketing/Types/AccountDetails.cs +++ b/src/Merge.Client/Ticketing/Types/AccountDetails.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ticketing; @@ -19,7 +20,7 @@ public record AccountDetails public string? IntegrationSlug { get; set; } [JsonPropertyName("category")] - public CategoryEnum? Category { get; set; } + public OneOf? Category { get; set; } [JsonAccess(JsonAccessType.ReadOnly)] [JsonPropertyName("end_user_origin_id")] diff --git a/src/Merge.Client/Ticketing/Types/AccountDetailsAndActions.cs b/src/Merge.Client/Ticketing/Types/AccountDetailsAndActions.cs index 48916657..5d4565d5 100644 --- a/src/Merge.Client/Ticketing/Types/AccountDetailsAndActions.cs +++ b/src/Merge.Client/Ticketing/Types/AccountDetailsAndActions.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ticketing; @@ -18,10 +19,10 @@ public record AccountDetailsAndActions public required string Id { get; set; } [JsonPropertyName("category")] - public CategoryEnum? Category { get; set; } + public OneOf? Category { get; set; } [JsonPropertyName("status")] - public required AccountDetailsAndActionsStatusEnum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("status_detail")] public string? StatusDetail { get; set; } diff --git a/src/Merge.Client/Ticketing/Types/AuditLogEvent.cs b/src/Merge.Client/Ticketing/Types/AuditLogEvent.cs index cf9068a6..ef4faa89 100644 --- a/src/Merge.Client/Ticketing/Types/AuditLogEvent.cs +++ b/src/Merge.Client/Ticketing/Types/AuditLogEvent.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ticketing; @@ -33,7 +34,7 @@ public record AuditLogEvent /// * `MERGE_TEAM` - MERGE_TEAM /// [JsonPropertyName("role")] - public required RoleEnum Role { get; set; } + public required OneOf Role { get; set; } [JsonPropertyName("ip_address")] public required string IpAddress { get; set; } @@ -46,6 +47,7 @@ public record AuditLogEvent /// * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY /// * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY /// * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + /// * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE /// * `INVITED_USER` - INVITED_USER /// * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED /// * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED @@ -85,7 +87,7 @@ public record AuditLogEvent /// * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED /// [JsonPropertyName("event_type")] - public required EventTypeEnum EventType { get; set; } + public required OneOf EventType { get; set; } [JsonPropertyName("event_description")] public required string EventDescription { get; set; } diff --git a/src/Merge.Client/Ticketing/Types/Collection.cs b/src/Merge.Client/Ticketing/Types/Collection.cs index f357054c..8e86d9a1 100644 --- a/src/Merge.Client/Ticketing/Types/Collection.cs +++ b/src/Merge.Client/Ticketing/Types/Collection.cs @@ -51,6 +51,17 @@ public record Collection [JsonPropertyName("description")] public string? Description { get; set; } + /// + /// The level of access a User has to the Collection and its sub-objects. + /// + /// * `PRIVATE` - PRIVATE + /// * `COMPANY` - COMPANY + /// * `PUBLIC` - PUBLIC + /// * `PARENT_COLLECTION` - PARENT_COLLECTION + /// + [JsonPropertyName("access_level")] + public OneOf? AccessLevel { get; set; } + /// /// The collection's type. /// @@ -72,16 +83,6 @@ public record Collection [JsonPropertyName("remote_was_deleted")] public bool? RemoteWasDeleted { get; set; } - /// - /// The level of access a User has to the Collection and its sub-objects. - /// - /// * `PRIVATE` - PRIVATE - /// * `COMPANY` - COMPANY - /// * `PUBLIC` - PUBLIC - /// - [JsonPropertyName("access_level")] - public AccessLevelEnum? AccessLevel { get; set; } - [JsonAccess(JsonAccessType.ReadOnly)] [JsonPropertyName("field_mappings")] public Dictionary? FieldMappings { get; set; } diff --git a/src/Merge.Client/Ticketing/Types/CollectionAccessLevelEnum.cs b/src/Merge.Client/Ticketing/Types/CollectionAccessLevelEnum.cs new file mode 100644 index 00000000..d27564d5 --- /dev/null +++ b/src/Merge.Client/Ticketing/Types/CollectionAccessLevelEnum.cs @@ -0,0 +1,21 @@ +using System.Runtime.Serialization; +using System.Text.Json.Serialization; +using Merge.Client.Core; + +namespace Merge.Client.Ticketing; + +[JsonConverter(typeof(EnumSerializer))] +public enum CollectionAccessLevelEnum +{ + [EnumMember(Value = "PRIVATE")] + Private, + + [EnumMember(Value = "COMPANY")] + Company, + + [EnumMember(Value = "PUBLIC")] + Public, + + [EnumMember(Value = "PARENT_COLLECTION")] + ParentCollection, +} diff --git a/src/Merge.Client/Ticketing/Types/EventTypeEnum.cs b/src/Merge.Client/Ticketing/Types/EventTypeEnum.cs index e0dddf8c..815747db 100644 --- a/src/Merge.Client/Ticketing/Types/EventTypeEnum.cs +++ b/src/Merge.Client/Ticketing/Types/EventTypeEnum.cs @@ -22,6 +22,9 @@ public enum EventTypeEnum [EnumMember(Value = "REGENERATED_PRODUCTION_API_KEY")] RegeneratedProductionApiKey, + [EnumMember(Value = "REGENERATED_WEBHOOK_SIGNATURE")] + RegeneratedWebhookSignature, + [EnumMember(Value = "INVITED_USER")] InvitedUser, diff --git a/src/Merge.Client/Ticketing/Types/Issue.cs b/src/Merge.Client/Ticketing/Types/Issue.cs index 783f6cf2..41305d3d 100644 --- a/src/Merge.Client/Ticketing/Types/Issue.cs +++ b/src/Merge.Client/Ticketing/Types/Issue.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ticketing; @@ -17,7 +18,7 @@ public record Issue /// * `RESOLVED` - RESOLVED /// [JsonPropertyName("status")] - public IssueStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } [JsonPropertyName("error_description")] public required string ErrorDescription { get; set; } diff --git a/src/Merge.Client/Ticketing/Types/MultipartFormFieldRequest.cs b/src/Merge.Client/Ticketing/Types/MultipartFormFieldRequest.cs index 2713ef8d..49d0d98d 100644 --- a/src/Merge.Client/Ticketing/Types/MultipartFormFieldRequest.cs +++ b/src/Merge.Client/Ticketing/Types/MultipartFormFieldRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ticketing; @@ -34,7 +35,7 @@ public record MultipartFormFieldRequest /// * `GZIP_BASE64` - GZIP_BASE64 /// [JsonPropertyName("encoding")] - public EncodingEnum? Encoding { get; set; } + public OneOf? Encoding { get; set; } /// /// The file name of the form field, if the field is for a file. diff --git a/src/Merge.Client/Ticketing/Types/PatchedTicketRequest.cs b/src/Merge.Client/Ticketing/Types/PatchedTicketRequest.cs index 4aa95835..3e8b9d7a 100644 --- a/src/Merge.Client/Ticketing/Types/PatchedTicketRequest.cs +++ b/src/Merge.Client/Ticketing/Types/PatchedTicketRequest.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ticketing; @@ -52,7 +53,7 @@ public record PatchedTicketRequest /// * `ON_HOLD` - ON_HOLD /// [JsonPropertyName("status")] - public TicketStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The ticket’s description. HTML version of description is mapped if supported by the third-party platform. @@ -90,6 +91,17 @@ public record PatchedTicketRequest [JsonPropertyName("parent_ticket")] public string? ParentTicket { get; set; } + /// + /// The description of who is able to access a given ticket, or where access is inherited from. + /// + /// * `COMPANY` - COMPANY + /// * `PUBLIC` - PUBLIC + /// * `PRIVATE` - PRIVATE + /// * `COLLECTION` - COLLECTION + /// + [JsonPropertyName("access_level")] + public OneOf? AccessLevel { get; set; } + [JsonPropertyName("tags")] public IEnumerable? Tags { get; set; } diff --git a/src/Merge.Client/Ticketing/Types/RemoteResponse.cs b/src/Merge.Client/Ticketing/Types/RemoteResponse.cs index 06d79881..6bc20e1c 100644 --- a/src/Merge.Client/Ticketing/Types/RemoteResponse.cs +++ b/src/Merge.Client/Ticketing/Types/RemoteResponse.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ticketing; @@ -30,7 +31,7 @@ public record RemoteResponse public Dictionary? ResponseHeaders { get; set; } [JsonPropertyName("response_type")] - public ResponseTypeEnum? ResponseType { get; set; } + public OneOf? ResponseType { get; set; } [JsonPropertyName("headers")] public Dictionary? Headers { get; set; } diff --git a/src/Merge.Client/Ticketing/Types/Role.cs b/src/Merge.Client/Ticketing/Types/Role.cs index 1ea6908b..2cf38a1e 100644 --- a/src/Merge.Client/Ticketing/Types/Role.cs +++ b/src/Merge.Client/Ticketing/Types/Role.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ticketing; @@ -48,7 +49,7 @@ public record Role /// The set of actions that a User with this Role can perform. Possible enum values include: `VIEW`, `CREATE`, `EDIT`, `DELETE`, `CLOSE`, and `ASSIGN`. /// [JsonPropertyName("ticket_actions")] - public IEnumerable? TicketActions { get; set; } + public IEnumerable>? TicketActions { get; set; } /// /// The level of Ticket access that a User with this Role can perform. @@ -58,7 +59,7 @@ public record Role /// * `TEAM_ONLY` - TEAM_ONLY /// [JsonPropertyName("ticket_access")] - public TicketAccessEnum? TicketAccess { get; set; } + public OneOf? TicketAccess { get; set; } /// /// Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). diff --git a/src/Merge.Client/Ticketing/Types/SyncStatus.cs b/src/Merge.Client/Ticketing/Types/SyncStatus.cs index 1fb7457a..d23213a9 100644 --- a/src/Merge.Client/Ticketing/Types/SyncStatus.cs +++ b/src/Merge.Client/Ticketing/Types/SyncStatus.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Merge.Client.Core; +using OneOf; namespace Merge.Client.Ticketing; @@ -27,13 +28,13 @@ public record SyncStatus public DateTime? NextSyncStart { get; set; } [JsonPropertyName("last_sync_result")] - public LastSyncResultEnum? LastSyncResult { get; set; } + public OneOf? LastSyncResult { get; set; } [JsonPropertyName("last_sync_finished")] public DateTime? LastSyncFinished { get; set; } [JsonPropertyName("status")] - public required StatusFd5Enum Status { get; set; } + public required OneOf Status { get; set; } [JsonPropertyName("is_initial_sync")] public required bool IsInitialSync { get; set; } diff --git a/src/Merge.Client/Ticketing/Types/Ticket.cs b/src/Merge.Client/Ticketing/Types/Ticket.cs index 527d0047..b75485bc 100644 --- a/src/Merge.Client/Ticketing/Types/Ticket.cs +++ b/src/Merge.Client/Ticketing/Types/Ticket.cs @@ -77,7 +77,7 @@ public record Ticket /// * `ON_HOLD` - ON_HOLD /// [JsonPropertyName("status")] - public TicketStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The ticket’s description. HTML version of description is mapped if supported by the third-party platform. @@ -118,12 +118,40 @@ public record Ticket [JsonPropertyName("attachments")] public IEnumerable>? Attachments { get; set; } + /// + /// The description of who is able to access a given ticket, or where access is inherited from. + /// + /// * `COMPANY` - COMPANY + /// * `PUBLIC` - PUBLIC + /// * `PRIVATE` - PRIVATE + /// * `COLLECTION` - COLLECTION + /// + [JsonPropertyName("access_level")] + public OneOf? AccessLevel { get; set; } + [JsonPropertyName("tags")] public IEnumerable? Tags { get; set; } [JsonPropertyName("roles")] public IEnumerable? Roles { get; set; } + /// + /// The 3rd party url of the Ticket. + /// + [JsonPropertyName("ticket_url")] + public string? TicketUrl { get; set; } + + /// + /// The priority or urgency of the Ticket. + /// + /// * `URGENT` - URGENT + /// * `HIGH` - HIGH + /// * `NORMAL` - NORMAL + /// * `LOW` - LOW + /// + [JsonPropertyName("priority")] + public OneOf? Priority { get; set; } + /// /// When the third party's ticket was created. /// @@ -149,23 +177,6 @@ public record Ticket [JsonPropertyName("remote_was_deleted")] public bool? RemoteWasDeleted { get; set; } - /// - /// The 3rd party url of the Ticket. - /// - [JsonPropertyName("ticket_url")] - public string? TicketUrl { get; set; } - - /// - /// The priority or urgency of the Ticket. - /// - /// * `URGENT` - URGENT - /// * `HIGH` - HIGH - /// * `NORMAL` - NORMAL - /// * `LOW` - LOW - /// - [JsonPropertyName("priority")] - public PriorityEnum? Priority { get; set; } - [JsonAccess(JsonAccessType.ReadOnly)] [JsonPropertyName("field_mappings")] public Dictionary? FieldMappings { get; set; } diff --git a/src/Merge.Client/Ticketing/Types/AccessLevelEnum.cs b/src/Merge.Client/Ticketing/Types/TicketAccessLevelEnum.cs similarity index 65% rename from src/Merge.Client/Ticketing/Types/AccessLevelEnum.cs rename to src/Merge.Client/Ticketing/Types/TicketAccessLevelEnum.cs index af3e3376..b9acfa57 100644 --- a/src/Merge.Client/Ticketing/Types/AccessLevelEnum.cs +++ b/src/Merge.Client/Ticketing/Types/TicketAccessLevelEnum.cs @@ -4,15 +4,18 @@ namespace Merge.Client.Ticketing; -[JsonConverter(typeof(EnumSerializer))] -public enum AccessLevelEnum +[JsonConverter(typeof(EnumSerializer))] +public enum TicketAccessLevelEnum { - [EnumMember(Value = "PRIVATE")] - Private, - [EnumMember(Value = "COMPANY")] Company, [EnumMember(Value = "PUBLIC")] Public, + + [EnumMember(Value = "PRIVATE")] + Private, + + [EnumMember(Value = "COLLECTION")] + Collection, } diff --git a/src/Merge.Client/Ticketing/Types/TicketRequest.cs b/src/Merge.Client/Ticketing/Types/TicketRequest.cs index 2198621a..49f1f56d 100644 --- a/src/Merge.Client/Ticketing/Types/TicketRequest.cs +++ b/src/Merge.Client/Ticketing/Types/TicketRequest.cs @@ -53,7 +53,7 @@ public record TicketRequest /// * `ON_HOLD` - ON_HOLD /// [JsonPropertyName("status")] - public TicketStatusEnum? Status { get; set; } + public OneOf? Status { get; set; } /// /// The ticket’s description. HTML version of description is mapped if supported by the third-party platform. @@ -94,6 +94,17 @@ public record TicketRequest [JsonPropertyName("attachments")] public IEnumerable>? Attachments { get; set; } + /// + /// The description of who is able to access a given ticket, or where access is inherited from. + /// + /// * `COMPANY` - COMPANY + /// * `PUBLIC` - PUBLIC + /// * `PRIVATE` - PRIVATE + /// * `COLLECTION` - COLLECTION + /// + [JsonPropertyName("access_level")] + public OneOf? AccessLevel { get; set; } + [JsonPropertyName("tags")] public IEnumerable? Tags { get; set; } @@ -121,7 +132,7 @@ public record TicketRequest /// * `LOW` - LOW /// [JsonPropertyName("priority")] - public PriorityEnum? Priority { get; set; } + public OneOf? Priority { get; set; } [JsonAccess(JsonAccessType.WriteOnly)] [JsonPropertyName("integration_params")] diff --git a/src/Merge.Client/Ticketing/Users/UsersClient.cs b/src/Merge.Client/Ticketing/Users/UsersClient.cs index 7052b56a..792a893f 100644 --- a/src/Merge.Client/Ticketing/Users/UsersClient.cs +++ b/src/Merge.Client/Ticketing/Users/UsersClient.cs @@ -83,7 +83,7 @@ private async Task ListInternalAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/users", Query = _query, @@ -181,7 +181,7 @@ public async Task RetrieveAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = string.Format( "ticketing/v1/users/{0}", diff --git a/src/Merge.Client/Ticketing/WebhookReceivers/WebhookReceiversClient.cs b/src/Merge.Client/Ticketing/WebhookReceivers/WebhookReceiversClient.cs index de707a5f..8f37c0b2 100644 --- a/src/Merge.Client/Ticketing/WebhookReceivers/WebhookReceiversClient.cs +++ b/src/Merge.Client/Ticketing/WebhookReceivers/WebhookReceiversClient.cs @@ -29,7 +29,7 @@ public async Task> ListAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Get, Path = "ticketing/v1/webhook-receivers", Options = options, @@ -78,7 +78,7 @@ public async Task CreateAsync( .SendRequestAsync( new JsonRequest { - BaseUrl = _client.Options.Environment.Api, + BaseUrl = _client.Options.BaseUrl, Method = HttpMethod.Post, Path = "ticketing/v1/webhook-receivers", Body = request, From 40f088b1cb0bdf3b0dcf3e6b9fa482f973a894b3 Mon Sep 17 00:00:00 2001 From: Matt Blank Date: Thu, 12 Jun 2025 12:07:13 -0400 Subject: [PATCH 2/3] Update files to get SDK to build properly --- .fernignore | 8 ++++++++ src/Merge.Client/Ats/Jobs/JobsClient.cs | 2 +- src/Merge.Client/BaseMergeClient.cs | 2 +- .../Crm/AssociationTypes/AssociationTypesClient.cs | 2 +- src/Merge.Client/Crm/Associations/AssociationsClient.cs | 2 +- src/Merge.Client/Crm/CustomObjects/CustomObjectsClient.cs | 2 +- .../Ticketing/Collections/CollectionsClient.cs | 2 +- src/Merge.Client/Ticketing/Projects/ProjectsClient.cs | 2 +- src/Merge.Client/Ticketing/Tickets/TicketsClient.cs | 2 +- 9 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.fernignore b/.fernignore index 43ca0d22..5875a241 100644 --- a/.fernignore +++ b/.fernignore @@ -1,3 +1,11 @@ # Specify files that shouldn't be modified by Fern README.md +src/Merge.Client/Ats/Jobs/JobsClient.cs +src/Merge.Client/BaseMergeClient.cs +src/Merge.Client/Crm/AssociationTypes/AssociationTypesClient.cs +src/Merge.Client/Crm/Associations/AssociationsClient.cs +src/Merge.Client/Crm/CustomObjects/CustomObjectsClient.cs +src/Merge.Client/Ticketing/Collections/CollectionsClient.cs +src/Merge.Client/Ticketing/Projects/ProjectsClient.cs +src/Merge.Client/Ticketing/Tickets/TicketsClient.cs \ No newline at end of file diff --git a/src/Merge.Client/Ats/Jobs/JobsClient.cs b/src/Merge.Client/Ats/Jobs/JobsClient.cs index 40d9c358..beeddc7d 100644 --- a/src/Merge.Client/Ats/Jobs/JobsClient.cs +++ b/src/Merge.Client/Ats/Jobs/JobsClient.cs @@ -334,7 +334,7 @@ public async Task> ScreeningQuestionsListAsync( .CreateInstanceAsync( request, options, - ScreeningQuestionsListInternalAsync, + (request, options, cancellationToken) => ScreeningQuestionsListInternalAsync(jobId, request, options, cancellationToken), (request, cursor) => { request.Cursor = cursor; diff --git a/src/Merge.Client/BaseMergeClient.cs b/src/Merge.Client/BaseMergeClient.cs index f5fa15e5..909ee42d 100644 --- a/src/Merge.Client/BaseMergeClient.cs +++ b/src/Merge.Client/BaseMergeClient.cs @@ -8,7 +8,7 @@ namespace Merge.Client; -internal partial class BaseMergeClient +public partial class BaseMergeClient { private readonly RawClient _client; diff --git a/src/Merge.Client/Crm/AssociationTypes/AssociationTypesClient.cs b/src/Merge.Client/Crm/AssociationTypes/AssociationTypesClient.cs index 63bcd8be..542f280c 100644 --- a/src/Merge.Client/Crm/AssociationTypes/AssociationTypesClient.cs +++ b/src/Merge.Client/Crm/AssociationTypes/AssociationTypesClient.cs @@ -141,7 +141,7 @@ public async Task> CustomObjectClassesAssociationTypesLis .CreateInstanceAsync( request, options, - CustomObjectClassesAssociationTypesListInternalAsync, + (request, options, cancellationToken) => CustomObjectClassesAssociationTypesListInternalAsync(customObjectClassId, request, options, cancellationToken), (request, cursor) => { request.Cursor = cursor; diff --git a/src/Merge.Client/Crm/Associations/AssociationsClient.cs b/src/Merge.Client/Crm/Associations/AssociationsClient.cs index 75bf43d1..35fc0cf4 100644 --- a/src/Merge.Client/Crm/Associations/AssociationsClient.cs +++ b/src/Merge.Client/Crm/Associations/AssociationsClient.cs @@ -149,7 +149,7 @@ public async Task> CustomObjectClassesCustomObjectsAssociatio .CreateInstanceAsync( request, options, - CustomObjectClassesCustomObjectsAssociationsListInternalAsync, + (request, options, cancellationToken) => CustomObjectClassesCustomObjectsAssociationsListInternalAsync(customObjectClassId, objectId, request, options, cancellationToken), (request, cursor) => { request.Cursor = cursor; diff --git a/src/Merge.Client/Crm/CustomObjects/CustomObjectsClient.cs b/src/Merge.Client/Crm/CustomObjects/CustomObjectsClient.cs index 483167a9..188fcaa0 100644 --- a/src/Merge.Client/Crm/CustomObjects/CustomObjectsClient.cs +++ b/src/Merge.Client/Crm/CustomObjects/CustomObjectsClient.cs @@ -226,7 +226,7 @@ public async Task> CustomObjectClassesCustomObjectsListAsync .CreateInstanceAsync( request, options, - CustomObjectClassesCustomObjectsListInternalAsync, + (request, options, cancellationToken) => CustomObjectClassesCustomObjectsListInternalAsync(customObjectClassId, request, options, cancellationToken), (request, cursor) => { request.Cursor = cursor; diff --git a/src/Merge.Client/Ticketing/Collections/CollectionsClient.cs b/src/Merge.Client/Ticketing/Collections/CollectionsClient.cs index 9598078c..23ad8521 100644 --- a/src/Merge.Client/Ticketing/Collections/CollectionsClient.cs +++ b/src/Merge.Client/Ticketing/Collections/CollectionsClient.cs @@ -263,7 +263,7 @@ public async Task> ViewersListAsync( .CreateInstanceAsync( request, options, - ViewersListInternalAsync, + (request, options, cancellationToken) => ViewersListInternalAsync(collectionId, request, options, cancellationToken), (request, cursor) => { request.Cursor = cursor; diff --git a/src/Merge.Client/Ticketing/Projects/ProjectsClient.cs b/src/Merge.Client/Ticketing/Projects/ProjectsClient.cs index 7a19996d..b90e2f3e 100644 --- a/src/Merge.Client/Ticketing/Projects/ProjectsClient.cs +++ b/src/Merge.Client/Ticketing/Projects/ProjectsClient.cs @@ -304,7 +304,7 @@ public async Task> UsersListAsync( .CreateInstanceAsync( request, options, - UsersListInternalAsync, + (request, options, cancellationToken) => UsersListInternalAsync(parentId, request, options, cancellationToken), (request, cursor) => { request.Cursor = cursor; diff --git a/src/Merge.Client/Ticketing/Tickets/TicketsClient.cs b/src/Merge.Client/Ticketing/Tickets/TicketsClient.cs index bf4d6f27..f158c21f 100644 --- a/src/Merge.Client/Ticketing/Tickets/TicketsClient.cs +++ b/src/Merge.Client/Ticketing/Tickets/TicketsClient.cs @@ -627,7 +627,7 @@ public async Task> ViewersListAsync( .CreateInstanceAsync( request, options, - ViewersListInternalAsync, + (request, options, cancellationToken) => ViewersListInternalAsync(ticketId, request, options, cancellationToken), (request, cursor) => { request.Cursor = cursor; From f89128879b1a1ba026117ce1508633001e34281e Mon Sep 17 00:00:00 2001 From: Matt Blank Date: Thu, 12 Jun 2025 13:46:14 -0400 Subject: [PATCH 3/3] Update --- .fernignore | 3 ++- src/Merge.Client/MergeClient.cs | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 src/Merge.Client/MergeClient.cs diff --git a/.fernignore b/.fernignore index 5875a241..0b8ecbba 100644 --- a/.fernignore +++ b/.fernignore @@ -8,4 +8,5 @@ src/Merge.Client/Crm/Associations/AssociationsClient.cs src/Merge.Client/Crm/CustomObjects/CustomObjectsClient.cs src/Merge.Client/Ticketing/Collections/CollectionsClient.cs src/Merge.Client/Ticketing/Projects/ProjectsClient.cs -src/Merge.Client/Ticketing/Tickets/TicketsClient.cs \ No newline at end of file +src/Merge.Client/Ticketing/Tickets/TicketsClient.cs +src/Merge.Client/MergeClient.cs \ No newline at end of file diff --git a/src/Merge.Client/MergeClient.cs b/src/Merge.Client/MergeClient.cs new file mode 100644 index 00000000..ba4919fc --- /dev/null +++ b/src/Merge.Client/MergeClient.cs @@ -0,0 +1,9 @@ +using Merge.Client.Core; + +namespace Merge.Client; + +public class MergeClient( + string apiKey, + string? accountToken = null, + ClientOptions? clientOptions = null) + : BaseMergeClient(apiKey, accountToken, clientOptions); \ No newline at end of file