This document provides details about the Bank App API endpoints, their parameters, and expected responses.
Creates a new user account and automatically creates a wallet for the user.
Endpoint: POST /register
Request Parameters:
{
"firstname": "string",
"lastname": "string",
"email": "string",
"password": "string",
"img": "string"
}
Response:
{
"createWallet": {
"number": "string",
"user_id": "integer",
"balance": 0,
"id": "integer"
},
"user": {
"user": {
"id": "integer",
"firstname": "string",
"lastname": "string",
"email": "string",
"img": "string"
},
"token": "string"
}
}
Authenticates a user and returns a token.
Endpoint: POST /login
Request Parameters:
{
"email": "string",
"password": "string"
}
Response:
{
"user": {
"id": "integer",
"firstname": "string",
"lastname": "string",
"email": "string",
"img": "string"
},
"token": "string"
}
Logs out the current user and invalidates their token.
Endpoint: POST /logout
Headers:
- Authorization: Bearer {token}
Response:
{
"message": "is logout"
}
Creates a new wallet for a user.
Endpoint: POST /wallet
Headers:
- Authorization: Bearer {token}
Request Parameters:
{
"user_id": "integer",
"balance": "number"
}
Response:
{
"number": "string",
"user_id": "integer",
"balance": "number",
"id": "integer"
}
Updates the balance of a wallet.
Endpoint: PUT /wallet/balance
Headers:
- Authorization: Bearer {token}
Request Parameters:
{
"id": "integer",
"balance": "number"
}
Response:
{
"message": "updated succ"
}
Deletes a wallet.
Endpoint: DELETE /wallet
Headers:
- Authorization: Bearer {token}
Request Parameters:
{
"delete_id": "integer"
}
Response:
{
"message": "deleted"
}
Creates a new transaction between two wallets.
Endpoint: POST /transaction
Headers:
- Authorization: Bearer {token}
Request Parameters:
{
"amount": "number",
"description": "string",
"receiver": "string" // email of the receiver
}
Response:
{
"transaction": {
"id": "integer",
"amount": "number",
"description": "string",
"date": "timestamp",
"receiver_id": "integer",
"sender_id": "integer",
"status": "active"
}
}
Error Responses:
- Insufficient funds:
{
"message": "Insufficient funds"
}
- Receiver not found:
{
"message": "not found"
}
- Wallet not found:
{
"message": "wallet not found"
}
Updates the status of a transaction.
Endpoint: PUT /transaction/status
Headers:
- Authorization: Bearer {token}
Request Parameters:
{
"id": "integer",
"status": "string"
}
Response:
{
"message": "status updated"
}
Deletes a transaction.
Endpoint: DELETE /transaction
Headers:
- Authorization: Bearer {token}
Request Parameters:
{
"delete_id": "integer"
}
Response:
{
"message": "deleted"
}
All endpoints perform validation and may return error messages in the following format:
{
"message": "error description"
}
- All API endpoints except for
/register
and/login
require authentication. - Authentication is handled via Bearer tokens that are returned after logging in.
- Include the token in the Authorization header for all authenticated requests.
- Transactions use database transactions to ensure data integrity.
- If any part of the transaction fails, all changes are rolled back to prevent inconsistencies.