Skip to content

Referensi Integrasi Eksternal

Semua integrasi dibungkus dalam helper di folder helpers/. Berikut ringkasan tiap integrasi, file helper, dan fungsi kunci.

Zimbra (SOAP Admin API)

Helper: helpers/zimbra.helper.js

Provisioning & manajemen relay account via SOAP (SMTP_URL). Di production, mirror ke instance Zimbra kedua (SMTP_URL_EXC / @excellent.co.id).

FungsiTujuan
loginZimbra(name, password, url)Auth admin → token
createAccountZimbra(token, {name, password})Buat relay account (status awal closed)
deleteAccountZimbra(token, {id})Hapus account
searchAccountZimbra(token, {name/id, justId})Cari by email/ID
getAccountRequest(token, params)Ambil atribut account
modifyAccountRequest(token, {id, attribute, value})Ubah atribut (mis. zimbraNotes)
zimbraAccountStatus(token, {id, status})Set status (active/closed) — suspend/reactivate
zimbraSetPassword(token, {id, password})Reset password relay

Dipakai oleh: checkout, aktivasi/suspend relay, enforcement kuota, callback Xendit, manajemen relay admin.

ZoneMTA (ZMTA)

Helper: helpers/zone-mta.helper.js

Mengelola token pengiriman & registrasi domain di ZMTA_URL. Tidak mengirim email sendiri.

FungsiTujuan
getToken(companyUuid)Ambil token
getListALlToken()List semua token
generateToken(companyUuid, userUuid)Buat token baru
regenerateToken(companyUuid, userUuid)Regenerasi token
deleteToken(companyUuid)Hapus token
editTokenStatus(companyUuid, status)Ubah status token
createDomain(companyUuid, domainName, maxSize)Daftar domain + batas attachment
getDomain(domainName)Ambil config domain
deleteDomain(domainId)Hapus domain
updateDomain(maxSize, companyUuid, domainName)Ubah batas attachment

Dipakai oleh: generateEmailApiToken, renewEmailApiToken, getEmailApiToken, cron sync-domain-zmta.

Xendit (Payment Gateway)

Helper: helpers/xendit.helper.js (wrapper xendit-node)

FungsiTujuan
initX(xService)Inisialisasi client (SECRET_KEY_XENDIT)
rp(opts)Instance RecurringPayment
xInv(opts)Instance Invoice
intervals(type)Enum interval recurring
actions(type)Enum action recurring (Stop, dll.)

Dipakai oleh: checkout, callbackXendit, service recurring/overquota, manual payment admin.

Zoho Books

Helper: helpers/zoho.helper.js

Integrasi penuh: contact, estimate, invoice, payment, item, bank.

FungsiTujuan
defRequest(method, path, data, params)Request terotentikasi generik
createZohoContact / updateZohoContactCustomer contact
createEstimateInvoice(...)Estimate (proforma)
createInvoice(...)Invoice pajak dari estimate
createOverQuotaEstimate / createOverQuotaInvoiceBilling over-quota
markPaidEstimate / markDeclinedEstimateStatus estimate
markPaidInvoice(id, cusId, amount)Catat pembayaran (auto)
recordPaymentInvoice(...)Pembayaran bank manual
getInvEstimate / getInvoiceAmbil dokumen
getPdfInvEstimate / getPdfInvDownload PDF
getListAllBanks / getBankDetailsRekening bank
createItem / updateItem / deleteItemItem katalog Zoho
updateInvoice / updateEstimateUpdate dokumen

OAuth refresh: repositories/config.repository.js (getTokenZoho), cron job-update-access-token-zoho.js.

Elasticsearch

Helper inti: helpers/es.helper.js

FungsiTujuan
add(indexName, body)Index dokumen (body.id jadi doc ID)
find / search(indexName, options)Search
getHits(response)Ekstrak hits
updateById(indexName, options)Partial update

Sub-helper pengolahan clean-log: lihat Logging Pengiriman.

Index: dashboard-raw-log (ES_RAW_LOG_INDEX) & dashboard-clean-log (ES_CLEAN_LOG_INDEX).

AWS S3 / Linode Object Storage

Helper: helpers/s3Upload.helper.js (aws-sdk, endpoint ap-south-1.linodeobjects.com, bucket aktiva-relay)

FungsiTujuan
s3Upload(type, file, companyUuid, companyName)Upload file company (NPWP, logo) → public/{uuid}/
s3UploadDailyReport(...)Upload CSV laporan harian
s3UploadDailyReportImage(...)Upload PNG chart laporan
s3Get(companyUuid)Ambil upload NPWP

Nodemailer / SMTP

Helper: helpers/mailing.helper.js (utama), helpers/sending-email.helper.js (invoice legacy inline HTML)

Detail di Notifikasi Email.

MailWizz / AMC

Helper: helpers/mailwizz.helper.js

API list/subscriber management marketing (AMC_BASE_URL). Registrasi kontak saat onboarding/pembayaran. Cron: cron/mailwizz/job-register-contact-mailwizz.js. Referensi UID disimpan di TransCompanyContacts.amcListUid / amcSubsUid.

Helper pendukung lain

PathPeran
helpers/dnsChecker.helper.jsValidasi DNS SPF/DKIM/DMARC
helpers/fileConfig.helper.jsTulis file config relay postfix (listdomain.txt, bysender, slm-exceptions-db)
helpers/suppression.helper.jsSuppression list email
helpers/plain-log-regex.helper.jsRegex parsing baris log postfix
helpers/cp.helper.jsSpawn child process untuk job
helpers/config.helper.jsenvParams, envBool, parameterizeDb
helpers/logger.helper.jsLogger Winston
helpers/token.helper.jsPembuatan & verifikasi JWT
helpers/response.helper.jsFormat response API
helpers/index.jsBarrel export

Ringkasan environment per integrasi

Lihat Konfigurasi Environment untuk daftar lengkap variabel tiap integrasi.

Postal

Integrasi Postal tidak ada di branch ini. Hanya ada di branch feature/postal-integration. Relevan saat mempertimbangkan alternatif pengiriman pada Roadmap Migrasi.