It takes just a couple of steps to get up and running. If you’re not yet an Upsider the first thing you’ll need to do is sign up here: https://up.com.au/download/. Great! Let’s go to the next step.
Your personal access token is the key to your financial kingdom. Guard it fiercely and never share it online or give it out. If you are worried it may have fallen into the wrong hands it’s easy to generate a new one (and expire the old one) - see below.
1. Open the Up app on your phone, swipe right and select "Data sharing".
2. Tap on ‘Personal Access Token’.
3. Select ‘Generate a token’.
4. Select how long you would like the token to last.
5. Follow the prompts to generate your token
6. Presto! You now have a Personal Access Token. Copy this and store it safely.
Head over to https://api.up.com.au for an alternative way to claim your access token.
1. Open the Up app, swipe right and select "Data sharing".
2. Tap on ‘Personal Access Token’.
3. Tap ‘Generate a token’ and follow the prompts.
1. Open the Up app, swipe right and select "Data sharing"
2. Tap on ‘Personal Access Token’.
3. Tap ‘Revoke existing token’ and select confirm
Ok let's get our hands dirty! The simplest request in the book is to first verify that your token works.
To test your access token, make a request to the /util/ping
endpoint. You'll need to put your access token in the Authorization
header like so:
Authorization: Bearer $your_access_token
Replace $your_access_token
with your personal access token.
You should get a JSON response with a HTTP 200
status.
Sample Request
curl https://api.up.com.au/api/v1/util/ping \-H "Authorization: Bearer $your_access_token"
Sample Response
{"meta": {"id": "3b5d17a4-6778-48dc-ae7d-9f8aace2e2fc","statusEmoji": "⚡️"}}
If the Authorization
header is missing, is malformed, or contains an invalid access token, an error response will be returned with a HTTP 401
status.
v1
(beta). New endpoints will be added over time and existing endpoints will be extended. Some endpoints or fields within an endpoint may be deprecated, but nothing will be removed within any given version, in order to maintain backwards compatibility with existing clients.The endpoints documented in this reference must all be appended to the base URL before they can be called.
https://api.up.com.au/api/v1
For example, the GET /accounts
endpoint is callable at
https://api.up.com.au/api/v1/accounts
Authorization
header. The bearer scheme is used to construct the Authorization
header.Sample Header
Authorization: Bearer $your_access_token
Replace $your_access_token
with your personal access token.
Currently the Up Banking API is only available for use with a personal access token, which can be obtained in-app or by visiting api.up.com.au and following the prompts.
Only one personal access token can be used at a time. You can generate a new personal access token or revoke an existing one by opening the Up app, swiping right and selecting Data Sharing from the list of settings.
links
field at the top-level of the response JSON and its data
field contains an array of resources specific to the endpoint.Sample Response
{"data": [...],"links": {"prev": "https://api.up.com.au/api/v1/accounts?page[before]=x","next": "https://api.up.com.au/api/v1/accounts?page[after]=y"}}
prev
and next
links to move between pages.On each page of results, the client consumes each of the resources contained in the data
array. Forwards pagination is achieved by following the next
link repeatedly until the next
link is set to null
. When the next
link is null
, there are no more pages available and pagination terminates. Backwards pagination is achieved by following the prev
link repeatedly until the prev
link is set to null
. When the prev
link is null
, there are no more pages available and pagination terminates.
Endpoints that support pagination accept a page[size]
query parameter. This value must be a positive integer and is generally constrained to an upper limit of 100
, however individual endpoints may impose different constraints.
Sample URL
https://api.up.com.au/api/v1/accounts?page[size]=10
When the page[size]
is specified, no more than page[size]
resources will be included in the response's data
field. This parameter is set to a sensible default, which varies depending on the endpoint.
2xx
range. Error responses will usually be in the 4xx
range, or more rarely, in the 5xx
range.200
Successful response: Everything worked as intended
201
Successful response: A new resource was created successfully—Typically used with POST requests.
204
Successful response: No content—typically used with DELETE requests.
400
Bad request: Typically a problem with the query string or an encoding error.
401
Not authorized: The request was not authenticated.
404
Not found: Either the endpoint does not exist, or the requested resource does not exist.
422
Invalid request: The request contains invalid data and was not processed.
429
Too many requests: You have been rate limited—try later, ideally with exponential backoff. The X-RateLimit-Remaining response header shows the number remaining.
500 502 503 504
Server-side errors: Try again later.
When a response is received in the 4xx
or 5xx
range, it includes errors that should be referred for more detail.
Generic error response that returns one or more errors.
errors
Array [ErrorObject]
The list of errors returned in this response.
status
string
The HTTP status code associated with this error. This can also be obtained from the response headers. The status indicates the broad type of error according to HTTP semantics.
title
string
A short description of this error. This should be stable across multiple occurrences of this type of error and typically expands on the reason for the status code.
detail
string
A detailed description of this error. This should be considered unique to individual occurrences of an error and subject to change. It is useful for debugging purposes.
source
object
If applicable, location in the request that this error relates to. This may be a parameter in the query string, or a an attribute in the request body.
parameter
string
If this error relates to a query parameter, the name of the parameter.
pointer
string
If this error relates to an attribute in the request body, a rfc-6901 JSON pointer to the attribute.
Sample Response
{"errors": [{"status": "422","title": "Invalid Request Payload","detail": "fixed value \"tags\" required","source": {"pointer": "/data/0/type"}}]}
Clients should typically convert these error responses to exceptions and handle them as necessary.
Accounts represent the underlying store used to track balances
and the transactions that have occurred to modify those balances
over time. Up currently has three types of account: SAVER
—used to
earn interest and to hit savings goals, TRANSACTIONAL
—used
for everyday spending, and HOME_LOAN
-for those with an Up Home loan.
GET /accounts
Retrieve a paginated list of all accounts for the currently
authenticated user. The returned list is paginated and can be scrolled
by following the prev
and next
links where present.
page[size]
integer
The number of records to return in each page.
?page[size]=30
filter[accountType]
The type of account for which to return records. This can be used to filter Savers from spending accounts.
?filter[accountType]=SAVER
filter[ownershipType]
The account ownership structure for which to return records. This can be used to filter 2Up accounts from Up accounts.
?filter[ownershipType]=INDIVIDUAL
"+"
must be encoded as "%2B"
in order to be received as a plus-sign and not as a space character.data
Array [AccountResource]
The list of accounts returned in this response.
type
string
The type of this resource: accounts
id
string
The unique identifier for this account.
attributes
object
displayName
string
The name associated with the account in the Up application.
accountType
AccountTypeEnum
The bank account type of this account.
ownershipType
OwnershipTypeEnum
The ownership structure for this account.
balance
MoneyObject
The available balance of the account, taking into account any amounts that are currently on hold.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
createdAt
string (date-time)
The date-time at which this account was first opened.
relationships
object
transactions
object
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
links
object
prev
string
The link to the previous page in the results. If this value is null
there is no previous page.
next
string
The link to the next page in the results. If this value is null
there is no next page.
Sample Request
curl https://api.up.com.au/api/v1/accounts \-G \-H 'Authorization: Bearer up:demo:5iK87v6jzG1GcHis' \-d 'page[size]=1'
Sample Response
{"data": [{"type": "accounts","id": "6f6c104d-9ddf-48fe-a974-091013b2b4f6","attributes": {"displayName": "Spending","accountType": "TRANSACTIONAL","ownershipType": "INDIVIDUAL","balance": {"currencyCode": "AUD","value": "1.00","valueInBaseUnits": 100},"createdAt": "2024-11-21T13:51:33+11:00"},"relationships": {"transactions": {"links": {"related": "https://api.up.com.au/api/v1/accounts/6f6c104d-9ddf-48fe-a974-091013b2b4f6/transactions"}}},"links": {"self": "https://api.up.com.au/api/v1/accounts/6f6c104d-9ddf-48fe-a974-091013b2b4f6"}}],"links": {"prev": null,"next": "https://api.up.com.au/api/v1/accounts?page%5Bafter%5D=WyIyMDI0LTExLTIxVDAyOjUxOjMzLjkxODAxNTAwMFoiLCI2ZjZjMTA0ZC05ZGRmLTQ4ZmUtYTk3NC0wOTEwMTNiMmI0ZjYiXQ%3D%3D&page%5Bsize%5D=1"}}
GET /accounts/{id}
Retrieve a specific account by providing its unique identifier.
id
string
The unique identifier for the account.
736bb540-1e7f-4cf6-97e6-b872ea8df490
data
AccountResource
The account returned in this response.
type
string
The type of this resource: accounts
id
string
The unique identifier for this account.
attributes
object
displayName
string
The name associated with the account in the Up application.
accountType
AccountTypeEnum
The bank account type of this account.
ownershipType
OwnershipTypeEnum
The ownership structure for this account.
balance
MoneyObject
The available balance of the account, taking into account any amounts that are currently on hold.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
createdAt
string (date-time)
The date-time at which this account was first opened.
relationships
object
transactions
object
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
Sample Request
curl https://api.up.com.au/api/v1/accounts/4f96ef3e-6489-4fe1-9736-660e0dd89e42 \-H 'Authorization: Bearer up:demo:oxRDkL5GHLgLZz9K'
Sample Response
{"data": {"type": "accounts","id": "4f96ef3e-6489-4fe1-9736-660e0dd89e42","attributes": {"displayName": "🐷 Savings","accountType": "SAVER","ownershipType": "INDIVIDUAL","balance": {"currencyCode": "AUD","value": "125.36","valueInBaseUnits": 12536},"createdAt": "2024-11-21T13:51:35+11:00"},"relationships": {"transactions": {"links": {"related": "https://api.up.com.au/api/v1/accounts/4f96ef3e-6489-4fe1-9736-660e0dd89e42/transactions"}}},"links": {"self": "https://api.up.com.au/api/v1/accounts/4f96ef3e-6489-4fe1-9736-660e0dd89e42"}}}
Attachments represent uploaded files that are attached to transactions, these are commonly receipts.
GET /attachments
Retrieve a list of all attachments. The returned list is paginated and can
be scrolled by following the next
and prev
links where present.
data
Array [AttachmentResource]
The list of attachments returned in this response.
type
string
The type of this resource: attachments
id
string
The unique identifier for this attachment.
attributes
object
createdAt
string (date-time)
The date-time when the file was created.
fileURL
string
A temporary link to download the file.
fileURLExpiresAt
string (date-time)
The date-time at which the fileURL
link expires.
fileExtension
string
File extension for the uploaded attachment.
fileContentType
string
Content type for the uploaded attachment.
relationships
object
transaction
object
data
object
type
string
The type of this resource: transactions
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
links
object
prev
string
The link to the previous page in the results. If this value is null
there is no previous page.
next
string
The link to the next page in the results. If this value is null
there is no next page.
Sample Request
curl https://api.up.com.au/api/v1/attachments \-H 'Authorization: Bearer up:demo:bd6AO7B1n2Wqmu9a'
Sample Response
{"data": [{"type": "attachments","id": "a64f9bbe-1a67-4a3f-bfd8-9c128383836c","attributes": {"createdAt": "2024-11-21T13:51:36+11:00","fileURL": "http://localhost:8080/asset/customer_transaction_attachment.jpg?filename=uploads%2Fcustomer_transaction_attachments%2Fmodels%2Fattachment%2Ffile%2F1%2Fattachment.jpg×tamp=1732157496&token=a2daf15362de68a29be3b4f3992b0fd2ab2fb38809c2f6cc5dc3e5301ea21cf6","fileURLExpiresAt": "2024-11-21T14:06:36+11:00","fileExtension": "jpg","fileContentType": "image/jpeg"},"relationships": {"transaction": {"data": {"type": "transactions","id": "a04097ef-1851-4144-9dae-dcd5c6e98b9c"},"links": {"related": "https://api.up.com.au/api/v1/transactions/a04097ef-1851-4144-9dae-dcd5c6e98b9c"}}},"links": {"self": "https://api.up.com.au/api/v1/attachments/a64f9bbe-1a67-4a3f-bfd8-9c128383836c"}},{"type": "attachments","id": "bb7d4dc9-9c36-41f0-bb8a-84fa885f4c28","attributes": {"createdAt": "2024-11-21T13:51:36+11:00","fileURL": "http://localhost:8080/asset/customer_transaction_attachment.jpg?filename=uploads%2Fcustomer_transaction_attachments%2Fmodels%2Fattachment%2Ffile%2F2%2Fattachment.jpg×tamp=1732157496&token=95ee209291796c41c169356df0549f3015fdb98709efd2a16b3933547ffb7d2f","fileURLExpiresAt": "2024-11-21T14:06:36+11:00","fileExtension": "jpg","fileContentType": "image/jpeg"},"relationships": {"transaction": {"data": {"type": "transactions","id": "3b3715b0-9c5a-4e52-97f5-5b4ce6049d49"},"links": {"related": "https://api.up.com.au/api/v1/transactions/3b3715b0-9c5a-4e52-97f5-5b4ce6049d49"}}},"links": {"self": "https://api.up.com.au/api/v1/attachments/bb7d4dc9-9c36-41f0-bb8a-84fa885f4c28"}}],"links": {"prev": null,"next": null}}
GET /attachments/{id}
Retrieve a specific attachment by providing its unique identifier.
id
string
The unique identifier for the attachment.
d264cbca-94a3-4c17-a194-1c0d63c504dc
data
AttachmentResource
The attachment returned in this response.
type
string
The type of this resource: attachments
id
string
The unique identifier for this attachment.
attributes
object
createdAt
string (date-time)
The date-time when the file was created.
fileURL
string
A temporary link to download the file.
fileURLExpiresAt
string (date-time)
The date-time at which the fileURL
link expires.
fileExtension
string
File extension for the uploaded attachment.
fileContentType
string
Content type for the uploaded attachment.
relationships
object
transaction
object
data
object
type
string
The type of this resource: transactions
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
Sample Request
curl https://api.up.com.au/api/v1/attachments/1ab88f6e-da16-48ff-8891-effcd6103bfe \-H 'Authorization: Bearer up:demo:4hyVGNHpUYOF2d59'
Sample Response
{"data": {"type": "attachments","id": "1ab88f6e-da16-48ff-8891-effcd6103bfe","attributes": {"createdAt": "2024-11-21T13:51:38+11:00","fileURL": "http://localhost:8080/asset/customer_transaction_attachment.jpg?filename=uploads%2Fcustomer_transaction_attachments%2Fmodels%2Fattachment%2Ffile%2F5%2Fattachment.jpg×tamp=1732157498&token=dded009e4d59e80f6f90b7c1d76a7dc13664f63ba29a6ed395c8b5f84f2f70b5","fileURLExpiresAt": "2024-11-21T14:06:38+11:00","fileExtension": "jpg","fileContentType": "image/jpeg"},"relationships": {"transaction": {"data": {"type": "transactions","id": "320f7989-b1a9-4539-b68b-a9038de4408c"},"links": {"related": "https://api.up.com.au/api/v1/transactions/320f7989-b1a9-4539-b68b-a9038de4408c"}}},"links": {"self": "https://api.up.com.au/api/v1/attachments/1ab88f6e-da16-48ff-8891-effcd6103bfe"}}}
Categories enable understanding where your money goes by driving powerful insights in Up. All categories in Up are pre-defined and are automatically assigned to new purchases in most cases. A parent-child relationship is used to represent categories, however parent categories cannot be directly assigned to transactions.
GET /categories
Retrieve a list of all categories and their ancestry. The returned list is not paginated.
filter[parent]
string
The unique identifier of a parent category for which to
return only its children. Providing an invalid category
identifier results in a 404
response.
?filter[parent]=good-life
"+"
must be encoded as "%2B"
in order to be received as a plus-sign and not as a space character.data
Array [CategoryResource]
The list of categories returned in this response.
type
string
The type of this resource: categories
id
string
The unique identifier for this category. This is a human-readable but URL-safe value.
attributes
object
name
string
The name of this category as seen in the Up application.
relationships
object
parent
object
data
object
type
string
The type of this resource: categories
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
children
object
data
Array [object]
type
string
The type of this resource: categories
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
Sample Request
curl https://api.up.com.au/api/v1/categories \-G \-H 'Authorization: Bearer up:demo:8CuQswI9sbUcsOMN' \-d 'filter[parent]=good-life'
Sample Response
{"data": [{"type": "categories","id": "hobbies","attributes": {"name": "Hobbies"},"relationships": {"parent": {"data": {"type": "categories","id": "good-life"},"links": {"related": "https://api.up.com.au/api/v1/categories/good-life"}},"children": {"data": [],"links": {"related": "https://api.up.com.au/api/v1/categories?filter%5Bparent%5D=hobbies"}}},"links": {"self": "https://api.up.com.au/api/v1/categories/hobbies"}},{"type": "categories","id": "restaurants-and-cafes","attributes": {"name": "Restaurants & Cafes"},"relationships": {"parent": {"data": {"type": "categories","id": "good-life"},"links": {"related": "https://api.up.com.au/api/v1/categories/good-life"}},"children": {"data": [],"links": {"related": "https://api.up.com.au/api/v1/categories?filter%5Bparent%5D=restaurants-and-cafes"}}},"links": {"self": "https://api.up.com.au/api/v1/categories/restaurants-and-cafes"}}]}
GET /categories/{id}
Retrieve a specific category by providing its unique identifier.
id
string
The unique identifier for the category.
restaurants-and-cafes
data
CategoryResource
The category returned in this response.
type
string
The type of this resource: categories
id
string
The unique identifier for this category. This is a human-readable but URL-safe value.
attributes
object
name
string
The name of this category as seen in the Up application.
relationships
object
parent
object
data
object
type
string
The type of this resource: categories
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
children
object
data
Array [object]
type
string
The type of this resource: categories
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
Sample Request
curl https://api.up.com.au/api/v1/categories/home \-H 'Authorization: Bearer up:demo:uJVPNIq6XsHCRiFf'
Sample Response
{"data": {"type": "categories","id": "home","attributes": {"name": "Home"},"relationships": {"parent": {"data": null},"children": {"data": [{"type": "categories","id": "groceries"}],"links": {"related": "https://api.up.com.au/api/v1/categories?filter%5Bparent%5D=home"}}},"links": {"self": "https://api.up.com.au/api/v1/categories/home"}}}
PATCH /transactions/{transactionId}/relationships/category
Updates the category associated with a transaction. Only transactions
for which isCategorizable
is set to true support this operation. The
id
is taken from the list exposed on /categories
and cannot be one of
the top-level (parent) categories. To de-categorize a transaction, set
the entire data
key to null
. An HTTP 204
is returned on success.
The associated category, along with its request URL is also exposed via
the category
relationship on the transaction resource returned from
/transactions/{id}
.
transactionId
string
The unique identifier for the transaction.
4941a94e-ff63-4dbd-8e4c-11316ac84388
data
CategoryInputResourceIdentifier
The category to set on the transaction. Set this entire key to null
de-categorize a transaction.
type
string
The type of this resource: categories
id
string
The unique identifier of the category, as returned by the /categories
endpoint.
Sample Request
curl https://api.up.com.au/api/v1/transactions/eb3cd9ad-1f4c-4418-8f27-8bdfac18c57f/relationships/category \-XPATCH \-H 'Authorization: Bearer up:demo:2V9cdjwi0SkYSRWX' \-H 'Content-Type: application/json' \--data-binary '{"data": {"type": "categories","id": "restaurants-and-cafes"}}'
Transactions represent the movement of money into and out of an
account. They have many characteristics that vary depending on
the kind of transaction. Transactions may be temporarily HELD
(pending) or SETTLED
, typically depending on which payment
method was used at the point of sale.
GET /transactions
Retrieve a list of all transactions across all accounts for the currently
authenticated user. The returned list is paginated and can
be scrolled by following the next
and prev
links where present. To
narrow the results to a specific date range pass one or both of
filter[since]
and filter[until]
in the query string. These filter
parameters should not be used for pagination. Results are ordered
newest first to oldest last.
page[size]
integer
The number of records to return in each page.
?page[size]=30
filter[status]
The transaction status for which to return records. This
can be used to filter HELD
transactions from those
that are SETTLED
.
?filter[status]=HELD
filter[since]
string
The start date-time from which to return records, formatted according to rfc-3339. Not to be used for pagination purposes.
?filter[since]=2020-01-01T01:02:03+10:00
filter[until]
string
The end date-time up to which to return records, formatted according to rfc-3339. Not to be used for pagination purposes.
?filter[until]=2020-02-01T01:02:03+10:00
filter[category]
string
The category identifier for which to filter transactions.
Both parent and child categories can be filtered through
this parameter. Providing an invalid category identifier
results in a 404
response.
?filter[category]=good-life
filter[tag]
string
A transaction tag to filter for which to return records. If the tag does not exist, zero records are returned and a success response is given.
?filter[tag]=Holiday
"+"
must be encoded as "%2B"
in order to be received as a plus-sign and not as a space character.data
Array [TransactionResource]
The list of transactions returned in this response.
type
string
The type of this resource: transactions
id
string
The unique identifier for this transaction.
attributes
object
status
TransactionStatusEnum
The current processing status of this transaction, according to whether or not this transaction has settled or is still held.
rawText
string
The original, unprocessed text of the transaction. This is often not a perfect indicator of the actual merchant, but it is useful for reconciliation purposes in some cases.
description
string
A short description for this transaction. Usually the merchant name for purchases.
message
string
Attached message for this transaction, such as a payment message, or a transfer note.
isCategorizable
boolean
Boolean flag set to true on transactions that support the use of categories.
holdInfo
HoldInfoObject
If this transaction is currently in the HELD
status, or was ever in
the HELD
status, the amount
and foreignAmount
of the
transaction while HELD
.
amount
MoneyObject
The amount of this transaction while in the HELD
status, in
Australian dollars.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
foreignAmount
MoneyObject
The foreign currency amount of this transaction while in the HELD
status. This field will be null
for domestic transactions. The amount
was converted to the AUD amount reflected in the amount
field.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
roundUp
RoundUpObject
Details of how this transaction was rounded-up. If no Round Up was
applied this field will be null
.
amount
MoneyObject
The total amount of this Round Up, including any boosts, represented as a negative value.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
boostPortion
MoneyObject
The portion of the Round Up amount
owing to boosted Round Ups,
represented as a negative value. If no boost was added to the Round Up
this field will be null
.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
cashback
CashbackObject
If all or part of this transaction was instantly reimbursed in the form of cashback, details of the reimbursement.
description
string
A brief description of why this cashback was paid.
amount
MoneyObject
The total amount of cashback paid, represented as a positive value.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
amount
MoneyObject
The amount of this transaction in Australian dollars. For
transactions that were once HELD
but are now SETTLED
, refer to
the holdInfo
field for the original amount
the transaction was
HELD
at.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
foreignAmount
MoneyObject
The foreign currency amount of this transaction. This field will be
null
for domestic transactions. The amount was converted to the AUD
amount reflected in the amount
of this transaction. Refer to the
holdInfo
field for the original foreignAmount
the transaction was
HELD
at.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
cardPurchaseMethod
CardPurchaseMethodObject
Information about the card used for this transaction, if applicable.
method
CardPurchaseMethodEnum
The type of card purchase.
cardNumberSuffix
string
The last four digits of the card used for the purchase, if applicable.
settledAt
string (date-time)
The date-time at which this transaction settled. This field will be
null
for transactions that are currently in the HELD
status.
createdAt
string (date-time)
The date-time at which this transaction was first encountered.
transactionType
string
A description of the transaction method used e.g. Purchase, BPAY Payment.
note
NoteObject
A customer provided note about the transaction. Can only be provided by Up High subscribers.
text
string
A text note about the transaction.
performingCustomer
CustomerObject
The customer who initated the transaction. For 2Up accounts this could be the customer who's card was used.
displayName
string
The Upname or preferred name of the customer
deepLinkURL
string
A deep link to the transaction receipt screen in-app.
relationships
object
account
object
data
object
type
string
The type of this resource: accounts
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
transferAccount
object
If this transaction is a transfer between accounts, this relationship
will contain the account the transaction went to/came from. The
amount
field can be used to determine the direction of the transfer.
data
object
type
string
The type of this resource: accounts
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
category
object
data
object
type
string
The type of this resource: categories
id
string
The unique identifier of the resource within its type.
links
object
self
string
The link to retrieve or modify linkage between this resources and the related resource(s) in this relationship.
related
string
The link to retrieve the related resource(s) in this relationship.
parentCategory
object
data
object
type
string
The type of this resource: categories
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
tags
object
data
Array [object]
type
string
The type of this resource: tags
id
string
The label of the tag, which also acts as the tag’s unique identifier.
links
object
self
string
The link to retrieve or modify linkage between this resources and the related resource(s) in this relationship.
attachment
object
data
object
type
string
The type of this resource: attachments
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
links
object
prev
string
The link to the previous page in the results. If this value is null
there is no previous page.
next
string
The link to the next page in the results. If this value is null
there is no next page.
Sample Request
curl https://api.up.com.au/api/v1/transactions \-G \-H 'Authorization: Bearer up:demo:njmXzVYOjkeBZPcV' \-d 'page[size]=1' \-d 'filter[tag]=Pizza Night' \-d 'filter[status]=SETTLED'
Sample Response
{"data": [{"type": "transactions","id": "b6a137c1-2764-4c21-8eb0-ffb0417e7c0a","attributes": {"status": "SETTLED","rawText": null,"description": "David Taylor","message": "Money for the pizzas last night.","isCategorizable": true,"holdInfo": null,"roundUp": null,"cashback": null,"amount": {"currencyCode": "AUD","value": "-59.98","valueInBaseUnits": -5998},"foreignAmount": null,"cardPurchaseMethod": null,"settledAt": "2024-11-20T06:49:56+11:00","createdAt": "2024-11-20T06:49:56+11:00","transactionType": null,"note": null,"performingCustomer": {"displayName": "Bobby"},"deepLinkURL": "up://transaction/VHJhbnNhY3Rpb24tMzg="},"relationships": {"account": {"data": {"type": "accounts","id": "16c26f05-47a5-4e3c-896c-6e670b566e61"},"links": {"related": "https://api.up.com.au/api/v1/accounts/16c26f05-47a5-4e3c-896c-6e670b566e61"}},"transferAccount": {"data": null},"category": {"data": null,"links": {"self": "https://api.up.com.au/api/v1/transactions/b6a137c1-2764-4c21-8eb0-ffb0417e7c0a/relationships/category"}},"parentCategory": {"data": null},"tags": {"data": [{"type": "tags","id": "Pizza Night"}],"links": {"self": "https://api.up.com.au/api/v1/transactions/b6a137c1-2764-4c21-8eb0-ffb0417e7c0a/relationships/tags"}},"attachment": {"data": null}},"links": {"self": "https://api.up.com.au/api/v1/transactions/b6a137c1-2764-4c21-8eb0-ffb0417e7c0a"}}],"links": {"prev": null,"next": null}}
GET /transactions/{id}
Retrieve a specific transaction by providing its unique identifier.
id
string
The unique identifier for the transaction.
f686e551-a49a-42d4-809b-95dd04b0400e
data
TransactionResource
The transaction returned in this response.
type
string
The type of this resource: transactions
id
string
The unique identifier for this transaction.
attributes
object
status
TransactionStatusEnum
The current processing status of this transaction, according to whether or not this transaction has settled or is still held.
rawText
string
The original, unprocessed text of the transaction. This is often not a perfect indicator of the actual merchant, but it is useful for reconciliation purposes in some cases.
description
string
A short description for this transaction. Usually the merchant name for purchases.
message
string
Attached message for this transaction, such as a payment message, or a transfer note.
isCategorizable
boolean
Boolean flag set to true on transactions that support the use of categories.
holdInfo
HoldInfoObject
If this transaction is currently in the HELD
status, or was ever in
the HELD
status, the amount
and foreignAmount
of the
transaction while HELD
.
amount
MoneyObject
The amount of this transaction while in the HELD
status, in
Australian dollars.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
foreignAmount
MoneyObject
The foreign currency amount of this transaction while in the HELD
status. This field will be null
for domestic transactions. The amount
was converted to the AUD amount reflected in the amount
field.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
roundUp
RoundUpObject
Details of how this transaction was rounded-up. If no Round Up was
applied this field will be null
.
amount
MoneyObject
The total amount of this Round Up, including any boosts, represented as a negative value.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
boostPortion
MoneyObject
The portion of the Round Up amount
owing to boosted Round Ups,
represented as a negative value. If no boost was added to the Round Up
this field will be null
.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
cashback
CashbackObject
If all or part of this transaction was instantly reimbursed in the form of cashback, details of the reimbursement.
description
string
A brief description of why this cashback was paid.
amount
MoneyObject
The total amount of cashback paid, represented as a positive value.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
amount
MoneyObject
The amount of this transaction in Australian dollars. For
transactions that were once HELD
but are now SETTLED
, refer to
the holdInfo
field for the original amount
the transaction was
HELD
at.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
foreignAmount
MoneyObject
The foreign currency amount of this transaction. This field will be
null
for domestic transactions. The amount was converted to the AUD
amount reflected in the amount
of this transaction. Refer to the
holdInfo
field for the original foreignAmount
the transaction was
HELD
at.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
cardPurchaseMethod
CardPurchaseMethodObject
Information about the card used for this transaction, if applicable.
method
CardPurchaseMethodEnum
The type of card purchase.
cardNumberSuffix
string
The last four digits of the card used for the purchase, if applicable.
settledAt
string (date-time)
The date-time at which this transaction settled. This field will be
null
for transactions that are currently in the HELD
status.
createdAt
string (date-time)
The date-time at which this transaction was first encountered.
transactionType
string
A description of the transaction method used e.g. Purchase, BPAY Payment.
note
NoteObject
A customer provided note about the transaction. Can only be provided by Up High subscribers.
text
string
A text note about the transaction.
performingCustomer
CustomerObject
The customer who initated the transaction. For 2Up accounts this could be the customer who's card was used.
displayName
string
The Upname or preferred name of the customer
deepLinkURL
string
A deep link to the transaction receipt screen in-app.
relationships
object
account
object
data
object
type
string
The type of this resource: accounts
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
transferAccount
object
If this transaction is a transfer between accounts, this relationship
will contain the account the transaction went to/came from. The
amount
field can be used to determine the direction of the transfer.
data
object
type
string
The type of this resource: accounts
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
category
object
data
object
type
string
The type of this resource: categories
id
string
The unique identifier of the resource within its type.
links
object
self
string
The link to retrieve or modify linkage between this resources and the related resource(s) in this relationship.
related
string
The link to retrieve the related resource(s) in this relationship.
parentCategory
object
data
object
type
string
The type of this resource: categories
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
tags
object
data
Array [object]
type
string
The type of this resource: tags
id
string
The label of the tag, which also acts as the tag’s unique identifier.
links
object
self
string
The link to retrieve or modify linkage between this resources and the related resource(s) in this relationship.
attachment
object
data
object
type
string
The type of this resource: attachments
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
Sample Request
curl https://api.up.com.au/api/v1/transactions/1e8b98e9-732f-4efb-970e-91306e823dd3 \-H 'Authorization: Bearer up:demo:gPmtEdHQb1eGkFaC'
Sample Response
{"data": {"type": "transactions","id": "1e8b98e9-732f-4efb-970e-91306e823dd3","attributes": {"status": "SETTLED","rawText": "WARUNG BEBEK, UBUD INDONES","description": "Warung Bebek Bengil","message": null,"isCategorizable": true,"holdInfo": {"amount": {"currencyCode": "AUD","value": "-107.92","valueInBaseUnits": -10792},"foreignAmount": null},"roundUp": {"amount": {"currencyCode": "AUD","value": "-0.08","valueInBaseUnits": -8},"boostPortion": null},"cashback": null,"amount": {"currencyCode": "AUD","value": "-107.92","valueInBaseUnits": -10792},"foreignAmount": {"currencyCode": "IDR","value": "-1053698.77","valueInBaseUnits": -105369877},"cardPurchaseMethod": {"method": "CARD_ON_FILE","cardNumberSuffix": "0001"},"settledAt": "2024-11-18T04:00:00+11:00","createdAt": "2024-11-18T04:00:00+11:00","transactionType": null,"note": null,"performingCustomer": {"displayName": "Bobby"},"deepLinkURL": "up://transaction/VHJhbnNhY3Rpb24tNDY="},"relationships": {"account": {"data": {"type": "accounts","id": "8e8b0b5c-8278-4fec-bc13-390da4b99447"},"links": {"related": "https://api.up.com.au/api/v1/accounts/8e8b0b5c-8278-4fec-bc13-390da4b99447"}},"transferAccount": {"data": null},"category": {"data": null,"links": {"self": "https://api.up.com.au/api/v1/transactions/1e8b98e9-732f-4efb-970e-91306e823dd3/relationships/category"}},"parentCategory": {"data": null},"tags": {"data": [],"links": {"self": "https://api.up.com.au/api/v1/transactions/1e8b98e9-732f-4efb-970e-91306e823dd3/relationships/tags"}},"attachment": {"data": null}},"links": {"self": "https://api.up.com.au/api/v1/transactions/1e8b98e9-732f-4efb-970e-91306e823dd3"}}}
GET /accounts/{accountId}/transactions
Retrieve a list of all transactions for a specific account. The returned
list is paginated and can be scrolled by following the
next
and prev
links where present. To narrow the results to a
specific date range pass one or both of filter[since]
and
filter[until]
in the query string. These filter parameters
should not be used for pagination. Results are ordered newest first
to oldest last.
accountId
string
The unique identifier for the account.
6622c19c-06b3-413b-9809-b2358012b7fd
page[size]
integer
The number of records to return in each page.
?page[size]=30
filter[status]
The transaction status for which to return records. This
can be used to filter HELD
transactions from those
that are SETTLED
.
?filter[status]=HELD
filter[since]
string
The start date-time from which to return records, formatted according to rfc-3339. Not to be used for pagination purposes.
?filter[since]=2020-01-01T01:02:03+10:00
filter[until]
string
The end date-time up to which to return records, formatted according to rfc-3339. Not to be used for pagination purposes.
?filter[until]=2020-02-01T01:02:03+10:00
filter[category]
string
The category identifier for which to filter transactions.
Both parent and child categories can be filtered through
this parameter. Providing an invalid category identifier
results in a 404
response.
?filter[category]=good-life
filter[tag]
string
A transaction tag to filter for which to return records. If the tag does not exist, zero records are returned and a success response is given.
?filter[tag]=Holiday
"+"
must be encoded as "%2B"
in order to be received as a plus-sign and not as a space character.data
Array [TransactionResource]
The list of transactions returned in this response.
type
string
The type of this resource: transactions
id
string
The unique identifier for this transaction.
attributes
object
status
TransactionStatusEnum
The current processing status of this transaction, according to whether or not this transaction has settled or is still held.
rawText
string
The original, unprocessed text of the transaction. This is often not a perfect indicator of the actual merchant, but it is useful for reconciliation purposes in some cases.
description
string
A short description for this transaction. Usually the merchant name for purchases.
message
string
Attached message for this transaction, such as a payment message, or a transfer note.
isCategorizable
boolean
Boolean flag set to true on transactions that support the use of categories.
holdInfo
HoldInfoObject
If this transaction is currently in the HELD
status, or was ever in
the HELD
status, the amount
and foreignAmount
of the
transaction while HELD
.
amount
MoneyObject
The amount of this transaction while in the HELD
status, in
Australian dollars.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
foreignAmount
MoneyObject
The foreign currency amount of this transaction while in the HELD
status. This field will be null
for domestic transactions. The amount
was converted to the AUD amount reflected in the amount
field.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
roundUp
RoundUpObject
Details of how this transaction was rounded-up. If no Round Up was
applied this field will be null
.
amount
MoneyObject
The total amount of this Round Up, including any boosts, represented as a negative value.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
boostPortion
MoneyObject
The portion of the Round Up amount
owing to boosted Round Ups,
represented as a negative value. If no boost was added to the Round Up
this field will be null
.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
cashback
CashbackObject
If all or part of this transaction was instantly reimbursed in the form of cashback, details of the reimbursement.
description
string
A brief description of why this cashback was paid.
amount
MoneyObject
The total amount of cashback paid, represented as a positive value.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
amount
MoneyObject
The amount of this transaction in Australian dollars. For
transactions that were once HELD
but are now SETTLED
, refer to
the holdInfo
field for the original amount
the transaction was
HELD
at.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
foreignAmount
MoneyObject
The foreign currency amount of this transaction. This field will be
null
for domestic transactions. The amount was converted to the AUD
amount reflected in the amount
of this transaction. Refer to the
holdInfo
field for the original foreignAmount
the transaction was
HELD
at.
currencyCode
string
The ISO 4217 currency code.
value
string
The amount of money, formatted as a string in the relevant currency.
For example, for an Australian dollar value of $10.56, this field will
be "10.56"
. The currency symbol is not included in the string.
valueInBaseUnits
integer
The amount of money in the smallest denomination for the currency, as a
64-bit integer. For example, for an Australian dollar value of $10.56,
this field will be 1056
.
cardPurchaseMethod
CardPurchaseMethodObject
Information about the card used for this transaction, if applicable.
method
CardPurchaseMethodEnum
The type of card purchase.
cardNumberSuffix
string
The last four digits of the card used for the purchase, if applicable.
settledAt
string (date-time)
The date-time at which this transaction settled. This field will be
null
for transactions that are currently in the HELD
status.
createdAt
string (date-time)
The date-time at which this transaction was first encountered.
transactionType
string
A description of the transaction method used e.g. Purchase, BPAY Payment.
note
NoteObject
A customer provided note about the transaction. Can only be provided by Up High subscribers.
text
string
A text note about the transaction.
performingCustomer
CustomerObject
The customer who initated the transaction. For 2Up accounts this could be the customer who's card was used.
displayName
string
The Upname or preferred name of the customer
deepLinkURL
string
A deep link to the transaction receipt screen in-app.
relationships
object
account
object
data
object
type
string
The type of this resource: accounts
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
transferAccount
object
If this transaction is a transfer between accounts, this relationship
will contain the account the transaction went to/came from. The
amount
field can be used to determine the direction of the transfer.
data
object
type
string
The type of this resource: accounts
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
category
object
data
object
type
string
The type of this resource: categories
id
string
The unique identifier of the resource within its type.
links
object
self
string
The link to retrieve or modify linkage between this resources and the related resource(s) in this relationship.
related
string
The link to retrieve the related resource(s) in this relationship.
parentCategory
object
data
object
type
string
The type of this resource: categories
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
tags
object
data
Array [object]
type
string
The type of this resource: tags
id
string
The label of the tag, which also acts as the tag’s unique identifier.
links
object
self
string
The link to retrieve or modify linkage between this resources and the related resource(s) in this relationship.
attachment
object
data
object
type
string
The type of this resource: attachments
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
links
object
prev
string
The link to the previous page in the results. If this value is null
there is no previous page.
next
string
The link to the next page in the results. If this value is null
there is no next page.
Sample Request
curl https://api.up.com.au/api/v1/accounts/85469557-f613-423c-bfb7-b8cbe11659c0/transactions \-G \-H 'Authorization: Bearer up:demo:WTrYOSkfwvcJzZnV' \-d 'page[size]=1' \-d 'filter[status]=HELD' \-d 'filter[category]=good-life'
Sample Response
{"data": [{"type": "transactions","id": "c4417469-1a52-43b2-bf34-1a0a890cfef8","attributes": {"status": "HELD","rawText": "Spotify 0123456789","description": "Spotify","message": null,"isCategorizable": true,"holdInfo": {"amount": {"currencyCode": "AUD","value": "-11.95","valueInBaseUnits": -1195},"foreignAmount": null},"roundUp": null,"cashback": null,"amount": {"currencyCode": "AUD","value": "-11.95","valueInBaseUnits": -1195},"foreignAmount": null,"cardPurchaseMethod": null,"settledAt": null,"createdAt": "2024-11-18T09:43:06+11:00","transactionType": null,"note": null,"performingCustomer": {"displayName": "Bobby"},"deepLinkURL": "up://transaction/VHJhbnNhY3Rpb24tNjk="},"relationships": {"account": {"data": {"type": "accounts","id": "85469557-f613-423c-bfb7-b8cbe11659c0"},"links": {"related": "https://api.up.com.au/api/v1/accounts/85469557-f613-423c-bfb7-b8cbe11659c0"}},"transferAccount": {"data": null},"category": {"data": {"type": "categories","id": "tv-and-music"},"links": {"self": "https://api.up.com.au/api/v1/transactions/c4417469-1a52-43b2-bf34-1a0a890cfef8/relationships/category","related": "https://api.up.com.au/api/v1/categories/tv-and-music"}},"parentCategory": {"data": {"type": "categories","id": "good-life"},"links": {"related": "https://api.up.com.au/api/v1/categories/good-life"}},"tags": {"data": [],"links": {"self": "https://api.up.com.au/api/v1/transactions/c4417469-1a52-43b2-bf34-1a0a890cfef8/relationships/tags"}},"attachment": {"data": null}},"links": {"self": "https://api.up.com.au/api/v1/transactions/c4417469-1a52-43b2-bf34-1a0a890cfef8"}}],"links": {"prev": null,"next": null}}
Some endpoints exist not to expose data, but to test the API itself. Currently there is only one endpoint in this group: ping!
GET /util/ping
Make a basic ping request to the API. This is useful to verify that
authentication is functioning correctly. On authentication success an
HTTP 200
status is returned. On failure an HTTP 401
error response
is returned.
meta
object
id
string
The unique identifier of the authenticated customer.
statusEmoji
string
A cute emoji that represents the response status.
errors
Array [ErrorObject]
The list of errors returned in this response.
status
string
The HTTP status code associated with this error. This can also be obtained from the response headers. The status indicates the broad type of error according to HTTP semantics.
title
string
A short description of this error. This should be stable across multiple occurrences of this type of error and typically expands on the reason for the status code.
detail
string
A detailed description of this error. This should be considered unique to individual occurrences of an error and subject to change. It is useful for debugging purposes.
source
object
If applicable, location in the request that this error relates to. This may be a parameter in the query string, or a an attribute in the request body.
parameter
string
If this error relates to a query parameter, the name of the parameter.
pointer
string
If this error relates to an attribute in the request body, a rfc-6901 JSON pointer to the attribute.
Sample Request
curl https://api.up.com.au/api/v1/util/ping \-H 'Authorization: Bearer up:demo:Uczd6CoUPKmxDUkv'
Sample Response
{"meta": {"id": "dfd7c4f1-6685-4c44-852b-0a71109b6b6c","statusEmoji": "⚡️"}}
Sample Request
curl https://api.up.com.au/api/v1/util/ping
Sample Response
{"errors": [{"status": "401","title": "Not Authorized","detail": "The request was not authenticated because no valid credential was found in the Authorization header, or the Authorization header was not present."}]}
Webhooks provide a mechanism for a configured URL to receive events when transaction activity occurs on Up. You can think of webhooks as being like push notifications for your server-side application.
GET /webhooks
Retrieve a list of configured webhooks. The returned list is
paginated and can be scrolled by following the next
and prev
links where present. Results are ordered oldest first to
newest last.
page[size]
integer
The number of records to return in each page.
?page[size]=30
"+"
must be encoded as "%2B"
in order to be received as a plus-sign and not as a space character.data
Array [WebhookResource]
The list of webhooks returned in this response.
type
string
The type of this resource: webhooks
id
string
The unique identifier for this webhook.
attributes
object
url
string
The URL that this webhook is configured to POST
events to.
description
string
An optional description that was provided at the time the webhook was created.
secretKey
string
A shared secret key used to sign all webhook events sent to the configured webhook URL. This field is returned only once, upon the initial creation of the webhook. If lost, create a new webhook and delete this webhook.
The webhook URL receives a request with a
X-Up-Authenticity-Signature
header, which is the SHA-256 HMAC of
the entire raw request body signed using this secretKey
. It is
advised to compute and check this signature to verify the
authenticity of requests sent to the webhook URL. See
Handling webhook events for full
details.
createdAt
string (date-time)
The date-time at which this webhook was created.
relationships
object
logs
object
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
links
object
prev
string
The link to the previous page in the results. If this value is null
there is no previous page.
next
string
The link to the next page in the results. If this value is null
there is no next page.
Sample Request
curl https://api.up.com.au/api/v1/webhooks \-G \-H 'Authorization: Bearer up:demo:RYk2pxll27HzVQNI' \-d 'page[size]=1'
Sample Response
{"data": [{"type": "webhooks","id": "85f34d5b-7c22-4acb-8815-b99f268e951f","attributes": {"url": "http://example.com/webhook-1","description": "Webhook number 1","createdAt": "2024-11-19T13:52:07+11:00"},"relationships": {"logs": {"links": {"related": "https://api.up.com.au/api/v1/webhooks/85f34d5b-7c22-4acb-8815-b99f268e951f/logs"}}},"links": {"self": "https://api.up.com.au/api/v1/webhooks/85f34d5b-7c22-4acb-8815-b99f268e951f"}}],"links": {"prev": null,"next": "https://api.up.com.au/api/v1/webhooks?page%5Bafter%5D=WyIyMDI0LTExLTE5VDAyOjUyOjA3LjQyMzUyMTAwMFoiLCI4NWYzNGQ1Yi03YzIyLTRhY2ItODgxNS1iOTlmMjY4ZTk1MWYiXQ%3D%3D&page%5Bsize%5D=1"}}
POST /webhooks
Create a new webhook with a given URL. The URL will receive webhook
events as JSON-encoded POST
requests. The URL must respond with a HTTP
200
status on success.
There is currently a limit of 10 webhooks at any given time. Once this limit is reached, existing webhooks will need to be deleted before new webhooks can be created.
Event delivery is retried with exponential backoff if the URL is
unreachable or it does not respond with a 200
status. The response
includes a secretKey
attribute, which is used to sign requests sent to
the webhook URL. It will not be returned from any other endpoints within
the Up API. If the secretKey
is lost, simply create a new webhook with
the same URL, capture its secretKey
and then delete the original
webhook. See Handling webhook events for
details on how to process webhook events.
It is probably a good idea to test the webhook by
sending it a PING
event after creating
it.
data
WebhookInputResource
The webhook resource to create.
attributes
object
url
string (uri)
The URL that this webhook should post events to. This must be a valid HTTP or HTTPS URL that does not exceed 300 characters in length.
description
string
An optional description for this webhook, up to 64 characters in length.
data
WebhookResource
The webhook that was created.
type
string
The type of this resource: webhooks
id
string
The unique identifier for this webhook.
attributes
object
url
string
The URL that this webhook is configured to POST
events to.
description
string
An optional description that was provided at the time the webhook was created.
secretKey
string
A shared secret key used to sign all webhook events sent to the configured webhook URL. This field is returned only once, upon the initial creation of the webhook. If lost, create a new webhook and delete this webhook.
The webhook URL receives a request with a
X-Up-Authenticity-Signature
header, which is the SHA-256 HMAC of
the entire raw request body signed using this secretKey
. It is
advised to compute and check this signature to verify the
authenticity of requests sent to the webhook URL. See
Handling webhook events for full
details.
createdAt
string (date-time)
The date-time at which this webhook was created.
relationships
object
logs
object
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
Sample Request
curl https://api.up.com.au/api/v1/webhooks \-XPOST \-H 'Authorization: Bearer up:demo:9HGIOFWOmWlg3LAH' \-H 'Content-Type: application/json' \--data-binary '{"data": {"attributes": {"url": "http://example.com/webhook","description": "Example webhook"}}}'
Sample Response
{"data": {"type": "webhooks","id": "a55a5da5-c45f-4425-beb4-3ab27cacb60c","attributes": {"url": "http://example.com/webhook","description": "Example webhook","secretKey": "l0sacNrzZ57XE8gfyK1ET9RdZmKoDyrSUdkZORfnk26Suw8KU6jbLeJTOZDYrAMU","createdAt": "2024-11-21T13:52:08+11:00"},"relationships": {"logs": {"links": {"related": "https://api.up.com.au/api/v1/webhooks/a55a5da5-c45f-4425-beb4-3ab27cacb60c/logs"}}},"links": {"self": "https://api.up.com.au/api/v1/webhooks/a55a5da5-c45f-4425-beb4-3ab27cacb60c"}}}
GET /webhooks/{id}
Retrieve a specific webhook by providing its unique identifier.
id
string
The unique identifier for the webhook.
dedd508c-bad6-4517-afe4-f65e44a92a32
data
WebhookResource
The webhook returned in this response.
type
string
The type of this resource: webhooks
id
string
The unique identifier for this webhook.
attributes
object
url
string
The URL that this webhook is configured to POST
events to.
description
string
An optional description that was provided at the time the webhook was created.
secretKey
string
A shared secret key used to sign all webhook events sent to the configured webhook URL. This field is returned only once, upon the initial creation of the webhook. If lost, create a new webhook and delete this webhook.
The webhook URL receives a request with a
X-Up-Authenticity-Signature
header, which is the SHA-256 HMAC of
the entire raw request body signed using this secretKey
. It is
advised to compute and check this signature to verify the
authenticity of requests sent to the webhook URL. See
Handling webhook events for full
details.
createdAt
string (date-time)
The date-time at which this webhook was created.
relationships
object
logs
object
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
links
object
self
string
The canonical link to this resource within the API.
Sample Request
curl https://api.up.com.au/api/v1/webhooks/e4d066c3-c94a-46e8-b552-6eb3096b9585 \-H 'Authorization: Bearer up:demo:OyiccFdPlUdDVJRH'
Sample Response
{"data": {"type": "webhooks","id": "e4d066c3-c94a-46e8-b552-6eb3096b9585","attributes": {"url": "http://example.com/webhook-2","description": "Webhook number 2","createdAt": "2024-11-20T13:52:10+11:00"},"relationships": {"logs": {"links": {"related": "https://api.up.com.au/api/v1/webhooks/e4d066c3-c94a-46e8-b552-6eb3096b9585/logs"}}},"links": {"self": "https://api.up.com.au/api/v1/webhooks/e4d066c3-c94a-46e8-b552-6eb3096b9585"}}}
DELETE /webhooks/{id}
Delete a specific webhook by providing its unique identifier. Once deleted, webhook events will no longer be sent to the configured URL.
id
string
The unique identifier for the webhook.
5ab60182-9d53-44b8-9e92-ec94be91ec20
Sample Request
curl https://api.up.com.au/api/v1/webhooks/393e4227-5b3a-4e62-b04d-b6047844e78a \-XDELETE \-H 'Authorization: Bearer up:demo:xja12GGVpD1nyraB'
POST /webhooks/{webhookId}/ping
Send a PING
event to a webhook by providing its unique identifier.
This is useful for testing and debugging purposes. The event is delivered
asynchronously and its data is returned in the response to this request.
webhookId
string
The unique identifier for the webhook.
a7a46a38-f593-411c-86ce-40e6baf492e5
data
WebhookEventResource
The webhook event data sent to the subscribed webhook.
type
string
The type of this resource: webhook-events
id
string
The unique identifier for this event. This will remain constant across delivery retries.
attributes
object
eventType
WebhookEventTypeEnum
The type of this event. This can be used to determine what action to take in response to the event.
createdAt
string (date-time)
The date-time at which this event was generated.
relationships
object
webhook
object
data
object
type
string
The type of this resource: webhooks
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
transaction
object
data
object
type
string
The type of this resource: transactions
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
Sample Request
curl https://api.up.com.au/api/v1/webhooks/fbefa6df-1acd-4a73-8534-a0fe7432b604/ping \-XPOST \-H 'Authorization: Bearer up:demo:O28KYMdMnA1H5TPV' \-H 'Content-Type: application/json' \--data-binary ''
Sample Response
{"data": {"type": "webhook-events","id": "8caf4b5f-7aef-4402-a27d-ff75e7c0a86e","attributes": {"eventType": "PING","createdAt": "2024-11-21T13:52:13+11:00"},"relationships": {"webhook": {"data": {"type": "webhooks","id": "fbefa6df-1acd-4a73-8534-a0fe7432b604"},"links": {"related": "https://api.up.com.au/api/v1/webhooks/fbefa6df-1acd-4a73-8534-a0fe7432b604"}}}}}
GET /webhooks/{webhookId}/logs
Retrieve a list of delivery logs for a webhook by providing its unique
identifier. This is useful for analysis and debugging purposes. The
returned list is paginated and can be scrolled by
following the next
and prev
links where present. Results are ordered
newest first to oldest last. Logs may be automatically purged after a
period of time.
webhookId
string
The unique identifier for the webhook.
80e7f510-e0b8-4808-8e9b-dde1c6c919c4
page[size]
integer
The number of records to return in each page.
?page[size]=30
"+"
must be encoded as "%2B"
in order to be received as a plus-sign and not as a space character.data
Array [WebhookDeliveryLogResource]
The list of delivery logs returned in this response.
type
string
The type of this resource: webhook-delivery-logs
id
string
The unique identifier for this log entry.
attributes
object
request
object
Information about the request that was sent to the webhook URL.
body
string
The payload that was sent in the request body.
response
object
Information about the response that was received from the webhook URL.
statusCode
integer
The HTTP status code received in the response.
body
string
The payload that was received in the response body.
deliveryStatus
WebhookDeliveryStatusEnum
The success or failure status of this delivery attempt.
createdAt
string (date-time)
The date-time at which this log entry was created.
relationships
object
webhookEvent
object
data
object
type
string
The type of this resource: webhook-events
id
string
The unique identifier of the resource within its type.
links
object
prev
string
The link to the previous page in the results. If this value is null
there is no previous page.
next
string
The link to the next page in the results. If this value is null
there is no next page.
Sample Request
curl https://api.up.com.au/api/v1/webhooks/a8720176-a77a-4bc2-9509-6b4129369cce/logs \-G \-H 'Authorization: Bearer up:demo:c8TMTxomEAyTNbQC' \-d 'page[size]=1'
Sample Response
{"data": [{"type": "webhook-delivery-logs","id": "bff07647-fc92-4e37-85f2-ca64aeb8199e","attributes": {"request": {"body": "{\"data\":{\"type\":\"webhook-events\",\"id\":\"50af3d23-a970-4ec2-8ba1-3fd590058cf0\",\"attributes\":{\"eventType\":\"TRANSACTION_CREATED\",\"createdAt\":\"2024-11-20T13:53:14+11:00\"},\"relationships\":{\"webhook\":{\"data\":{\"type\":\"webhooks\",\"id\":\"a8720176-a77a-4bc2-9509-6b4129369cce\"},\"links\":{\"related\":\"https://api.up.com.au/api/v1/webhooks/a8720176-a77a-4bc2-9509-6b4129369cce\"}},\"transaction\":{\"data\":{\"type\":\"transactions\",\"id\":\"8378e923-c284-490e-82c2-4a799abddee0\"},\"links\":{\"related\":\"https://api.up.com.au/api/v1/transactions/8378e923-c284-490e-82c2-4a799abddee0\"}}}}}"},"response": {"statusCode": 200,"body": "{\"ok\":true}"},"deliveryStatus": "DELIVERED","createdAt": "2024-11-20T13:53:14+11:00"},"relationships": {"webhookEvent": {"data": {"type": "webhook-events","id": "50af3d23-a970-4ec2-8ba1-3fd590058cf0"}}}}],"links": {"prev": null,"next": "https://api.up.com.au/api/v1/webhooks/a8720176-a77a-4bc2-9509-6b4129369cce/logs?page%5Bafter%5D=WyIyMDI0LTExLTIwVDAyOjUzOjE0LjYyOTgyMTAwMFoiLCJiZmYwNzY0Ny1mYzkyLTRlMzctODVmMi1jYTY0YWViODE5OWUiXQ%3D%3D&page%5Bsize%5D=1"}}
POST {webhookURL}
// webhook
Once you have created a webhook in the Up API, events are sent to the
webhook’s configured URL as JSON-encoded POST
requests. The webhook
URL must respond with a HTTP 200
status on success.
It is important that the URL responds in a timely manner. If the URL takes too long to respond (currently 30s), the request will be timed out. For this reason it is strongly advised to avoid any heavy processing before a response has been returned from the URL. A common solution to this problem is to use a message broker such as RabbitMQ to do the work asynchronously.
Event delivery is retried with exponential backoff in the case of any
non-200
response status, if the URL is unreachable, or if the request
is timed out.
Refer to the eventType
attribute in order to determine what course of
action to take when handling the event. The following event types are
currently sent:
PING
Manually triggered by calls to the webhook ping
endpoint. Used for
testing and debugging purposes.
TRANSACTION_CREATED
Triggered whenever a new transaction is created in Up. This event
includes a transaction
relationship that provides the unique
identifier for the transaction and a link to the transaction within the
Up API. This link should be used to retrieve the complete transaction
data.
TRANSACTION_SETTLED
Triggered whenever a transaction transitions from the HELD
status to
the SETTLED
status. This event includes a transaction
relationship
that provides the unique identifier for the transaction and a link to
the transaction within the Up API. This link should be used to retrieve
the complete transaction data.
Due to external factors in banking processes, on rare occasions this
event may not be triggered. Separate TRANSACTION_DELETED
and
TRANSACTION_CREATED
events will be received in its place.
TRANSACTION_DELETED
Triggered whenever a HELD
transaction is deleted from Up. This
generally occurs for example when a hotel deposit is returned. This
event includes a transaction
relationship that provides the unique
identifier for the transaction, however no link is provided to the
transaction within the Up API as it no longer exists.
Incoming webhook event requests include a X-Up-Authenticity-Signature
header, which can be used to verify that the event was sent by Up.
Verification of the signature requires knowledge of the shared
secretKey
that was returned upon creation of the webhook. This key is
known only to your application and to Up.
The verification process involves:
secretKey
.X-Up-Authenticity-Signature
header.If the computed SHA-256 HMAC signature matches the
X-Up-Authenticity-Signature
header, the request is valid.
A few language-specific examples follow.
Ruby:
This example uses the Ruby on Rails framework.
require 'openssl'
def handle_webhook_event
received_signature =
request.headers['X-Up-Authenticity-Signature']
signature = OpenSSL::HMAC.hexdigest(
'SHA256',
secret_key,
request.raw_post,
)
if Rack::Utils.secure_compare(received_signature, signature)
# Process webhook event
end
end
PHP:
This example uses the Laravel framework.
public function handleWebhookEvent(Request $request) {
$received_signature = $request->header(
'X-Up-Authenticity-Signature',
''
);
$raw_body = $request->getContent();
$signature = hash_hmac('sha256', $raw_body, $this->secretKey);
if (hash_equals($signature, $received_signature)) {
// Process webhook event
}
}
Go:
This example is in plain Go.
import (
"crypto/hmac"
"crypto/sha256"
"encoding/hex"
"io"
"net/http"
)
func handleWebhookEvent(w http.ResponseWriter, r *http.Request) {
receivedSignature, _ := hex.DecodeString(
r.Header.Get("X-Up-Authenticity-Signature"),
)
mac := hmac.New(sha256.New, secretKey)
io.Copy(mac, r.Body)
signature := mac.Sum(nil)
if hmac.Equal(signature, receivedSignature)
// Process webhook event
}
}
If the secretKey
for a webhook is lost, simply create a new webhook
with the same URL, capture the returned secretKey
and delete the
original webhook.
X-Up-Authenticity-Signature
string
The SHA-256 HMAC signature of the raw request body, signed using
the secretKey
of the webhook.
X-Up-Authenticity-Signature: 317c0a8ea81df3f53c1d2aef5dcbf60492d0df557197b2990e71daa4a0693364
data
WebhookEventResource
The webhook event data sent to the subscribed webhook.
type
string
The type of this resource: webhook-events
id
string
The unique identifier for this event. This will remain constant across delivery retries.
attributes
object
eventType
WebhookEventTypeEnum
The type of this event. This can be used to determine what action to take in response to the event.
createdAt
string (date-time)
The date-time at which this event was generated.
relationships
object
webhook
object
data
object
type
string
The type of this resource: webhooks
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
transaction
object
data
object
type
string
The type of this resource: transactions
id
string
The unique identifier of the resource within its type.
links
object
related
string
The link to retrieve the related resource(s) in this relationship.
Sample Payload
{"data": {"type": "webhook-events","id": "0931bafa-7020-49c8-8904-09010d27991f","attributes": {"eventType": "TRANSACTION_CREATED","createdAt": "2024-11-21T13:52:09+11:00"},"relationships": {"webhook": {"data": {"type": "webhooks","id": "6eff0f0a-9524-4ef3-a6fc-1a011744da7b"},"links": {"related": "https://api.up.com.au/api/v1/webhooks/6eff0f0a-9524-4ef3-a6fc-1a011744da7b"}},"transaction": {"data": {"type": "transactions","id": "c3faf1e6-9341-4987-9a7c-9aa4513a699a"},"links": {"related": "https://api.up.com.au/api/v1/transactions/c3faf1e6-9341-4987-9a7c-9aa4513a699a"}}}}}