The expense object

You can expect the below object when you register a webhook for the following events:

  • expense.create: an expense is created from a card transaction.
  • expense.update: an expense's status changes (for example incomplete to pending_review). A new expense that moves straight to pending_review sends expense.update right after expense.create.

Mamo sends these events only when your business requires at least one expense detail (category, description or receipt) in its expense settings; otherwise no expense webhooks are sent.


Raw sample

{
  "status": "incomplete",
  "description": null,
  "invoice_number": null,
  "id": "EXP-3C4D5E6F7A",
  "transaction": {
    "amount": 100.0,
    "amount_currency": "AED",
    "billing_amount": 100.0,
    "billing_amount_currency": "AED"
  },
  "card": {
    "identifier": "CRD-1A2B3C4D5E",
    "name": "Team travel card",
    "last4": "1234"
  },
  "user": {
    "identifier": "MBOWNR-1A2B3C4D5E",
    "fullname": "Jane Doe",
    "email": "[email protected]"
  },
  "category": null,
  "tax_code": null,
  "payment_account": null,
  "expense_account": null,
  "vendor": null,
  "receipt_uploaded": false,
  "created_at": "18 Dec 2025, 11:24 AM",
  "updated_at": "18 Dec 2025, 11:24 AM",
  "event_type": "expense.create"
}

Field descriptions

FieldTypeDescription
statusStringExpense status (incomplete-pending_review-ready-synced)
descriptionStringExpense description
invoice_numberStringInvoice number
idStringExpense ID
transactionObjectTransaction details containing amount and currency information
transaction.amountNumberTransaction amount
transaction.amount_currencyStringTransaction currency code
transaction.billing_amountNumberBilling amount
transaction.billing_amount_currencyStringBilling currency code
cardObjectThe card used
card.identifierStringCard ID
card.nameStringCard name/label
card.last4StringLast 4 digits of the card
userObjectThe user the expense belongs to
user.identifierStringUser ID
user.fullnameStringUser's full name
user.emailStringUser's email
categoryStringExpense category
tax_codeStringTax code
payment_accountStringPayment account
expense_accountStringExpense account
vendorStringVendor information
receipt_uploadedBooleanWhether receipt is uploaded
created_atStringDate of the card transaction the expense was created from (Dubai time), format DD Mon YYYY, hh:mm AM
updated_atStringExpense last update date
event_typeStringexpense.create or expense.update