Users
Authenticated creator profile, payout data, device tokens, and creator-level default compliance flags.
GET /api/user
Return the authenticated user's current profile.
- Auth required: Yes
- Roles: Authenticated creator
Success response example
json
{
"success": true,
"errors_message": null,
"data": {
"id": 7,
"type": "business",
"email": "creator@example.com",
"first_name": "Alyssa",
"last_name": "Creator",
"birth_date": "1998-05-12",
"stripe_url": null,
"fee": {
"percentage": 4
},
"bank_data": {
"iban": "LU150103994632856918",
"bic_swift": "UNCRIT2B912"
},
"address": "1 Main Street",
"is_verified": true,
"veriff_first_name": "Alyssa",
"veriff_last_name": "Creator",
"veriff_is_matched": true,
"is_adult_content": true,
"is_verif_age": false,
"is_epoch_enabled": true,
"currency_id": 1
}
}Returned fields
| Field | Type | Notes |
|---|---|---|
id | integer | User id. |
type | string | Legacy/internal account type. Do not build feature logic on this field alone. |
email | string | Creator email. |
first_name | string | Creator first name. |
last_name | string | Creator last name. |
birth_date | string | YYYY-MM-DD. |
stripe_url | string or null | Legacy / conditional onboarding link. |
fee | object | Current creator fee resource. |
iban | string or omitted | Convenience exposure when IBAN exists in bank data. |
bic_swift | string or omitted | Convenience exposure when BIC/SWIFT exists in bank data. |
bank_data | object or null | Current payout fields. |
address | string or null | Optional creator address. |
is_verified | boolean | Creator identity verification result. |
veriff_first_name | string or null | Verified first name snapshot. |
veriff_last_name | string or null | Verified last name snapshot. |
veriff_is_matched | boolean or null | Name-match status from verification flow. |
is_adult_content | boolean | Default AVS flag for new uploads. |
is_verif_age | boolean | Default buyer age-check requirement for new uploads. |
is_epoch_enabled | boolean | Current payment-provider enablement state. |
currency_id | integer | Creator currency id. |
PATCH /api/user/
Update user profile fields and payout fields.
- Auth required: Yes
- Roles: Authenticated creator
- Content type:
application/json
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
first_name | string | Yes | Max 255 chars. |
last_name | string | Yes | Max 255 chars. |
iban | string | No | Legacy convenience field. |
bic_swift | string | No | Legacy convenience field. |
bank_data | object | No | Flexible payout fields by currency. |
Success response example
json
{
"success": true,
"errors_message": null,
"data": {
"user": {
"id": 7,
"first_name": "Alyssa",
"last_name": "Creator",
"bank_data": {
"iban": "LU150103994632856918",
"bic_swift": "UNCRIT2B912"
}
}
}
}Important notes
- The route is parameterized as
/api/user/{user}. - Current controller does not add an explicit ownership/policy check here, so clients should only use it for the current authenticated creator.
- This endpoint does not update creator default AVS flags. Use
/api/user/profile/has-adultfor that.
PATCH /api/user/profile/has-adult
Update creator-level default compliance toggles for new uploads and optionally cascade them to existing products.
- Auth required: Yes
- Roles: Authenticated creator
- Content type:
application/json
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
is_adult_content | boolean | Yes | Default AVS flag. |
is_verif_age | boolean | Yes | Default age-check flag. |
is_update_products | boolean | No | If true, backend also updates existing products for enabled flags. |
Success response example
json
{
"success": true,
"errors_message": null,
"data": {
"id": 7,
"is_adult_content": true,
"is_verif_age": true
}
}Side effects
- updates user defaults immediately
- if
is_update_products=trueand a flag istrue, backend updates existing products for that flag as well
POST /api/user/fcm
Store an FCM token for push notifications.
- Auth required: Yes
- Roles: Authenticated creator
Request body
| Field | Type | Required |
|---|---|---|
token | string | Yes |
Success response example
json
{
"success": true,
"errors_message": null,
"data": "Token stored"
}DELETE /api/user/fcm
Delete an FCM token.
- Auth required: Yes
- Roles: Authenticated creator
Request body
| Field | Type | Required |
|---|---|---|
token | string | Yes |
Success response example
json
{
"success": true,
"errors_message": null,
"data": "Token removed"
}DELETE /api/user
Delete the authenticated creator account.
- Auth required: Yes
- Roles: Authenticated creator
Success response example
json
{
"success": true,
"errors_message": null,
"data": "Deleted"
}Side effects
- deletes all current auth tokens
- soft-deletes the user
- dispatches
UserDeleteJob
Payout fields by currency
Fangate stores payout fields in bank_data. Use the creator currency to know which keys matter.
| Currency pattern | Expected fields |
|---|---|
| EUR | iban, bic_swift |
| USD | account_number, routing_number |
| GBP | account_number, sort_code |
Do not assume every response contains every bank field. Use only the keys relevant to the current account.