taxAmount
and shippingAmount
to invoices. In a future release, OCR will pull tax and shipping amount on the invoice level instead of the line item level by default. This makes Mercoa more consistent with most accounting software.creatorUserId
on invoices and other invoice search endpoints.NULL
metadata values. This is useful for filtering invoices by metadata that is not set.<PayableTaxAndShipping />
to support tax and shipping on the invoice level.transaction
endpoints. These endpoints allows you to search for and retrieve transactions, which include failure reasons and check numbers. See documentation for more details.ANY
approver on any invoice approval slot. This means users will not be required to select an unique approver when creating an invoice.autoAssign
to approval policies to automatically assign approvers to the invoice.vendorCredits
! See documentation for more details.noteToSelf
on the remittance stub of the check by setting the printDescription
payment destination optionsvendorCredits
in the <PayableDetails />
and <Counterparty>
components. See documentation for more details.APPROVE
and REJECT
buttons on <PayableDetails />
will save the invoice changes before submitting.batchPayment
support to invoices. This will allow users to pay multiple invoices in a single transaction. See documentation for more details.counterpartyPreSubmit
support to all <Counterparties />
components, as well as <PayableDetails />. This will allow you to validate and modify the counterparty data before it is saved.batchPayment
support to <PayableDetails /> with the <PaymentOptions/> sub-component. This will allow users to pay multiple invoices in a single transaction.copyUsersFrom
to add-entities endpoint. This lets you copy users/roles from an existing entity in the group.<Counterparties />
component.date pickers
in all components.<StatusTabs />
component.emailTemplates
endpoint to entity. This endpoint lets you manage email templates for an entity.additionalUsers
to approval policiesUNASSIGNED
state.alternativeInboxDomains
to organization to support custom inbox domains on multiple domains.counterparty.onboarding.completed
webhook<ApprovalPolicies />
component<ReceivableDetails />
<PayableDetails />
componentsreturnMetadata
to counterparties search and entities searchmetadata
filters to counterparties search and entities searchmetadata
filters now support multiple values (OR filter)groupBy
to invoice metricsreturnByDateFrequency
to invoice metricscategory
to line itemsforeignId
support to all entity user endpoints.additionalRoles
to approval policiesGroupPayablesTable
component to display UNASSIGNED
invoices at the group levelforeignId
to support most entity ID parameters (invoice, counterparty, etc.).addEntities
and removeEntities
endpoints to entity groups endpoints.Added ability to generate a JWT token for an entity group. See documentation for more details.
Added metadata
to entity update and entity create requests. This lets you add metadata to an entity in a single request.
Added metadata
to entity get response. This lets you get metadata from an entity in a single request.
<MercoaSession>
component.invoiceOrderByField
enum. This will allow you to order by the deduction date, invoice date, and settlement date.notifyPayeeCounterparty
and notifyPayorCounterparty
options to notification policies. This lets you send and control notifications to the vendor (AP) or customer (AR).double
instead of an integer
in the lineItem
object.<Approvals />
component.<Payables />
component.notifyPayeeCounterparty
and notifyPayorCounterparty
options to notification policies. This lets you send and control notifications to the vendor (AP) or customer (AR).<EntityOnboarding>
component now triggers an "onboardingComplete" callback when the onboarding flow is complete.dateType
filter for invoice search and invoice metrics.
You can now filter by start and end date for:
invoice
endpoints now support using the foreignId
as the invoiceId
in the path. This will allow you to use your own IDs for invoices instead of the Mercoa generated IDs.paymentMethod
endpoints for custom payment methods now support using the foreignId
as the paymentMethodId
in the path. This will allow you to use your own IDs for payment methods instead of the Mercoa generated IDs.logo
field of the entity response.onRedirect
to onUpdate
and made this prop optional. It will be called when the invoice is updated or deleted.supportedSchedulePaymentDates
in the <PayableOverview
> component, which enables overrides for setting payments dates on weekends, holidays, and in the past.metadata
to a payment method.react-pdf
instead of the native PDF viewer.lineItemMetadata
and lineItemGlAccountId
parameters to the GET /invoices and GET /entity/:entityId/invoices endpoints.<PayableForm/>
are now automatically set to readOnly
depending on the invoice status.<PayableDetails />
component now exposes new customization options for the <PayableForm/>
and <PayableDocument/>
. Please see the documentation for more details.minAmount
and maxAmount
to custom payment method schemascalculatePaymentTiming
endpoint to calculate the payment timing for an invoice. See documentation for more details.BREAKING: renamed method fees.calculate
to calculate.fee
to match the new endpoint structure
calculatePaymentTiming
endpoint to display payment timing information on invoicesentity
endpoints now support using the foreignId
as the entityId
in the path. This will allow you to use your own IDs for entities instead of the Mercoa generated IDs.entityGroups
. Entity groups allow you to group entities together and query invoices/metrics across the group. See the documentation for more details.USBankAccountNumber
and USBankRoutingNumber
types to custom payment method schemasavailable balance
to custom payment methodsfailureType
can now be specified for invoices with custom payment methods that failforeignId
is now optional on custom payment methodsApprovalPolicy
now returns createdAt
and updatedAt
fields.CustomPaymentMethodSchema
now accepts an estimatedProcessingTime
field. This field is used to display an estimated processing time for a payment method on the invoice details page.<ReceivableDetails />
now shows real time previews of the PDF and Payment Portal.<PayableDetails />
now supports payment timing information.Webhooks types are now included in the Mercoa SDK and Docs. See the webhooks documentation for more details.
roundedCorners
option to organization colorScheme options. This lets you control the border-radius of Mercoa React/iFrame components.accountId
to counterparties endpoint. This lets you specify the account ID the vendor has on file for a customer.isNetworkPayee
and isNetworkPayer
to entities endpoint. This lets you mark an entity as available to any customer on your platform.entityId
and vendorNetwork
as body parameters instead of a query parameters.<InvoiceInbox />
component has been renamed to <Payables />
<InvoiceTable />
component has been renamed to <PayablesTable />
<InvoiceDetails />
component has been renamed to <PayableDetails />
excludePayables
and excludeReceivables
filters to the <InvoiceMetrics />
component.<Receivables />
component to display receivables for an entity. This component is similar to the <Payables />
component, but displays receivables instead of payables.<ReceivableDetails />
component to create and display details for a receivable.getSourceEmail
endpoint to return the source email that created an invoice.externalAccountingSystem
to organization response.<InvoiceDetails />
customization options, including the ability to choose which side the document preview shows upinvoiceMetrics
to the /findCounterparties
endpoint. This will return the total amount/count of invoices for a counterparty, as well as total/count grouped by invoice status.search
parameter on the /invoices
, /entity/{entityId}/invoices
, and /invoice-metrics
endpoints now searches by vendor, invoice number, and amount!metadata
parameter to the /invoices
and /entity/{entityId}/invoices
endpoints. This will allow you to filter for invoices with specific custom field values, like a project ID or PO number.React components have also been updated to take advantage of these new features.
returnByDate
option to invoice metrics endpoint. This will return metrics grouped by day for the specified date range.heightOffset
parameter to base MercoaSession
component. Will be used in all fix height components to offset the height of the component.SAVE AS ADMIN
button to invoice details page. This will allow admins to update invoice details such as the invoice number, invoice date, and due date even after the invoice has been scheduled or paid.disableLineItems
from token options. This option is now deprecated and will be removed in the future.lineItems
to token options. This option replaces disableLineItems and instead allows you to make line items OPTIONAL, REQUIRED, or DISABLED.uploadedImage
on invoice creation to document
for consistency with other endpoints.disableLineItem
to token options. This option will disable the ability to add/view line items to an invoice when creating an invoice.bankAccount
can be enabled for checks
and used as the payment source when the payment destination is a check.counterparties
and approvals
page to token options. This page allows users to add and manage counterparties and approval rules.createEntity
and updateEntity
endpoints as well as the Business Representative
endpoint.getBalance
endpoint to paymentMethods
. This endpoint will return the current balance for an payment method. Currently only supported for bank accounts added via Plaid.markPaid
option on iframeOptions
. Instead, use the new offline
payment method type as the destination.Removed ownedByOrg
on the entity object. Please use isCustomer
instead.
isCustomer
on the entity object is now a required field for entity creation. It remains optional for entity updates.
Removed createdById
on the invoice object. Please use creatorUserId
instead.
Removed creatorId
on the invoice object. Please use creatorEntityId
instead.
Added glAccountId
to invoice line items. This field is used to map line items to a GL Account. This field is optional.
Added lineItem
option to metadata. This field is used to map metadata to a line item.
creatorEntityId
to invoice /create and /update request types. creatorEntityId
will become a required field in the future. It is recommended to use this field instead of creatorId
which will be deprecated in the future.creatorUserId
to invoice /create and /update request and response types. It is recommended to use this field instead of createdById
which will be deprecated in the future.foreignId
to invoice /create and /update request and response types. This field is used to store an external ID for an invoice.ownedByOrg
to isCustomer
on the entity object. It is recommended to use this field instead of ownedByOrg
which will be deprecated in the future.accountName
to bank account payment methods. This is a user facing name for the bank account that is editable by the user.vendor
and metadata
triggers for approval policies.INVOICE_FAILED
notification type.disabled
field to notification policies to completely disable a notification type.includeFees=true
Entity: Enable Mercoa Payments
creatorId
to invoice creation to specify if the payee or payor created the invoicegenerateInvoicePdf
endpoint to generate PDF of an invoiceisPayor
and isPayee
fields are now required when creating an entity./entity/{entityId}/invoice/{invoiceId}
AP11aa2b77
for the payment associated with this invoice.counterparty.added
and counterparty.hidden
webhooksmetadata
, serviceStartDate
and serviceEndDate
fields to invoice line itemsownedByOrg
filter to entity searchpayerId
filter to invoice searchexcludePayables
and excludeReceivables
filters to entity invoice searchDELETE
endpoint for entity metadataarchivePayees
has been renamed to hidePayees
mercoaClient.entity.addPayees
and mercoaClient.entity.archivePayees
are now mercoaClient.entity.counterparty.addPayees
and mercoaClient.entity.counterparty.hidePayees
KEY_VALUE
to support key value pairs.markPaid
to allow users to mark invoices as paid on the iFrame.expiresIn
to set the expiration time of a token./entity/{entityId}/counterparties/payees
/entity/{entityId}/counterparties/payors
/entity/{entityId}/counterparties
endpoint.
It is recommended to use these endpoints instead, as they will support pagination, search, and higher performance.
The old endpoint will be deprecated in the future.VENDOR_NAME
and PAYER_NAME
to invoice order by options.counterpartyId
filter to findCounterparties
endpoint.getOnboardingLink
and sendOnboardingLink
endpoints to the entity
object.
Added invoiceId
parameter to:
Added archivePayees
endpoint.
addPayees
endpoint.paymentMethod
is now a discriminated union instead of nested objects. This change was made in v0.2.0
but had backwards compatibility. This change is now required.
fundedDate
has been renamed to settlementDate
for consistency with industry norms.
Added defaultSource
and defaultDestination
parameters to paymentMethod
creation and update requests.
Added isDefaultSource
and isDefaultDestination
parameters to paymentMethod
response.
Added formationDate
to entity
creation and update requests.
vendorId
and approverId
parameters to:
getToken
and getRawToken
endpoints for an entity and entity users:
getRawToken
is a GET
endpoint that returns a JWT token for use with the APIgetToken
is a POST
endpoint that returns a JWT token for use with the iFrame. This endpoint takes in a configuration object to customize the iFrame experience.userId
has been renamed to assignedUserId
for consistency with the response objectapprovalSlotId
is now needed to specify the which slot the user will be assigned to.userNotificationPolicy
endpoints to control what notifications are sent to a user. See documentation for more details.Changed createPaymentMethod
endpoint when creating a bank account to require accountId
when using Plaid. This is to support multiple bank accounts per Plaid Link:
Old:
{
type: 'bankAccount',
...
plaidPublicToken: 'public-sandbox-1234',
}
New:
{
type: 'bankAccount',
...
plaid: {
publicToken: 'public-sandbox-1234',
accountId: '1234',
}
}
getToken
endpoint for an entity user:
/entity/{entityId}/user/{userId}/token
mercoaClient.entity.user.getToken(...
entity.find
invoice.find
and entity.invoice.find
now return paginated results.
Previously, the response would be an array of the data requested. Now, the response is an object with the data and metadata about the request.
The response now looks like this:
{
data: [ ... ],
count: 100,
hasMore: true,
}
Notifications are launched in beta! Your entity users can now get notifications for events like INVOICE_APPROVAL_NEEDED
and INVOICE_PAID
.
Notifications are available in the dashboard, iFrame, and the API. Email notifications are coming soon.
entity.entityUser.notifications.find
Python issue with circular dependencies is fixed. Types are once again exported at the root level to make imports easier.
paymentMethod
is now a discriminated union instead of nested objects.
Old Payment Method:
{
type: 'bankAccount'
bankAccount: {
routingNumber: '12345'
accountNumber: '9876'
...
}
}
{
type: 'check'
check: {
addressLineOne: '123 Fake Street'
stateOrProvince: 'California'
postalCode: '94105'
...
}
}
New Payment Method:
{
type: 'bankAccount'
routingNumber: '12345'
accountNumber: '9876'
...
}
{
type: 'check'
addressLineOne: '123 Fake Street'
stateOrProvince: 'California'
postalCode: '94105'
...
}
The 0.2.0
uses namespaces to make using the SDK more intuitive. The API routes have not changed, only the SDK structure
For example:
mercoaClient.paymentMethod.get() --> mercoaClient.entity.paymentMethod.get()
mercoaClient.entity.getInvoices() --> mercoaClient.entity.invoice.find()
mercoaClient.entityUsers.get() --> mercoaClient.entity.users.get()
mercoaClient.invoice.getDocuments() --> mercoaClinet.invoice.document.getAll()
mercoaClient.invoice.approve() --> mercoaClinet.invoice.approval.approve()
mercoaClient.invoice.getComment() --> mercoaClient.invoice.comment.get()
...etc
createVendor
and updateVendor
options on invoice creation/update.New pages for managing Entity Users and Approval Policies are live!
DRAFT
to APPROVED
DRAFT
to NEW
, and require the rules on the policy to be fulfilled to move into the APPROVED
stateHotfix:
Update Payment Method had the wrong request body parameters that were too restrictive.
invoiceDate
and createdBy
added to invoice.userId
added to invoice comment.hasDocuments
Added new invoice status of Scheduled
If you are using the API to create or update invoices, invoices will need to be set as Scheduled
instead of New
to be scheduled for processing. iFrame users will not be affected.
Added supportedCurrencies
field to Custom Payment Method Schemas
This field is optional and will default to USD. If your payment rail supports currency other than USD or does not support USD, set this value to the supported currencies.
Entity Updates
Added new fields for isPayor
and isPayee
. These fields will become mandatory in the future. These fields determine if this entity is a payor or payee (vendor). If the entity is both, then both fields should be set to true.
Updated documentation for ownedByOrg
field. This field currently determines if the entity is a payor or payee (vendor). In the future, this field will only be used to determine if you have a direct relationship with this entity.
Note: Current behavior will check if the isPayor and isPayee fields are not set and fall back to the old ownedByOrg
method of determining who is a payer or vendor.
emailToAlias
field. This field is used to support email forwarding.
Support for:
Python SDK Update
Python SDK
Manual webhook retrigger
Initial release