import axios, { AxiosError } from 'axios' export interface MiniappCreatePaymentPayload { initData: string method: string amountKopeks?: number | null option?: string | null } export interface MiniappCreatePaymentResponse { payment_url: string amount_kopeks?: number extra?: Record } export const miniappApi = { // Create payment inside Telegram Mini App (same flow as miniapp/index.html) createPayment: async ( payload: MiniappCreatePaymentPayload ): Promise => { try { const response = await axios.post( '/miniapp/payments/create', { initData: payload.initData || '', method: payload.method, amountKopeks: payload.amountKopeks ?? null, option: payload.option ?? null, }, { headers: { 'Content-Type': 'application/json' }, } ) return response.data } catch (error) { const axiosError = error as AxiosError<{ detail?: string; message?: string }> const message = axiosError.response?.data?.detail || axiosError.response?.data?.message || 'Failed to create payment' throw new Error(message) } }, }