Getting Started with the API

Emburse’s API enables for the creation of expense cards at scale for custom business solutions as well as for third-party app integrations. Cards can be created with set spending limits and assigned with just an email. Some use cases include vendor payments, employee expense control, and fleet card management.

Check out our API documentation below, and sign up for an account when you are ready. Please reach out to support@emburse.com with any questions.

Register Your App

To begin using Emburse's API, you must first register an application. Go to your apps list and create an app. After creating an app, you'll be given a client_id and client_secret which may be used to generate access tokens for API authentication.

Authentication

Emburse uses the OAuth2 protocol for managing access control and authorizations. In order to access Emburse's API endpoints, each request must include an access_token with its Authorization header:

Authorization: Token ACCESS_TOKEN

For example, using curl, you can set the Authorization header as follows:

curl -H "Authorization: Token zTF0vvvwWiYM06QDg9ZyTUac0HE1LC" https://api.emburse.com/v1/

Each access token grants your app access to data for a specific company and with specific privileges.

Access Tokens

After registering an app, you'll want to create an access_token. The easiest way to do so is via your app's settings page. From this page, you'll be able to generate a token which grants access to your company's Emburse account. You'll also be able to add a scope which limits the privileges being granted.

Once generated, an access_token does not expire but may be revoked by a company administrator. An access token may also be revoked via the API.

Scopes

When creating an access_token, a scope may be specified to grant additional API privileges. By default, an app will be granted read-only access to an Emburse account. The following scopes are available:

Scope Description
(no scope) default By default, an app has read-only access to a company's Emburse account.
accountant An app with accounting privileges may create and update category, label, and department objects and field values.
admin An app with admin privileges may create cards, update allowances, and assign cards to new members.

OAuth

If you are creating an app that will be used as a third-party integration by other Emburse clients, Emburse's API supports the OAuth2 protocol for web app authorization.

Only Emburse administrators and accountants may authorize third-party access to an Emburse account. After authorization is granted, the authorization may be revoked by any other administrator of the account.

View full OAuth documentation.

API Basics

Requests

For put and post requests, Emburse's API endpoints exclusively accept JSON data. When creating or updating API objects, be sure to set the request "Content-Type" header to "application/json".

Example Request
curl https://api.emburse.com/v1/categories -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X POST -d '{"name": "Fuel Expenses"}'

Pagination

For all Emburse API endpoints that return a list of API objects, the following GET parameters are supported:

GET Param Description
limit: default: 10 Maximum number of results to return. Max value: 1000
offset: default: 0 Starting index of the first object in the list.
created_after: Only object created on or after this date/time are returned (ISO 8601 format).
created_before: Only object created before this date/time are returned (ISO 8601 format).

In addition, all lists may be sorted using the ordering GET parameter. By default, lists are sorted using -created_at. For all endpoints, the following ordering values are supported:

Ordering Description
created_at Results will be sorted by creation date in ascending order. If using -created_at, results will be sorted by creation date in descending order.
Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/departments?offset=0&limit=100&ordering=-created_at"
Example Response
200 OK
{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "397c5d89-9d81-412b-907b-ef44ac357a02",
      "url": "https://api.emburse.com/v1/...",
      "name": "Sales & Marketing",
      "created_at": "2016-02-06T10:02:33.312471Z"
    }
  ]
}

Cards

Emburse supports the creation of single-use and multi-use cards. Each card is associated with an allowance which specifies how much may be spent through the card.

Card Object

Field Description
id: Card UUID.
url: A fully-qualified URL for the card resource.
allowance: An allowance which specifies how much may be spent and contains the budget remaining on the card. Example:
{
  "id": "1032d733-29ff-4388-905c-458292468aab",
  "url": "https://api.emburse.com/v1/...",
  "interval": "weekly",
  "amount": 500.0,
  "usage_limit": null,
  "transaction_limit": null,
  "daily_limit": 75.00,
  "end_time": null,
  "scope": [],
  "balance": 500.0,
  "uses_remaining": null
}
description: Description printed on the card.
expiration: Card expiration date. Format: yyyy-mm-dd
is_virtual: Boolean specifying whether a card is virtual or physical.
last_four: Last 4 digits of the card number.
state: Card state may be of the following values:
  • "unactivated"
  • "active"
  • "suspended"
  • "terminated"
A new physical card will start as unactivated. A new virtual card will start as active.
assigned_to: A member to whom this card is assigned. May be null if card has not been assigned. Example:
{
  "id": "d99885ba-f9db-49ec-a097-6ef55eea824c",
  "url": "https://api.emburse.com/v1/...",
  "email": "joe@example.com",
  "first_name": "Joseph",
  "last_name": "Smith"
}
category: The category assigned to the card. May be null if category has not been set. Example:
{
  "id": "ce0693b7-53dd-47cf-b145-dfaa6c9f7c00",
  "url": "https://api.emburse.com/v1/...",
  "code": null,
  "name": "Office Expenses"
}
department: The department assigned to the card. May be null if department has not been set. Example:
{
  "id": "397c5d89-9d81-412b-907b-ef44ac357a02",
  "url": "https://api.emburse.com/v1/...",
  "name": "Sales & Marketing"
}
label: The label assigned to the card. May be null if label has not been set. Example:
{
  "id": "6004f9eb-f3d5-44af-9367-813e359ba3ad",
  "url": "https://api.emburse.com/v1/...",
  "name": "Chicago"
}
billing_address: Billing address of the card. Example:
{
  "address_1": "123 Main St.",
  "address_2": "Suite 274",
  "city": "San Francisco",
  "state": "CA",
  "zip_code": "94110"
}
shared_link: Shared link associated with this card. This key will not be present if the card has not been shared. Example:
{
  "id": "37c9613f-d6d9-4009-ab50-8c3a4b240e1f",
  "url": "https://api.emburse.com/v1/...",
  "link": "https://app.emburse.com/c/2316d331...",
  "card": "2316d331-e2d5-43f1-9c9d-8ca3a738df28"
}
created_at: When this card was created (ISO 8601 format).
Example Card Object
{
  "id": "2316d331-e2d5-43f1-9c9d-8ca3a738df28",
  "url": "https://api.emburse.com/v1/...",
  "description": "Courier #125",
  "is_virtual": true,
  "last_four": "0632",
  "state": "active",
  "assigned_to": null,
  "category": {
    "id": "ce0693b7-53dd-47cf-b145-dfaa6c9f7c00",
    "url": "https://api.emburse.com/v1/...",
    "code": null,
    "name": "Office Expenses"
  },
  "department": null,
  "label": null,
  "location": null,
  "allowance": {
    "id": "1032d733-29ff-4388-905c-458292468aab",
    "url": "https://api.emburse.com/v1/...",
    "interval": null,
    "amount": 100.0,
    "usage_limit": null,
    "transaction_limit": null,
    "daily_limit": null,
    "end_time": null,
    "scope": [],
    "balance": 100.0,
    "uses_remaining": null
  },
  "expiration": "2017-09-30",
  "billing_address": {
    "address_1": "123 Main St.",
    "address_2": "",
    "city": "San Francisco",
    "state": "CA",
    "zip_code": "94104"
  },
  "shared_link": {
      "id": "37c9613f-d6d9-4009-ab50-8c3a4b240e1f",
      "url": "https://api.emburse.com/v1/...",
      "link": "https://app.emburse.com/c/2316d331...",
      "card": "2316d331-e2d5-43f1-9c9d-8ca3a738df28"
  },
  "created_at": "2016-08-19T23:56:22.020801Z"
}

List Cards

get /v1/cards

Retrieve a list of cards.

Filtering

Cards may be filtered using the following GET parameters.

GET Param Description
assigned_to: optional The ID of the member that a card is assigned to.
category: optional The ID of the category that a card is in.
department: optional The ID of the department that a card belongs to.
label: optional The ID of the label that a card is under.
Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/cards?assigned_to=d99885ba-f9db-49ec-a097-6ef55eea824c"

Get Card

get /v1/cards/:card_id

Retrieve a card by ID.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/cards/4fc5388c-ff13-46e2-b0f6-cd29e34e72b2"

Create Card

post /v1/cards

Create a new card. New virtual cards are pre-activated and are ready for immediate use. For physical card issuance, please contact support.

In addition to the optional assigned_to, category, label, and department fields within the card object, the following fields may be used.

Field Description
allowance: required An allowance with the card's initial spending restrictions. An allowance object will be created from these initial values. Example:
{
  "interval": null,
  "amount": 500.00,
  "transaction_limit": 75.00
}
description: required The description to be printed on the card and mailing envelope. Maximum length of 40 characters.
is_virtual: required Boolean specifying whether to create a virtual card.
billing_address: optional A custom billing address for this card. If omitted, the account's default billing address will be used. Example:
{
  "address_1": "548 Market St.",
  "address_2": "Suite 27197",
  "city": "San Francisco",
  "state": "CA",
  "zip_code": "94104",
}
Example Request
curl "https://api.emburse.com/v1/cards" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X POST -d '
{
  "allowance": {
    "interval": null,
    "amount": 500.00,
    "transaction_limit": 75.00
  },
  "description": "Vendor #125",
  "is_virtual": true
}'
Example Response
201 Created
{
  "id": "9d79e33a-fec9-4ccd-893b-01d2ed3e1105",
  "url": "https://api.emburse.com/v1/...",
  "description": "Vendor #125",
  "is_virtual": true,
  "last_four": "8923",
  "state": "active",
  "assigned_to": null,
  "category": null,
  "department": null,
  "label": null,
  "location": null,
  "allowance": {
    "id": "ce93d83a-8a43-439d-9f5b-cc6ed89ecf89",
    "url": "https://api.emburse.com/v1/...",
    "interval": null,
    "amount": 500,
    "usage_limit": null,
    "transaction_limit": 75,
    "daily_limit": null,
    "end_time": null,
    "scope": [],
    "balance": 500,
    "uses_remaining": null
  },
  "expiration": "2019-08-31",
  "billing_address": {
    "address_1": "123 Main St.",
    "address_2": "",
    "city": "San Francisco",
    "state": "CA",
    "zip_code": "94104"
  },
  "created_at": "2016-08-26T06:54:44.235115Z"
}

Update Card

put /v1/cards/:card_id

Update an existing card. The following fields may be updated once a card has been created. A card's allowance may also be updated via the allowance API endpoint. All card updates are reflected immediately.

Field Description
assigned_to: optional Object with member ID or null.
category: optional Object with category ID or null.
department: optional Object with department ID or null.
description: optional Description shown on virtual card. Max length of 40 characters.
label: optional Object with label ID or null.
state: optional Card state may be set to one the following values:
  • "active"
  • "suspended"
  • "terminated"
Once a card is terminated, its state may no longer be updated. Physical cards which start as unactivated must be activated by the card assignee and cannot be activated via the API. A card must be active before it may be suspended.
billing_address: optional Object or null.

Add, update, or remove a custom billing address for this card. If null, the account's default billing address will be used. Example:
{
  "address_1": "548 Market St.",
  "address_2": "Suite 27197",
  "city": "San Francisco",
  "state": "CA",
  "zip_code": "94104",
}
Suspending a Card
curl https://api.emburse.com/v1/cards/CARD_ID -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"state": "suspended"}'
Adding a Label
curl https://api.emburse.com/v1/cards/CARD_ID -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"label": {"id": "6004f9eb-f3d5-44af-9367-813e359ba3ad"}}'
Removing a Category
curl https://api.emburse.com/v1/cards/CARD_ID -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"category": null}'

Delete Card

delete /v1/cards/:card_id

Delete an existing card. A deleted card will automatically be terminated. A transaction associated with a deleted card will continue to reference the deleted card within its card field.

Example Request
curl https://api.emburse.com/v1/cards/CARD_ID -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X DELETE
Example Response
204 No Content

Shared Links

Emburse supports the creation of publicly available shared links for a given card. Any user with the shared link can access details about the card.

Shared Link Object

Field Description
id: Shared Link UUID.
url: A fully-qualified URL for the shared link.
link: Anyone with this link can view the shared card.
card: The ID of the card with which the shared link is associated.
Example Shared Link Object
{
  "id": "2316d331-e2d5-43f1-9c9d-8ca3a738df28",
  "url": "https://api.emburse.com/v1/...",
  "link": "https://app.emburse.com/c/2316d331...",
  "card": "ce0693b7-53dd-47cf-b145-dfaa6c9f7c00"
}

List Shared Links

get /v1/shared-links

Retrieve a list of shared links.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/shared-links

Get Shared Link

get /v1/shared-links/:shared_link_id

Retrieve a shared link by ID.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/shared-links/4fc5388c-ff13-46e2-b0f6-cd29e34e72b2"

Create Shared Link

post /v1/shared-links

Create a new shared link.

Field Description
card: required ID of the card for which you want to create a shared link.
Example Request
curl "https://api.emburse.com/v1/shared-links" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X POST -d '
{
  "card": "ce0693b7-53dd-47cf-b145-dfaa6c9f7c00"
}'
Example Response
201 Created
{
  "id": "2316d331-e2d5-43f1-9c9d-8ca3a738df28",
  "url": "https://api.emburse.com/v1/...",
  "link": "https://app.emburse.com/c/2316d331...",
  "card": "ce0693b7-53dd-47cf-b145-dfaa6c9f7c00",
}

Delete Shared Link

delete /v1/shared-links/:shared_link_id

Delete an existing shared link. The backing card associated with the shared link will not be deleted.

Example Request
curl https://api.emburse.com/v1/shared-links/SHARED_LINK_ID -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X DELETE
Example Response
204 No Content

Allowances

The budget on a card is described by its allowance. An allowance object both defines a card's spending restrictions and contains its remaining balance.

Allowance Object

Field Description
id: Allowance UUID.
url: A fully-qualified URL for the allowance resource.
amount: Decimal representing budget assigned to card.
interval: How often this budget is reset. May be one of the following values:
  • null – never reset
  • "daily" – reset daily
  • "weekly" – reset weekly
  • "monthly" – reset monthly
balance: Remaining amount that may be spent.
daily_limit: Additional restriction on much may be spent each day. May be null if no additional restriction has been set.
transaction_limit: Additional restriction on a transaction's maximum amount. May be null if no additional restriction has been set.
usage_limit: The maximum number of transactions that may be authorized. May be null if no additional restriction has been set.
uses_remaining: An integer representing the number of remaining transactions that may be authorized. May be null if no usage_limit has been set.
end_time: Time before which funds must be used (ISO 8601 format). May be null if no additional restriction has been set.
scope: An array of integers limiting the categories of merchants that may be paid. By default, scope is set to [ ] and no merchant restrictions are set. If one or more values are present, only merchants within those scope categories may authorize transactions. Example scope values:
  • [4] – Gas Stations
  • [5, 6] – Restaurants & Ground Transportation
  • [5542] – Automated Fuel Dispensers
View a full list of supported merchant categories. The scope field may contain up to 10 merchant category values.
created_at: When this allowance was created (ISO 8601 format).
Example Allowance Object
{
  "id": "22f6fe8f-ff91-473c-86ef-a6e8480508bb",
  "url": "https://api.emburse.com/v1/...",
  "interval": "weekly",
  "amount": 500.0,
  "usage_limit": null,
  "transaction_limit": 150.0,
  "daily_limit": null,
  "end_time": "2016-08-28T00:00:00Z",
  "scope": [6],
  "balance": 437.27,
  "uses_remaining": null,
  "created_at": "2016-08-20T00:24:46.609518Z"
}

Get Allowance

get /v1/allowances/:allowance_id

Retrieve an allowance by ID.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/allowances/22f6fe8f-ff91-473c-86ef-a6e8480508bb"

Update Allowance

put /v1/allowances/:allowance_id

Update an existing allowance.

Field Description
amount: optional Decimal with a value greater than or equal to 0.0.
interval: optional String representing how often the budget is reset. May be null or one of the following values:
  • "daily"
  • "weekly"
  • "monthly"
reset: optional By default, the balance is not reset each time the allowance amount is updated. Set reset to true if the balance on a card should be reset to its initial amount. May only be used if interval is set to null.
daily_limit: optional Decimal with a value greater than 0.0 or null.
transaction_limit: optional Decimal with a value greater than 0.0 or null.
usage_limit: optional Positive integer or null.
end_time: optional Time after which all transactions should be declined (ISO 8601 format) or null.
scope: optional An array of integers representing merchant categories. Array may be empty and may contain at most 10 values.
Adjusting a Budget
curl https://api.emburse.com/v1/allowances/ALLOWANCE_ID -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"amount": 100.0}'
Resetting a Balance
curl https://api.emburse.com/v1/allowances/ALLOWANCE_ID -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"amount": 100.0, "reset": true}'
Adding Merchant Restrictions
curl https://api.emburse.com/v1/allowances/ALLOWANCE_ID -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"scope": [5,6]}'

Transactions

A transaction object is created for each card purchase or bank transfer. A transaction will often start in a pending state before it becomes completed several days later. During this time, the transaction amount may change. Transactions that are declined will also be included within the returned list.

Bank Feed Application Developers
For immutable transactions created once transactions are posted, please take a look at our bank statements endpoint. In contrast to statement_line objects, the transaction objects in this section are mutable and are created based on when transactions are authorized.

Transaction Object

Field Description
id: Transaction UUID.
url: A fully-qualified URL for the transaction resource.
amount: Transaction amount will be:
  • Negative for debits
  • Positive for credits
In addition, the transaction amount will contain the original requested purchase amount for declined transactions.
state: Transaction state may be one of the following values:
  • "pending"
  • "completed"
  • "declined"
A pending transaction will become completed within 7 days and usually within 24 hours. The transaction amount may change once a transaction is completed.
card: The card used for this transaction. May be null if transaction does not represent a card purchase. Example:
{
  "id": "90ab2860-768f-4af8-8638-0a0bcdfdbb90",
  "url": "https://api.emburse.com/v1/...",
  "state": "active",
  "description": "Courier #781",
  "last_four": "7781"
}
member: The member responsible for this transaction. May be null if transaction is not assignable. Example:
{
  "id": "c80e0483-1e03-4387-95b4-b408b10f3e1d",
  "url": "https://api.emburse.com/v1/",
  "email": "john@example.com",
  "first_name": "John",
  "last_name": "Smith"
}
category: The category assigned to the transaction. May be null if category has not been set. Example:
{
  "id": "ce0693b7-53dd-47cf-b145-dfaa6c9f7c00",
  "url": "https://api.emburse.com/v1/...",
  "code": null,
  "name": "Office Expenses"
}
department: The department assigned to the transaction. May be null if department has not been set. Example:
{
  "id": "397c5d89-9d81-412b-907b-ef44ac357a02",
  "url": "https://api.emburse.com/v1/...",
  "name": "Sales & Marketing"
}
label: The label assigned to the transaction. May be null if label has not been set. Example:
{
  "id": "6004f9eb-f3d5-44af-9367-813e359ba3ad",
  "url": "https://api.emburse.com/v1/...",
  "name": "Chicago"
}
receipt: A user-uploaded receipt for the transaction. May be null if no receipt exists or have missing fields if the receipt has been lost. Example:
{
  "url": "https://app.emburse.com/...",
  "filename": "receipt.pdf"
}
If the receipt has been lost:
{
  "lost": true
}
Field descriptions:
  • "url" – Receipt location.
  • "filename" – Original receipt filename.
  • "lost" – True if receipt has been lost.
note: A user-provided note about the transaction. May be blank.
bank_account: optional If the transaction represents a bank transfer, a bank_account describing the funding source will be provided. Example:
{
  "description": "Emburse Checking Account",
  "name": "EMBURSE INC",
  "number": "8432"
}
Field descriptions:
  • "description" – User-provided description.
  • "name" – Name on account.
  • "number" – Last four digits of account number.
vendor: optional If the transaction represents a purchase, vendor details will be provided. Example:
{
  "mid": 526559301139368,
  "mcc": 7399,
  "name": "THE UPS STORE 4592",
  "address": "660 4TH ST",
  "city": "SAN FRANCISCO",
  "state": "CA",
  "zip_code": "94107"
}
Field descriptions:
  • "mid" – Vendor ID (Int64).
  • "mcc" – Merchant category code.
  • "name" – Vendor name.
  • "address" – Vendor address.
  • "city" – Address city.
  • "state" – Address state.
  • "zip_code" – Address zip code.
None of these fields are guaranteed to exist. Each field may be set to null.
time: When this transaction was authorized on the card networks (ISO 8601 format).
created_at: When this transaction was created (ISO 8601 format).
Example Card Purchase
{
  "id": "0849b836-bc20-4a83-8218-e50f8c9e56c4",
  "url": "https://api.emburse.com/v1/...",
  "amount": -119.21,
  "state": "pending",
  "vendor": {
    "mid": 445201094999,
    "mcc": 7311,
    "name": "ADROLL",
    "address": null,
    "city": "SAN FRANCISCO",
    "state": "CA",
    "zip_code": "94103"
  },
  "card": {
    "id": "c195f95f-42ea-42b9-bf62-25ea0995a9a4",
    "url": "https://api.emburse.com/v1/...",
    "state": "active",
    "description": "Advertising",
    "last_four": "7640"
  },
  "member": {
    "id": "d8ef8d51-8c48-4da7-8758-a7b578a4d360",
    "url": "https://api.emburse.com/v1/...",
    "email": "justin@example.com",
    "first_name": "Justin",
    "last_name": "Jones"
  },
  "category": {
    "id": "c66b60c5-449c-4482-ac66-e3c5557f4b49",
    "url": "https://api.emburse.com/v1/...",
    "code": null,
    "name": "Sales & Marketing"
  },
  "department": null,
  "label": null,
  "location": null,
  "receipt": null,
  "note": "",
  "time": "2016-08-19T04:02:05Z",
  "created_at": "2016-08-19T04:02:07.016369Z"
}
Example Bank Transfer
{
  "id": "3575ab44-3632-456f-9e41-05181b98a599",
  "url": "https://api.emburse.com/v1/...",
  "amount": 1944.27,
  "state": "completed",
  "bank_account": {
    "description": "Emburse Checking Account",
    "name": "EMBURSE INC",
    "number": "8432"
  },
  "card": null,
  "member": null,
  "category": null,
  "department": null,
  "label": null,
  "location": null,
  "receipt": null,
  "note": "",
  "time": "2016-08-13T00:00:07Z",
  "created_at": "2016-08-13T00:00:07.778920Z"
}
Example Refund
{
  "id": "a15ddc03-d11c-42c5-a3aa-8348f2012e84",
  "url": "https://api.emburse.com/v1/...",
  "amount": 359.39,
  "state": "completed",
  "vendor": {
    "mid": 185119000762203,
    "mcc": 6411,
    "name": "Amazon web services",
    "address": "330 Central Ave. St.",
    "city": "St. Petersburg",
    "state": "CA",
    "zip_code": "33705"
  },
  "card": {
    "id": "92a41d94-a7d1-484b-b0e8-841df5a87af0",
    "url": "https://api.emburse.com/v1/...",
    "state": "active",
    "description": "Infrastructure",
    "last_four": "3319"
  },
  "member": null,
  "category": {
    "id": "a4d1b9f5-0f2d-4747-bb67-f1f3b1c588d2",
    "url": "https://api.emburse.com/v1/...",
    "code": null,
    "name": "Web Infrastructure"
  },
  "department": null,
  "label": null,
  "location": null,
  "receipt": null,
  "note": "",
  "time": "2016-05-11T20:01:03Z",
  "created_at": "2016-05-11T20:01:04.287031Z"
}

List Transactions

get /v1/transactions

Retrieve a list of cards.

Filtering

Transactions may be filtered using the following GET parameters.

GET Param Description
card: optional The ID of a card associated with a transaction.
member: optional The ID of a member responsible for a transaction.
category: optional The ID of a category assigned to a transaction.
department: optional The ID of a department assigned to a transaction.
label: optional The ID of a label assigned to a transaction.
Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/transactions?card=c195f95f-42ea-42b9-bf62-25ea0995a9a4"

Get Transaction

get /v1/transactions/:transaction_id

Retrieve a transaction by ID.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/transactions/0849b836-bc20-4a83-8218-e50f8c9e56c4"

Update Transaction

put /v1/transactions/:transaction_id

The accounting-related fields of a transaction may be updated.

FieldDescription
category: optional Object with category ID or null.
department: optional Object with department ID or null.
label: optional Object with label ID or null.
note: optional String of up to 1000 characters. May be blank.
Example Request
curl "https://api.emburse.com/v1/transactions/TRANSACTION_ID" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"category": {"id": "a4d1b9f5-0f2d-4747-bb67-f1f3b1c588d2"}}'

Company

The company object provides details about the company that has granted authorization.

Company Object

Field Description
id: Company UUID.
name: Company name.
website: Company website.
shipping_address: The company's preferred shipping_address. Example:
{
  "id": "1535a7d0-6797-46b3-8b7a-593e59d52851",
  "url": "https://api.emburse.com/v1/...",
  "address_1": "123 Main St.",
  "address_2": "",
  "city": "San Francisco",
  "state": "CA",
  "zip_code": "94104"
}
created_at: When this company was created (ISO 8601 format).
Example Company Object
{
  "id": "95e6d004-7907-415e-a373-91e9e10b4a36",
  "name": "Emburse Inc.",
  "website": "https://emburse.com/",
  "shipping_address": {
    "id": "1535a7d0-6797-46b3-8b7a-593e59d52851",
    "url": "https://api.emburse.com/v1/...",
    "address_1": "123 Main St.",
    "address_2": "",
    "city": "San Francisco",
    "state": "CA",
    "zip_code": "94104"
  },
  "created_at": "2015-08-27T14:43:02.346387Z"
}

Get Company

get /v1/company

Retrieve details about the company that has granted app authorization.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/company"

Members

Members are people within a company who may be assigned cards. A physical card must be assigned to a member before the card may be activated. The full 16-digit card numbers for virtual cards are accessible by card assignees once logged in to Emburse.

Transactions on cards assigned to a member are automatically associated within that member. In addition, card assignees receive transaction decline messages and suspicious activity alerts.

Member Object

Field Description
id: Member UUID.
url: A fully-qualified URL for the member resource.
first_name: Member's first name.
last_name: Member's last name.
email: Member's email address.
created_at: When this member was created (ISO 8601 format).
Example Member Object
{
  "id": "b59863cd-75cb-4c14-b396-0cf25d9b173f",
  "url": "https://api.emburse.com/...",
  "email": "sarah@example.com",
  "first_name": "Sarah",
  "last_name": "Smith",
  "created_at": "2015-09-02T13:26:36.727444Z"
}

List Members

get /v1/members

Retrieve a list of members.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/members?created_after=2016-05-11T00:00:00Z"

Get Member

get /v1/members/:member_id

Retrieve a member by ID.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/members/b59863cd-75cb-4c14-b396-0cf25d9b173f"

Create Member

post /v1/members

Create a new member who will be invited to set a password for an account and review card transactions online. A first_name, last_name, and email address are required when creating a new member. Within a company's account, member email addresses must be unique.

Example Request
curl "https://api.emburse.com/v1/members" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X POST -d '{"first_name": "John", "last_name": "Jameson", "email": "john@example.com"}'

Update Member

put /v1/members/:member_id

The first_name and last_name of a member may be updated. A member's email address may not be changed.

Example Request
curl "https://api.emburse.com/v1/members/MEMBER_ID" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"first_name": "Jonathan"}'

Delete Member

delete /v1/members/:member_id

Delete a member. Cards assigned to a deleted member will be terminated and deleted as well. A transaction associated with a deleted member will continue to reference the deleted member within its member field.

Example Request
curl "https://api.emburse.com/v1/cards/CARD_ID" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X DELETE
Example Response
204 No Content

Accounts

All card transactions and bank transfers debit from and deposit to the same account. A bank balance is provided to track how much is available to spend and how much is currently residing within an account.

Account Object

Field Description
id: Account UUID.
url: A fully-qualified URL for the account resource.
name: Account name.
number: String representing 12-digit account number.
ledger_balance: Amount of money currently residing within the Emburse account.
available_balance: Amount of money that may be spent after taking in consideration authorization holds and pending transactions.
created_at: When this account was created (ISO 8601 format).
Example Account Object
{
  "id": "64745919-0caf-4e6b-8e63-17e7a0d1035e",
  "url": "https://api.emburse.com/v1/...",
  "name": "Emburse Account for Acme Inc.",
  "number": "880307390512",
  "ledger_balance": 1258.43,
  "available_balance": 872.35,
  "created_at": "2015-09-12T17:05:03.058556Z"
}

List Accounts

get /v1/accounts

Retrieve a list of accounts. Because each company currently only has one account, a list with one account will always be returned. Regardless, we recommend implementing solutions that support having multiple accounts per company. Emburse will soon be adding sub-accounts to enable having a seperate bank statement for each card or member.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/accounts"
Example Response
200 OK
{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "64745919-0caf-4e6b-8e63-17e7a0d1035e",
      "url": "https://api.emburse.com/v1/...",
      "name": "Emburse Account for Acme Inc.",
      "number": "880307390512",
      "ledger_balance": 1258.43,
      "available_balance": 872.35,
      "created_at": "2015-09-12T17:05:03.058556Z"
    }
  ]
}

Get Account

get /v1/accounts/:account_id

Retrieve an account by ID.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/accounts/64745919-0caf-4e6b-8e63-17e7a0d1035e"

Statements

Bank statements contain posted transactions for an account. Bank statements may either be exported as downloadable files or they may be queried via an API endpoint that returns a list of statement_line objects.

Supported Formats

Format Description
csv CSV file will include a header in the first row describing the values of each column.
ofx The OFX file format is supported by most accounting services for importing bank statements.
pdf A human-readable PDF for manual audits.

Statement Line Object

Field Description
id: Statement line UUID.
url: A fully-qualified URL for the statement line resource.
amount: Statement line amount will be:
  • Negative for debits
  • Positive for credits
Amount will always be non-zero as zero-amount transactions are ignored.
description: A description of the settlement which, for card purchases, will include the:
  • vendor name
  • card description
  • member name
Example:
"WALGREENS, Card: Travel, Member: John Smith"
For bank transfers, this field will include the bank account description. Example:
"Transfer from Acme Checking Account"
Although rare, a settlement may neither represent a purchase nor a bank transfer, and the description may be blank. Example:
""
card: The card associated with this statement line. May be null if no card was used. Example:
{
  "id": "90ab2860-768f-4af8-8638-0a0bcdfdbb90",
  "url": "https://api.emburse.com/v1/...",
  "state": "active",
  "description": "Courier #781",
  "last_four": "7781"
}
member: The member responsible for this statement line. May be null if statement line is unassignable. Example:
{
  "id": "c80e0483-1e03-4387-95b4-b408b10f3e1d",
  "url": "https://api.emburse.com/v1/",
  "email": "john@example.com",
  "first_name": "John",
  "last_name": "Smith"
}
origin: The originating transaction for this statement line. Example:
{
  "id": "0849b836-bc20-4a83-8218-e50f8c9e56c4",
  "url": "https://api.emburse.com/v1/...",
  "amount": -119.21,
  "state": "completed",
  "category": null,
  "department": null,
  "label": null,
  "location": null,
  "receipt": null,
  "note": "",
  "time": "2016-08-19T04:02:05Z"
}
Multiple statement lines may share the same originating transaction. Although rare, a transaction can be posted using multiple settlements over multiple days.
bank_account: optional If the settlement represents a bank transfer, a bank_account describing the funding source will be provided. Example:
{
  "description": "Acme Checking Account",
  "name": "ACME INC",
  "number": "8432"
}
Field descriptions:
  • "description" – User-provided description.
  • "name" – Name on account.
  • "number" – Last four digits of account number.
vendor: optional If the settlement represents a purchase, vendor details will be provided. Example:
{
  "mid": 526559301139368,
  "mcc": 7399,
  "name": "THE UPS STORE 4592",
  "address": "660 4TH ST",
  "city": "SAN FRANCISCO",
  "state": "CA",
  "zip_code": "94107"
}
Field descriptions:
  • "mid" – Vendor ID (Int64).
  • "mcc" – Merchant category code.
  • "name" – Vendor name.
  • "address" – Vendor address.
  • "city" – Address city.
  • "state" – Address state.
  • "zip_code" – Address zip code.
None of these fields are guaranteed to exist. Each field may be set to null.
date: Date that settlement for this statement line was posted. Time zone: US/Pacific. Format: yyyy-mm-dd.
time: When the settlement for this statement line was posted (ISO 8601 format).
number: Sequential statement line number.
created_at: When this statement line was created (ISO 8601 format).
Example Statement Line for Card Purchase
{
  "id": "9f1f1183-8ea0-4c43-9152-d68b70f9f2ac",
  "url": "https://api.emburse.com/v1/...",
  "amount": -119.21,
  "description": "WALGREENS, Card: Travel, Member: John Smith",
  "card": {
    "id": "90ab2860-768f-4af8-8638-0a0bcdfdbb90",
    "url": "https://api.emburse.com/v1/...",
    "state": "active",
    "description": "Travel",
    "last_four": "7781"
  },
  "member": {
    "id": "c80e0483-1e03-4387-95b4-b408b10f3e1d",
    "url": "https://api.emburse.com/v1/",
    "email": "john@example.com",
    "first_name": "John",
    "last_name": "Smith"
  },
  "vendor": {
    "mid": null,
    "mcc": 5912,
    "name": "WALGREENS",
    "address": "670 4TH ST",
    "city": "SAN FRANCISCO",
    "state": "CA",
    "zip_code": null
  },
  "origin": {
    "id": "0849b836-bc20-4a83-8218-e50f8c9e56c4",
    "url": "https://api.emburse.com/v1/...",
    "amount": -119.21,
    "state": "completed",
    "category": null,
    "department": null,
    "label": null,
    "location": null,
    "receipt": null,
    "note": "",
    "time": "2016-08-19T04:02:05Z"
  },
  "number": 1005,
  "date": "2016-08-19",
  "time": "2016-08-20T00:05:47Z",
  "created_at": "2016-08-20T00:05:51.474745Z"
}
Example Statement Line for Bank Transfer
{
  "id": "da7b31f3-93dc-45c0-98ed-309c9414a093",
  "url": "https://api.emburse.com/v1/...",
  "amount": 1000.0,
  "description": "Transfer from Acme Checking Account",
  "card": null,
  "member": null,
  "bank_account": {
    "description": "Acme Checking Account",
    "name": "ACME INC",
    "number": "8432"
  },
  "origin": {
    "id": "6577142f-09da-4f23-9a64-7879538d6158",
    "url": "https://api.emburse.com/v1/...",
    "amount": 1000.0,
    "state": "completed",
    "category": null,
    "department": null,
    "label": null,
    "location": null,
    "receipt": null,
    "note": "",
    "time": "2015-09-09T12:09:01Z"
  },
  "number": 476,
  "date": "2015-09-12",
  "time": "2015-09-12T14:57:50Z",
  "created_at": "2015-09-12T14:59:01.492674Z"
}
Example Statement Line for Fee
{
  "id": "62977dbc-ac83-4957-90c7-0823d2382b04",
  "url": "https://api.emburse.com/v1/...",
  "amount": -0.38,
  "description": "FX Fee",
  "card": null,
  "member": null,
  "origin": {
    "id": "62977dbc-ac83-4957-90c7-0823d2382b04",
    "url": "https://api.emburse.com/v1/...",
    "amount": -0.38,
    "state": "completed",
    "category": null,
    "department": null,
    "label": null,
    "location": null,
    "receipt": null,
    "note": "",
    "time": "2015-09-13T04:45:35Z"
  },
  "number": 527,
  "date": "2015-09-12",
  "time": "2015-09-13T04:45:35Z",
  "created_at": "2015-09-13T04:45:52.710562Z"
}

Get Statement

get /v1/accounts/:account_id/statement.format

Retrieve a bank statement for a specific account in a specific format. The statement format is added to the end of the URL and may be one of the following values: csv, ofx, or pdf. In addition, the following GET parameters are supported:

GET Param Description
start_date: default: 1st of month Settlements posted on or after this date will be included within the exported statement. Time zone: US/Pacific. Format: yyyy-mm-dd.
end_date: default: today Settlements posted on or before this date will be included within the exported statement. Time zone: US/Pacific. Format: yyyy-mm-dd. start_date and end_date may be no more than 100 days apart.
Example Request
curl -O -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/accounts/ACCOUNT_ID/statement.ofx?start_date=2016-08-01&end_date=2016-08-31"

List Statement Lines

get /v1/accounts/:account_id/statement-lines

Retrieve a list of statement lines for a specific account. By default, statement lines are sorted with the ordering GET parameter set to -number so that statement lines are returned in reverse chronological order based on when transaction settlements were posted.

Ordering Description
number Results will be sorted in chronological order based on transaction settlement times. If using -number, results will be sorted in reverse chronological order.

In addition, statement lines may be filtered by date and number:

GET Param Description
start_date: Settlements posted on or after this date will be returned. Time zone: US/Pacific. Format: yyyy-mm-dd.
end_date: Settlements posted on or before this date will be returned. Time zone: US/Pacific. Format: yyyy-mm-dd.
number: The statement line with a matching line number will be returned.
number__gt: Only statement lines with numbers greater than this value will be returned.
number__lt: Only statement lines with numbers less than this value will be returned.
Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/accounts/ACCOUNT_ID/statement-lines?ordering=number&start_date=2016-08-01"

Get Statement Line

get /v1/accounts/:account_id/statement-lines/:statement_line_id

Retrieve a statement line by ID. Both an account ID and a statement_line ID are required.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/accounts/ACCOUNT_ID/statement-lines/STATEMENT_LINE_ID"

Categories

A category may be assigned to cards and transactions. When a category is assigned to a card, that category will be set on any transactions created using the card.

Category Object

Field Description
id: Category UUID.
url: A fully-qualified URL for the category resource.
name: Category name.
code: A category code used for accounting. May be null.
parent: Parent for this category (as an object). The parent field is recursive.
created_at: When this category was created (ISO 8601 format).
Example Category Object
{
  "id": "ce0693b7-53dd-47cf-b145-dfaa6c9f7c00",
  "url": "https://api.emburse.com/v1/...",
  "code": 1002,
  "name": "Office Expenses",
  "parent": {
      "id": "b93e384f-204e-4582-b97d-2243bf7abac1",
      "url": "https://api.emburse.com/v1/...",
      "code": 1000,
      "name": "Expenses",
      "parent": null
  },
  "created_at": "2016-02-28T08:40:53.373895Z"
}

List Categories

get /v1/categories

Retrieve a list of categories.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/categories"

Get Category

get /v1/categories/:category_id

Retrieve a category by ID.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/categories/ce0693b7-53dd-47cf-b145-dfaa6c9f7c00"

Create Category

post /v1/categories

Create a new category. Each code must be a unique number or null.

Example Request
curl "https://api.emburse.com/v1/categories" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X POST -d '{"name": "Transportation", "code": null}'

Update Category

put /v1/categories/:category_id

Update an existing category.

Example Request
curl "https://api.emburse.com/v1/categories/CATEGORY_ID" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"code": 1003}'

Delete Category

delete /v1/categories/:category_id

Delete an existing category. Deleted category objects are removed from cards and transactions.

Example Request
curl "https://api.emburse.com/v1/categories/CATEGORY_ID" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X DELETE

Departments

A department may be assigned to cards and transactions. When a department is assigned to a card, that department will be set on any transactions created using the card.

Department Object

Field Description
id: Department UUID.
url: A fully-qualified URL for the department resource.
name: Department name.
parent: Parent for this department (as an object). The parent field is recursive.
created_at: When this department was created (ISO 8601 format).
Example Department Object
{
  "id": "5f93e176-7064-46dd-b517-cf1a8454d0f1",
  "url": "https://api.emburse.com/v1/...",
  "name": "Finance",
  "parent": {
      "id": "b93e384f-204e-4582-b97d-2243bf7abac1",
      "url": "https://api.emburse.com/v1/...",
      "name": "Money",
      "parent": null
  },
  "created_at": "2016-03-11T11:59:27.666749Z"
}

List Departments

get /v1/departments

Retrieve a list of departments.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/departments"

Get Department

get /v1/departments/:department_id

Retrieve a department by ID.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/departments/5f93e176-7064-46dd-b517-cf1a8454d0f1"

Create Department

post /v1/departments

Create a new department.

Example Request
curl "https://api.emburse.com/v1/departments" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X POST -d '{"name": "Engineering"}'

Update Department

put /v1/departments/:department_id

Update an existing department.

Example Request
curl "https://api.emburse.com/v1/departments/DEPARTMENT_ID" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"name": "Sales & Marketing"}'

Delete Department

delete /v1/departments/:department_id

Delete an existing department. Deleted department objects are removed from cards and transactions.

Example Request
curl "https://api.emburse.com/v1/departments/DEPARTMENT_ID" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X DELETE

Labels

A label may be assigned to cards and transactions. When a label is assigned to a card, that label will be set on any transactions created using the card.

Label Object

Field Description
id: Label UUID.
url: A fully-qualified URL for the label resource.
name: Label name.
parent: Parent for this label (as an object). The parent field is recursive.
created_at: When this label was created (ISO 8601 format).
Example Label Object
{
  "id": "066a22d6-943c-4a45-b2ec-9ccd417e2685",
  "url": "https://api.emburse.com/v1/...",
  "name": "Los Angeles",
  "parent": {
      "id": "b93e384f-204e-4582-b97d-2243bf7abac1",
      "url": "https://api.emburse.com/v1/labels/...",
      "name": "California",
      "parent": null
  },
  "created_at": "2016-03-11T11:57:35.467667Z"
}

List Labels

get /v1/labels

Retrieve a list of labels.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/labels"

Get Label

get /v1/labels/:label_id

Retrieve a label by ID.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/labels/066a22d6-943c-4a45-b2ec-9ccd417e2685"

Create Label

post /v1/labels

Create a new label.

Example Request
curl "https://api.emburse.com/v1/labels" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X POST -d '{"name": "Chicago"}'

Update Label

put /v1/labels/:label_id

Update an existing label.

Example Request
curl "https://api.emburse.com/v1/labels/LABEL_ID" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"name": "Los Angeles"}'

Delete Label

delete /v1/labels/:label_id

Delete an existing label. Deleted label objects are removed from cards and transactions.

Example Request
curl "https://api.emburse.com/v1/labels/LABEL_ID" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X DELETE

Locations

A location may be assigned to cards and transactions. When a location is assigned to a card, that location will be set on any transactions created using the card.

Location Object

Field Description
id: Location UUID.
url: A fully-qualified URL for the location resource.
name: Location name.
parent: Parent for this location (as an object). The parent field is recursive.
created_at: When this location was created (ISO 8601 format).
Example Location Object
{
  "id": "066a22d6-943c-4a45-b2ec-9ccd417e2685",
  "url": "https://api.emburse.com/v1/...",
  "name": "Los Angeles",
  "parent": {
      "id": "b93e384f-204e-4582-b97d-2243bf7abac1",
      "url": "https://api.emburse.com/v1/...",
      "name": "California",
      "parent": null
  },
  "created_at": "2016-03-11T11:57:35.467667Z"
}

List Locations

get /v1/locations

Retrieve a list of locations.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/locations"

Get Location

get /v1/locations/:location_id

Retrieve a location by ID.

Example Request
curl -H "Authorization: Token ACCESS_TOKEN" "https://api.emburse.com/v1/locations/066a22d6-943c-4a45-b2ec-9ccd417e2685"

Create Location

post /v1/locations

Create a new location.

Example Request
curl "https://api.emburse.com/v1/locations" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X POST -d '{"name": "Chicago"}'

Update Location

put /v1/locations/:location_id

Update an existing location.

Example Request
curl "https://api.emburse.com/v1/locations/LOCATION_ID" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X PUT -d '{"name": "Los Angeles"}'

Delete Location

delete /v1/locations/:location_id

Delete an existing location. Deleted location objects are removed from cards and transactions.

Example Request
curl "https://api.emburse.com/v1/locations/LOCATION_ID" -H "Authorization: Token ACCESS_TOKEN" -H "Content-Type: application/json" -X DELETE

Webhooks

Emburse's API can push real-time notifications to your app. To receive webhook notifications, add one or more webhook URLs when registering your web application.

Webhook endpoints should expect a POST request each time one or more Emburse events have been triggered. The request body will contain a JSON array of event objects.

Event Types

Type Description
transaction.created Triggered each time a new transaction object is created.
transaction.updated Triggered each time an existing transaction object is updated.
Example Webhook Payload
[
  {
    "event": "transaction.created",
    "transaction": {
      "id": "9706a780-5333-43a4-a666-a69db74e993f"
    },
    "company": {
      "id": "cb93de0c-dfdf-4c7a-bc88-ef48548ea1d5"
    }
  }
]

Transaction Events

The "transaction.created" event is triggered each time a new transaction is created, and the "transaction.updated" event is triggered each time an existing transaction is updated. A transaction event will have the following fields:

Field Description
event: "transaction.created" or "transaction.updated".
transaction: Object with transaction ID. Example:
{
  "id": "9706a780-5333-43a4-a666-a69db74e993f"
}
company: Object with company ID. Example:
{
  "id": "cb93de0c-dfdf-4c7a-bc88-ef48548ea1d5"
}

Transaction details must be retrieved using a subsequent request to the transactions API endpoint. The company ID is provided to assist with the selection of an access_token if multiple tokens are being used.

Example Transaction Event
{
  "event": "transaction.updated",
  "transaction": {
    "id": "9706a780-5333-43a4-a666-a69db74e993f"
  },
  "company": {
    "id": "cb93de0c-dfdf-4c7a-bc88-ef48548ea1d5"
  }
}