@adonis-agora/payments 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2375 -0
- package/dist/assets/spa/assets/index-B7rU8eIL.css +2 -0
- package/dist/assets/spa/assets/index-BcM2VH5k.js +10 -0
- package/dist/assets/spa/assets/index-BcM2VH5k.js.map +1 -0
- package/dist/assets/spa/index.html +20 -0
- package/dist/commands/main.d.ts +4 -3
- package/dist/commands/main.d.ts.map +1 -1
- package/dist/commands/main.js +9 -2
- package/dist/commands/main.js.map +1 -1
- package/dist/commands/make_billable.d.ts.map +1 -1
- package/dist/commands/make_billable.js +1 -1
- package/dist/commands/make_billable.js.map +1 -1
- package/dist/commands/make_webhook_handler.d.ts.map +1 -1
- package/dist/commands/make_webhook_handler.js +1 -1
- package/dist/commands/make_webhook_handler.js.map +1 -1
- package/dist/commands/payments_health.d.ts +31 -0
- package/dist/commands/payments_health.d.ts.map +1 -0
- package/dist/commands/payments_health.js +113 -0
- package/dist/commands/payments_health.js.map +1 -0
- package/dist/commands/payments_sync.d.ts +18 -4
- package/dist/commands/payments_sync.d.ts.map +1 -1
- package/dist/commands/payments_sync.js +136 -40
- package/dist/commands/payments_sync.js.map +1 -1
- package/dist/commands/payments_webhook.d.ts.map +1 -1
- package/dist/commands/payments_webhook.js.map +1 -1
- package/dist/configure.d.ts +12 -5
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +18 -5
- package/dist/configure.js.map +1 -1
- package/dist/providers/dashboard_provider.d.ts +97 -0
- package/dist/providers/dashboard_provider.d.ts.map +1 -0
- package/dist/providers/dashboard_provider.js +430 -0
- package/dist/providers/dashboard_provider.js.map +1 -0
- package/dist/providers/payments_client_provider.d.ts +41 -0
- package/dist/providers/payments_client_provider.d.ts.map +1 -0
- package/dist/providers/payments_client_provider.js +95 -0
- package/dist/providers/payments_client_provider.js.map +1 -0
- package/dist/providers/payments_provider.d.ts +35 -0
- package/dist/providers/payments_provider.d.ts.map +1 -1
- package/dist/providers/payments_provider.js +250 -36
- package/dist/providers/payments_provider.js.map +1 -1
- package/dist/src/billing/billing_health.d.ts +85 -0
- package/dist/src/billing/billing_health.d.ts.map +1 -0
- package/dist/src/billing/billing_health.js +155 -0
- package/dist/src/billing/billing_health.js.map +1 -0
- package/dist/src/billing/billing_overview.d.ts +4 -3
- package/dist/src/billing/billing_overview.d.ts.map +1 -1
- package/dist/src/billing/billing_overview.js +14 -5
- package/dist/src/billing/billing_overview.js.map +1 -1
- package/dist/src/billing/billing_store.d.ts +634 -5
- package/dist/src/billing/billing_store.d.ts.map +1 -1
- package/dist/src/billing/billing_store.js +18 -1
- package/dist/src/billing/billing_store.js.map +1 -1
- package/dist/src/billing/index.d.ts +4 -3
- package/dist/src/billing/index.d.ts.map +1 -1
- package/dist/src/billing/index.js +2 -1
- package/dist/src/billing/index.js.map +1 -1
- package/dist/src/billing/list_query.d.ts +16 -0
- package/dist/src/billing/list_query.d.ts.map +1 -0
- package/dist/src/billing/list_query.js +28 -0
- package/dist/src/billing/list_query.js.map +1 -0
- package/dist/src/billing/lucid_billing_store.d.ts +122 -4
- package/dist/src/billing/lucid_billing_store.d.ts.map +1 -1
- package/dist/src/billing/lucid_billing_store.js +811 -13
- package/dist/src/billing/lucid_billing_store.js.map +1 -1
- package/dist/src/billing/mixins/index.d.ts +5 -2
- package/dist/src/billing/mixins/index.d.ts.map +1 -1
- package/dist/src/billing/mixins/index.js +5 -2
- package/dist/src/billing/mixins/index.js.map +1 -1
- package/dist/src/billing/mixins/with_audit_event.d.ts +48 -0
- package/dist/src/billing/mixins/with_audit_event.d.ts.map +1 -0
- package/dist/src/billing/mixins/with_audit_event.js +77 -0
- package/dist/src/billing/mixins/with_audit_event.js.map +1 -0
- package/dist/src/billing/mixins/with_billable.d.ts.map +1 -1
- package/dist/src/billing/mixins/with_customer.d.ts +39 -0
- package/dist/src/billing/mixins/with_customer.d.ts.map +1 -0
- package/dist/src/billing/mixins/with_customer.js +68 -0
- package/dist/src/billing/mixins/with_customer.js.map +1 -0
- package/dist/src/billing/mixins/with_dispute.d.ts +68 -0
- package/dist/src/billing/mixins/with_dispute.d.ts.map +1 -0
- package/dist/src/billing/mixins/with_dispute.js +83 -0
- package/dist/src/billing/mixins/with_dispute.js.map +1 -0
- package/dist/src/billing/mixins/with_payment.d.ts +42 -0
- package/dist/src/billing/mixins/with_payment.d.ts.map +1 -1
- package/dist/src/billing/mixins/with_payment.js +29 -3
- package/dist/src/billing/mixins/with_payment.js.map +1 -1
- package/dist/src/billing/mixins/with_subscription.d.ts +7 -0
- package/dist/src/billing/mixins/with_subscription.d.ts.map +1 -1
- package/dist/src/billing/mixins/with_subscription.js +15 -1
- package/dist/src/billing/mixins/with_subscription.js.map +1 -1
- package/dist/src/billing/mixins/with_usage_event.d.ts +7 -0
- package/dist/src/billing/mixins/with_usage_event.d.ts.map +1 -1
- package/dist/src/billing/mixins/with_usage_event.js +15 -1
- package/dist/src/billing/mixins/with_usage_event.js.map +1 -1
- package/dist/src/billing/mixins/with_webhook_event.d.ts +18 -0
- package/dist/src/billing/mixins/with_webhook_event.d.ts.map +1 -1
- package/dist/src/billing/mixins/with_webhook_event.js +18 -1
- package/dist/src/billing/mixins/with_webhook_event.js.map +1 -1
- package/dist/src/billing/resolve_dispatch.d.ts +22 -0
- package/dist/src/billing/resolve_dispatch.d.ts.map +1 -0
- package/dist/src/billing/resolve_dispatch.js +44 -0
- package/dist/src/billing/resolve_dispatch.js.map +1 -0
- package/dist/src/billing/resolve_store.d.ts +18 -0
- package/dist/src/billing/resolve_store.d.ts.map +1 -0
- package/dist/src/billing/resolve_store.js +35 -0
- package/dist/src/billing/resolve_store.js.map +1 -0
- package/dist/src/billing/schema.d.ts +108 -0
- package/dist/src/billing/schema.d.ts.map +1 -0
- package/dist/src/billing/schema.js +350 -0
- package/dist/src/billing/schema.js.map +1 -0
- package/dist/src/billing/webhook_dispatcher.d.ts +95 -16
- package/dist/src/billing/webhook_dispatcher.d.ts.map +1 -1
- package/dist/src/billing/webhook_dispatcher.js +186 -33
- package/dist/src/billing/webhook_dispatcher.js.map +1 -1
- package/dist/src/billing/webhook_events.d.ts +67 -1
- package/dist/src/billing/webhook_events.d.ts.map +1 -1
- package/dist/src/billing/webhook_events.js +15 -0
- package/dist/src/billing/webhook_events.js.map +1 -1
- package/dist/src/billing/webhook_processor.d.ts.map +1 -1
- package/dist/src/billing/webhook_processor.js +325 -5
- package/dist/src/billing/webhook_processor.js.map +1 -1
- package/dist/src/client/define_config.d.ts +150 -0
- package/dist/src/client/define_config.d.ts.map +1 -0
- package/dist/src/client/define_config.js +98 -0
- package/dist/src/client/define_config.js.map +1 -0
- package/dist/src/client/handlers.d.ts +71 -0
- package/dist/src/client/handlers.d.ts.map +1 -0
- package/dist/src/client/handlers.js +119 -0
- package/dist/src/client/handlers.js.map +1 -0
- package/dist/src/client/index.d.ts +15 -0
- package/dist/src/client/index.d.ts.map +1 -0
- package/dist/src/client/index.js +12 -0
- package/dist/src/client/index.js.map +1 -0
- package/dist/src/client/statuses.d.ts +38 -0
- package/dist/src/client/statuses.d.ts.map +1 -0
- package/dist/src/client/statuses.js +42 -0
- package/dist/src/client/statuses.js.map +1 -0
- package/dist/src/dashboard/actions.d.ts +143 -0
- package/dist/src/dashboard/actions.d.ts.map +1 -0
- package/dist/src/dashboard/actions.js +112 -0
- package/dist/src/dashboard/actions.js.map +1 -0
- package/dist/src/dashboard/auth.d.ts +136 -0
- package/dist/src/dashboard/auth.d.ts.map +1 -0
- package/dist/src/dashboard/auth.js +152 -0
- package/dist/src/dashboard/auth.js.map +1 -0
- package/dist/src/dashboard/define_config.d.ts +80 -0
- package/dist/src/dashboard/define_config.d.ts.map +1 -0
- package/dist/src/dashboard/define_config.js +83 -0
- package/dist/src/dashboard/define_config.js.map +1 -0
- package/dist/src/dashboard/handlers.d.ts +281 -0
- package/dist/src/dashboard/handlers.d.ts.map +1 -0
- package/dist/src/dashboard/handlers.js +960 -0
- package/dist/src/dashboard/handlers.js.map +1 -0
- package/dist/src/dashboard/index.d.ts +17 -0
- package/dist/src/dashboard/index.d.ts.map +1 -0
- package/dist/src/dashboard/index.js +13 -0
- package/dist/src/dashboard/index.js.map +1 -0
- package/dist/src/dashboard/login_page.d.ts +23 -0
- package/dist/src/dashboard/login_page.d.ts.map +1 -0
- package/dist/src/dashboard/login_page.js +170 -0
- package/dist/src/dashboard/login_page.js.map +1 -0
- package/dist/src/dashboard/period.d.ts +31 -0
- package/dist/src/dashboard/period.d.ts.map +1 -0
- package/dist/src/dashboard/period.js +44 -0
- package/dist/src/dashboard/period.js.map +1 -0
- package/dist/src/dashboard/session_cookie.d.ts +42 -0
- package/dist/src/dashboard/session_cookie.d.ts.map +1 -0
- package/dist/src/dashboard/session_cookie.js +97 -0
- package/dist/src/dashboard/session_cookie.js.map +1 -0
- package/dist/src/dashboard/spa.d.ts +24 -0
- package/dist/src/dashboard/spa.d.ts.map +1 -0
- package/dist/src/dashboard/spa.js +52 -0
- package/dist/src/dashboard/spa.js.map +1 -0
- package/dist/src/define_config.d.ts +245 -10
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js +97 -1
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/diagnostics.d.ts +287 -7
- package/dist/src/diagnostics.d.ts.map +1 -1
- package/dist/src/diagnostics.js +317 -1
- package/dist/src/diagnostics.js.map +1 -1
- package/dist/src/driver.d.ts +139 -5
- package/dist/src/driver.d.ts.map +1 -1
- package/dist/src/drivers/abacate.d.ts +13 -3
- package/dist/src/drivers/abacate.d.ts.map +1 -1
- package/dist/src/drivers/abacate.js +112 -19
- package/dist/src/drivers/abacate.js.map +1 -1
- package/dist/src/drivers/adyen.d.ts +164 -0
- package/dist/src/drivers/adyen.d.ts.map +1 -0
- package/dist/src/drivers/adyen.js +678 -0
- package/dist/src/drivers/adyen.js.map +1 -0
- package/dist/src/drivers/asaas.d.ts +53 -3
- package/dist/src/drivers/asaas.d.ts.map +1 -1
- package/dist/src/drivers/asaas.js +364 -29
- package/dist/src/drivers/asaas.js.map +1 -1
- package/dist/src/drivers/dodo.d.ts +135 -0
- package/dist/src/drivers/dodo.d.ts.map +1 -0
- package/dist/src/drivers/dodo.js +864 -0
- package/dist/src/drivers/dodo.js.map +1 -0
- package/dist/src/drivers/efi.d.ts +98 -0
- package/dist/src/drivers/efi.d.ts.map +1 -0
- package/dist/src/drivers/efi.js +628 -0
- package/dist/src/drivers/efi.js.map +1 -0
- package/dist/src/drivers/infinitepay.d.ts +156 -0
- package/dist/src/drivers/infinitepay.d.ts.map +1 -0
- package/dist/src/drivers/infinitepay.js +321 -0
- package/dist/src/drivers/infinitepay.js.map +1 -0
- package/dist/src/drivers/lemonsqueezy.d.ts +125 -0
- package/dist/src/drivers/lemonsqueezy.d.ts.map +1 -0
- package/dist/src/drivers/lemonsqueezy.js +632 -0
- package/dist/src/drivers/lemonsqueezy.js.map +1 -0
- package/dist/src/drivers/mercadopago.d.ts +97 -0
- package/dist/src/drivers/mercadopago.d.ts.map +1 -0
- package/dist/src/drivers/mercadopago.js +844 -0
- package/dist/src/drivers/mercadopago.js.map +1 -0
- package/dist/src/drivers/mollie.d.ts +125 -0
- package/dist/src/drivers/mollie.d.ts.map +1 -0
- package/dist/src/drivers/mollie.js +812 -0
- package/dist/src/drivers/mollie.js.map +1 -0
- package/dist/src/drivers/paddle.d.ts +148 -0
- package/dist/src/drivers/paddle.d.ts.map +1 -0
- package/dist/src/drivers/paddle.js +738 -0
- package/dist/src/drivers/paddle.js.map +1 -0
- package/dist/src/drivers/pagarme.d.ts +97 -0
- package/dist/src/drivers/pagarme.d.ts.map +1 -0
- package/dist/src/drivers/pagarme.js +829 -0
- package/dist/src/drivers/pagarme.js.map +1 -0
- package/dist/src/drivers/pagbank.d.ts +57 -0
- package/dist/src/drivers/pagbank.d.ts.map +1 -0
- package/dist/src/drivers/pagbank.js +499 -0
- package/dist/src/drivers/pagbank.js.map +1 -0
- package/dist/src/drivers/paypal.d.ts +120 -0
- package/dist/src/drivers/paypal.d.ts.map +1 -0
- package/dist/src/drivers/paypal.js +891 -0
- package/dist/src/drivers/paypal.js.map +1 -0
- package/dist/src/drivers/polar.d.ts +118 -0
- package/dist/src/drivers/polar.d.ts.map +1 -0
- package/dist/src/drivers/polar.js +604 -0
- package/dist/src/drivers/polar.js.map +1 -0
- package/dist/src/drivers/razorpay.d.ts +103 -0
- package/dist/src/drivers/razorpay.d.ts.map +1 -0
- package/dist/src/drivers/razorpay.js +867 -0
- package/dist/src/drivers/razorpay.js.map +1 -0
- package/dist/src/drivers/shared.d.ts +33 -0
- package/dist/src/drivers/shared.d.ts.map +1 -0
- package/dist/src/drivers/shared.js +37 -0
- package/dist/src/drivers/shared.js.map +1 -0
- package/dist/src/drivers/square.d.ts +133 -0
- package/dist/src/drivers/square.d.ts.map +1 -0
- package/dist/src/drivers/square.js +905 -0
- package/dist/src/drivers/square.js.map +1 -0
- package/dist/src/drivers/stripe.d.ts +41 -4
- package/dist/src/drivers/stripe.d.ts.map +1 -1
- package/dist/src/drivers/stripe.js +823 -26
- package/dist/src/drivers/stripe.js.map +1 -1
- package/dist/src/drivers/woovi.d.ts +11 -4
- package/dist/src/drivers/woovi.d.ts.map +1 -1
- package/dist/src/drivers/woovi.js +162 -29
- package/dist/src/drivers/woovi.js.map +1 -1
- package/dist/src/ensure_customer.d.ts +34 -1
- package/dist/src/ensure_customer.d.ts.map +1 -1
- package/dist/src/ensure_customer.js +29 -4
- package/dist/src/ensure_customer.js.map +1 -1
- package/dist/src/hooks/webhook_handlers.d.ts.map +1 -1
- package/dist/src/hooks/webhook_handlers.js.map +1 -1
- package/dist/src/http.d.ts +37 -3
- package/dist/src/http.d.ts.map +1 -1
- package/dist/src/http.js +69 -5
- package/dist/src/http.js.map +1 -1
- package/dist/src/index.d.ts +54 -26
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +29 -12
- package/dist/src/index.js.map +1 -1
- package/dist/src/invoice/drivers/asaas.d.ts.map +1 -1
- package/dist/src/invoice/drivers/asaas.js.map +1 -1
- package/dist/src/invoice/drivers/enotas.d.ts.map +1 -1
- package/dist/src/invoice/drivers/enotas.js.map +1 -1
- package/dist/src/invoice/drivers/focus.d.ts.map +1 -1
- package/dist/src/invoice/drivers/focus.js.map +1 -1
- package/dist/src/invoice/drivers/plugnotas.d.ts.map +1 -1
- package/dist/src/invoice/drivers/plugnotas.js.map +1 -1
- package/dist/src/invoice/drivers/tecnospeed.d.ts.map +1 -1
- package/dist/src/invoice/drivers/tecnospeed.js.map +1 -1
- package/dist/src/invoice/emit_invoice.d.ts.map +1 -1
- package/dist/src/invoice/emit_invoice.js +31 -11
- package/dist/src/invoice/emit_invoice.js.map +1 -1
- package/dist/src/invoice/invoice_manager.d.ts.map +1 -1
- package/dist/src/money.d.ts +23 -5
- package/dist/src/money.d.ts.map +1 -1
- package/dist/src/money.js +72 -7
- package/dist/src/money.js.map +1 -1
- package/dist/src/payments_manager.d.ts +8 -1
- package/dist/src/payments_manager.d.ts.map +1 -1
- package/dist/src/payments_manager.js +168 -6
- package/dist/src/payments_manager.js.map +1 -1
- package/dist/src/services/main.d.ts +38 -0
- package/dist/src/services/main.d.ts.map +1 -1
- package/dist/src/services/main.js +130 -0
- package/dist/src/services/main.js.map +1 -1
- package/dist/src/telescope/index.d.ts +2 -0
- package/dist/src/telescope/index.d.ts.map +1 -1
- package/dist/src/telescope/index.js +1 -0
- package/dist/src/telescope/index.js.map +1 -1
- package/dist/src/telescope/payments_watcher.d.ts +10 -4
- package/dist/src/telescope/payments_watcher.d.ts.map +1 -1
- package/dist/src/telescope/payments_watcher.js +66 -14
- package/dist/src/telescope/payments_watcher.js.map +1 -1
- package/dist/src/telescope/register.d.ts +62 -0
- package/dist/src/telescope/register.d.ts.map +1 -0
- package/dist/src/telescope/register.js +48 -0
- package/dist/src/telescope/register.js.map +1 -0
- package/dist/src/testing/fake_payments.d.ts +62 -0
- package/dist/src/testing/fake_payments.d.ts.map +1 -0
- package/dist/src/testing/fake_payments.js +82 -0
- package/dist/src/testing/fake_payments.js.map +1 -0
- package/dist/src/testing/fake_payments_driver.d.ts +1 -1
- package/dist/src/testing/fake_payments_driver.d.ts.map +1 -1
- package/dist/src/testing/fake_payments_driver.js.map +1 -1
- package/dist/src/testing/in_memory_billing_store.d.ts +151 -2
- package/dist/src/testing/in_memory_billing_store.d.ts.map +1 -1
- package/dist/src/testing/in_memory_billing_store.js +517 -4
- package/dist/src/testing/in_memory_billing_store.js.map +1 -1
- package/dist/src/testing/index.d.ts +3 -2
- package/dist/src/testing/index.d.ts.map +1 -1
- package/dist/src/testing/index.js +1 -0
- package/dist/src/testing/index.js.map +1 -1
- package/dist/src/testing/mutable_clock.d.ts.map +1 -1
- package/dist/src/types.d.ts +161 -5
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +30 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/webhook_handlers.d.ts +96 -2
- package/dist/src/webhook_handlers.d.ts.map +1 -1
- package/dist/src/webhook_handlers.js +91 -10
- package/dist/src/webhook_handlers.js.map +1 -1
- package/dist/src/webhook_security.d.ts +94 -3
- package/dist/src/webhook_security.d.ts.map +1 -1
- package/dist/src/webhook_security.js +173 -9
- package/dist/src/webhook_security.js.map +1 -1
- package/dist/stubs/config/payments.stub +13 -0
- package/dist/stubs/config/payments_client.stub +42 -0
- package/dist/stubs/config/payments_dashboard.stub +38 -0
- package/dist/stubs/database/migrations/create_billing_tables.stub +35 -77
- package/dist/stubs/main.js.map +1 -1
- package/dist/stubs/make/webhook_handler/main.stub +29 -11
- package/package.json +67 -32
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AbacateDriverConfig } from '../define_config.js';
|
|
2
|
-
import type { ChargeInput, CheckoutInput, CreateCustomerInput, CreateSubscriptionInput, PaymentsDriver, UpdateCustomerInput, UpdateSubscriptionInput } from '../driver.js';
|
|
2
|
+
import type { ChargeInput, CheckoutInput, CreateCustomerInput, CreateSubscriptionInput, PaymentsDriver, UpdateCustomerInput, UpdateSubscriptionInput, WebhookVerificationState } from '../driver.js';
|
|
3
3
|
import type { EmitInvoiceContext } from '../invoice/emit_invoice.js';
|
|
4
4
|
import type { CheckoutSession, Customer, Invoice, Money, Payment, Refund, Subscription, WebhookEvent } from '../types.js';
|
|
5
5
|
/**
|
|
@@ -10,9 +10,10 @@ import type { CheckoutSession, Customer, Invoice, Money, Payment, Refund, Subscr
|
|
|
10
10
|
export declare class AbacateDriver implements PaymentsDriver {
|
|
11
11
|
#private;
|
|
12
12
|
readonly provider = "abacate";
|
|
13
|
-
readonly supportedMethods: readonly [
|
|
13
|
+
readonly supportedMethods: readonly ['pix', 'boleto', 'undefined'];
|
|
14
14
|
readonly capabilities: {
|
|
15
15
|
refunds: boolean;
|
|
16
|
+
invoices: boolean;
|
|
16
17
|
subscriptions: boolean;
|
|
17
18
|
};
|
|
18
19
|
constructor(ctx: EmitInvoiceContext, config?: AbacateDriverConfig);
|
|
@@ -21,7 +22,9 @@ export declare class AbacateDriver implements PaymentsDriver {
|
|
|
21
22
|
updateCustomer(customerId: string, input: UpdateCustomerInput): Promise<Customer>;
|
|
22
23
|
charge(input: ChargeInput): Promise<Payment>;
|
|
23
24
|
findPayment(gatewayId: string): Promise<Payment | null>;
|
|
24
|
-
refund(paymentGatewayId: string, _amount?: Money
|
|
25
|
+
refund(paymentGatewayId: string, _amount?: Money, options?: {
|
|
26
|
+
idempotencyKey?: string;
|
|
27
|
+
}): Promise<Refund>;
|
|
25
28
|
createCheckout(input: CheckoutInput): Promise<CheckoutSession>;
|
|
26
29
|
createSubscription(input: CreateSubscriptionInput): Promise<Subscription>;
|
|
27
30
|
cancelSubscription(subscriptionGatewayId: string, _options?: {
|
|
@@ -30,6 +33,13 @@ export declare class AbacateDriver implements PaymentsDriver {
|
|
|
30
33
|
findSubscription(gatewayId: string): Promise<Subscription | null>;
|
|
31
34
|
updateSubscription(subscriptionGatewayId: string, input: UpdateSubscriptionInput): Promise<Subscription>;
|
|
32
35
|
listInvoices(customerId: string): Promise<Invoice[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Whether a delivery to `POST /payments/webhook/:provider` can be authenticated.
|
|
38
|
+
*
|
|
39
|
+
* AbacatePay signs the body with the dashboard public key. Without it `parseWebhook` skips
|
|
40
|
+
* the HMAC check entirely and every POST to the route is accepted.
|
|
41
|
+
*/
|
|
42
|
+
get webhookVerification(): WebhookVerificationState;
|
|
33
43
|
parseWebhook(rawBody: string, headers: Record<string, string | string[] | undefined>): WebhookEvent;
|
|
34
44
|
}
|
|
35
45
|
//# sourceMappingURL=abacate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abacate.d.ts","sourceRoot":"","sources":["../../../src/drivers/abacate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"abacate.d.ts","sourceRoot":"","sources":["../../../src/drivers/abacate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM/D,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,OAAO,EACP,KAAK,EACL,OAAO,EACP,MAAM,EACN,YAAY,EACZ,YAAY,EACb,MAAM,aAAa,CAAC;AA+CrB;;;;GAIG;AACH,qBAAa,aAAc,YAAW,cAAc;;IAClD,QAAQ,CAAC,QAAQ,aAAa;IAE9B,QAAQ,CAAC,gBAAgB,YAAI,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAW;IACpE,QAAQ,CAAC,YAAY;QAAK,OAAO;QAAQ,QAAQ;QAAQ,aAAa;MAAS;IAO/E,YAAY,GAAG,EAAE,kBAAkB,EAAE,MAAM,GAAE,mBAAwB,EAapE;IAIK,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAWlE;IAEK,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAQ/D;IAEK,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAUtF;IAIK,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CA4BjD;IAmDK,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQ5D;IAEK,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE,KAAK,EACf,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,MAAM,CAAC,CAsBjB;IAIK,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAmCnE;IAIK,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgB9E;IAEK,kBAAkB,CACtB,qBAAqB,EAAE,MAAM,EAC7B,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GACnC,OAAO,CAAC,YAAY,CAAC,CAQvB;IAEK,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAUtE;IAEK,kBAAkB,CACtB,qBAAqB,EAAE,MAAM,EAC7B,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAcvB;IAIK,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAkBzD;IAID;;;;;OAKG;IACH,IAAI,mBAAmB,IAAI,wBAAwB,CAElD;IAED,YAAY,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,YAAY,CA4Bd;CA+KF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
1
2
|
import { publishPaymentDiagnostics, publishRefundDiagnostics, publishSubscriptionDiagnostics, } from '../diagnostics.js';
|
|
2
3
|
import { headerValue, httpRequest, isNotFound } from '../http.js';
|
|
3
4
|
import { emitInvoiceIfRequested } from '../invoice/emit_invoice.js';
|
|
4
|
-
import { fromDecimal, toDecimal } from '../money.js';
|
|
5
5
|
import { verifyHmacSignature } from '../webhook_security.js';
|
|
6
6
|
/**
|
|
7
7
|
* AbacatePay driver — Brazilian gateway for Pix and card payments with a developer-first
|
|
@@ -12,7 +12,7 @@ export class AbacateDriver {
|
|
|
12
12
|
provider = 'abacate';
|
|
13
13
|
// AbacatePay is Pix-first — no credit card.
|
|
14
14
|
supportedMethods = ['pix', 'boleto', 'undefined'];
|
|
15
|
-
capabilities = { refunds: true, subscriptions: true };
|
|
15
|
+
capabilities = { refunds: true, invoices: true, subscriptions: true };
|
|
16
16
|
#baseUrl;
|
|
17
17
|
#publicKey;
|
|
18
18
|
#invoiceCtx;
|
|
@@ -31,6 +31,7 @@ export class AbacateDriver {
|
|
|
31
31
|
}
|
|
32
32
|
// ── Customers ────────────────────────────────────────────────────────────────────────
|
|
33
33
|
async createCustomer(input) {
|
|
34
|
+
this.#refuseIdempotencyKey(input.idempotencyKey, 'createCustomer');
|
|
34
35
|
const data = await this.#request('/customer/create', {
|
|
35
36
|
method: 'POST',
|
|
36
37
|
body: {
|
|
@@ -125,10 +126,14 @@ export class AbacateDriver {
|
|
|
125
126
|
createdAt: new Date().toISOString(),
|
|
126
127
|
payload: data,
|
|
127
128
|
};
|
|
128
|
-
if (data.brCodeBase64)
|
|
129
|
+
if (data.brCodeBase64) {
|
|
130
|
+
result.pixQrCodeImage = data.brCodeBase64;
|
|
129
131
|
result.pixQrCode = data.brCodeBase64;
|
|
130
|
-
|
|
132
|
+
}
|
|
133
|
+
if (data.brCode) {
|
|
134
|
+
result.pixCode = data.brCode;
|
|
131
135
|
result.pixCopiaECola = data.brCode;
|
|
136
|
+
}
|
|
132
137
|
if (data.url)
|
|
133
138
|
result.hostedUrl = data.url;
|
|
134
139
|
return result;
|
|
@@ -144,7 +149,8 @@ export class AbacateDriver {
|
|
|
144
149
|
throw error;
|
|
145
150
|
}
|
|
146
151
|
}
|
|
147
|
-
async refund(paymentGatewayId, _amount) {
|
|
152
|
+
async refund(paymentGatewayId, _amount, options) {
|
|
153
|
+
this.#refuseIdempotencyKey(options?.idempotencyKey, 'refund');
|
|
148
154
|
const data = await this.#request(`/billing/refund/${paymentGatewayId}`, {
|
|
149
155
|
method: 'POST',
|
|
150
156
|
body: {},
|
|
@@ -154,7 +160,7 @@ export class AbacateDriver {
|
|
|
154
160
|
gatewayId: data.id,
|
|
155
161
|
provider: this.provider,
|
|
156
162
|
amount: {
|
|
157
|
-
amount: data.amount !== undefined ?
|
|
163
|
+
amount: data.amount !== undefined ? Math.round(data.amount) : 0,
|
|
158
164
|
currency: data.currency ?? 'brl',
|
|
159
165
|
},
|
|
160
166
|
status: 'succeeded',
|
|
@@ -172,7 +178,15 @@ export class AbacateDriver {
|
|
|
172
178
|
method: 'POST',
|
|
173
179
|
body: {
|
|
174
180
|
customerId: input.customerId,
|
|
175
|
-
|
|
181
|
+
// Centavos, straight through. AbacatePay documents it outright — "valores
|
|
182
|
+
// monetários são sempre em centavos (ex.: 10000 = R$ 100,00)" — which is the same
|
|
183
|
+
// integer minor unit this package uses, so there is nothing to convert.
|
|
184
|
+
//
|
|
185
|
+
// This ran `toDecimal` and created a checkout for **1/100 of the amount**: R$19,90
|
|
186
|
+
// went out as `19.9` and AbacatePay read 19 centavos. `charge()` on the neighbouring
|
|
187
|
+
// v2 endpoint always passed the integer through, so the driver disagreed with itself
|
|
188
|
+
// and the two paths were never compared.
|
|
189
|
+
amount: input.amount,
|
|
176
190
|
...(input.description !== undefined ? { description: input.description } : {}),
|
|
177
191
|
},
|
|
178
192
|
});
|
|
@@ -183,20 +197,24 @@ export class AbacateDriver {
|
|
|
183
197
|
url: data.url ?? '',
|
|
184
198
|
status: 'open',
|
|
185
199
|
amount: {
|
|
186
|
-
amount: data.amount !== undefined ?
|
|
200
|
+
amount: data.amount !== undefined ? Math.round(data.amount) : input.amount,
|
|
187
201
|
currency: data.currency ?? 'brl',
|
|
188
202
|
},
|
|
189
203
|
customerId: input.customerId,
|
|
190
|
-
...(data.pix?.copiaECola !== undefined
|
|
204
|
+
...(data.pix?.copiaECola !== undefined
|
|
205
|
+
? { pixCode: data.pix.copiaECola, pixCopiaECola: data.pix.copiaECola }
|
|
206
|
+
: {}),
|
|
191
207
|
};
|
|
192
208
|
}
|
|
193
209
|
// ── Subscriptions ────────────────────────────────────────────────────────────────────
|
|
194
210
|
async createSubscription(input) {
|
|
211
|
+
this.#refuseIdempotencyKey(input.idempotencyKey, 'createSubscription');
|
|
195
212
|
const data = await this.#request('/subscription/create', {
|
|
196
213
|
method: 'POST',
|
|
197
214
|
body: {
|
|
198
215
|
customerId: input.customerId,
|
|
199
|
-
|
|
216
|
+
// Centavos — see the note in `createCheckout`.
|
|
217
|
+
...(input.amount !== undefined ? { amount: input.amount } : {}),
|
|
200
218
|
frequency: input.cycle ?? 'MONTHLY',
|
|
201
219
|
...(input.startDate !== undefined ? { nextBillingAt: input.startDate } : {}),
|
|
202
220
|
...(input.description !== undefined ? { description: input.description } : {}),
|
|
@@ -224,10 +242,12 @@ export class AbacateDriver {
|
|
|
224
242
|
}
|
|
225
243
|
}
|
|
226
244
|
async updateSubscription(subscriptionGatewayId, input) {
|
|
245
|
+
this.#refuseIdempotencyKey(input.idempotencyKey, 'updateSubscription');
|
|
227
246
|
const data = await this.#request(`/subscription/update/${subscriptionGatewayId}`, {
|
|
228
247
|
method: 'PATCH',
|
|
229
248
|
body: {
|
|
230
|
-
|
|
249
|
+
// Centavos — see the note in `createCheckout`.
|
|
250
|
+
...(input.amount !== undefined ? { amount: input.amount } : {}),
|
|
231
251
|
...(input.description !== undefined ? { description: input.description } : {}),
|
|
232
252
|
},
|
|
233
253
|
});
|
|
@@ -243,7 +263,7 @@ export class AbacateDriver {
|
|
|
243
263
|
customerId,
|
|
244
264
|
status: billing.status === 'PAID' ? 'paid' : billing.status === 'CANCELED' ? 'void' : 'open',
|
|
245
265
|
amount: {
|
|
246
|
-
amount: billing.amount !== undefined ?
|
|
266
|
+
amount: billing.amount !== undefined ? Math.round(billing.amount) : 0,
|
|
247
267
|
currency: billing.currency ?? 'brl',
|
|
248
268
|
},
|
|
249
269
|
createdAt: billing.createdAt ?? new Date().toISOString(),
|
|
@@ -252,6 +272,15 @@ export class AbacateDriver {
|
|
|
252
272
|
}));
|
|
253
273
|
}
|
|
254
274
|
// ── Webhooks ─────────────────────────────────────────────────────────────────────────
|
|
275
|
+
/**
|
|
276
|
+
* Whether a delivery to `POST /payments/webhook/:provider` can be authenticated.
|
|
277
|
+
*
|
|
278
|
+
* AbacatePay signs the body with the dashboard public key. Without it `parseWebhook` skips
|
|
279
|
+
* the HMAC check entirely and every POST to the route is accepted.
|
|
280
|
+
*/
|
|
281
|
+
get webhookVerification() {
|
|
282
|
+
return this.#publicKey !== undefined ? 'configured' : 'unconfigured';
|
|
283
|
+
}
|
|
255
284
|
parseWebhook(rawBody, headers) {
|
|
256
285
|
// AbacatePay signs the raw body with HMAC-SHA256 (base64) in `x-webhook-signature`,
|
|
257
286
|
// keyed by the public key from the dashboard. Strict when a key is configured.
|
|
@@ -264,14 +293,43 @@ export class AbacateDriver {
|
|
|
264
293
|
const payload = JSON.parse(rawBody);
|
|
265
294
|
const event = payload.event ?? 'unknown';
|
|
266
295
|
return {
|
|
267
|
-
id
|
|
296
|
+
// A CONTENT hash, never a random id. A payload with no id used to get a fresh
|
|
297
|
+
// `Math.random()` on every delivery, so the ledger saw each redelivery as a new
|
|
298
|
+
// event and processed it again — the exact double-grant the ledger exists to stop.
|
|
299
|
+
id: payload.id ??
|
|
300
|
+
`${event}-${createHash('sha256').update(rawBody, 'utf8').digest('hex').slice(0, 32)}`,
|
|
268
301
|
provider: this.provider,
|
|
269
302
|
type: this.#mapWebhookType(event),
|
|
270
303
|
createdAt: new Date().toISOString(),
|
|
271
|
-
data: payload.data
|
|
304
|
+
data: this.#mapWebhookData(payload.data),
|
|
272
305
|
raw: payload,
|
|
273
306
|
};
|
|
274
307
|
}
|
|
308
|
+
/**
|
|
309
|
+
* The normalized shape the built-in sync needs (`gatewayId`, `amount`, `currency`).
|
|
310
|
+
*
|
|
311
|
+
* This used to hand the processor AbacatePay's raw `data`, which its shape guard
|
|
312
|
+
* rejected — so every AbacatePay webhook was ledgered, threw `Malformed`, and was retried
|
|
313
|
+
* forever while the billing tables never learned the payment was paid. `raw` still
|
|
314
|
+
* carries the original.
|
|
315
|
+
*/
|
|
316
|
+
#mapWebhookData(data) {
|
|
317
|
+
if (data === undefined)
|
|
318
|
+
return {};
|
|
319
|
+
const billing = (data.billing ?? data);
|
|
320
|
+
if (billing?.id === undefined)
|
|
321
|
+
return data;
|
|
322
|
+
const payment = this.#mapPayment(billing);
|
|
323
|
+
return {
|
|
324
|
+
gatewayId: payment.gatewayId,
|
|
325
|
+
amount: payment.amount.amount,
|
|
326
|
+
currency: payment.amount.currency,
|
|
327
|
+
...(payment.customerId !== undefined ? { customerId: payment.customerId } : {}),
|
|
328
|
+
...(typeof billing.externalId === 'string'
|
|
329
|
+
? { externalReference: billing.externalId }
|
|
330
|
+
: {}),
|
|
331
|
+
};
|
|
332
|
+
}
|
|
275
333
|
// ── Mappers ──────────────────────────────────────────────────────────────────────────
|
|
276
334
|
#mapCustomer(data) {
|
|
277
335
|
return {
|
|
@@ -288,7 +346,7 @@ export class AbacateDriver {
|
|
|
288
346
|
gatewayId: data.id,
|
|
289
347
|
provider: this.provider,
|
|
290
348
|
amount: {
|
|
291
|
-
amount: data.amount !== undefined ?
|
|
349
|
+
amount: data.amount !== undefined ? Math.round(data.amount) : 0,
|
|
292
350
|
currency: data.currency ?? 'brl',
|
|
293
351
|
},
|
|
294
352
|
status: data.status === 'PAID' || data.status === 'COMPLETED'
|
|
@@ -303,10 +361,14 @@ export class AbacateDriver {
|
|
|
303
361
|
};
|
|
304
362
|
if (customerId !== undefined)
|
|
305
363
|
result.customerId = customerId;
|
|
306
|
-
if (data.pix?.qrCode !== undefined)
|
|
364
|
+
if (data.pix?.qrCode !== undefined) {
|
|
365
|
+
result.pixQrCodeImage = data.pix.qrCode;
|
|
307
366
|
result.pixQrCode = data.pix.qrCode;
|
|
308
|
-
|
|
367
|
+
}
|
|
368
|
+
if (data.pix?.copiaECola !== undefined) {
|
|
369
|
+
result.pixCode = data.pix.copiaECola;
|
|
309
370
|
result.pixCopiaECola = data.pix.copiaECola;
|
|
371
|
+
}
|
|
310
372
|
if (data.url !== undefined)
|
|
311
373
|
result.hostedUrl = data.url;
|
|
312
374
|
if (data.paidAt !== undefined)
|
|
@@ -328,7 +390,7 @@ export class AbacateDriver {
|
|
|
328
390
|
status: statusMap[data.status] ?? 'active',
|
|
329
391
|
planId: data.frequency ?? '',
|
|
330
392
|
amount: {
|
|
331
|
-
amount: data.amount !== undefined ?
|
|
393
|
+
amount: data.amount !== undefined ? Math.round(data.amount) : 0,
|
|
332
394
|
currency: 'brl',
|
|
333
395
|
},
|
|
334
396
|
...(data.nextBillingAt !== undefined ? { endsAt: data.nextBillingAt } : {}),
|
|
@@ -344,9 +406,24 @@ export class AbacateDriver {
|
|
|
344
406
|
case 'checkout.refunded':
|
|
345
407
|
case 'transparent.refunded':
|
|
346
408
|
return 'payment.refunded';
|
|
409
|
+
// "Disputa/chargeback aberta em um checkout" / "…em um pagamento transparente" — the
|
|
410
|
+
// dispute is OPENED here. It used to arrive as `payment.failed`, which files a
|
|
411
|
+
// chargeback as a payment that never went through: the row stopped saying `paid`, but
|
|
412
|
+
// it said the wrong thing, and the customer whose access has to be reconsidered was
|
|
413
|
+
// never flagged.
|
|
414
|
+
//
|
|
415
|
+
// These two are AbacatePay's ENTIRE dispute vocabulary. Its published webhook event
|
|
416
|
+
// list has no fraud alert, no retrieval request, no "chargeback incoming" — so there
|
|
417
|
+
// is no `payment.dispute_warning` to map — and no won/lost/reversed event either, so
|
|
418
|
+
// no `payment.dispute_closed`: the outcome never reaches you as a webhook at all.
|
|
419
|
+
//
|
|
420
|
+
// AbacatePay also does not say whether the funds are withdrawn when this fires, and
|
|
421
|
+
// publishes no payload example for it and no response deadline anywhere. The mapping
|
|
422
|
+
// therefore stays where it is rather than being demoted to a warning on a guess: a
|
|
423
|
+
// filed dispute is what `payment.disputed` names. See the provider docs page.
|
|
347
424
|
case 'checkout.disputed':
|
|
348
425
|
case 'transparent.disputed':
|
|
349
|
-
return 'payment.
|
|
426
|
+
return 'payment.disputed';
|
|
350
427
|
case 'subscription.completed':
|
|
351
428
|
return 'subscription.created';
|
|
352
429
|
case 'subscription.renewed':
|
|
@@ -357,6 +434,22 @@ export class AbacateDriver {
|
|
|
357
434
|
return event;
|
|
358
435
|
}
|
|
359
436
|
}
|
|
437
|
+
/**
|
|
438
|
+
* AbacatePay documents no idempotency mechanism — the only request header on any
|
|
439
|
+
* endpoint is `Authorization`, and its own guidance mentions idempotency solely for
|
|
440
|
+
* consuming webhooks (dedupe on the event `id`). Accepting the key and dropping it
|
|
441
|
+
* would turn a caller's retry guarantee into a second refund or a second subscription,
|
|
442
|
+
* so the driver refuses it instead.
|
|
443
|
+
*
|
|
444
|
+
* `charge()` is not an exception to this: there `idempotencyKey` has never meant
|
|
445
|
+
* deduplication, it is a legacy fallback for `externalReference` (sent as the
|
|
446
|
+
* transparent checkout's `externalId`) and is documented as such.
|
|
447
|
+
*/
|
|
448
|
+
#refuseIdempotencyKey(key, operation) {
|
|
449
|
+
if (key === undefined)
|
|
450
|
+
return;
|
|
451
|
+
throw new Error(`[payments] AbacatePay has no idempotency mechanism, so \`${operation}\` cannot honour an idempotencyKey — no AbacatePay endpoint documents an idempotency header or field. Deduplicate before you call.`);
|
|
452
|
+
}
|
|
360
453
|
#mapMethod(method) {
|
|
361
454
|
switch (method) {
|
|
362
455
|
case 'pix':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abacate.js","sourceRoot":"","sources":["../../../src/drivers/abacate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abacate.js","sourceRoot":"","sources":["../../../src/drivers/abacate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import type { ChargeInput, CheckoutInput, CreateCustomerInput, CreateSubscriptionInput, PaymentsDriver, UpdateCustomerInput, UpdateSubscriptionInput, WebhookVerificationState } from '../driver.js';
|
|
2
|
+
import type { EmitInvoiceContext } from '../invoice/emit_invoice.js';
|
|
3
|
+
import type { CheckoutSession, Customer, Dispute, DisputeEvidence, Invoice, Money, Payment, Refund, Subscription, WebhookEvent } from '../types.js';
|
|
4
|
+
/** Config for `payments.adyen()`. Multi-currency and merchant-scoped, so both are required. */
|
|
5
|
+
export interface AdyenDriverConfig {
|
|
6
|
+
/** Adyen API key, sent as `X-API-Key`. Defaults to `env.get('ADYEN_API_KEY')`. */
|
|
7
|
+
apiKey?: string;
|
|
8
|
+
/**
|
|
9
|
+
* The merchant account every Checkout call is scoped to (Customer Area → the account
|
|
10
|
+
* code, not the company account). Defaults to `env.get('ADYEN_MERCHANT_ACCOUNT')`.
|
|
11
|
+
*/
|
|
12
|
+
merchantAccount?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Currency for calls that don't name one (lowercase ISO 4217). **Required** — Adyen
|
|
15
|
+
* charges whatever currency you send it, so a default would be a guess at the country
|
|
16
|
+
* the app bills in, and the wrong guess still takes money.
|
|
17
|
+
*/
|
|
18
|
+
currency: string;
|
|
19
|
+
/**
|
|
20
|
+
* The webhook HMAC key generated in the Customer Area — a **hex** string. Defaults to
|
|
21
|
+
* `env.get('ADYEN_HMAC_KEY')`. When set, a webhook without a valid
|
|
22
|
+
* `additionalData.hmacSignature` is rejected.
|
|
23
|
+
*/
|
|
24
|
+
hmacKey?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Live only: your account's URL prefix (Customer Area → Developers → API URLs), the
|
|
27
|
+
* `{prefix}` in `https://{prefix}-checkout-live.adyenpayments.com`. Defaults to
|
|
28
|
+
* `env.get('ADYEN_LIVE_URL_PREFIX')`.
|
|
29
|
+
*/
|
|
30
|
+
liveUrlPrefix?: string;
|
|
31
|
+
/** Which Adyen environment to talk to. Defaults to test unless `NODE_ENV=production`. */
|
|
32
|
+
environment?: 'test' | 'live';
|
|
33
|
+
/**
|
|
34
|
+
* Whether the merchant account captures automatically (Adyen's default) or waits for a
|
|
35
|
+
* capture request. Defaults to `'automatic'`, which is what a fresh Adyen account does.
|
|
36
|
+
*
|
|
37
|
+
* This has to be configuration because the Checkout API will not tell you: `captureDelay`
|
|
38
|
+
* lives on the **Management** API (`GET /merchants/{merchantId}`), which this driver does
|
|
39
|
+
* not talk to, and the `/payments` response is identical in both modes. It changes what
|
|
40
|
+
* `Authorised` means — settled money, or a hold that expires — so the driver asks rather
|
|
41
|
+
* than guessing, and the wrong guess is the expensive kind: a hold read as revenue.
|
|
42
|
+
*/
|
|
43
|
+
captureMode?: 'automatic' | 'manual';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Adyen driver — Checkout API v71, `X-API-Key` auth, merchant-account scoped.
|
|
47
|
+
*
|
|
48
|
+
* Adyen is a processor, not a billing system, and this driver refuses rather than
|
|
49
|
+
* pretends where the two disagree: there is no customer resource (a `shopperReference` is
|
|
50
|
+
* a string you invent), no endpoint that reads a payment back by its `pspReference`, and
|
|
51
|
+
* no subscription object at all — recurring billing at Adyen is you charging a stored
|
|
52
|
+
* token on your own schedule. Money is already an integer in minor units
|
|
53
|
+
* (`{ "value": 1990, "currency": "EUR" }`), so nothing here converts it.
|
|
54
|
+
*/
|
|
55
|
+
export declare class AdyenDriver implements PaymentsDriver {
|
|
56
|
+
#private;
|
|
57
|
+
readonly provider = "adyen";
|
|
58
|
+
/**
|
|
59
|
+
* `charge()` sends a stored card token (`paymentMethod.type: 'scheme'`), and
|
|
60
|
+
* `createCheckout()` opens a Pay by Link page where the shopper picks. Adyen's other
|
|
61
|
+
* ~100 local methods only reach a shopper through Drop-in/Components, which this driver
|
|
62
|
+
* does not front, and the `PaymentMethodName` union has no name for them anyway.
|
|
63
|
+
*/
|
|
64
|
+
readonly supportedMethods: readonly ['credit_card', 'undefined'];
|
|
65
|
+
/**
|
|
66
|
+
* No invoice resource in the Checkout API, and no subscription resource anywhere.
|
|
67
|
+
*
|
|
68
|
+
* `disputes: false` is deliberate and is NOT "Adyen has no dispute API" — it has one,
|
|
69
|
+
* Defend Disputes v30, and this driver cannot honestly drive it through the shared
|
|
70
|
+
* contract: v30 has no endpoint that reads a dispute back, and a defense is a
|
|
71
|
+
* scheme-specific `defenseReasonCode` plus base64 documents, none of which
|
|
72
|
+
* `DisputeEvidence` can carry. `findDispute` and `submitDisputeEvidence` below say so
|
|
73
|
+
* in full rather than leaving a caller with a missing method.
|
|
74
|
+
*/
|
|
75
|
+
readonly capabilities: {
|
|
76
|
+
disputes: boolean;
|
|
77
|
+
refunds: boolean;
|
|
78
|
+
invoices: boolean;
|
|
79
|
+
subscriptions: boolean;
|
|
80
|
+
};
|
|
81
|
+
constructor(ctx: EmitInvoiceContext, config: AdyenDriverConfig);
|
|
82
|
+
createCustomer(_input: CreateCustomerInput): Promise<Customer>;
|
|
83
|
+
findCustomer(_customerId: string): Promise<Customer | null>;
|
|
84
|
+
updateCustomer(_customerId: string, _input: UpdateCustomerInput): Promise<Customer>;
|
|
85
|
+
charge(input: ChargeInput): Promise<Payment>;
|
|
86
|
+
findPayment(_gatewayId: string): Promise<Payment | null>;
|
|
87
|
+
refund(paymentGatewayId: string, amount?: Money, options?: {
|
|
88
|
+
idempotencyKey?: string;
|
|
89
|
+
}): Promise<Refund>;
|
|
90
|
+
createCheckout(input: CheckoutInput): Promise<CheckoutSession>;
|
|
91
|
+
createSubscription(_input: CreateSubscriptionInput): Promise<Subscription>;
|
|
92
|
+
cancelSubscription(_subscriptionGatewayId: string, _options?: {
|
|
93
|
+
atPeriodEnd?: boolean;
|
|
94
|
+
}): Promise<Subscription>;
|
|
95
|
+
updateSubscription(_subscriptionGatewayId: string, _input: UpdateSubscriptionInput): Promise<Subscription>;
|
|
96
|
+
findSubscription(_gatewayId: string): Promise<Subscription | null>;
|
|
97
|
+
listInvoices(_customerId: string): Promise<Invoice[]>;
|
|
98
|
+
/**
|
|
99
|
+
* Adyen has no endpoint that reads a dispute back, so this refuses instead of inventing
|
|
100
|
+
* one.
|
|
101
|
+
*
|
|
102
|
+
* Defend Disputes v30 is five POSTs — `retrieveApplicableDefenseReasons`,
|
|
103
|
+
* `supplyDefenseDocument`, `defendDispute`, `acceptDispute`,
|
|
104
|
+
* `deleteDisputeDefenseDocument` — and every one of them is an action. None returns the
|
|
105
|
+
* dispute's status, amount, reason or deadline, which means a `Dispute` built here would
|
|
106
|
+
* have those fields invented.
|
|
107
|
+
*/
|
|
108
|
+
findDispute(_disputeGatewayId: string): Promise<Dispute | null>;
|
|
109
|
+
/**
|
|
110
|
+
* A defense at Adyen cannot be expressed as a {@link DisputeEvidence}, so this refuses
|
|
111
|
+
* and says what to call instead.
|
|
112
|
+
*
|
|
113
|
+
* Adyen's flow is `retrieveApplicableDefenseReasons` → `supplyDefenseDocument` (once per
|
|
114
|
+
* document) → `defendDispute`, and it turns on a **`defenseReasonCode`** the scheme
|
|
115
|
+
* defines per reason code — there is no free-text evidence object anywhere in it. The
|
|
116
|
+
* shared shape has no field for that code, no way to carry a document's bytes
|
|
117
|
+
* (`documentIds` are ids Adyen never issues; v30 takes base64 `content` plus
|
|
118
|
+
* `contentType` and `defenseDocumentTypeCode` inline), and no home at all for
|
|
119
|
+
* `explanation`, `receiptUrl` or the customer fields. Mapping it anyway would drop the
|
|
120
|
+
* defense reason, which is the entire defense.
|
|
121
|
+
*
|
|
122
|
+
* Two more things a mapping would have to paper over, both real: the API lives on a
|
|
123
|
+
* different host from Checkout v71 (`ca-{test,live}.adyen.com/ca/services/DisputeService
|
|
124
|
+
* /v30`, which this driver's `#request` does not reach), and it needs an API credential
|
|
125
|
+
* with the "API dispute management" role, which the Checkout key usually is not.
|
|
126
|
+
*/
|
|
127
|
+
submitDisputeEvidence(_disputeGatewayId: string, _evidence: DisputeEvidence): Promise<Dispute>;
|
|
128
|
+
/**
|
|
129
|
+
* Verify Adyen's HMAC and normalize the delivery into one event per notification item.
|
|
130
|
+
*
|
|
131
|
+
* The signature covers eight fields of the notification item, colon-joined in a fixed
|
|
132
|
+
* order with empty strings for the absent ones, HMAC-SHA256 under the **hex-decoded**
|
|
133
|
+
* Customer Area key, base64-encoded, and delivered inside the item's `additionalData`.
|
|
134
|
+
* Adyen's own Node, PHP, Java and Python libraries all join those fields *without*
|
|
135
|
+
* escaping — the `\` → `\\`, `:` → `\:` rule belongs to the classic HPP/dictionary
|
|
136
|
+
* signature, not to this one — so this does the same, and a merchant reference
|
|
137
|
+
* containing a colon signs identically here and at Adyen.
|
|
138
|
+
*
|
|
139
|
+
* **The signature is PER ITEM, not per request.** Adyen's reference is explicit that for
|
|
140
|
+
* standard webhooks the signature is provided inside each notification's `additionalData`
|
|
141
|
+
* (only some other webhook families sign the request as a whole, in a header), and its own
|
|
142
|
+
* PHP sample loops the array calling `isValidNotificationHMAC` on every item. Nothing
|
|
143
|
+
* signs the envelope, so an attacker holding one genuine item can append any items they
|
|
144
|
+
* like beside it — verifying the first and trusting the rest would accept every one of
|
|
145
|
+
* them. Every item is verified, before any of them is mapped, and one bad signature
|
|
146
|
+
* rejects the whole delivery: mapping is pointless work once the body is known to be
|
|
147
|
+
* partly forged, and a 400 is the honest answer to a request that was tampered with.
|
|
148
|
+
*
|
|
149
|
+
* **Batches.** Adyen documents that JSON and HTTP POST webhooks carry a single
|
|
150
|
+
* notification item, and that only the legacy SOAP transport may batch (up to six items
|
|
151
|
+
* when events land in rapid succession). This driver speaks JSON, so the array is one item
|
|
152
|
+
* in practice — but it is an array in the schema, so the driver reads all of it and
|
|
153
|
+
* returns one {@link WebhookEvent} per item. A single item still returns a single event,
|
|
154
|
+
* not an array of one.
|
|
155
|
+
*/
|
|
156
|
+
/**
|
|
157
|
+
* Whether a delivery to `POST /payments/webhook/:provider` can be authenticated.
|
|
158
|
+
*
|
|
159
|
+
* Without the HMAC key every `notificationItem` is taken on trust.
|
|
160
|
+
*/
|
|
161
|
+
get webhookVerification(): WebhookVerificationState;
|
|
162
|
+
parseWebhook(rawBody: string, _headers: Record<string, string | string[] | undefined>): WebhookEvent | WebhookEvent[];
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=adyen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adyen.d.ts","sourceRoot":"","sources":["../../../src/drivers/adyen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,OAAO,EACP,eAAe,EACf,OAAO,EACP,KAAK,EACL,OAAO,EACP,MAAM,EACN,YAAY,EACZ,YAAY,EACb,MAAM,aAAa,CAAC;AAIrB,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;CACtC;AA0DD;;;;;;;;;GASG;AACH,qBAAa,WAAY,YAAW,cAAc;;IAChD,QAAQ,CAAC,QAAQ,WAAW;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,YAAI,aAAa,EAAE,WAAW,EAAW;IAClE;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY;QACnB,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,aAAa;MACb;IAUF,YAAY,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,iBAAiB,EAiC7D;IAIK,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAMnE;IAEK,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAMhE;IAEK,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAKxF;IAIK,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAiEjD;IAEK,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAM7D;IAEK,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,KAAK,EACd,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,MAAM,CAAC,CAgCjB;IAIK,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CA6CnE;IAIK,kBAAkB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAM/E;IAEK,kBAAkB,CACtB,sBAAsB,EAAE,MAAM,EAC9B,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GACnC,OAAO,CAAC,YAAY,CAAC,CAMvB;IAEK,kBAAkB,CACtB,sBAAsB,EAAE,MAAM,EAC9B,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,YAAY,CAAC,CAKvB;IAEK,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAKvE;IAIK,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAK1D;IAID;;;;;;;;;OASG;IACG,WAAW,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAWpE;IAED;;;;;;;;;;;;;;;;;OAiBG;IACG,qBAAqB,CACzB,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,OAAO,CAAC,CAYlB;IAID;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH;;;;OAIG;IACH,IAAI,mBAAmB,IAAI,wBAAwB,CAElD;IAED,YAAY,CACV,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACtD,YAAY,GAAG,YAAY,EAAE,CAqB/B;CAkXF"}
|