새로운 기능
1. 다중 Subscription Checkout
이제 하나의 checkout에서 여러 subscription을 한 번에 판매할 수 있습니다.product_cart에 두 개 이상의 subscription product를 추가하면 customer는 한 번의 payment로 모든 상품을 결제하며, invoice도 하나만 생성됩니다.
각 product는 별도의 subscription이 되어 자체 일정에 따라 renew되므로, billing interval이나 trial 기간이 서로 다른 plan도 하나의 cart에서 함께 판매할 수 있습니다. checkout page에는 오늘 결제할 총액이 표시된 다음, 각 subscription별로 trial, renewal amount, next billing date가 한 줄씩 표시됩니다.
cart에는 최대 20개의 product를 담을 수 있습니다. subscription이 두 개 이상인 cart에는 one-time product를 함께 담을 수 없습니다.
payment에는 전체 구매 내역이 기록됩니다. is_multi_subscription는 true이고, subscription_ids에는 생성된 모든 subscription이 나열되며, subscription_id는 null입니다.
자세히 알아보기: Multi-Subscription Cart
2. Moderation API
text와 image가 product에 도달하기 전에 screening할 수 있습니다. content를POST /moderation/screen로 보내면 allow, flag 또는 deny verdict와 함께 해당 verdict를 유발한 category를 반환합니다.
Request에는 최대 8,000자의 text, 최대 5 MiB의 image 또는 둘 다를 포함할 수 있습니다. GET /moderation/usage를 사용해 screening한 항목을 추적할 수 있습니다. test mode의 screening은 무료이며 필요에 따라 trigger할 수 있는 mock verdict를 반환하므로 integration의 모든 branch를 테스트할 수 있습니다.
자세히 알아보기: Moderation API
3. GCash, AlipayHK, FPS 및 Touch ‘n Go
동남아시아와 홍콩의 customer가 사용할 수 있는 네 가지 새로운 local payment method가 추가되었습니다.
customer는 wallet 또는 banking app에서 QR code를 scan하여 결제합니다. 네 가지 method는 모두 default로 활성화되어 있으며 Settings → Payment Methods에서 끌 수 있습니다. one-time payment만 지원하며 subscription checkout에는 표시되지 않습니다. 각 method는 billing country와 currency가 일치하고 Adaptive Currency가 활성화된 경우에만 표시됩니다.
자세히 알아보기: Asia-Pacific Payment Methods
4. 인도의 Apple Pay
이제 인도의 customer도 Apple Pay로 결제할 수 있습니다. INR로 청구되는 Apple Pay subscription은 다른 인도 발급 card와 마찬가지로 RBI mandate를 사용합니다. 자세히 알아보기: Apple Pay in India5. Ethoca Alerts
Mastercard 및 기타 non-Visa card에서 chargeback이 접수되기 전에 이를 방지할 수 있습니다. card issuer가 Ethoca alert를 보내면 Dodo Payments가 payment를 자동으로 refund하므로 dispute가 chargeback으로 전환되지 않으며 chargeback ratio에도 반영되지 않습니다. Ethoca alerts는 opt-in 방식입니다. Visa RDR 옆의 Settings → Dispute Resolution에 있는 Ethoca Alerts card에서 등록할 수 있습니다. 먼저 business에 live payment와 statement descriptor가 설정되어 있어야 하며, 각 alert에 fee가 부과됩니다. 등록 확인에는 영업일 기준 2~4일이 걸립니다. 자세히 알아보기: Ethoca Alerts6. Customer Email Log
이제 모든 customer에게 Sales → Customers 아래에 Sent Emails tab이 표시되며, 최근 180일 동안 Dodo Payments가 customer에게 보낸 email을 나열합니다. 각 항목에는 subject, category, delivery status — Sent, Delivered, Failed, Marked as spam 또는 Not sent — 가 표시되고, failed email에는 실패 이유가 표시됩니다. email을 열어 customer가 받은 내용을 정확히 확인하고, 원래 address 또는 새 address로 최대 세 번 다시 보낼 수 있습니다. 동일한 log는 API의GET /customers/{customer_id}/emails에서도 사용할 수 있습니다.
자세히 알아보기: Email Logs
7. Test Mode Emails
이제 test mode에서도 customer email이 전송되므로 live 전환 전에 전체 email experience를 확인할 수 있습니다. test email은 실제 recipient에게 전송되며 모든 subject는[TEST MODE]로 시작합니다.
Settings → Communication → Email 아래의 Test Mode Emails switch로 이 기능을 제어하며, default로 켜져 있습니다. business는 일주일에 최대 100개의 test mode email을 보낼 수 있습니다. live mode email에는 영향을 주지 않습니다.
자세히 알아보기: Test Mode Emails
8. Right-to-Left Checkout
이제 Arabic와 Hebrew에서 checkout이 right to left로 렌더링됩니다. layout, navigation, order summary를 포함한 전체 page가 반전되지만 email address, code, phone number는 자연스러운 읽기 순서를 유지합니다.
9. Required Cardholder Name
checkout session에서feature_flags.require_cardholder_name를 true로 설정하면 customer가 card에 표시된 이름을 입력하도록 할 수 있습니다. 이 field는 card number 위에 표시됩니다. 이 flag의 default 값은 false입니다. 다른 payment method에서는 무시되지만 Apple Pay와 Google Pay는 이미 payer name을 수집합니다.
자세히 알아보기: Checkout Sessions
10. Subscription을 취소한 사람
이제 subscription에 취소한 사람을 기록하는cancelled_by object가 포함됩니다. 해당 object의 actor_type는 customer, merchant_user, api_key 또는 dodo_team 중 하나이며, customer 또는 dashboard user인 경우 해당 사용자의 name 및 email도 포함됩니다.
이 field는 API response의 subscription과 모든 subscription.* webhook payload에 표시됩니다. 즉시 취소와 예약된 취소를 모두 다루며, system에 의한 취소처럼 호출자를 알 수 없는 경우에는 null입니다.
자세히 알아보기: Get Subscription
11. Payout Settings 및 Reserved Balance
이제 Payouts page의 Manage에서 접근할 수 있는 Settings → Payouts 아래에서 payouts를 관리합니다. payout frequency를 더 긴 주기로 변경하고, minimum payout을 설정하며, 연결된 bank account를 한곳에서 관리할 수 있습니다. 이제 Payouts page에 주말과 bank holiday를 건너뛴 실제 next payout date가 표시되며, payout date가 변경되는 경우 이를 알려줍니다. settled payment의 일부가 reserve로 보류된 경우 Payout Balance card에 Reserved row가 표시됩니다. 해당 금액은 여전히 귀사의 자산이며 자동으로 balance에 반환됩니다. 자세히 알아보기: Payout Structure12. 더 간단해진 Verification Flow
이제 account verification은 하나의 checklist로 제공되며, Start Verification, Continue Verification 또는 Submit for Review라는 단일 button으로 다음 단계로 진행할 수 있습니다. Save and Continue를 클릭하면 각 form이 draft로 저장되므로 원하는 속도로 모든 내용을 작성한 뒤 모든 form을 한 번에 제출하여 review를 받을 수 있습니다. Identity verification은 동일한 page의 secure window에서 열립니다. team에 추가 정보가 필요한 경우 Action required banner에 필요한 정보와 제출 기한이 표시됩니다. 자세히 알아보기: Account Verification13. 새롭게 디자인된 Dashboard
이제 Settings는 Your Profile, Business Settings, Payments & Commerce로 그룹화된 card의 단일 page이며, 각 card에서 해당 section을 열 수 있습니다. Tracking Integrations, Pricing, Dispute Resolution, Payouts에는 각각 별도의 page가 있으며, Storefront는 sidebar에서 Settings로 이동했습니다. 기존 link는 새 page로 redirect됩니다. 이제 support chat icon과 함께 header에 search가 표시됩니다. Sign out은 business switcher로 이동했습니다. 이제 dashboard의 모든 country, phone number, currency dropdown에서 name, ISO code 또는 dialing code로 검색할 수 있습니다.14. Dodo Sync 1.0
payment, customer, subscription, license를 자체 database로 복사하는 open-source package인 Dodo Sync가 version 1.0에 도달했습니다.- 더 빠른 sync. 이제 MongoDB, PostgreSQL, MySQL, ClickHouse에서 record별로 query를 하나씩 실행하는 대신 각 record page를 하나의 batch operation으로 작성합니다.
- serverless 환경에서도 안전합니다. 이제
run()가 resolve되기 전에 모든 database write가 완료될 때까지 기다리므로, Vercel 또는 AWS Lambda에서 function이 종료될 때 sync로 인해 record가 손실되지 않습니다. 새로운disconnect()method를finallyblock에서 호출하여 database connection을 닫으세요. - 자체 MongoDB database. record는 connection URI에 지정된 database에 기록됩니다. URI에 database가 지정되지 않은 경우 Dodo Sync는 이전과 같이
dodopayments_sync를 사용합니다. - CLI에서 secret masking. 이제 interactive mode에서 입력하는 database URI와 API key가 mask 처리됩니다.