Auto-registered (optional) proxy endpoints provided by the laravel-xpresswallet package when XPRESSWALLET_ROUTES_ENABLED=true
.
auth:sanctum
) via XPRESSWALLET_ROUTES_MIDDLEWARE
. These endpoints move funds and manage sensitive resources.All routes are grouped under the configurable prefix (default /xpresswallet
) and named with the xpresswallet.
namespace. Errors surface as JSON with Laravel's standard validation format (422
), or downstream API errors (mapped exceptions) standardised by the package.
Successful responses simply proxy the upstream API JSON body (with minimal wrapping).
Method | Path | Name | Description | Validation |
---|---|---|---|---|
GET | /customers | xpresswallet.customers.index | List customers (supports query params like page ) | - |
POST | /customers | xpresswallet.customers.store | Create customer | first_name,last_name,email,phone required; see form request |
GET | /customers/{id} | xpresswallet.customers.show | Retrieve customer by ID | - |
GET | /customers/phone/{phone} | xpresswallet.customers.find-by-phone | Find by phone | - |
PUT | /customers/{id} | xpresswallet.customers.update | Update customer | At least one mutable field |
{ "first_name": "Ada", "last_name": "Lovelace", "email": "ada@example.test", "phone": "+2348012345678", "metadata": {"tier": "gold"} }
M | Path | Name | Description | Validation |
---|---|---|---|---|
GET | /wallets | wallets.index | List wallets | - |
GET | /wallets/customer/{customerId} | wallets.customer | Wallets for a customer | - |
POST | /wallets | wallets.store | Create wallet | customer_id|customer_identifier,currency,type |
POST | /wallets/{id}/credit | wallets.credit | Credit wallet | amount required |
POST | /wallets/{id}/debit | wallets.debit | Debit wallet | amount required |
POST | /wallets/{id}/freeze | wallets.freeze | Freeze wallet | - |
POST | /wallets/{id}/unfreeze | wallets.unfreeze | Unfreeze wallet | - |
POST | /wallets/batch/credit | wallets.batch.credit | Batch credit | array of credits |
POST | /wallets/batch/debit | wallets.batch.debit | Batch debit | array of debits |
POST | /wallets/customer/batch/credit | wallets.customer.batch.credit | Batch credit via customer IDs | array of entries |
POST | /wallets/fund-sandbox | wallets.fund-sandbox | Fund sandbox merchant wallet | amount |
M | Path | Name | Description |
---|---|---|---|
GET | /transactions | transactions.merchant | List merchant transactions (query filters) |
GET | /transactions/{reference} | transactions.show | Transaction details |
M | Path | Name | Description | Validation |
---|---|---|---|---|
GET | /transfers/banks | transfers.banks | List supported banks | - |
GET | /transfers/account-details | transfers.account-details | Resolve account details | bank_code,account_number query |
POST | /transfers/bank | transfers.bank | Single bank transfer | bank_code, account_number, amount, currency |
POST | /transfers/bank/customer | transfers.bank.customer | Customer bank transfer | customer_id + bank transfer fields |
POST | /transfers/bank/batch | transfers.bank.batch | Batch bank transfers | transfers[] array |
POST | /transfers/wallet | transfers.wallet | Wallet to wallet transfer | source_wallet_id,destination_wallet_id,amount |
M | Path | Name | Description | Validation |
---|---|---|---|---|
GET | /cards | cards.index | List cards | - |
POST | /cards/setup | cards.setup | Initiate card setup | customer_id,type,currency |
POST | /cards/activate | cards.activate | Activate card | card_id,code |
GET | /cards/{cardId}/balance | cards.balance | Card balance | - |
POST | /cards/fund | cards.fund | Fund card | card_id,amount,currency |
M | Path | Name | Description |
---|---|---|---|
POST | /merchant/password/request-change | merchant.password.request-change | Request password reset code |
POST | /merchant/password/change | merchant.password.change | Change password using reset code |
POST | /merchant/verify | merchant.verify | Verify merchant |
POST | /merchant/resend-verification | merchant.resend-verification | Resend verification code |
POST | /merchant/resend-activation | merchant.resend-activation | Resend activation code |
POST | /merchant/complete-registration | merchant.complete-registration | Complete registration |
GET | /merchant/profile | merchant.profile | Merchant profile |
GET | /merchant/access-keys | merchant.access-keys | List access keys |
POST | /merchant/access-keys/generate | merchant.access-keys.generate | Generate new access keys |
GET | /merchant/account-mode | merchant.account-mode | Current account mode |
POST | /merchant/account-mode/switch | merchant.account-mode.switch | Switch account mode |
GET | /merchant/summary | merchant.summary | Summary metrics |
GET | /merchant/wallet | merchant.wallet | Merchant wallet info |
M | Path | Name | Description |
---|---|---|---|
GET | /team/invitations | team.invitations | List invitations |
POST | /team/invitations | team.invitations.invite | Invite member |
POST | /team/invitations/resend | team.invitations.resend | Resend invitation |
POST | /team/invitations/accept | team.invitations.accept | Accept invitation |
GET | /team/members | team.members | List members |
GET | /team/merchants | team.merchants | List accessible merchants |
POST | /team/merchants/switch | team.merchants.switch | Switch active merchant |
GET | /team/permissions | team.permissions | List permissions |
GET | /team/roles | team.roles | List roles |
This table summarises required fields; see source src/Http/Requests/*
for complete rules (including lengths, enums).
Form Request | Required | Notes |
---|---|---|
CustomerCreateRequest | first_name,last_name,email,phone | country optional ISO2 |
CustomerUpdateRequest | (any subset) | "sometimes" semantics |
WalletCreateRequest | customer_id|customer_identifier,currency,type | mutually exclusive id fields |
WalletAdjustRequest | amount | credit/debit operations |
TransferBankRequest | bank_code,account_number,amount,currency | |
TransferBankCustomerRequest | customer_id + bank transfer fields | |
TransferBankBatchRequest | transfers[] | 1..100 entries |
TransferWalletRequest | source_wallet_id,destination_wallet_id,amount,currency | dest != source |
CardSetupRequest | customer_id,type,currency | |
CardFundRequest | card_id,amount,currency | |
MerchantCompleteRegistrationRequest | business_name,business_email,business_phone,country,contact_first_name,contact_last_name,contact_email,contact_phone | docs[] optional |
MerchantChangePasswordRequest | reset_code,password,password_confirmation | min length 8 |
TeamInviteRequest | email,role | |
TeamResendInvitationRequest | invitation_id | |
TeamAcceptInvitationRequest | invitation_id,code |
{ message: "The given data was invalid.", errors: { field: ["..."] } }
RateLimitException
.Guide generated for package version 0.3.0
.