Customer / Transactions
Document metadata
Category
Customer
Endpoint
GET https://valora.spotahome.com/api/v1/c/transactions
Sandbox
GET https://valora-testing.laravel.cloud/api/sandbox/v1/c/transactions
Authentication
Bearer token (long-lived API token, auth:api guard)
Token class
customer
Pagination
Supported
Filters
Supported
Version
1
Stability
stable
Deprecated
No
Last updated
2026-05-03

Transactions

List completed transactions for the authenticated customer account.

Shared conventions and base URLs live in Customer API Documentation.

API hosts: Production https://valora.spotahome.com/ (sandbox compatible); Staging / testing https://valora-testing.laravel.cloud/ (sandbox compatible).

Endpoint (production): GET https://valora.spotahome.com/api/v1/c/transactions Endpoint (sandbox): GET https://valora-testing.laravel.cloud/api/sandbox/v1/c/transactions


Authentication

Requirement Details
Type Bearer token (long-lived API token, auth:api guard)
How to obtain a token See Long-Lived API Token Authentication
Header Authorization: Bearer {token}
Accept Accept: application/json
Token class Customer only. Non-customer users receive HTTP 403 with message Access denied. This resource is restricted to customers. from CheckCustomerApi middleware.
Rate limit 120 requests per minute per authenticated customer.

Connection test

GET https://valora.spotahome.com/api/v1/c/transactions?test=connection
Authorization: Bearer {token}
Accept: application/json

Response: 200 OK

{
  "message": "You are connected!",
  "accepted_params": {
    "test": "Set to \"connection\" to test API connection",
    "search": "string, optional (beneficiary, type or bank account last 4 digits)",
    "pay_date_from": "date (YYYY-MM-DD), optional",
    "pay_date_to": "date (YYYY-MM-DD), optional",
    "amount_from": "decimal, optional (e.g., 100.50)",
    "amount_to": "decimal, optional (e.g., 500.00)",
    "booking_id": "string, optional (exact booking reference)",
    "page": "integer, optional (page number, default = 1)",
    "per_page": "integer, optional (items per page, default = 100, max = 500)"
  }
}

Query parameters

Parameter Type Required Description
test string No Set to connection to perform a connection test.
search string No Search in beneficiary, bank_account, type.
pay_date_from date (YYYY-MM-DD) No Include transactions issued on or after this date.
pay_date_to date (YYYY-MM-DD) No Include transactions issued on or before this date.
amount_from number No Minimum amount in major units (e.g. 100.50). Stored internally in minor units (cents).
amount_to number No Maximum amount in major units.
booking_id string No Exact booking reference.
page integer No Page number. Default: 1.
per_page integer No Items per page. Default: 100, max: 500.

Success response

Status: 200 OK

{
  "message": "Transactions retrieved successfully.",
  "pagination": {
    "total": 123,
    "per_page": 100,
    "current_page": 1,
    "last_page": 2,
    "from": 1,
    "to": 100
  },
  "data": [
    {
      "booking_id": "BK123456",
      "beneficiary": "John Smith",
      "type": "Transfer",
      "action": "paid",
      "bank_account": "ES9121000418450200051332",
      "amount": 100000,
      "issued_on": "2025-10-01",
      "currency": "EUR"
    }
  ]
}

Transaction object

Field Type Description
booking_id string Booking reference.
beneficiary string Recipient name.
type string Transaction type.
action string Action performed.
bank_account string Destination bank account / IBAN.
amount integer Amount in minor units (cents).
issued_on date Payment date.
currency string Currency code.

No results response

Status: 404 Not Found

Example response

{
  "message": "No transactions found for the given filters.",
  "pagination": {
    "total": 0,
    "per_page": 100,
    "current_page": 1,
    "last_page": 1,
    "from": null,
    "to": null
  },
  "data": []
}

Response notes

  • pagination.total is 0 when no rows match the filters.
  • data is always an array.
  • The 404 response still includes pagination so clients can keep the same rendering path.

Errors

Status Meaning
404 Not Found No transactions matched the filters.
{
  "message": "No transactions found for the given filters.",
  "data": []
}

Notes

  • amount_from and amount_to accept major units; all amounts in the response are in minor units (cents).
  • Results are ordered by issued_on descending (most recent first).