> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chipipay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Transaction List

> Get paginated transaction history for a wallet

<RequestExample url="https://api.chipipay.com/v1/transactions/transaction-list" method="GET">
  ```bash cURL theme={null}
  curl -X GET "https://api.chipipay.com/v1/transactions/transaction-list?walletAddress=0x049d365...&page=1&limit=10" \
    -H "Authorization: Bearer sk_prod_xxxx" \
    -H "x-api-key: pk_xxxx"
  ```

  ```typescript TypeScript theme={null}
  const params = new URLSearchParams({
    walletAddress: "0x049d365...",
    page: "1",
    limit: "10"
  });

  const response = await fetch(
    `https://api.chipipay.com/v1/transactions/transaction-list?${params}`,
    {
      headers: {
        "Authorization": "Bearer sk_prod_xxxx",
        "x-api-key": "pk_xxxx",
      }
    }
  );

  const { data, total, totalPages } = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.chipipay.com/v1/transactions/transaction-list",
      params={
          "walletAddress": "0x049d365...",
          "page": 1,
          "limit": 10
      },
      headers={
          "Authorization": "Bearer sk_prod_xxxx",
          "x-api-key": "pk_xxxx",
      }
  )

  result = response.json()
  transactions = result["data"]
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Response theme={null}
  {
    "data": [
      {
        "id": "tx_abc123",
        "type": "SEND",
        "chain": "STARKNET",
        "transactionHash": "0x1234567890abcdef...",
        "senderAddress": "0x049d365...",
        "destinationAddress": "0x0abcdef...",
        "token": "USDC",
        "tokenAddress": "0x033068F6539f8e6e6b131e6B2B814e6c34A5224bC66947c47DaB9dFeE93b35fb",
        "amount": "10500000",
        "status": "SUCCESS",
        "createdAt": "2025-03-15T10:30:00Z",
        "confirmedAt": "2025-03-15T10:31:00Z",
        "updatedAt": "2025-03-15T10:31:00Z",
        "apiPublicKey": "pk_xxxx"
      }
    ],
    "total": 42,
    "page": 1,
    "limit": 10,
    "totalPages": 5
  }
  ```
</ResponseExample>

## Date Filtering

You can filter transactions by date using `day`, `month`, and `year` parameters:

```bash theme={null}
# Get all transactions from March 2025
curl "https://api.chipipay.com/v1/transactions/transaction-list?walletAddress=0x...&month=3&year=2025"

# Get transactions from March 15, 2025
curl "https://api.chipipay.com/v1/transactions/transaction-list?walletAddress=0x...&day=15&month=3&year=2025"
```

## Function Filtering

Filter by contract function name to see specific types of transactions:

```bash theme={null}
# Only transfer transactions
curl "...&calledFunction=transfer"

# Only approve transactions
curl "...&calledFunction=approve"
```


## OpenAPI

````yaml GET /transactions/transaction-list
openapi: 3.1.0
info:
  title: Chipi Pay API
  description: >-
    REST API for creating self-custodial wallets, executing gasless
    transactions, and purchasing services on Starknet.
  version: 14.0.0
  license:
    name: MIT
servers:
  - url: https://api.chipipay.com/v1
security:
  - bearerAuth: []
    apiKeyAuth: []
tags:
  - name: Wallets
    description: Create and manage self-custodial Starknet wallets
  - name: Transactions
    description: Record and query blockchain transactions
  - name: SKUs
    description: Browse available services for purchase
  - name: SKU Purchases
    description: Purchase services using blockchain payments
  - name: Exchanges
    description: Currency conversion rates
paths:
  /transactions/transaction-list:
    get:
      tags:
        - Transactions
      summary: Get Transaction List
      description: >-
        Get paginated transaction history for a wallet. Can be filtered by date
        and function name.
      operationId: getTransactionList
      parameters:
        - name: walletAddress
          in: query
          required: true
          description: The wallet address to get transactions for
          schema:
            type: string
        - name: page
          in: query
          description: 'Page number (default: 1)'
          schema:
            type: integer
            default: 1
        - name: limit
          in: query
          description: 'Items per page (default: 10)'
          schema:
            type: integer
            default: 10
        - name: calledFunction
          in: query
          description: Filter by contract function name (e.g., "transfer", "approve")
          schema:
            type: string
        - name: day
          in: query
          description: Filter by day of month (1-31)
          schema:
            type: integer
            minimum: 1
            maximum: 31
        - name: month
          in: query
          description: Filter by month (1-12)
          schema:
            type: integer
            minimum: 1
            maximum: 12
        - name: year
          in: query
          description: Filter by year (e.g., 2025)
          schema:
            type: integer
      responses:
        '200':
          description: Paginated transaction list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTransactionResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    PaginatedTransactionResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Transaction'
        total:
          type: integer
          description: Total number of matching transactions
        page:
          type: integer
          description: Current page number
        limit:
          type: integer
          description: Items per page
        totalPages:
          type: integer
          description: Total number of pages
      required:
        - data
        - total
        - page
        - limit
        - totalPages
    Transaction:
      type: object
      properties:
        id:
          type: string
          description: Unique transaction identifier
        type:
          type: string
          description: Transaction type
        subType:
          type: string
          description: Transaction sub-type
        chain:
          $ref: '#/components/schemas/Chain'
        transactionHash:
          type: string
          description: On-chain transaction hash
        senderAddress:
          type: string
          description: The sender's wallet address
        destinationAddress:
          type: string
          description: The recipient's wallet address
        contractAddress:
          type: string
          description: The contract that was called
        contractName:
          type: string
        functionName:
          type: string
          description: The contract function that was called
        functionSelector:
          type: string
        token:
          $ref: '#/components/schemas/ChainToken'
        tokenAddress:
          type: string
          description: The token's contract address
        amount:
          type: string
          description: Transfer amount (raw, divide by 10^decimals)
        skuId:
          type: string
          description: SKU ID if this is a service purchase
        skuReference:
          type: string
          description: Reference provided for the SKU purchase
        skuPurchaseAmount:
          type: number
          description: Purchase amount in local currency
        skuPurchaseCurrency:
          $ref: '#/components/schemas/Currency'
        skuFileNumber:
          type: string
          description: File number from the service provider
        status:
          $ref: '#/components/schemas/TxStatus'
        createdAt:
          type: string
          format: date-time
        confirmedAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        apiPublicKey:
          type: string
          description: The API key that created this transaction
        chipiWalletId:
          type: string
          description: Internal wallet ID of the sender
        destinationChipiWalletId:
          type: string
          description: Internal wallet ID of the recipient (if also a Chipi wallet)
      required:
        - id
        - chain
        - transactionHash
        - senderAddress
        - destinationAddress
        - status
        - createdAt
        - updatedAt
        - apiPublicKey
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
      required:
        - error
        - message
    Chain:
      type: string
      enum:
        - STARKNET
        - BASE
        - ARBITRUM
        - OPTIMISM
        - ROOTSTOCK
        - SCROLL
        - WORLDCHAIN
      description: Blockchain network identifier
    ChainToken:
      type: string
      enum:
        - USDC
        - USDC_E
        - USDT
        - DAI
        - ETH
        - STRK
        - SLINK
        - ALF
        - BROTHER
        - ARB
        - DOC
        - MXNB
        - WLD
        - WBTC
        - OTHER
      description: Token identifier
    Currency:
      type: string
      enum:
        - MXN
        - USD
      description: Fiat currency code
    TxStatus:
      type: string
      enum:
        - PENDING
        - PROCESSING
        - SUCCESS
        - FAILED
        - CANCELLED
      description: Transaction lifecycle status
  responses:
    Unauthorized:
      description: Unauthorized — invalid or missing API key / bearer token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Rate limit exceeded (100 requests/minute per API key)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Bearer token — use your secret key (sk_prod_xxx) for server-side calls,
        or the user's JWT for client-side calls
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Chipi public API key (pk_xxx)

````