curl -XGET "https://api-staging-proxy.gamepal.gg/v2/payment/transactions?usecases=DONATION&perspective=FROM_SELLER"
curl -XPOST "https://api-staging-proxy.gamepal.gg/v2/payment/transactions" -H "Authorization: Bearer {token}" -H "Content-Type: application/json" -d '{
"usecase": "TOPUP",
"usecase_data": {
"payment_src": "PAYPAL",
"payment_src_data": null,
"payment_dest": "WALLET_GANK_GOLD",
"payment_dest_data": null,
"topup_package_id": "fdae681e-5048-43e6-a1de-3db28b8b35b3",
"currency_as_charged": "SGD"
}
}'
Usecases:
DIGITAL_GOODS
DONATION
MERCHANDISE
MERCHANDISE_COMPLETE
MERCHANDISE_REFUND
PAY_PER_VIEW
SERVICE
SERVICE_COMPLETE
SERVICE_REFUND
TOPUP
USER_MEMBERSHIP
USER_TIER
WITHDRAWAL
WITHDRAWAL_UPDATE
Source
STRIPE
STRIPE_PROMPTPAY
STRIPE_PAYNOW
STRIPE_GRABPAY
STRIPE_WECHAT_PAY
PAYPAL
SENANGPAY
DRAGONPAY_GCASH
IPAYMU
XENDIT
WALLET_GANK_GOLD
pub enum SrcInput {
Stripe { payment_method_id: String },
StripePromptpay,
StripePaynow,
StripeGrabpay { payment_method_id: String },
StripeWechatPay { payment_method_id: String },
Paypal,
Senangpay,
DragonpayGcash,
Ipaymu, → can ignore
Xendit,
}
Destination
WALLET_GANK_GOLD
WALLET_GANK_EARNING
WITHDRAWAL
INTERNAL
Request Body:
DigitalGoods {
"currency_as_charged": "...",
"catalog_id": "...",
"user_email": "..."
}
Donation {
"price_unit": "...",
"price_unit_currency": "...",
"currency_as_charged": "...",
"creator_user_id": "...",
"creator_donation_goal_id": "...",
"donator_user_email": "...",
"donator_user_nickname": "...",
"donator_message": "..."
}
Merchandise {
"currency_as_charged": "...",
"order_id": "...",
"catalog_id": "...",
"merchandise_count": "..."
}
MerchandiseComplete {
"order_id": "..."
}
MerchandiseRefund {
"order_id": "..."
}
PayPerView {
"currency_as_charged": "...",
"post_id": "...",
"user_email": "..."
}
Service {
"currency_as_charged": "...",
"order_id": "...",
"catalog_id": "...",
"session_count": "..."
}
ServiceComplete {
"order_id": "..."
}
ServiceRefund {
"order_id": "..."
}
Topup {
"topup_package_id": "...",
"currency_as_charged": "..."
}
UserMembership {
"currency_as_charged": "...",
"membership_detail_id": "..."
}
UserTier {
"currency_as_charged": "...",
"tier": "...",
"interval_month_count": "..."
}
Withdrawal {
"payment_dest": "...",
"payment_dest_data": "...",
"amount_usd": "..."
}
WithdrawalUpdate {
"legacy_tx_id": "...",
"status": "..."
}
Currency
pub enum Currency {
#[serde(alias = "usd")]
Usd,
#[serde(alias = "sgd")]
Sgd,
#[serde(alias = "idr")]
Idr,
#[serde(alias = "myr")]
Myr,
#[serde(alias = "thb")]
Thb,
#[serde(alias = "php")]
Php,
#[serde(alias = "vnd")]
Vnd,
#[serde(alias = "gank_gold")]
GankGold,
}
Params:
pub struct ListTransactionInput {
pub page: Option<u64>,
pub per_page: Option<u64>,
pub perspective: Option<Perspective>,
pub usecases: Option<String>,
/// Should only be available on admin authorization
pub search_user_id: Option<UserId>,
/// For orders list: we'll want to include/exclude transactions with
/// the specified order IDs, used for filtering the result
pub with_order_ids: Option<String>,
/// For orders list: because of how digital goods work, it should only shows for
/// "completed" orders since it won't have any other order status.
///
/// This basically will simply append digital goods to the response
pub with_completed_orders: Option<bool>,
}