Skip to main content
The DOSS API powers the DOSS User App — a React Native mobile payment application. All endpoints are prefixed with /v2/ and served over HTTPS.

Base URL

https://dossapp.com/api
All requests must be made to this base URL. The Axios client is configured with a 30-second timeout.

Authentication

Most endpoints require a Bearer token in the Authorization header. The token is returned after a successful login via POST /v2/new-login or after completing the registration flow via POST /v2/confirm_pin. The token is stored in AsyncStorage on the device under the key token and is automatically attached to every request by the Axios request interceptor.
curl https://dossapp.com/api/v2/profile \
  -H "Authorization: Bearer {token}" \
  -H "Accept: application/json"
All requests must include Accept: application/json. Requests without a valid token to protected endpoints will return an Unauthenticated. error message, which triggers an automatic logout on the client.

Error handling

When the API responds with { "message": "Unauthenticated." }, the client clears the stored token and redirects the user to the login screen. All other errors are returned as standard HTTP error responses.

Common request patterns

JSON body requests

For POST and PUT endpoints, send data as a JSON body with Content-Type: application/json.

Multipart file uploads

For endpoints that accept images or documents, send data as multipart/form-data. The file field name varies by endpoint (e.g., image for profile photos, front_image / back_image for identity documents).

Paginated responses

List endpoints support cursor-based pagination. Pass a page query parameter to fetch subsequent pages. Responses include a data array and pagination metadata.

Endpoint index

CategoryEndpointMethodDescription
Authentication/v2/email_send_otpPOSTSend OTP to email
/v2/email_verify_otpPOSTVerify email OTP
/v2/phone_send_otpPOSTSend OTP to phone
/v2/phone_verify_otpPOSTVerify phone OTP
/v2/set_pinPOSTSet 4-digit PIN
/v2/confirm_pinPOSTConfirm PIN and complete registration
/v2/new-loginPOSTLog in with phone and PIN
Profile/v2/profileGETFetch authenticated user profile
/v2/update_namePOSTUpdate first and last name
/v2/update_emailPOSTUpdate email address
/v2/update_phonePOSTUpdate phone number
/v2/update_imagePOSTUpload profile photo
Payments/v2/scan-linkPOSTResolve a scanned QR code
/v2/confirm_payment_with_pinPOSTConfirm a payment with PIN
/v2/payment-request-actionPOSTApprove or reject a payment request
Transactions/v2/transaction_historyGETPaginated transaction list
/v2/doss_dashboardGETDashboard summary with balance and recent transactions
Notifications/v2/doss_notificationGETFetch app notifications
/v2/readdoss_notification/:idGETMark a notification as read
/v2/doss_alert_notificationGETFetch government alert notifications
/v2/readdoss_alert_notification/:idGETMark an alert notification as read
Identity/v2/id_proofGETGet identity verification status
/v2/passport_imagePOSTUpload passport images
/v2/driving_license_imagePOSTUpload driving licence images
Groups/v2/doss_groupsGETList groups
/v2/join_groupPOSTJoin a group by code
/v2/leave_group/:idGETLeave a group
Merchants/v2/merchant_listGETPaginated list of merchant locations

Build docs developers (and LLMs) love