---
tags: [vompay, action]
module: VomPay
---

# [Action]Actions

## Connections
[[_VomPay]] · [[[Service]SupplierServices]] · [[[Service]InvoiceServices]] · [[[Service]MyFatoorahAPIServices]] · [[[Repo]Repositories]]

## Source
`Modules/VomPay/Actions/`

Single-responsibility invokable classes that bridge services ↔ MyFatoorah API. Each returns `['status' => true/false, 'data' => ...]`.

---

## Invoices/GeneratingPaymentLinkAction

**Dependencies:** `CustomersRepository` · `MyFatoorahInvoiceAPIService` · `VomPaySupplierRepository`

`__invoke($subdomain, $paiableType, $paiableId, $amount, $customerId)`
1. `initInvoiceData()` — builds MyFatoorah invoice payload:
   - customer name + email + mobile
   - supplier code (MyFatoorah ID)
   - callback URLs (success + error)
   - currency, language, amount
   - notification option (`VomPayInvoiceNotificationTypesEnum`: EMAIL / MOBILE / ALL_OPTIONS / LINK_ONLY based on customer data)
   - uses `libphonenumber` to resolve country code from mobile
2. Calls `MyFatoorahInvoiceAPIService.generatePaymentLink()`
3. Logs result to `vom_pay` log channel
4. Returns `status + data` or error response

---

## Suppliers/CreatingMyFatoorahSupplierAction

**Dependency:** `MyFatoorahSupplierAPIService`

`__invoke(CreatingVomPaySupplierRequestEntity)`
- Maps request entity → MyFatoorah supplier API format
- Calls `createSupplier()` API
- On error: `customizeValidationErrrorResponse()` parses JSON field errors from API response
- Returns `supplier_id` on success

---

## Suppliers/SetMyFatoorahCommissionsAction

**Dependency:** `MyFatoorahSupplierAPIService`

`__invoke($supplierId, $commissions)`
- Wraps supplier code + commissions array
- Calls `setCommissions()` API
- Logs full API result
- Returns `supplier_id` or parsed field errors

---

## Suppliers/UploadingSupplierDocumentAction

**Dependencies:** `MyFatoorahSupplierAPIService` · `VomPaySupplierRepository`

`__invoke(UploadingVomPayDocumentRequestEntity)`
- `initDocumentData()` — builds payload: file name, MIME type, base64-encoded buffer, file type, supplier code
- Calls `uploadSupplierDocument()` API
- Returns status or errors

---

## Suppliers/UpdateMyFatoorahCommissionsAction

⚠️ Incomplete — contains `dd()` debug calls.  
**Dependency:** `MyFatoorahSupplierAPIService`  
Intended to call `updateCommissions()` API with new commission data.
