Accounts
Track wallets, bank accounts, cards, investments, crypto, loans, and other balance containers. Use upsert when your integration owns stable external IDs.
`POST` and `PATCH` requests require an Idempotency-Key header. Responses return
an X-Request-Id header plus X-RateLimit-* headers, and errors follow
application/problem+json.
/v1/accounts List accounts
Example
curl -X GET "https://api.duitmyself.app/v1/accounts" \
-H "Authorization: Bearer key_..." \ Response schema · AccountListResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Account"
}
},
"nextCursor": {
"type": [
"string",
"null"
]
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"data",
"nextCursor",
"hasMore"
]
} /v1/accounts Create an account
Example
curl -X POST "https://api.duitmyself.app/v1/accounts" \
-H "Authorization: Bearer key_..." \
-H "Idempotency-Key: demo-post" \
-H "Content-Type: application/json" \
-d '"AccountCreate"' Request schema · AccountCreate
{
"$ref": "#/definitions/AccountCreate",
"definitions": {
"AccountCreate": {
"type": "object",
"properties": {
"externalId": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"physical",
"bank",
"ewallet",
"card",
"investment",
"crypto",
"loan",
"other"
]
},
"subtype": {
"type": "string"
},
"providerSlug": {
"type": "string"
},
"secondaryProviderSlug": {
"type": "string"
},
"balance": {
"type": "number"
},
"currency": {
"type": "string"
},
"color": {
"type": "string"
},
"icon": {
"type": "string"
},
"linkedAccountId": {
"type": "string"
},
"isLiability": {
"type": "boolean"
},
"notes": {
"type": "string"
},
"sortOrder": {
"type": "number"
},
"accountNumber": {
"type": "string"
},
"customFields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"isFavourite": {
"type": "boolean"
},
"showInDashboard": {
"type": "boolean"
},
"isHidden": {
"type": "boolean"
}
},
"required": [
"name",
"type",
"balance",
"currency"
],
"additionalProperties": false
}
}
} Response schema · AccountResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Account"
}
},
"required": [
"data"
]
} /v1/accounts/{accountId} Get an account
Parameters
-
accountIdinpath
Example
curl -X GET "https://api.duitmyself.app/v1/accounts/{accountId}" \
-H "Authorization: Bearer key_..." \ Response schema · AccountResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Account"
}
},
"required": [
"data"
]
} /v1/accounts/{accountId} Update an account
Parameters
-
accountIdinpath
Example
curl -X PATCH "https://api.duitmyself.app/v1/accounts/{accountId}" \
-H "Authorization: Bearer key_..." \
-H "Idempotency-Key: demo-patch" \
-H "Content-Type: application/json" \
-d '"AccountUpdate"' Request schema · AccountUpdate
{
"$ref": "#/definitions/AccountUpdate",
"definitions": {
"AccountUpdate": {
"type": "object",
"properties": {
"externalId": {
"type": "string",
"nullable": true
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"physical",
"bank",
"ewallet",
"card",
"investment",
"crypto",
"loan",
"other"
]
},
"subtype": {
"type": "string"
},
"providerSlug": {
"type": "string"
},
"secondaryProviderSlug": {
"type": "string"
},
"balance": {
"type": "number"
},
"currency": {
"type": "string"
},
"color": {
"type": "string"
},
"icon": {
"type": "string"
},
"linkedAccountId": {
"type": "string"
},
"isLiability": {
"type": "boolean"
},
"notes": {
"type": "string"
},
"sortOrder": {
"type": "number"
},
"accountNumber": {
"type": "string"
},
"customFields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"isFavourite": {
"type": "boolean"
},
"showInDashboard": {
"type": "boolean"
},
"isHidden": {
"type": "boolean"
}
},
"additionalProperties": false
}
}
} Response schema · AccountResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Account"
}
},
"required": [
"data"
]
} /v1/accounts/{accountId} Archive an account
Parameters
-
accountIdinpath
Example
curl -X DELETE "https://api.duitmyself.app/v1/accounts/{accountId}" \
-H "Authorization: Bearer key_..." \ /v1/accounts/upsert Create or update an account by external ID
Example
curl -X POST "https://api.duitmyself.app/v1/accounts/upsert" \
-H "Authorization: Bearer key_..." \
-H "Idempotency-Key: demo-post" \
-H "Content-Type: application/json" \
-d '"AccountUpsert"' Request schema · AccountUpsert
{
"$ref": "#/definitions/AccountUpsert",
"definitions": {
"AccountUpsert": {
"type": "object",
"properties": {
"externalId": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"physical",
"bank",
"ewallet",
"card",
"investment",
"crypto",
"loan",
"other"
]
},
"subtype": {
"type": "string"
},
"providerSlug": {
"type": "string"
},
"secondaryProviderSlug": {
"type": "string"
},
"balance": {
"type": "number"
},
"currency": {
"type": "string"
},
"color": {
"type": "string"
},
"icon": {
"type": "string"
},
"linkedAccountId": {
"type": "string"
},
"isLiability": {
"type": "boolean"
},
"notes": {
"type": "string"
},
"sortOrder": {
"type": "number"
},
"accountNumber": {
"type": "string"
},
"customFields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"isFavourite": {
"type": "boolean"
},
"showInDashboard": {
"type": "boolean"
},
"isHidden": {
"type": "boolean"
}
},
"required": [
"externalId",
"name",
"type",
"balance",
"currency"
],
"additionalProperties": false
}
}
} Response schema · AccountUpsertResponse
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"created",
"updated"
]
},
"data": {
"$ref": "#/components/schemas/Account"
}
},
"required": [
"operation",
"data"
]
}