From b129aa68b03acf3d10cf06a27fa14880582779cf Mon Sep 17 00:00:00 2001 From: altradits Date: Thu, 24 Sep 2026 07:48:54 +0300 Subject: [PATCH 1/3] feat(channels): add cash channels for Eastern Caribbean and Eurozone Caribbean markets --- src/channels/ag/cash.ts | 7 +++ src/channels/ai/cash.ts | 7 +++ src/channels/bl/cash.ts | 7 +++ src/channels/dm/cash.ts | 7 +++ src/channels/gd/cash.ts | 7 +++ src/channels/gp/cash.ts | 7 +++ src/channels/index.ts | 102 +++++++++++++++++++++++----------------- src/channels/kn/cash.ts | 7 +++ src/channels/lc/cash.ts | 7 +++ src/channels/mf/cash.ts | 7 +++ src/channels/mq/cash.ts | 7 +++ src/channels/ms/cash.ts | 7 +++ src/channels/vc/cash.ts | 7 +++ src/index.ts | 36 +++++++++----- 14 files changed, 168 insertions(+), 54 deletions(-) create mode 100644 src/channels/ag/cash.ts create mode 100644 src/channels/ai/cash.ts create mode 100644 src/channels/bl/cash.ts create mode 100644 src/channels/dm/cash.ts create mode 100644 src/channels/gd/cash.ts create mode 100644 src/channels/gp/cash.ts create mode 100644 src/channels/kn/cash.ts create mode 100644 src/channels/lc/cash.ts create mode 100644 src/channels/mf/cash.ts create mode 100644 src/channels/mq/cash.ts create mode 100644 src/channels/ms/cash.ts create mode 100644 src/channels/vc/cash.ts diff --git a/src/channels/ag/cash.ts b/src/channels/ag/cash.ts new file mode 100644 index 0000000..0f304e1 --- /dev/null +++ b/src/channels/ag/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashAgXcdPaymentChannel = createCashPaymentChannel({ + id: "cash_ag_xcd", + country: "AG", + currency: "XCD", +}); diff --git a/src/channels/ai/cash.ts b/src/channels/ai/cash.ts new file mode 100644 index 0000000..ddb0015 --- /dev/null +++ b/src/channels/ai/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashAiXcdPaymentChannel = createCashPaymentChannel({ + id: "cash_ai_xcd", + country: "AI", + currency: "XCD", +}); diff --git a/src/channels/bl/cash.ts b/src/channels/bl/cash.ts new file mode 100644 index 0000000..c9b9b4d --- /dev/null +++ b/src/channels/bl/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashBlEurPaymentChannel = createCashPaymentChannel({ + id: "cash_bl_eur", + country: "BL", + currency: "EUR", +}); diff --git a/src/channels/dm/cash.ts b/src/channels/dm/cash.ts new file mode 100644 index 0000000..f4aec78 --- /dev/null +++ b/src/channels/dm/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashDmXcdPaymentChannel = createCashPaymentChannel({ + id: "cash_dm_xcd", + country: "DM", + currency: "XCD", +}); diff --git a/src/channels/gd/cash.ts b/src/channels/gd/cash.ts new file mode 100644 index 0000000..93629e6 --- /dev/null +++ b/src/channels/gd/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashGdXcdPaymentChannel = createCashPaymentChannel({ + id: "cash_gd_xcd", + country: "GD", + currency: "XCD", +}); diff --git a/src/channels/gp/cash.ts b/src/channels/gp/cash.ts new file mode 100644 index 0000000..7538c26 --- /dev/null +++ b/src/channels/gp/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashGpEurPaymentChannel = createCashPaymentChannel({ + id: "cash_gp_eur", + country: "GP", + currency: "EUR", +}); diff --git a/src/channels/index.ts b/src/channels/index.ts index caa7a56..e93a05e 100644 --- a/src/channels/index.ts +++ b/src/channels/index.ts @@ -2,15 +2,17 @@ import type { PaymentChannelSchema } from "../core.js"; export { createCashPaymentChannel } from "./shared.js"; +export { cashAgXcdPaymentChannel } from "./ag/cash.js"; +export { cashAiXcdPaymentChannel } from "./ai/cash.js"; export { cashAoAoaPaymentChannel } from "./ao/cash.js"; -export { cashAuAudPaymentChannel } from "./au/cash.js"; +export { cashArArsPaymentChannel } from "./ar/cash.js"; export { cashAsUsdPaymentChannel } from "./as/cash.js"; +export { cashAuAudPaymentChannel } from "./au/cash.js"; export { cashBfXofPaymentChannel } from "./bf/cash.js"; export { cashBiBifPaymentChannel } from "./bi/cash.js"; export { cashBjXofPaymentChannel } from "./bj/cash.js"; +export { cashBlEurPaymentChannel } from "./bl/cash.js"; export { cashBmBmdPaymentChannel } from "./bm/cash.js"; - -export { cashArArsPaymentChannel } from "./ar/cash.js"; export { cashBoBobPaymentChannel } from "./bo/cash.js"; export { cashBrBrlPaymentChannel } from "./br/cash.js"; export { cashBwBwpPaymentChannel } from "./bw/cash.js"; @@ -20,12 +22,12 @@ export { cashCfXafPaymentChannel } from "./cf/cash.js"; export { cashCgXafPaymentChannel } from "./cg/cash.js"; export { cashCiXofPaymentChannel } from "./ci/cash.js"; export { cashCkNzdPaymentChannel } from "./ck/cash.js"; - export { cashClClpPaymentChannel } from "./cl/cash.js"; export { cashCmXafPaymentChannel } from "./cm/cash.js"; export { cashCoCopPaymentChannel } from "./co/cash.js"; export { cashCvCvePaymentChannel } from "./cv/cash.js"; export { cashDjDjfPaymentChannel } from "./dj/cash.js"; +export { cashDmXcdPaymentChannel } from "./dm/cash.js"; export { cashDzDzdPaymentChannel } from "./dz/cash.js"; export { cashEcUsdPaymentChannel } from "./ec/cash.js"; export { cashEgEgpPaymentChannel } from "./eg/cash.js"; @@ -34,16 +36,17 @@ export { cashErErnPaymentChannel } from "./er/cash.js"; export { cashEtEtbPaymentChannel } from "./et/cash.js"; export { telebirrPhoneEtEtbPaymentChannel } from "./et/telebirr_phone.js"; export { cashFjFjdPaymentChannel } from "./fj/cash.js"; -export { cashFmUsdPaymentChannel } from "./fm/cash.js"; - export { cashFkFkpPaymentChannel } from "./fk/cash.js"; +export { cashFmUsdPaymentChannel } from "./fm/cash.js"; export { cashGaXafPaymentChannel } from "./ga/cash.js"; export { cashGbGbpPaymentChannel } from "./gb/cash.js"; +export { cashGdXcdPaymentChannel } from "./gd/cash.js"; export { cashGfEurPaymentChannel } from "./gf/cash.js"; export { cashGhGhsPaymentChannel } from "./gh/cash.js"; export { cashGlDkkPaymentChannel } from "./gl/cash.js"; export { cashGmGmdPaymentChannel } from "./gm/cash.js"; export { cashGnGnfPaymentChannel } from "./gn/cash.js"; +export { cashGpEurPaymentChannel } from "./gp/cash.js"; export { cashGqXafPaymentChannel } from "./gq/cash.js"; export { cashGuUsdPaymentChannel } from "./gu/cash.js"; export { cashGwXofPaymentChannel } from "./gw/cash.js"; @@ -58,17 +61,22 @@ export { mpesaTillKeKesPaymentChannel } from "./ke/mpesa_till.js"; export { pesalinkAccountKeKesPaymentChannel } from "./ke/pesalink_account.js"; export { cashKiAudPaymentChannel } from "./ki/cash.js"; export { cashKmKmfPaymentChannel } from "./km/cash.js"; +export { cashKnXcdPaymentChannel } from "./kn/cash.js"; +export { cashLcXcdPaymentChannel } from "./lc/cash.js"; export { cashLrLrdPaymentChannel } from "./lr/cash_lrd.js"; export { cashLrUsdPaymentChannel } from "./lr/cash_usd.js"; export { cashLsLslPaymentChannel } from "./ls/cash_lsl.js"; export { cashLsZarPaymentChannel } from "./ls/cash_zar.js"; export { cashLyLydPaymentChannel } from "./ly/cash.js"; export { cashMaMadPaymentChannel } from "./ma/cash.js"; +export { cashMfEurPaymentChannel } from "./mf/cash.js"; export { cashMgMgaPaymentChannel } from "./mg/cash.js"; export { cashMhUsdPaymentChannel } from "./mh/cash.js"; export { cashMlXofPaymentChannel } from "./ml/cash.js"; export { cashMpUsdPaymentChannel } from "./mp/cash.js"; +export { cashMqEurPaymentChannel } from "./mq/cash.js"; export { cashMrMruPaymentChannel } from "./mr/cash.js"; +export { cashMsXcdPaymentChannel } from "./ms/cash.js"; export { cashMuMurPaymentChannel } from "./mu/cash.js"; export { airtelMoneyMwMwkPaymentChannel } from "./mw/airtel_money.js"; export { airtelMoneyTillMwMwkPaymentChannel } from "./mw/airtel_money_till.js"; @@ -79,20 +87,19 @@ export { cashMzMznPaymentChannel } from "./mz/cash.js"; export { cashNaNadPaymentChannel } from "./na/cash_nad.js"; export { cashNaZarPaymentChannel } from "./na/cash_zar.js"; export { cashNcXpfPaymentChannel } from "./nc/cash.js"; -export { cashNfAudPaymentChannel } from "./nf/cash.js"; export { cashNeXofPaymentChannel } from "./ne/cash.js"; +export { cashNfAudPaymentChannel } from "./nf/cash.js"; export { cashNgNgnPaymentChannel } from "./ng/cash.js"; -export { cashNzNzdPaymentChannel } from "./nz/cash.js"; -export { cashPkPkrPaymentChannel } from "./pk/cash.js"; -export { cashPmEurPaymentChannel } from "./pm/cash.js"; -export { cashPgPgkPaymentChannel } from "./pg/cash.js"; export { cashNrAudPaymentChannel } from "./nr/cash.js"; export { cashNuNzdPaymentChannel } from "./nu/cash.js"; +export { cashNzNzdPaymentChannel } from "./nz/cash.js"; +export { cashPePenPaymentChannel } from "./pe/cash.js"; export { cashPfXpfPaymentChannel } from "./pf/cash.js"; +export { cashPgPgkPaymentChannel } from "./pg/cash.js"; +export { cashPkPkrPaymentChannel } from "./pk/cash.js"; +export { cashPmEurPaymentChannel } from "./pm/cash.js"; export { cashPnNzdPaymentChannel } from "./pn/cash.js"; export { cashPwUsdPaymentChannel } from "./pw/cash.js"; - -export { cashPePenPaymentChannel } from "./pe/cash.js"; export { cashPyPygPaymentChannel } from "./py/cash.js"; export { cashReEurPaymentChannel } from "./re/cash.js"; export { cashRwRwfPaymentChannel } from "./rw/cash.js"; @@ -104,7 +111,6 @@ export { cashSlSlePaymentChannel } from "./sl/cash.js"; export { cashSnXofPaymentChannel } from "./sn/cash.js"; export { cashSoSosPaymentChannel } from "./so/cash_sos.js"; export { cashSoUsdPaymentChannel } from "./so/cash_usd.js"; - export { cashSrSrdPaymentChannel } from "./sr/cash.js"; export { cashSsSspPaymentChannel } from "./ss/cash.js"; export { cashStStnPaymentChannel } from "./st/cash.js"; @@ -118,13 +124,13 @@ export { cashToTopPaymentChannel } from "./to/cash.js"; export { cashTvAudPaymentChannel } from "./tv/cash.js"; export { cashTzTzsPaymentChannel } from "./tz/cash.js"; export { cashUgUgxPaymentChannel } from "./ug/cash.js"; -export { cashVuVuvPaymentChannel } from "./vu/cash.js"; export { cashUsUsdPaymentChannel } from "./us/cash.js"; -export { cashWfXpfPaymentChannel } from "./wf/cash.js"; -export { cashWsWstPaymentChannel } from "./ws/cash.js"; - export { cashUyUyuPaymentChannel } from "./uy/cash.js"; +export { cashVcXcdPaymentChannel } from "./vc/cash.js"; export { cashVeVesPaymentChannel } from "./ve/cash.js"; +export { cashVuVuvPaymentChannel } from "./vu/cash.js"; +export { cashWfXpfPaymentChannel } from "./wf/cash.js"; +export { cashWsWstPaymentChannel } from "./ws/cash.js"; export { cashYtEurPaymentChannel } from "./yt/cash.js"; export { cashZaZarPaymentChannel } from "./za/cash.js"; export { payshapAccountZaZarPaymentChannel } from "./za/payshap_account.js"; @@ -133,15 +139,17 @@ export { cashZmZmwPaymentChannel } from "./zm/cash.js"; export { cashZwUsdPaymentChannel } from "./zw/cash_usd.js"; export { cashZwZwgPaymentChannel } from "./zw/cash_zwg.js"; +import { cashAgXcdPaymentChannel } from "./ag/cash.js"; +import { cashAiXcdPaymentChannel } from "./ai/cash.js"; import { cashAoAoaPaymentChannel } from "./ao/cash.js"; -import { cashAuAudPaymentChannel } from "./au/cash.js"; +import { cashArArsPaymentChannel } from "./ar/cash.js"; import { cashAsUsdPaymentChannel } from "./as/cash.js"; +import { cashAuAudPaymentChannel } from "./au/cash.js"; import { cashBfXofPaymentChannel } from "./bf/cash.js"; import { cashBiBifPaymentChannel } from "./bi/cash.js"; import { cashBjXofPaymentChannel } from "./bj/cash.js"; +import { cashBlEurPaymentChannel } from "./bl/cash.js"; import { cashBmBmdPaymentChannel } from "./bm/cash.js"; - -import { cashArArsPaymentChannel } from "./ar/cash.js"; import { cashBoBobPaymentChannel } from "./bo/cash.js"; import { cashBrBrlPaymentChannel } from "./br/cash.js"; import { cashBwBwpPaymentChannel } from "./bw/cash.js"; @@ -151,12 +159,12 @@ import { cashCfXafPaymentChannel } from "./cf/cash.js"; import { cashCgXafPaymentChannel } from "./cg/cash.js"; import { cashCiXofPaymentChannel } from "./ci/cash.js"; import { cashCkNzdPaymentChannel } from "./ck/cash.js"; - import { cashClClpPaymentChannel } from "./cl/cash.js"; import { cashCmXafPaymentChannel } from "./cm/cash.js"; import { cashCoCopPaymentChannel } from "./co/cash.js"; import { cashCvCvePaymentChannel } from "./cv/cash.js"; import { cashDjDjfPaymentChannel } from "./dj/cash.js"; +import { cashDmXcdPaymentChannel } from "./dm/cash.js"; import { cashDzDzdPaymentChannel } from "./dz/cash.js"; import { cashEcUsdPaymentChannel } from "./ec/cash.js"; import { cashEgEgpPaymentChannel } from "./eg/cash.js"; @@ -165,16 +173,17 @@ import { cashErErnPaymentChannel } from "./er/cash.js"; import { cashEtEtbPaymentChannel } from "./et/cash.js"; import { telebirrPhoneEtEtbPaymentChannel } from "./et/telebirr_phone.js"; import { cashFjFjdPaymentChannel } from "./fj/cash.js"; -import { cashFmUsdPaymentChannel } from "./fm/cash.js"; - import { cashFkFkpPaymentChannel } from "./fk/cash.js"; +import { cashFmUsdPaymentChannel } from "./fm/cash.js"; import { cashGaXafPaymentChannel } from "./ga/cash.js"; import { cashGbGbpPaymentChannel } from "./gb/cash.js"; +import { cashGdXcdPaymentChannel } from "./gd/cash.js"; import { cashGfEurPaymentChannel } from "./gf/cash.js"; import { cashGhGhsPaymentChannel } from "./gh/cash.js"; import { cashGlDkkPaymentChannel } from "./gl/cash.js"; import { cashGmGmdPaymentChannel } from "./gm/cash.js"; import { cashGnGnfPaymentChannel } from "./gn/cash.js"; +import { cashGpEurPaymentChannel } from "./gp/cash.js"; import { cashGqXafPaymentChannel } from "./gq/cash.js"; import { cashGuUsdPaymentChannel } from "./gu/cash.js"; import { cashGwXofPaymentChannel } from "./gw/cash.js"; @@ -189,17 +198,22 @@ import { mpesaTillKeKesPaymentChannel } from "./ke/mpesa_till.js"; import { pesalinkAccountKeKesPaymentChannel } from "./ke/pesalink_account.js"; import { cashKiAudPaymentChannel } from "./ki/cash.js"; import { cashKmKmfPaymentChannel } from "./km/cash.js"; +import { cashKnXcdPaymentChannel } from "./kn/cash.js"; +import { cashLcXcdPaymentChannel } from "./lc/cash.js"; import { cashLrLrdPaymentChannel } from "./lr/cash_lrd.js"; import { cashLrUsdPaymentChannel } from "./lr/cash_usd.js"; import { cashLsLslPaymentChannel } from "./ls/cash_lsl.js"; import { cashLsZarPaymentChannel } from "./ls/cash_zar.js"; import { cashLyLydPaymentChannel } from "./ly/cash.js"; import { cashMaMadPaymentChannel } from "./ma/cash.js"; +import { cashMfEurPaymentChannel } from "./mf/cash.js"; import { cashMgMgaPaymentChannel } from "./mg/cash.js"; import { cashMhUsdPaymentChannel } from "./mh/cash.js"; import { cashMlXofPaymentChannel } from "./ml/cash.js"; import { cashMpUsdPaymentChannel } from "./mp/cash.js"; +import { cashMqEurPaymentChannel } from "./mq/cash.js"; import { cashMrMruPaymentChannel } from "./mr/cash.js"; +import { cashMsXcdPaymentChannel } from "./ms/cash.js"; import { cashMuMurPaymentChannel } from "./mu/cash.js"; import { airtelMoneyMwMwkPaymentChannel } from "./mw/airtel_money.js"; import { airtelMoneyTillMwMwkPaymentChannel } from "./mw/airtel_money_till.js"; @@ -210,20 +224,19 @@ import { cashMzMznPaymentChannel } from "./mz/cash.js"; import { cashNaNadPaymentChannel } from "./na/cash_nad.js"; import { cashNaZarPaymentChannel } from "./na/cash_zar.js"; import { cashNcXpfPaymentChannel } from "./nc/cash.js"; -import { cashNfAudPaymentChannel } from "./nf/cash.js"; import { cashNeXofPaymentChannel } from "./ne/cash.js"; +import { cashNfAudPaymentChannel } from "./nf/cash.js"; import { cashNgNgnPaymentChannel } from "./ng/cash.js"; -import { cashNzNzdPaymentChannel } from "./nz/cash.js"; -import { cashPkPkrPaymentChannel } from "./pk/cash.js"; -import { cashPmEurPaymentChannel } from "./pm/cash.js"; -import { cashPgPgkPaymentChannel } from "./pg/cash.js"; import { cashNrAudPaymentChannel } from "./nr/cash.js"; import { cashNuNzdPaymentChannel } from "./nu/cash.js"; +import { cashNzNzdPaymentChannel } from "./nz/cash.js"; +import { cashPePenPaymentChannel } from "./pe/cash.js"; import { cashPfXpfPaymentChannel } from "./pf/cash.js"; +import { cashPgPgkPaymentChannel } from "./pg/cash.js"; +import { cashPkPkrPaymentChannel } from "./pk/cash.js"; +import { cashPmEurPaymentChannel } from "./pm/cash.js"; import { cashPnNzdPaymentChannel } from "./pn/cash.js"; import { cashPwUsdPaymentChannel } from "./pw/cash.js"; - -import { cashPePenPaymentChannel } from "./pe/cash.js"; import { cashPyPygPaymentChannel } from "./py/cash.js"; import { cashReEurPaymentChannel } from "./re/cash.js"; import { cashRwRwfPaymentChannel } from "./rw/cash.js"; @@ -235,7 +248,6 @@ import { cashSlSlePaymentChannel } from "./sl/cash.js"; import { cashSnXofPaymentChannel } from "./sn/cash.js"; import { cashSoSosPaymentChannel } from "./so/cash_sos.js"; import { cashSoUsdPaymentChannel } from "./so/cash_usd.js"; - import { cashSrSrdPaymentChannel } from "./sr/cash.js"; import { cashSsSspPaymentChannel } from "./ss/cash.js"; import { cashStStnPaymentChannel } from "./st/cash.js"; @@ -249,13 +261,13 @@ import { cashToTopPaymentChannel } from "./to/cash.js"; import { cashTvAudPaymentChannel } from "./tv/cash.js"; import { cashTzTzsPaymentChannel } from "./tz/cash.js"; import { cashUgUgxPaymentChannel } from "./ug/cash.js"; -import { cashVuVuvPaymentChannel } from "./vu/cash.js"; import { cashUsUsdPaymentChannel } from "./us/cash.js"; -import { cashWfXpfPaymentChannel } from "./wf/cash.js"; -import { cashWsWstPaymentChannel } from "./ws/cash.js"; - import { cashUyUyuPaymentChannel } from "./uy/cash.js"; +import { cashVcXcdPaymentChannel } from "./vc/cash.js"; import { cashVeVesPaymentChannel } from "./ve/cash.js"; +import { cashVuVuvPaymentChannel } from "./vu/cash.js"; +import { cashWfXpfPaymentChannel } from "./wf/cash.js"; +import { cashWsWstPaymentChannel } from "./ws/cash.js"; import { cashYtEurPaymentChannel } from "./yt/cash.js"; import { cashZaZarPaymentChannel } from "./za/cash.js"; import { payshapAccountZaZarPaymentChannel } from "./za/payshap_account.js"; @@ -265,14 +277,16 @@ import { cashZwUsdPaymentChannel } from "./zw/cash_usd.js"; import { cashZwZwgPaymentChannel } from "./zw/cash_zwg.js"; export const builtinPaymentChannels: readonly PaymentChannelSchema[] = [ + cashAgXcdPaymentChannel, + cashAiXcdPaymentChannel, cashAoAoaPaymentChannel, cashAuAudPaymentChannel, cashAsUsdPaymentChannel, cashBfXofPaymentChannel, cashBiBifPaymentChannel, cashBjXofPaymentChannel, + cashBlEurPaymentChannel, cashBmBmdPaymentChannel, - cashArArsPaymentChannel, cashBoBobPaymentChannel, cashBrBrlPaymentChannel, @@ -283,12 +297,12 @@ export const builtinPaymentChannels: readonly PaymentChannelSchema[] = [ cashCgXafPaymentChannel, cashCiXofPaymentChannel, cashCkNzdPaymentChannel, - cashClClpPaymentChannel, cashCmXafPaymentChannel, cashCoCopPaymentChannel, cashCvCvePaymentChannel, cashDjDjfPaymentChannel, + cashDmXcdPaymentChannel, cashDzDzdPaymentChannel, cashEcUsdPaymentChannel, cashEgEgpPaymentChannel, @@ -298,15 +312,16 @@ export const builtinPaymentChannels: readonly PaymentChannelSchema[] = [ telebirrPhoneEtEtbPaymentChannel, cashFjFjdPaymentChannel, cashFmUsdPaymentChannel, - cashFkFkpPaymentChannel, cashGaXafPaymentChannel, cashGbGbpPaymentChannel, + cashGdXcdPaymentChannel, cashGfEurPaymentChannel, cashGhGhsPaymentChannel, cashGlDkkPaymentChannel, cashGmGmdPaymentChannel, cashGnGnfPaymentChannel, + cashGpEurPaymentChannel, cashGqXafPaymentChannel, cashGuUsdPaymentChannel, cashGwXofPaymentChannel, @@ -321,17 +336,22 @@ export const builtinPaymentChannels: readonly PaymentChannelSchema[] = [ cashKeKesPaymentChannel, cashKiAudPaymentChannel, cashKmKmfPaymentChannel, + cashKnXcdPaymentChannel, + cashLcXcdPaymentChannel, cashLrLrdPaymentChannel, cashLrUsdPaymentChannel, cashLsLslPaymentChannel, cashLsZarPaymentChannel, cashLyLydPaymentChannel, cashMaMadPaymentChannel, + cashMfEurPaymentChannel, cashMgMgaPaymentChannel, cashMhUsdPaymentChannel, cashMlXofPaymentChannel, cashMpUsdPaymentChannel, + cashMqEurPaymentChannel, cashMrMruPaymentChannel, + cashMsXcdPaymentChannel, cashMuMurPaymentChannel, airtelMoneyMwMwkPaymentChannel, airtelMoneyTillMwMwkPaymentChannel, @@ -354,7 +374,6 @@ export const builtinPaymentChannels: readonly PaymentChannelSchema[] = [ cashPfXpfPaymentChannel, cashPnNzdPaymentChannel, cashPwUsdPaymentChannel, - cashPePenPaymentChannel, cashPyPygPaymentChannel, cashReEurPaymentChannel, @@ -367,7 +386,6 @@ export const builtinPaymentChannels: readonly PaymentChannelSchema[] = [ cashSnXofPaymentChannel, cashSoSosPaymentChannel, cashSoUsdPaymentChannel, - cashSrSrdPaymentChannel, cashSsSspPaymentChannel, cashStStnPaymentChannel, @@ -385,8 +403,8 @@ export const builtinPaymentChannels: readonly PaymentChannelSchema[] = [ cashUsUsdPaymentChannel, cashWfXpfPaymentChannel, cashWsWstPaymentChannel, - cashUyUyuPaymentChannel, + cashVcXcdPaymentChannel, cashVeVesPaymentChannel, cashYtEurPaymentChannel, payshapShapidZaZarPaymentChannel, diff --git a/src/channels/kn/cash.ts b/src/channels/kn/cash.ts new file mode 100644 index 0000000..ac5b0b5 --- /dev/null +++ b/src/channels/kn/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashKnXcdPaymentChannel = createCashPaymentChannel({ + id: "cash_kn_xcd", + country: "KN", + currency: "XCD", +}); diff --git a/src/channels/lc/cash.ts b/src/channels/lc/cash.ts new file mode 100644 index 0000000..cdd0351 --- /dev/null +++ b/src/channels/lc/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashLcXcdPaymentChannel = createCashPaymentChannel({ + id: "cash_lc_xcd", + country: "LC", + currency: "XCD", +}); diff --git a/src/channels/mf/cash.ts b/src/channels/mf/cash.ts new file mode 100644 index 0000000..0345abb --- /dev/null +++ b/src/channels/mf/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashMfEurPaymentChannel = createCashPaymentChannel({ + id: "cash_mf_eur", + country: "MF", + currency: "EUR", +}); diff --git a/src/channels/mq/cash.ts b/src/channels/mq/cash.ts new file mode 100644 index 0000000..53c9c47 --- /dev/null +++ b/src/channels/mq/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashMqEurPaymentChannel = createCashPaymentChannel({ + id: "cash_mq_eur", + country: "MQ", + currency: "EUR", +}); diff --git a/src/channels/ms/cash.ts b/src/channels/ms/cash.ts new file mode 100644 index 0000000..9878cb5 --- /dev/null +++ b/src/channels/ms/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashMsXcdPaymentChannel = createCashPaymentChannel({ + id: "cash_ms_xcd", + country: "MS", + currency: "XCD", +}); diff --git a/src/channels/vc/cash.ts b/src/channels/vc/cash.ts new file mode 100644 index 0000000..891d831 --- /dev/null +++ b/src/channels/vc/cash.ts @@ -0,0 +1,7 @@ +import { createCashPaymentChannel } from "../shared.js"; + +export const cashVcXcdPaymentChannel = createCashPaymentChannel({ + id: "cash_vc_xcd", + country: "VC", + currency: "XCD", +}); diff --git a/src/index.ts b/src/index.ts index 82910f1..6d24af9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -38,14 +38,17 @@ export { airtelMoneyMwMwkPaymentChannel, airtelMoneyTillMwMwkPaymentChannel, builtinPaymentChannels, + cashAgXcdPaymentChannel, + cashAiXcdPaymentChannel, cashAoAoaPaymentChannel, - cashAuAudPaymentChannel, + cashArArsPaymentChannel, cashAsUsdPaymentChannel, + cashAuAudPaymentChannel, cashBfXofPaymentChannel, cashBiBifPaymentChannel, cashBjXofPaymentChannel, + cashBlEurPaymentChannel, cashBmBmdPaymentChannel, - cashArArsPaymentChannel, cashBoBobPaymentChannel, cashBrBrlPaymentChannel, cashBwBwpPaymentChannel, @@ -60,6 +63,7 @@ export { cashCoCopPaymentChannel, cashCvCvePaymentChannel, cashDjDjfPaymentChannel, + cashDmXcdPaymentChannel, cashDzDzdPaymentChannel, cashEcUsdPaymentChannel, cashEgEgpPaymentChannel, @@ -67,15 +71,17 @@ export { cashErErnPaymentChannel, cashEtEtbPaymentChannel, cashFjFjdPaymentChannel, - cashFmUsdPaymentChannel, cashFkFkpPaymentChannel, + cashFmUsdPaymentChannel, cashGaXafPaymentChannel, cashGbGbpPaymentChannel, + cashGdXcdPaymentChannel, cashGfEurPaymentChannel, cashGhGhsPaymentChannel, cashGlDkkPaymentChannel, cashGmGmdPaymentChannel, cashGnGnfPaymentChannel, + cashGpEurPaymentChannel, cashGqXafPaymentChannel, cashGuUsdPaymentChannel, cashGwXofPaymentChannel, @@ -84,36 +90,41 @@ export { cashKeKesPaymentChannel, cashKiAudPaymentChannel, cashKmKmfPaymentChannel, + cashKnXcdPaymentChannel, + cashLcXcdPaymentChannel, cashLrLrdPaymentChannel, cashLrUsdPaymentChannel, cashLsLslPaymentChannel, cashLsZarPaymentChannel, cashLyLydPaymentChannel, cashMaMadPaymentChannel, + cashMfEurPaymentChannel, cashMgMgaPaymentChannel, cashMhUsdPaymentChannel, cashMlXofPaymentChannel, cashMpUsdPaymentChannel, + cashMqEurPaymentChannel, cashMrMruPaymentChannel, + cashMsXcdPaymentChannel, cashMuMurPaymentChannel, cashMwMwkPaymentChannel, cashMzMznPaymentChannel, cashNaNadPaymentChannel, cashNaZarPaymentChannel, cashNcXpfPaymentChannel, - cashNfAudPaymentChannel, cashNeXofPaymentChannel, + cashNfAudPaymentChannel, cashNgNgnPaymentChannel, - cashNzNzdPaymentChannel, - cashPkPkrPaymentChannel, - cashPmEurPaymentChannel, - cashPgPgkPaymentChannel, cashNrAudPaymentChannel, cashNuNzdPaymentChannel, + cashNzNzdPaymentChannel, + cashPePenPaymentChannel, cashPfXpfPaymentChannel, + cashPgPgkPaymentChannel, + cashPkPkrPaymentChannel, + cashPmEurPaymentChannel, cashPnNzdPaymentChannel, cashPwUsdPaymentChannel, - cashPePenPaymentChannel, cashPyPygPaymentChannel, cashReEurPaymentChannel, cashRwRwfPaymentChannel, @@ -138,12 +149,13 @@ export { cashTvAudPaymentChannel, cashTzTzsPaymentChannel, cashUgUgxPaymentChannel, - cashVuVuvPaymentChannel, cashUsUsdPaymentChannel, - cashWfXpfPaymentChannel, - cashWsWstPaymentChannel, cashUyUyuPaymentChannel, + cashVcXcdPaymentChannel, cashVeVesPaymentChannel, + cashVuVuvPaymentChannel, + cashWfXpfPaymentChannel, + cashWsWstPaymentChannel, cashYtEurPaymentChannel, cashZaZarPaymentChannel, cashZmZmwPaymentChannel, From 628e6396b0f39497bf399f75d6554df32748ccbb Mon Sep 17 00:00:00 2001 From: altradits Date: Thu, 24 Sep 2026 07:59:36 +0300 Subject: [PATCH 2/3] test: add contract tests for Eastern Caribbean and Eurozone Caribbean cash channels --- test/payment-channels.test.mjs | 48 +++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/test/payment-channels.test.mjs b/test/payment-channels.test.mjs index d1465c4..ef93775 100644 --- a/test/payment-channels.test.mjs +++ b/test/payment-channels.test.mjs @@ -478,14 +478,16 @@ test("every represented country has a built-in cash channel", () => { .filter((channel) => channel.display.group === PaymentChannelGroup.Cash) .map((channel) => channel.id), [ + "cash_ag_xcd", + "cash_ai_xcd", "cash_ao_aoa", "cash_au_aud", "cash_as_usd", "cash_bf_xof", "cash_bi_bif", "cash_bj_xof", + "cash_bl_eur", "cash_bm_bmd", - "cash_ar_ars", "cash_bo_bob", "cash_br_brl", @@ -496,12 +498,12 @@ test("every represented country has a built-in cash channel", () => { "cash_cg_xaf", "cash_ci_xof", "cash_ck_nzd", - "cash_cl_clp", "cash_cm_xaf", "cash_co_cop", "cash_cv_cve", "cash_dj_djf", + "cash_dm_xcd", "cash_dz_dzd", "cash_ec_usd", "cash_eg_egp", @@ -510,15 +512,16 @@ test("every represented country has a built-in cash channel", () => { "cash_et_etb", "cash_fj_fjd", "cash_fm_usd", - "cash_fk_fkp", "cash_ga_xaf", "cash_gb_gbp", + "cash_gd_xcd", "cash_gf_eur", "cash_gh_ghs", "cash_gl_dkk", "cash_gm_gmd", "cash_gn_gnf", + "cash_gp_eur", "cash_gq_xaf", "cash_gu_usd", "cash_gw_xof", @@ -527,17 +530,22 @@ test("every represented country has a built-in cash channel", () => { "cash_ke_kes", "cash_ki_aud", "cash_km_kmf", + "cash_kn_xcd", + "cash_lc_xcd", "cash_lr_lrd", "cash_lr_usd", "cash_ls_lsl", "cash_ls_zar", "cash_ly_lyd", "cash_ma_mad", + "cash_mf_eur", "cash_mg_mga", "cash_mh_usd", "cash_ml_xof", "cash_mp_usd", + "cash_mq_eur", "cash_mr_mru", + "cash_ms_xcd", "cash_mu_mur", "cash_mw_mwk", "cash_mz_mzn", @@ -556,7 +564,6 @@ test("every represented country has a built-in cash channel", () => { "cash_pf_xpf", "cash_pn_nzd", "cash_pw_usd", - "cash_pe_pen", "cash_py_pyg", "cash_re_eur", @@ -569,7 +576,6 @@ test("every represented country has a built-in cash channel", () => { "cash_sn_xof", "cash_so_sos", "cash_so_usd", - "cash_sr_srd", "cash_ss_ssp", "cash_st_stn", @@ -587,8 +593,8 @@ test("every represented country has a built-in cash channel", () => { "cash_us_usd", "cash_wf_xpf", "cash_ws_wst", - "cash_uy_uyu", + "cash_vc_xcd", "cash_ve_ves", "cash_yt_eur", "cash_za_zar", @@ -929,6 +935,36 @@ test("registry exposes built-in cash channels for South American markets", () => } }); +test("registry exposes built-in cash channels for Eastern Caribbean and Eurozone Caribbean markets", () => { + const registry = createPaymentChannelRegistry(); + const markets = [ + { country: "AG", currency: "XCD", id: "cash_ag_xcd" }, + { country: "AI", currency: "XCD", id: "cash_ai_xcd" }, + { country: "BL", currency: "EUR", id: "cash_bl_eur" }, + { country: "DM", currency: "XCD", id: "cash_dm_xcd" }, + { country: "GD", currency: "XCD", id: "cash_gd_xcd" }, + { country: "GP", currency: "EUR", id: "cash_gp_eur" }, + { country: "KN", currency: "XCD", id: "cash_kn_xcd" }, + { country: "LC", currency: "XCD", id: "cash_lc_xcd" }, + { country: "MF", currency: "EUR", id: "cash_mf_eur" }, + { country: "MQ", currency: "EUR", id: "cash_mq_eur" }, + { country: "MS", currency: "XCD", id: "cash_ms_xcd" }, + { country: "VC", currency: "XCD", id: "cash_vc_xcd" }, + ]; + + for (const { country, currency, id } of markets) { + const channels = listPaymentChannelSchemas(registry, { + country, + currency, + group: PaymentChannelGroup.Cash, + }); + assert.deepEqual( + channels.map((channel) => channel.id), + [id], + ); + } +}); + test("channel source files are grouped by country and match stable channel IDs", async () => { const channelsDirectory = fileURLToPath(new URL("../src/channels", import.meta.url)); const filenames = await listChannelSourceFiles(channelsDirectory); From c4d0d635e11aea7b3d6472bc4404cb16f4a7386c Mon Sep 17 00:00:00 2001 From: altradits Date: Thu, 24 Sep 2026 08:00:08 +0300 Subject: [PATCH 3/3] docs: refresh registry documentation for Eastern Caribbean and Eurozone Caribbean cash channels --- docs/generated/built-in-channels.md | 12 ++ docs/generated/registry.json | 204 ++++++++++++++++++++++++++++ 2 files changed, 216 insertions(+) diff --git a/docs/generated/built-in-channels.md b/docs/generated/built-in-channels.md index be49475..8e28edf 100644 --- a/docs/generated/built-in-channels.md +++ b/docs/generated/built-in-channels.md @@ -6,12 +6,15 @@ The runtime registry is authoritative. This inventory is provided for human insp | ID | Label | Country | Currency | Group | Automation | Version | | ---------------------------- | ------------------------ | ------- | -------- | -------------- | ---------- | ------: | +| `cash_ag_xcd` | Cash | `AG` | `XCD` | `cash` | `none` | 2 | +| `cash_ai_xcd` | Cash | `AI` | `XCD` | `cash` | `none` | 2 | | `cash_ao_aoa` | Cash | `AO` | `AOA` | `cash` | `none` | 2 | | `cash_au_aud` | Cash | `AU` | `AUD` | `cash` | `none` | 2 | | `cash_as_usd` | Cash | `AS` | `USD` | `cash` | `none` | 2 | | `cash_bf_xof` | Cash | `BF` | `XOF` | `cash` | `none` | 2 | | `cash_bi_bif` | Cash | `BI` | `BIF` | `cash` | `none` | 2 | | `cash_bj_xof` | Cash | `BJ` | `XOF` | `cash` | `none` | 2 | +| `cash_bl_eur` | Cash | `BL` | `EUR` | `cash` | `none` | 2 | | `cash_bm_bmd` | Cash | `BM` | `BMD` | `cash` | `none` | 2 | | `cash_ar_ars` | Cash | `AR` | `ARS` | `cash` | `none` | 2 | | `cash_bo_bob` | Cash | `BO` | `BOB` | `cash` | `none` | 2 | @@ -28,6 +31,7 @@ The runtime registry is authoritative. This inventory is provided for human insp | `cash_co_cop` | Cash | `CO` | `COP` | `cash` | `none` | 2 | | `cash_cv_cve` | Cash | `CV` | `CVE` | `cash` | `none` | 2 | | `cash_dj_djf` | Cash | `DJ` | `DJF` | `cash` | `none` | 2 | +| `cash_dm_xcd` | Cash | `DM` | `XCD` | `cash` | `none` | 2 | | `cash_dz_dzd` | Cash | `DZ` | `DZD` | `cash` | `none` | 2 | | `cash_ec_usd` | Cash | `EC` | `USD` | `cash` | `none` | 2 | | `cash_eg_egp` | Cash | `EG` | `EGP` | `cash` | `none` | 2 | @@ -40,11 +44,13 @@ The runtime registry is authoritative. This inventory is provided for human insp | `cash_fk_fkp` | Cash | `FK` | `FKP` | `cash` | `none` | 2 | | `cash_ga_xaf` | Cash | `GA` | `XAF` | `cash` | `none` | 2 | | `cash_gb_gbp` | Cash | `GB` | `GBP` | `cash` | `none` | 2 | +| `cash_gd_xcd` | Cash | `GD` | `XCD` | `cash` | `none` | 2 | | `cash_gf_eur` | Cash | `GF` | `EUR` | `cash` | `none` | 2 | | `cash_gh_ghs` | Cash | `GH` | `GHS` | `cash` | `none` | 2 | | `cash_gl_dkk` | Cash | `GL` | `DKK` | `cash` | `none` | 2 | | `cash_gm_gmd` | Cash | `GM` | `GMD` | `cash` | `none` | 2 | | `cash_gn_gnf` | Cash | `GN` | `GNF` | `cash` | `none` | 2 | +| `cash_gp_eur` | Cash | `GP` | `EUR` | `cash` | `none` | 2 | | `cash_gq_xaf` | Cash | `GQ` | `XAF` | `cash` | `none` | 2 | | `cash_gu_usd` | Cash | `GU` | `USD` | `cash` | `none` | 2 | | `cash_gw_xof` | Cash | `GW` | `XOF` | `cash` | `none` | 2 | @@ -59,17 +65,22 @@ The runtime registry is authoritative. This inventory is provided for human insp | `cash_ke_kes` | Cash | `KE` | `KES` | `cash` | `none` | 2 | | `cash_ki_aud` | Cash | `KI` | `AUD` | `cash` | `none` | 2 | | `cash_km_kmf` | Cash | `KM` | `KMF` | `cash` | `none` | 2 | +| `cash_kn_xcd` | Cash | `KN` | `XCD` | `cash` | `none` | 2 | +| `cash_lc_xcd` | Cash | `LC` | `XCD` | `cash` | `none` | 2 | | `cash_lr_lrd` | Cash | `LR` | `LRD` | `cash` | `none` | 2 | | `cash_lr_usd` | Cash | `LR` | `USD` | `cash` | `none` | 2 | | `cash_ls_lsl` | Cash | `LS` | `LSL` | `cash` | `none` | 2 | | `cash_ls_zar` | Cash | `LS` | `ZAR` | `cash` | `none` | 2 | | `cash_ly_lyd` | Cash | `LY` | `LYD` | `cash` | `none` | 2 | | `cash_ma_mad` | Cash | `MA` | `MAD` | `cash` | `none` | 2 | +| `cash_mf_eur` | Cash | `MF` | `EUR` | `cash` | `none` | 2 | | `cash_mg_mga` | Cash | `MG` | `MGA` | `cash` | `none` | 2 | | `cash_mh_usd` | Cash | `MH` | `USD` | `cash` | `none` | 2 | | `cash_ml_xof` | Cash | `ML` | `XOF` | `cash` | `none` | 2 | | `cash_mp_usd` | Cash | `MP` | `USD` | `cash` | `none` | 2 | +| `cash_mq_eur` | Cash | `MQ` | `EUR` | `cash` | `none` | 2 | | `cash_mr_mru` | Cash | `MR` | `MRU` | `cash` | `none` | 2 | +| `cash_ms_xcd` | Cash | `MS` | `XCD` | `cash` | `none` | 2 | | `cash_mu_mur` | Cash | `MU` | `MUR` | `cash` | `none` | 2 | | `airtel_money_mw_mwk` | Airtel Money Malawi | `MW` | `MWK` | `mobile_money` | `api` | 2 | | `airtel_money_till_mw_mwk` | Airtel Money till | `MW` | `MWK` | `mobile_money` | `manual` | 2 | @@ -122,6 +133,7 @@ The runtime registry is authoritative. This inventory is provided for human insp | `cash_wf_xpf` | Cash | `WF` | `XPF` | `cash` | `none` | 2 | | `cash_ws_wst` | Cash | `WS` | `WST` | `cash` | `none` | 2 | | `cash_uy_uyu` | Cash | `UY` | `UYU` | `cash` | `none` | 2 | +| `cash_vc_xcd` | Cash | `VC` | `XCD` | `cash` | `none` | 2 | | `cash_ve_ves` | Cash | `VE` | `VES` | `cash` | `none` | 2 | | `cash_yt_eur` | Cash | `YT` | `EUR` | `cash` | `none` | 2 | | `payshap_shapid_za_zar` | PayShap ShapID | `ZA` | `ZAR` | `bank` | `manual` | 1 | diff --git a/docs/generated/registry.json b/docs/generated/registry.json index 84089ce..dfa8e05 100644 --- a/docs/generated/registry.json +++ b/docs/generated/registry.json @@ -1,4 +1,38 @@ [ + { + "id": "cash_ag_xcd", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "AG", "currency": "XCD" } + }, + { + "id": "cash_ai_xcd", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "AI", "currency": "XCD" } + }, { "id": "cash_ao_aoa", "version": 2, @@ -101,6 +135,23 @@ "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], "network": { "id": "cash", "label": "Cash", "country": "BJ", "currency": "XOF" } }, + { + "id": "cash_bl_eur", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "BL", "currency": "EUR" } + }, { "id": "cash_bm_bmd", "version": 2, @@ -373,6 +424,23 @@ "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], "network": { "id": "cash", "label": "Cash", "country": "DJ", "currency": "DJF" } }, + { + "id": "cash_dm_xcd", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "DM", "currency": "XCD" } + }, { "id": "cash_dz_dzd", "version": 2, @@ -614,6 +682,23 @@ "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], "network": { "id": "cash", "label": "Cash", "country": "GB", "currency": "GBP" } }, + { + "id": "cash_gd_xcd", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "GD", "currency": "XCD" } + }, { "id": "cash_gf_eur", "version": 2, @@ -699,6 +784,23 @@ "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], "network": { "id": "cash", "label": "Cash", "country": "GN", "currency": "GNF" } }, + { + "id": "cash_gp_eur", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "GP", "currency": "EUR" } + }, { "id": "cash_gq_xaf", "version": 2, @@ -1162,6 +1264,40 @@ "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], "network": { "id": "cash", "label": "Cash", "country": "KM", "currency": "KMF" } }, + { + "id": "cash_kn_xcd", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "KN", "currency": "XCD" } + }, + { + "id": "cash_lc_xcd", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "LC", "currency": "XCD" } + }, { "id": "cash_lr_lrd", "version": 2, @@ -1264,6 +1400,23 @@ "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], "network": { "id": "cash", "label": "Cash", "country": "MA", "currency": "MAD" } }, + { + "id": "cash_mf_eur", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "MF", "currency": "EUR" } + }, { "id": "cash_mg_mga", "version": 2, @@ -1332,6 +1485,23 @@ "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], "network": { "id": "cash", "label": "Cash", "country": "MP", "currency": "USD" } }, + { + "id": "cash_mq_eur", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "MQ", "currency": "EUR" } + }, { "id": "cash_mr_mru", "version": 2, @@ -1349,6 +1519,23 @@ "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], "network": { "id": "cash", "label": "Cash", "country": "MR", "currency": "MRU" } }, + { + "id": "cash_ms_xcd", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "MS", "currency": "XCD" } + }, { "id": "cash_mu_mur", "version": 2, @@ -2349,6 +2536,23 @@ "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], "network": { "id": "cash", "label": "Cash", "country": "UY", "currency": "UYU" } }, + { + "id": "cash_vc_xcd", + "version": 2, + "display": { + "label": "Cash", + "shortLabel": "Cash", + "description": "In-person cash settlement. Cash has no structured payment fields and is not automatable.", + "icon": "cash", + "group": "cash" + }, + "support": { "automation": "none" }, + "fields": [], + "detailRows": [], + "instructions": { "payer": ["Exchange cash in person and keep local receipt evidence when required."] }, + "evidence": [{ "key": "receiptNote", "label": "Receipt note", "type": "text", "required": false }], + "network": { "id": "cash", "label": "Cash", "country": "VC", "currency": "XCD" } + }, { "id": "cash_ve_ves", "version": 2,