getSourceEmail
endpoint to return the source email that created an invoice.externalAccountingSystem
to organization response.invoiceMetrics
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